/* hz.css — общая дизайн-система сайта (с 22.09.2026): шрифты, токены, база, шапка/подвал/липкая панель/cookie, примитивы;
   подключается head-партиалом на всех страницах после mobile.css. */

/* ===== Шрифт дисплея: Sofia Sans Condensed (вариативный, self-host) ===== */
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:1 1000;font-display:swap;src:url(/assets/fonts/sofiacond-var-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:1 1000;font-display:swap;src:url(/assets/fonts/sofiacond-var-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:1 1000;font-display:swap;src:url(/assets/fonts/sofiacond-var-greek.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:1 1000;font-display:swap;src:url(/assets/fonts/sofiacond-var-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Sofia Sans Condensed';font-style:normal;font-weight:1 1000;font-display:swap;src:url(/assets/fonts/sofiacond-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}

/* ===== Токены ===== */
:root{
  --hz-paper:#F1F1EE; --hz-white:#FFFFFF;
  --hz-ink:#121416; --hz-ink-2:#45494D; --hz-ink-3:#6B7075;
  --hz-panel:#17191C; --hz-panel-2:#232629; --hz-on-panel:#F4F4F1; --hz-on-panel-2:#B7BBBF;
  --hz-line:#D4D5D0; --hz-line-panel:rgba(255,255,255,.14);
  --hz-signal:#FF6A2A; --hz-signal-deep:#B33A0A;
  --hz-radius:6px; --hz-max:1280px; --hz-gutter:32px;
  --hz-display:'Sofia Sans Condensed','Arial Narrow',Arial,sans-serif;
  --hz-text:'Golos Text',Arial,sans-serif;
  --hz-mono:'JetBrains Mono',Consolas,monospace;
  --hz-sec-y:clamp(72px,7vw,112px);
  --hz-ease:cubic-bezier(.2,.7,.2,1);
}

/* ===== База (главная) ===== */
body.hz{background:var(--hz-paper);color:var(--hz-ink);font-family:var(--hz-text);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
body.hz main{display:block}
body.hz a{color:inherit}
body.hz :focus-visible{outline:3px solid var(--hz-signal);outline-offset:3px}
body.hz img{display:block;max-width:100%;height:auto}
body.hz ::selection{background:var(--hz-signal);color:var(--hz-ink)}

.hz-wrap{max-width:var(--hz-max);margin:0 auto;padding:0 var(--hz-gutter)}
.hz-sec{padding:var(--hz-sec-y) 0}
.hz-sec_white{background:var(--hz-white)}
.hz-sec_panel{background:var(--hz-panel);color:var(--hz-on-panel)}

.hz-h2{font-family:var(--hz-display);font-weight:800;font-size:clamp(44px,5vw,72px);line-height:.94;letter-spacing:-.01em;margin:0}
.hz-h3{font-family:var(--hz-display);font-weight:750;font-size:clamp(28px,2.6vw,36px);line-height:1;letter-spacing:-.005em;margin:0}
.hz-lead{font-size:clamp(18px,1.5vw,21px);line-height:1.4;color:var(--hz-ink-2);margin:0;max-width:34em}
.hz-sec_panel .hz-lead{color:var(--hz-on-panel-2)}
.hz-small{font-size:15px;line-height:1.45;color:var(--hz-ink-3)}
.hz-sec_panel .hz-small{color:var(--hz-on-panel-2)}
.hz-sec_panel .hz-prose{color:var(--hz-on-panel-2)}
.hz-sec_panel .hz-prose strong{color:var(--hz-on-panel)}
.hz-num{font-family:var(--hz-display);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.015em;line-height:.9}

/* Кнопки: одна primary на экран — оранжевая с чернильным текстом */
.hz-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 28px;border:0;border-radius:var(--hz-radius);
  background:var(--hz-signal);color:var(--hz-ink);font-family:var(--hz-text);font-weight:600;font-size:17px;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background .18s var(--hz-ease),transform .12s var(--hz-ease)}
.hz-btn:hover{background:#FF7F49}
.hz-btn:active{transform:translateY(1px)}
.hz-btn_ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.hz-btn_ghost:hover{background:rgba(255,255,255,.08)}
.hz-btn_lg{min-height:64px;padding:0 34px;font-size:18px}
.hz-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;box-shadow:inset 0 -2px 0 currentColor;padding-bottom:1px;transition:box-shadow .18s var(--hz-ease)}
.hz-link:hover{box-shadow:inset 0 -3px 0 var(--hz-signal)}

/* ===== Шапка (партиал header.html) поверх hero ===== */
body.hz .avz-header{position:fixed;left:0;right:0;top:0;background:var(--hz-panel);border-bottom:0;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .25s var(--hz-ease)}
body.hz-home .avz-header{background:transparent}
body.hz-home .avz-header.hz-solid{background:var(--hz-panel)}
body.hz:not(.hz-home) main{padding-top:76px}
body.hz .avz-header__inner{max-width:none;padding:0 var(--hz-gutter);min-height:76px}
body.hz .avz-header__logo img{filter:brightness(0) invert(1)}
body.hz .avz-header__nav a{font-family:var(--hz-text);font-weight:500;font-size:15px;color:var(--hz-on-panel-2)}
body.hz .avz-header__nav a:hover{color:var(--hz-on-panel)}
body.hz .avz-header__tel{font-family:var(--hz-text);font-weight:600;font-size:15px;color:var(--hz-on-panel);font-variant-numeric:tabular-nums}
body.hz .avz-header__tel:hover{color:var(--hz-signal)}
body.hz .avz-header__icon{background:transparent;box-shadow:inset 0 0 0 1px var(--hz-line-panel);color:var(--hz-on-panel);width:40px;height:40px;transition:box-shadow .18s var(--hz-ease)}
body.hz .avz-header__icon:hover{transform:none;box-shadow:inset 0 0 0 1px var(--hz-on-panel)}
body.hz .avz-header .avz-btn{background:transparent;color:var(--hz-on-panel);box-shadow:inset 0 0 0 1.5px var(--hz-on-panel-2);border-radius:var(--hz-radius);font-family:var(--hz-text);font-weight:600;font-size:15px;padding:0 18px;min-height:40px}
body.hz .avz-header .avz-btn::before{display:none}
body.hz .avz-header .avz-btn:hover{transform:none;box-shadow:inset 0 0 0 1.5px var(--hz-on-panel);background:rgba(255,255,255,.06)}
body.hz .avz-header__burger{background:transparent;border:1px solid var(--hz-line-panel);border-radius:var(--hz-radius);box-shadow:none}
body.hz .avz-header__burger span{background:var(--hz-on-panel)}
/* мобильное меню-оверлей (site.css рисует его светлым — переводим в панель) */
@media (max-width:900px){
  html body.hz .avz-header__nav.avz-header__nav_open{background:var(--hz-panel)}
  html body.hz .avz-header__nav a{color:var(--hz-on-panel);font-size:22px;font-family:var(--hz-display);font-weight:700}
  html body.hz .avz-header__nav .avz-nav-contact{color:var(--hz-on-panel-2);font-family:var(--hz-text);font-weight:500;font-size:17px}
  html body.hz .avz-header__nav .avz-nav-cta{color:var(--hz-ink);background:var(--hz-signal);border-radius:var(--hz-radius);padding:14px 20px;justify-content:center}
  html body.hz .avz-header__nav-close{color:var(--hz-on-panel)}
  html.avz-nav-open body.hz .avz-header__nav::before{filter:brightness(0) invert(1)}
  html.avz-nav-open body.hz .avz-header{background:var(--hz-panel)}
}

/* Элементы партиалов на главной: липкая панель (footer.html) и cookie-баннер (analytics.html) —
   переводим в систему главной: без фасок, без градиентов, кнопка сигнальная. */
body.hz .avz-stickycta{background:var(--hz-panel);box-shadow:0 -8px 24px rgba(0,0,0,.25)}
body.hz .avz-stickycta-main{background:var(--hz-signal);color:var(--hz-ink);clip-path:none;border-radius:var(--hz-radius);font-weight:600;font-size:15px}
/* color обязателен: body.hz a{color:inherit} (выше) перебивает color:#fff из инлайн-стилей
   footer-партиала, и самолётик наследовал --hz-ink (#121416) на панели #17191C — на
   мобильном был практически не виден (замечено Игорём 23.09.2026). */
body.hz .avz-stickycta-tg{clip-path:none;border-radius:var(--hz-radius);background:transparent;box-shadow:inset 0 0 0 1px var(--hz-line-panel);color:var(--hz-on-panel)}
body.hz #avz-cc{font-family:var(--hz-text)}
body.hz .avz-cc__btn{background:var(--hz-ink);color:var(--hz-on-panel);border-radius:var(--hz-radius);box-shadow:none;border:0}
body.hz .avz-cc__btn::before{display:none}
body.hz #avz-cc a{color:inherit}

/* ===== Подвал (партиал footer.html) в системе главной ===== */
body.hz .avz-footer{background:var(--hz-panel);color:var(--hz-on-panel);border-top:0}
body.hz .avz-footer__inner{max-width:var(--hz-max);padding-left:var(--hz-gutter);padding-right:var(--hz-gutter)}
body.hz .avz-footer__logo img{filter:brightness(0) invert(1)}
body.hz .avz-footer__claim{color:var(--hz-on-panel-2)}
/* капс-ярлыков в системе главной нет — возвращаем колонкам подвала обычный регистр */
body.hz .avz-footer__col-title{color:var(--hz-on-panel-2);font-family:var(--hz-text);font-size:14px;
  text-transform:capitalize;letter-spacing:normal}
body.hz .avz-footer__col a,body.hz .avz-footer__col p{color:var(--hz-on-panel-2)}
body.hz .avz-footer__col a:hover{color:var(--hz-on-panel)}
body.hz .avz-footer__hours{color:var(--hz-on-panel-2)}
body.hz .avz-footer__icon{background:transparent;color:var(--hz-on-panel);box-shadow:inset 0 0 0 1px var(--hz-line-panel);border-radius:var(--hz-radius)}
body.hz .avz-footer__icon:hover{transform:none;box-shadow:inset 0 0 0 1px var(--hz-on-panel)}
body.hz .avz-footer__legal{border-top:1px solid var(--hz-line-panel)}
body.hz .avz-footer__req,body.hz .avz-footer__disclaimer,body.hz .avz-footer__legal-links a{font-size:13px;color:#8A8E94}
body.hz .avz-footer__legal-links a:hover{color:var(--hz-on-panel-2)}
@media (max-width:900px){body.hz .avz-footer__inner{padding-left:20px;padding-right:20px}}

@media (prefers-reduced-motion:reduce){
  body.hz .avz-header,.hz-btn,.hz-link{transition:none}
}

/* ===== Формы и общий контейнер (перенесено из home.css 23.09.2026 — нужны и внутренним страницам) ===== */

/* Контейнер: собственная переменная гуттера — её читают полосы с отрицательными полями
   (лента отзывов, выделенная строка тарифа). На мобайле 20px. */
.hz-wrap{--hz-pad:var(--hz-gutter);padding:0 var(--hz-pad)}

/* Поля форм (общие для #zvonok и #lead) */
.hz-field{margin:0}
.hz-field label,.hz-field__label{display:block;margin-bottom:7px;font-size:14px;line-height:1.3;color:var(--hz-ink-2)}
.hz-field input[type=text],.hz-field input[type=tel]{
  width:100%;height:56px;padding:0 14px;border:1px solid #D8D8D2;border-radius:var(--hz-radius);
  background:var(--hz-white);color:var(--hz-ink);font:500 17px/1.3 var(--hz-text);appearance:none}
.hz-field input::placeholder{color:var(--hz-ink-3);opacity:1}
.hz-field input:focus,.hz-field input:focus-visible{border-color:var(--hz-ink);outline:2px solid var(--hz-ink);outline-offset:0}
.hz-field input[aria-invalid=true]{border-color:var(--hz-signal-deep)}
.hz-field_submit .hz-btn{width:100%}
.hz-chips{display:flex;gap:8px}
.hz-chips button{height:56px;padding:0 16px;border:1px solid var(--hz-line);border-radius:var(--hz-radius);
  background:transparent;color:var(--hz-ink-2);font:500 16px/1 var(--hz-text);cursor:pointer;white-space:nowrap;
  transition:border-color .18s var(--hz-ease),background .18s var(--hz-ease),color .18s var(--hz-ease)}
.hz-chips button:hover{border-color:var(--hz-ink-3);color:var(--hz-ink)}
.hz-chips button[aria-pressed="true"]{border-color:var(--hz-ink);background:var(--hz-ink);color:var(--hz-on-panel)}
.hz-consents{display:flex;flex-wrap:wrap;gap:10px clamp(24px,3vw,40px);margin-top:20px}
.hz-consent{display:flex;align-items:flex-start;gap:10px;max-width:34em;font-size:14px;line-height:1.4;
  color:var(--hz-ink-3);cursor:pointer}
.hz-consent input{flex:0 0 auto;width:18px;height:18px;margin:1px 0 0;accent-color:var(--hz-ink)}
.hz-consent a{color:var(--hz-ink-2);text-decoration:underline;text-underline-offset:2px}
.hz-err{margin-top:14px;font-size:15px;line-height:1.45;font-weight:500;color:var(--hz-signal-deep);max-width:40em}
.hz-err:empty{display:none}
/* honeypot: в старой разметке #zvonok стиль стоял инлайном — здесь он общий для всех форм */
.avz-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
/* эхо расчёта калькулятора (скрыто, пока шина не пришлёт данные) */
.avz-echo{display:none;margin:0 0 20px;padding:12px 14px;border-left:2px solid var(--hz-signal);
  background:var(--hz-paper);font-size:15px;line-height:1.4}

/* Секция заявки: слева текст и контакты на панели, справа белая карточка формы */
.hz-form__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,4.4vw,80px);align-items:start}
.hz-form__text{margin:24px 0 0}
.hz-form__contacts{margin:clamp(28px,3vw,44px) 0 0;border-top:1px solid var(--hz-line-panel)}
.hz-form__contacts>div{display:grid;grid-template-columns:minmax(0,116px) minmax(0,1fr);gap:16px;padding:14px 0;
  border-bottom:1px solid var(--hz-line-panel)}
.hz-form__contacts dt{font-size:15px;line-height:1.4;color:var(--hz-on-panel-2)}
.hz-form__contacts dd{margin:0;font-weight:600;line-height:1.4;font-variant-numeric:tabular-nums}
.hz-form__contacts a{text-decoration:none;box-shadow:inset 0 -1px 0 rgba(255,255,255,.4);transition:box-shadow .18s var(--hz-ease)}
.hz-form__contacts a:hover{box-shadow:inset 0 -2px 0 var(--hz-signal)}
.hz-form__card{background:var(--hz-white);color:var(--hz-ink);border-radius:var(--hz-radius);padding:clamp(24px,2.8vw,44px)}
.hz-form__cardp{margin:12px 0 clamp(20px,2.4vw,30px);font-size:16px;line-height:1.5;color:var(--hz-ink-2);max-width:34em}
.hz-form__card .hz-field~.hz-field{margin-top:18px}
.hz-form__card .hz-btn{width:100%;min-height:56px;height:auto;margin-top:clamp(20px,2.4vw,28px)}

@media (max-width:900px){
  .hz-wrap{--hz-pad:20px}
  .hz-form__grid{grid-template-columns:1fr}
}
/* На узких экранах длинная надпись кнопки не должна задавать min-content колонки:
   без переноса «Получить бесплатный анализ» распирает карточку формы и всю страницу
   (на 320 давало scrollWidth 374). На главной то же правило есть в home.css. */
@media (max-width:600px){
  .hz-btn{white-space:normal;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .hz-chips button,.hz-form__contacts a{transition:none}
}

/* ===== Внутренние страницы: общие примитивы (23.09.2026) ===== */

/* Шапка страницы на бумаге: крошки → H1 → лид, одна колонка */
.hz-ph{padding:clamp(40px,5vw,72px) 0 clamp(32px,4vw,56px)}
.hz-crumbs{font-size:14px;line-height:1.4;color:var(--hz-ink-3)}
.hz-crumbs ol{display:flex;flex-wrap:wrap;gap:0 8px;list-style:none;margin:0;padding:0}
.hz-crumbs li+li::before{content:"/";margin-right:8px;color:var(--hz-line)}
.hz-crumbs a{text-decoration:none;color:var(--hz-ink-3)}
.hz-crumbs a:hover{color:var(--hz-ink)}
.hz-h1{font-family:var(--hz-display);font-weight:800;font-size:clamp(48px,6vw,88px);line-height:.92;
  letter-spacing:-.012em;max-width:11em;text-wrap:balance;margin:16px 0 0}
.hz-ph__lead{font-size:clamp(18px,1.5vw,21px);line-height:1.4;color:var(--hz-ink-2);margin:20px 0 0;max-width:34em}

/* Компактная секция */
.hz-sec_tight{padding:clamp(48px,5vw,80px) 0}

/* Типографика длинного текста */
.hz-prose{font-family:var(--hz-text);font-size:18px;line-height:1.6;color:var(--hz-ink-2);max-width:68ch}
.hz-prose h2{font-family:var(--hz-display);font-weight:750;font-size:clamp(30px,3vw,40px);line-height:1;
  letter-spacing:-.005em;color:var(--hz-ink);margin:1.6em 0 .6em}
.hz-prose h3{font-family:var(--hz-text);font-weight:600;font-size:21px;line-height:1.3;color:var(--hz-ink);margin:1.4em 0 .5em}
.hz-prose>:first-child{margin-top:0}
.hz-prose p{margin:0 0 1.1em}
.hz-prose ul,.hz-prose ol{margin:0 0 1.1em;padding-left:1.2em}
.hz-prose li+li{margin-top:.4em}
.hz-prose blockquote{margin:1.4em 0;padding-left:20px;border-left:2px solid var(--hz-signal);
  font-weight:500;font-size:20px;line-height:1.4;color:var(--hz-ink)}
.hz-prose blockquote p:last-child{margin-bottom:0}
.hz-prose a{text-decoration:underline;text-underline-offset:3px}
.hz-prose strong{font-weight:600;color:var(--hz-ink)}
.hz-prose hr{height:1px;border:0;background:var(--hz-line);margin:2em 0}

/* Список строк с линиями */
.hz-rows{list-style:none;margin:0;padding:0}
.hz-rows>*{padding:22px 0;border-top:1px solid var(--hz-line)}
.hz-rows>*:last-child{border-bottom:1px solid var(--hz-line)}
.hz-sec_panel .hz-rows>*{border-top-color:var(--hz-line-panel)}
.hz-sec_panel .hz-rows>*:last-child{border-bottom-color:var(--hz-line-panel)}

/* Белая панель-компонент (как панель кабинета на главной) */
.hz-panelcard{background:var(--hz-white);color:var(--hz-ink);border-radius:var(--hz-radius);
  box-shadow:0 1px 2px rgba(0,0,0,.12),0 24px 48px -32px rgba(0,0,0,.35)}
.hz-panelcard__head{padding:18px 20px 14px;border-bottom:1px solid var(--hz-line)}
.hz-panelcard__title{margin:0;font-family:var(--hz-text);font-weight:600;font-size:17px;line-height:1.3;color:var(--hz-ink)}
.hz-panelcard__note{margin:4px 0 0;font-size:13px;line-height:1.4;color:var(--hz-ink-3)}
.hz-panelcard dl{margin:0;padding:8px 20px}
.hz-panelcard dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0}
.hz-panelcard dt{color:var(--hz-ink-2);font-size:15px;line-height:1.35}
.hz-panelcard dd{margin:0;font-family:var(--hz-mono);font-weight:600;font-size:20px;line-height:1.2;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-align:right}
.hz-panelcard dl>div.is-key{background:var(--hz-paper);margin:0 -20px;padding:10px 20px}
.hz-panelcard dl>div.is-key dd{color:var(--hz-ink);font-weight:700}
.hz-panelcard__foot{padding:12px 20px 14px;border-top:1px solid var(--hz-line);
  font-size:13px;line-height:1.4;color:var(--hz-ink-3)}

/* маркеры списков в длинном тексте: site.css сбрасывает list-style, возвращаем */
.hz-prose ul{list-style:disc}
.hz-prose ol{list-style:decimal}
/* якоря под фиксированной шапкой 76px: /#kontakty ведёт на блок формы с контактами (id стоит на пустом div перед #lead) */
body.hz [id]{scroll-margin-top:76px}

/* Строка ссылок «читайте также» внутри контента (23.09.2026): перелинковка страниц с блогом.
   Живёт в hz.css, а не в стилях страницы, потому что используется на главной, кейсах и «О нас». */
.hz-morelinks{margin:clamp(24px,3vw,32px) 0 0;padding-top:20px;border-top:1px solid var(--hz-line);
  font-family:var(--hz-text);font-size:16px;line-height:1.55;color:var(--hz-ink-3)}
.hz-morelinks a{color:var(--hz-ink-2);text-decoration:underline;text-underline-offset:3px}
.hz-morelinks a:hover{color:var(--hz-ink)}
