@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/e91c603f.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: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/1245bff9.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: 400; font-display: swap; src: url("../fonts/58cc6193.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: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/62ff04a0.woff2") format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/237bbc02.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: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/00a57c87.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: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/e91c603f.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: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/1245bff9.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: 600; font-display: swap; src: url("../fonts/58cc6193.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: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/62ff04a0.woff2") format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/237bbc02.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: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/00a57c87.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: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/e91c603f.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: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/1245bff9.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: 700; font-display: swap; src: url("../fonts/58cc6193.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: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/62ff04a0.woff2") format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/237bbc02.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: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/00a57c87.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: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/e91c603f.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: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/1245bff9.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: 800; font-display: swap; src: url("../fonts/58cc6193.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: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/62ff04a0.woff2") format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/237bbc02.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: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/00a57c87.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; }

/* №2: подсветка непринятого согласия */
.consent.err .cbox, .consent-fallback.err input{outline:2px solid #d63638;outline-offset:2px}
/* display НЕ трогаем: исходное правило скрывает текст ошибки до её появления */
.consent-err{color:#d63638;font-size:13px;margin-top:6px;display:none}
.consent.err ~ .consent-err{display:block}

/* ===== Аудит 4.71: вёрстка ===== */

/* №3: на 861–1120 px меню и кнопка не помещались — кнопка «Обсудить проект» уезжала за экран.
   Переключаемся на бургер раньше, кнопку в шапке оставляем. */
@media (max-width: 1120px) {
  .nav nav { display: none; }
  .burger  { display: flex; }
}

/* №4: мобильное меню не прокручивалось — на iPhone с адресной строкой нижние пункты были недоступны */
.drawer .panel {
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  height: 100%;
  height: 100dvh;
  padding-bottom: calc(26px + env(safe-area-inset-bottom));
}

/* №8: iOS увеличивает страницу, если шрифт поля меньше 16px */
@media (max-width: 860px) {
  input:not([type=checkbox]):not([type=radio]):not([type=range]),
  select, textarea { font-size: 16px !important; }
}

/* №13: липкая панель показывается только после прокрутки и не закрывает подвал навсегда */
.sticky-cta { transform: translateY(115%); transition: transform .25s ease; padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
.sticky-cta.show { transform: none; }
@media (max-width: 860px) {
  body { padding-bottom: calc(97px + env(safe-area-inset-bottom)); }
}
/* №13: плавающие кнопки не перекрывают ссылки подвала на планшетах */
@media (max-width: 860px) {
  .calc-fab, .gift-fab { display: none; }
}

/* №14: плашка направления перекрывала первую метрику карточки кейса */
.case-thumb.data .case-data { padding-top: 56px; }

/* №18: контраст — телефон на «Спасибо» (родитель с opacity) и ссылки на 404 */
.thanks-phone, .thanks-phone a { opacity: 1 !important; color: #9fbcff !important; }
.sec .form-note a[href^="tel:"] { color: #9fbcff; }

/* §3: согласие в попапе «Подарок» — полный текст, без обрезки */
.gift-pop .consent, .gp-form .consent{align-items:flex-start;font-size:12px;line-height:1.4;margin-top:12px;white-space:normal}
.gift-pop .consent .ctext, .gp-form .consent .ctext{display:block;overflow:visible;text-overflow:clip}
.gift-pop .consent a, .gp-form .consent a{white-space:normal}

/* Н-1: согласие в попапе «Подарок» — на синем градиенте нужен светлый текст */
.gp-form .consent, .gp-form .consent .ctext{color:rgba(255,255,255,.96)}
.gp-form .consent a{color:#fff;text-decoration:underline;text-underline-offset:3px;font-weight:600}
.gp-form .consent .cbox{border-color:rgba(255,255,255,.6)}
.gp-form .consent input:checked+.cbox{background:#fff;border-color:#fff;color:#1f47c0}
/* Р-1: текст ошибки в попапе «Подарок» */
.gp-err{display:none;color:#ffd7d7;background:rgba(0,0,0,.28);border-radius:10px;padding:9px 12px;font-size:13px;line-height:1.4;margin:10px 0}

/* №17: выпадающее меню «Услуги» доступно с клавиатуры */
.nav-drop:focus-within .nav-menu{opacity:1;visibility:visible;transform:none}
.nav-drop:focus-within>a svg{transform:rotate(180deg)}
/* №18: контраст метки на карточке блога */
.bf-body>.tag{color:#1d47b8}  /* N-4: дубль-страховка */
/* №19: точки слайдеров — видимый размер и зона нажатия */
.dots .dot,.rv-dot,.pcase-dot{width:12px;height:12px}
.dots .dot::after,.rv-dot::after,.pcase-dot::after{inset:-8px}
/* №19: мелкие подписи на мобильных */
@media(max-width:860px){
  .cv-x span,.cd-h,.cap,.svc-metric-term,.mnum-cap,.chart-lab{font-size:12px}
  .cc-param>div span,.cc-tag,.cc-plan{font-size:12.5px}
}

/* Р-3: .nav со sticky лежала внутри <header>, и прилипание ограничивалось его высотой.
   Делаем sticky сам <header> и уводим topbar за верхний край на его фактическую высоту
   (--topbar-h выставляет JS: высота меняется от ширины экрана, фиксированные пороги ненадёжны). */
body > .app > header{position:sticky;top:calc(-1 * var(--topbar-h, 47px));z-index:60}

/* №20: «> 100» в таблице позиций не должно разрываться переносом */
.pos-row .was,.pos-row .now{white-space:nowrap}
/* №20: в бесплатном тарифе вместо «0 разово» — слово, оно длиннее цифры */
.tcard.free .tprice .val{font-size:clamp(26px,3.2vw,38px);letter-spacing:-.01em}
/* №20: логотипы клиентов не обрезаются */
.logo-cell .lc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.logo-cell{min-width:0}

/* Адрес в подвале — не ссылка, но выглядит как прежняя строка */
.foot-addr{display:inline-flex;align-items:center;gap:8px;color:inherit}

/* Согласие: мельче, приглушённый серый, отступ от кнопки */
.consent, .consent-fallback{
  margin-top:16px !important;
  font-size:11.5px !important;
  line-height:1.45 !important;
  color:#6b7280 !important;
  align-items:flex-start;
}
.consent .ctext, .consent-fallback span, .consent > span:last-child{color:#6b7280 !important}
.consent a, .consent-fallback a{color:#4b5563 !important;text-decoration:underline;text-underline-offset:2px;font-weight:500}
.consent a:hover, .consent-fallback a:hover{color:var(--accent,#2f63e8) !important}
/* на тёмном фоне (герой, попап «Подарок») — светлый приглушённый */
/* A-2: формы в героях лежат на БЕЛОЙ карточке — светлый текст делал ссылку невидимой.
   Светлый вариант оставляем только там, где фон действительно тёмный. */
.gp-form .consent, .gp-form .consent .ctext{color:rgba(255,255,255,.82) !important}
.gp-form .consent a{color:#fff !important}
.svc-hero .audit-card .consent, .hero2 .audit-card .consent,
.svc-hero .audit-card .consent-fallback, .hero2 .audit-card .consent-fallback{color:#6b7280 !important}
.svc-hero .audit-card .consent a, .hero2 .audit-card .consent a,
.svc-hero .audit-card .consent-fallback a, .hero2 .audit-card .consent-fallback a{color:#4b5563 !important}
.consent .cbox{margin-top:0}

/* Плавающие кнопки: раньше калькулятор и подарок стояли в 4px друг от друга,
   и пульсирующее кольцо подарка налезало на калькулятор. Строим столбиком с запасом. */
@media (min-width: 861px){
  .calc-fab{ left:auto !important; right:24px !important; bottom:24px !important; }
  .gift-fab{ right:24px !important; bottom:112px !important; }
}
.gift-pulse{ pointer-events:none; }

/* Подписи .lab: класс используется и на светлом фоне (кейс), и на тёмном (ROI, порт­фель).
   Раньше единый тёмно-синий давал на тёмном контраст 2.34 — подписи не читались. */
.roi .lab, #v-roi .lab, .results .lab, .sec.dark .lab, .tone-dark .lab,
.calc-pop .lab, .svc-hero .lab, .hero2 .lab, .comp-sec .lab{
  color:#b9ccff !important;
}
.roi-field .lab, .calc-field .lab{ color:#b9ccff !important; font-weight:500; letter-spacing:.01em; }
.roi-field .lab b, .calc-field .lab b, .roi-field .lab .v, .calc-field .lab .v{ color:#fff !important; font-weight:700; }

/* N-10: заголовки таблицы позиций на телефонах не помещались в одну строку */
@media (max-width:560px){
  .pos-head > div{font-size:11px;white-space:normal;line-height:1.2;word-break:normal;hyphens:auto}
  .pos-head{gap:6px}
}
/* №20: названия клиентов помещаются целиком, без многоточия */
.lc-name{font-size:clamp(12px,1.05vw,14px);letter-spacing:-.01em;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2;max-width:100%}
.logo-cell{min-width:0;padding-left:6px;padding-right:6px}

/* Названия клиентов: правило 4.82 (.logo-cell .lc-name) перебивало более слабое —
   задаём ту же специфичность и разрешаем перенос вместо многоточия. */
.logo-cell .lc-name, .lc-row .lc-name{
  font-size:clamp(12px,1.02vw,15px) !important;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  line-height:1.15;
  letter-spacing:-.01em;
  max-width:100%;
}
/* N-10: заголовки таблицы позиций — перенос действительно работает */
@media (max-width:560px){
  .pos-head > div{min-width:0;font-size:10.5px !important;white-space:normal !important;line-height:1.15;overflow-wrap:anywhere}
  .pos-head > div br{display:none}
}

/* A-4: скрытие плавающих кнопок над подвалом */
.calc-fab.hide-near-footer, .gift-fab.hide-near-footer{
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  pointer-events:none;
}
