/* ============================================================
   Айтех24 — токены и компоненты шаблона «Услуга v2»
   Источник: iteh24-design-system.html (30.07.2026)
   Подключается ТОЛЬКО на шаблоне page-service-v2.php.
   Все переменные и классы с префиксом v2- — не пересекаются
   ни с Bootstrap-классами темы, ни с существующими th-* стилями.
   ============================================================ */

:root{
  --v2-brand:#009BE8;
  --v2-brand-deep:#035CDD;
  --v2-brand-light:#54D6EB;
  --v2-accent:#FF5538;

  --v2-ink:#141922;
  --v2-body:#3D4450;
  --v2-muted:#5E6B7C;
  --v2-line:#E4EAF1;
  --v2-soft:#F4F8FC;
  --v2-white:#fff;

  --v2-ok:#1AA97B;
  --v2-warn:#E8A400;
  --v2-bad:#E04A3A;

  --v2-r-sm:6px;
  --v2-r:10px;
  --v2-r-lg:16px;
  --v2-r-pill:999px;

  --v2-sh:0 1px 2px rgba(20,25,34,.04), 0 4px 16px rgba(20,25,34,.06);
  --v2-sh-lg:0 2px 4px rgba(20,25,34,.05), 0 12px 32px rgba(20,25,34,.10);

  --v2-s1:4px; --v2-s2:8px; --v2-s3:12px; --v2-s4:16px; --v2-s5:24px;
  --v2-s6:32px; --v2-s7:48px; --v2-s8:64px; --v2-s9:96px;

  --v2-container:1320px;
  --v2-measure:72ch;
}

.v2-page{font-family:Manrope,system-ui,sans-serif;color:var(--v2-body);font-size:16px;line-height:1.65}
.v2-page *{box-sizing:border-box}
.v2-page h1,.v2-page h2,.v2-page h3,.v2-page h4{color:var(--v2-ink);margin:0;line-height:1.22;font-weight:800;letter-spacing:-.02em}
.v2-page h2{font-size:clamp(23px,3vw,32px)}
.v2-page h3{font-size:20px;font-weight:700}
.v2-page p{margin:0 0 1em}

.v2-wrap{max-width:var(--v2-container);margin:0 auto;padding:0 15px}
.v2-section{margin:var(--v2-s9) 0}
@media(max-width:768px){.v2-section{margin:56px 0}}
.v2-section-head{margin:0 0 var(--v2-s5)}
.v2-kicker{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--v2-brand);margin-bottom:8px}
.v2-sub{font-size:18px;font-weight:500;color:var(--v2-muted);max-width:62ch;margin-top:8px}

/* кнопки */
.v2-btn{display:inline-block;padding:12px 22px;border-radius:var(--v2-r);font-weight:700;font-size:14.5px;
  text-decoration:none;border:0;cursor:pointer}
.v2-btn-p{background:var(--v2-brand);color:#fff;box-shadow:0 6px 16px rgba(0,155,232,.28)}
.v2-btn-g{background:transparent;color:var(--v2-brand);box-shadow:inset 0 0 0 2px var(--v2-brand)}
.v2-btn-a{background:var(--v2-accent);color:#fff;box-shadow:0 6px 16px rgba(255,85,56,.26)}

/* hero */
.v2-hero{background:linear-gradient(118deg,var(--v2-brand-deep),var(--v2-brand) 58%,var(--v2-brand-light));
  border-radius:var(--v2-r-lg);padding:48px;color:#fff;position:relative;overflow:hidden}
.v2-hero:after{content:"";position:absolute;right:-70px;top:-70px;width:230px;height:230px;
  border-radius:50%;background:rgba(255,255,255,.10)}
.v2-hero h1{color:#fff;font-size:clamp(30px,4.4vw,46px);max-width:20ch;position:relative}
.v2-hero p{color:rgba(255,255,255,.9);font-size:18px;max-width:44ch;position:relative;margin-top:14px}
.v2-hero .v2-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;position:relative}
.v2-hero .v2-btn-p{background:#fff;color:var(--v2-brand-deep);box-shadow:0 8px 20px rgba(0,0,0,.16)}
.v2-hero .v2-btn-g{color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.65)}
.v2-trust{display:flex;gap:24px;margin-top:22px;flex-wrap:wrap;position:relative}
.v2-trust div{font-size:12.5px;color:rgba(255,255,255,.86)}
.v2-trust b{display:block;font-size:19px;color:#fff}

/* сетки карточек */
.v2-g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.v2-g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.v2-card{background:#fff;border:1px solid var(--v2-line);border-radius:var(--v2-r);padding:20px;box-shadow:var(--v2-sh)}
.v2-card .v2-ico{width:40px;height:40px;border-radius:var(--v2-r-sm);background:#E3F4FD;color:var(--v2-brand);
  display:flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:10px}
.v2-card h3{margin-bottom:5px}
.v2-card p{font-size:13.5px;color:var(--v2-muted);margin:0}

/* этапы */
.v2-steps{counter-reset:v2s;display:grid;gap:12px}
.v2-step{display:flex;gap:14px;background:#fff;border:1px solid var(--v2-line);
  border-radius:var(--v2-r);padding:16px 18px}
.v2-step:before{counter-increment:v2s;content:counter(v2s);flex:0 0 30px;height:30px;border-radius:50%;
  background:var(--v2-brand);color:#fff;font-weight:800;font-size:14px;
  display:flex;align-items:center;justify-content:center}
.v2-step h3{margin-bottom:2px}
.v2-step p{font-size:13.5px;color:var(--v2-muted);margin:0}

/* сравнение */
.v2-cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.v2-cmp .v2-col{border-radius:var(--v2-r);padding:20px;border:1px solid var(--v2-line);background:#fff}
.v2-cmp .v2-col.v2-win{border-color:var(--v2-brand);box-shadow:0 0 0 3px rgba(0,155,232,.10)}
.v2-cmp h3{margin-bottom:10px}
.v2-cmp ul{margin:0;padding:0;list-style:none;font-size:13.5px}
.v2-cmp li{padding:6px 0 6px 26px;position:relative;border-bottom:1px dashed var(--v2-line)}
.v2-cmp li:last-child{border-bottom:0}
.v2-cmp li:before{position:absolute;left:0;top:6px;font-weight:800}
.v2-cmp .v2-win li:before{content:"✓";color:var(--v2-ok)}
.v2-cmp .v2-lose li:before{content:"—";color:var(--v2-muted)}

/* границы услуги */
.v2-scope{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.v2-scope .v2-z{border-radius:var(--v2-r);padding:20px;border:1px solid var(--v2-line);background:#fff}
.v2-scope .v2-z.v2-yes{background:linear-gradient(#F2FBF7,#fff);border-color:#BFE7D6}
.v2-scope .v2-z.v2-no{background:linear-gradient(#FFF6F5,#fff);border-color:#F3CFCA}
.v2-scope ul{margin:0;padding-left:20px;font-size:13.5px}
.v2-scope li{margin:4px 0}
.v2-scope .v2-z.v2-yes h3{color:#12805C}
.v2-scope .v2-z.v2-no h3{color:#B93A2C}

/* FAQ */
.v2-faq details{background:#fff;border:1px solid var(--v2-line);border-radius:var(--v2-r);
  padding:15px 18px;margin-bottom:10px}
.v2-faq summary{cursor:pointer;font-weight:700;color:var(--v2-ink);font-size:15px;list-style:none}
.v2-faq summary::-webkit-details-marker{display:none}
.v2-faq summary:before{content:"+";color:var(--v2-brand);font-weight:800;margin-right:9px}
.v2-faq details[open] summary:before{content:"–"}
.v2-faq p{font-size:14px;color:var(--v2-muted);margin:10px 0 0}

/* доказательства */
.v2-proof{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;text-align:center}
.v2-proof .v2-n{font-size:32px;font-weight:800;color:var(--v2-brand);line-height:1.1}
.v2-proof .v2-l{font-size:12.5px;color:var(--v2-muted)}

/* таблица характеристик */
.v2-spec{background:#fff;border:1px solid var(--v2-line);border-radius:var(--v2-r);overflow:auto}
.v2-spec table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:420px}
.v2-spec th,.v2-spec td{padding:10px 14px;border-bottom:1px solid var(--v2-line);text-align:left}
.v2-spec th{background:var(--v2-soft);color:var(--v2-ink);font-weight:700;font-size:12.5px}
.v2-spec tr:last-child td{border-bottom:0}

/* текстовый блок */
.v2-prose{background:#fff;border:1px solid var(--v2-line);border-radius:var(--v2-r);padding:24px}
.v2-prose p{max-width:var(--v2-measure);font-size:15px}
.v2-prose h2,.v2-prose h3{margin-bottom:10px}

/* cta-форма — обёртка вокруг существующего компонента формы, без своих полей */
.v2-cta-head{max-width:62ch;margin:0 auto var(--v2-s5);text-align:center}

@media(max-width:480px){
  .v2-hero{padding:28px}
}

/* ============================================================
   Калькулятор стоимости (v2) — редизайн существующего компонента.
   Логика/JS/id/name полей не менялись, только визуальный слой.
   ============================================================ */
.v2-calc-wrap{background:#fff;border:1px solid var(--v2-line);border-radius:var(--v2-r-lg);box-shadow:var(--v2-sh);overflow:hidden}
.v2-calc-grid{display:grid;grid-template-columns:1.15fr 1fr}
@media(max-width:992px){.v2-calc-grid{grid-template-columns:1fr}}
.v2-calc-left{padding:32px}
.v2-calc-right{padding:32px;background:var(--v2-soft);border-left:1px solid var(--v2-line)}
@media(max-width:992px){.v2-calc-right{border-left:0;border-top:1px solid var(--v2-line)}}
.v2-calc-head h2{font-size:22px;margin-bottom:4px}
.v2-calc-head p{font-size:13.5px;color:var(--v2-muted);margin:0 0 18px}
.v2-calc-item{margin-bottom:22px}
.v2-calc-caption{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--v2-body);margin-bottom:10px;gap:10px}
.v2-calc-caption small{color:var(--v2-muted);font-weight:400}
.v2-calc-value{font-weight:800;color:var(--v2-brand);font-variant-numeric:tabular-nums;min-width:24px;text-align:right}
.v2-calc-range-input{width:100%;accent-color:var(--v2-brand)}
.v2-calc-icons{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;min-height:16px}
.v2-calc-chip-pc{width:12px;height:9px;border-bottom:3px solid var(--v2-brand-light);border-radius:2px;display:inline-block}
.v2-calc-chip-server{width:9px;height:16px;border:1.5px solid var(--v2-brand-light);border-radius:2px;box-sizing:border-box;display:inline-block}
.v2-calc-result{margin-top:28px}
/* Внутри .th-fp-calc-result у темы (main.min.css) есть агрессивное правило
   ".th-fp-calc-result div{font-size:40px;letter-spacing:-.05em;color:#000}" —
   класс th-fp-calc-result оставлен намеренно (по нему цепляется существующий
   JS), поэтому здесь явные !important, чтобы вернуть собственный вид v2. */
.v2-calc-range,
.v2-calc-quote{font-size:inherit!important;letter-spacing:normal!important;color:#fff!important;font-weight:400!important}
.v2-calc-range{background:linear-gradient(135deg,var(--v2-brand-deep),var(--v2-brand));border-radius:var(--v2-r);padding:26px 28px}
.v2-calc-range-label{font-size:11px!important;font-weight:800!important;letter-spacing:.12em!important;text-transform:uppercase;opacity:.85;margin-bottom:10px;color:#fff!important}
.v2-calc-range-value{font-size:32px!important;font-weight:800!important;line-height:1.1!important;letter-spacing:normal!important;font-variant-numeric:tabular-nums;color:#fff!important}
.v2-calc-range-caption{margin:14px 0 0;font-size:13.5px!important;line-height:1.55!important;letter-spacing:normal!important;font-weight:400!important;opacity:.9;color:#fff!important}
.v2-calc-quote{border-radius:var(--v2-r);padding:26px 28px;text-align:center;font-size:14.5px!important;line-height:1.5!important;font-weight:500!important;background:linear-gradient(135deg,var(--v2-brand-deep),var(--v2-brand))}

/* ============================================================
   Сравнение по ценам (v2-compare, режим с цифрами) —
   реальный виджет «штатный сисадмин vs Айтех24» со стр. 591,
   перенесён на токены v2 и оформлен как ACF-поля.
   ============================================================ */
.v2-cmp-price{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.v2-cmp-price .v2-col{border-radius:var(--v2-r-lg);padding:0;overflow:hidden;border:1px solid var(--v2-line);background:#fff}
.v2-cmp-price .v2-col.v2-win{border-color:var(--v2-brand)}
.v2-cmp-price-head{padding:22px 24px;border-bottom:1px solid var(--v2-line)}
.v2-cmp-price .v2-win .v2-cmp-price-head{background:linear-gradient(135deg,var(--v2-brand-deep),var(--v2-brand));border-color:transparent;color:#fff}
.v2-cmp-price-cost{font-size:28px;font-weight:800;line-height:1.1}
.v2-cmp-price-caption{font-size:13px;margin-top:4px;opacity:.85}
.v2-cmp-price ul{list-style:none;margin:0;padding:18px 24px}
.v2-cmp-price li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--v2-line);font-size:13.5px}
.v2-cmp-price li:last-child{border-bottom:0}
.v2-cmp-price li b{font-weight:700;color:var(--v2-ink);white-space:nowrap}
.v2-calc-range-value span{font-size:inherit!important;color:inherit!important;font-weight:inherit!important;line-height:inherit!important}

/* ============================================================
   Чёрная строка контактов над шапкой (дизайн-система, раздел 03).
   Шапка темы — position:absolute;top:0, поэтому строка ставится
   в поток, а шапка опускается на её высоту. При скролле шапка
   становится .sticky (position:fixed) — это поведение не трогаем.
   ============================================================ */
.v2-topbar{background:#101826;color:#C6D2E0;font-size:12.5px;line-height:1.4}
.v2-topbar-inner{max-width:1400px;margin:0 auto;padding:9px 15px;
  display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.v2-topbar a{color:#fff;text-decoration:none;font-weight:600}
.v2-topbar a:hover{color:var(--v2-brand-light)}
.v2-topbar-sep{margin-left:auto}

/* top:auto ставит абсолютную шапку в её «статическую» позицию —
   то есть ровно под строкой контактов, на любой ширине экрана.
   Высоту строки в CSS дублировать не нужно. */
.v2-topbar + #header:not(.sticky){top:auto}

/* контент начинается ниже абсолютной шапки — иначе хлебные крошки
   уезжают под неё (до этой правки было именно так) */
.v2-page{padding-top:88px}
@media(max-width:992px){.v2-page{padding-top:80px}}
@media(max-width:768px){
  .v2-topbar-inner{gap:4px 16px;padding:8px 15px}
  .v2-topbar-sep{margin-left:0;flex-basis:100%;height:0}
  .v2-page{padding-top:72px}
}

/* ============================================================
   Тёмный подвал (дизайн-система, раздел 03: #101826).
   Файл подключается только на шаблоне «Услуга v2», поэтому
   правила действуют лишь на новых страницах — остальные
   страницы сайта сохраняют прежний светлый подвал.
   ============================================================ */
.v2-tpl .footer-section{background-color:#101826;color:#9FB0C4}
.v2-tpl .footer-section .footer-widget-title{color:#fff;font-size:16px}
.v2-tpl .footer-section li,
.v2-tpl .footer-section span,
.v2-tpl .footer-section p{color:#9FB0C4}
.v2-tpl .footer-section a{color:#9FB0C4;transition:color .15s ease}
.v2-tpl .footer-section a:hover{color:var(--v2-brand-light)}
/* логотип и иконки — монохромно-светлыми, чтобы читались на тёмном */
.v2-tpl .footer-section .footer-logo img{filter:brightness(0) invert(1);opacity:.92}
.v2-tpl .footer-section .info-icon .th-ico{filter:brightness(0) invert(1);opacity:.55}
.v2-tpl .footer-section .footer-copyright-area{border-top-color:#223044}
.v2-tpl .footer-section .copyright-text p,
.v2-tpl .footer-section .copyright-text a{color:#7C8CA0;font-size:12px}
/* у темы селекторы вида ".widget-link .link li a{color:#666}" — перебиваем адресно */
.v2-tpl .footer-section .widget-link .link li a{color:#9FB0C4}
.v2-tpl .footer-section .widget-link .link li a:hover{color:var(--v2-brand-light);padding-left:10px}
.v2-tpl .footer-section .widget-info li,
.v2-tpl .footer-section .widget-info .info-text span,
.v2-tpl .footer-section .widget-info .info-text a{color:#9FB0C4}
.v2-tpl .footer-section .copyright-text p{color:#7C8CA0;font-size:12.5px}
.v2-tpl .footer-section .copyright-text p a{color:#9FB0C4}
/* «круглосуточно» — смысловой акцент в чёрной строке (не CTA, поэтому
   голубой из палитры, а не оранжевый: оранжевый закреплён за одной кнопкой) */
.v2-topbar-always{color:#fff;font-weight:600}
.v2-topbar-always::before{content:"";display:inline-block;width:6px;height:6px;
  border-radius:50%;background:var(--v2-brand-light);margin-right:7px;vertical-align:middle}
/* На узких экранах чёрная строка не должна съедать первый экран:
   почта прячется (телефон рядом в шапке, почта есть в подвале),
   остаются город и главный смысл — круглосуточное обслуживание. */
@media(max-width:480px){
  .v2-topbar-inner{gap:2px 12px;font-size:12px}
  .v2-topbar-inner a[href^="mailto:"]{display:none}
}

/* Якорь не должен уезжать под залипающую шапку при переходе по #ссылке */
.v2-anchor{scroll-margin-top:110px}
@media(max-width:768px){.v2-anchor{scroll-margin-top:90px}}

/* У темы подвал начинается с padding-top:190px — между последней секцией
   и подвалом получалась пустая белая полоса почти в экран. */
.v2-tpl .footer-section .footer-widget-wrap{padding-top:64px;padding-bottom:32px}

/* Секция «Что входит»: число колонок задаётся полем в админке,
   а не подбирается автоматически — иначе 6 плиток вытягиваются
   в один ряд и текст в карточках становится нечитаемым.
   По дизайн-системе допустимы только две или три колонки. */
.v2-grid-2,.v2-grid-3{display:grid;gap:14px}
.v2-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.v2-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:992px){.v2-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.v2-grid-2,.v2-grid-3{grid-template-columns:1fr}}

/* ============================================================
   Правки по итогам дизайн-ревью 03.08.2026
   ============================================================ */

/* Первый экран: на светлом конце градиента белый текст давал 1.7-3.1:1.
   Затемняем правый край до #0077B8 — фирменный характер сохраняется,
   белый текст выходит на 4.85:1. */
.v2-hero{background:linear-gradient(118deg,#0142A8,#035CDD 42%,#0077B8)}
.v2-hero p{color:#fff}
.v2-trust div{color:rgba(255,255,255,.94);font-size:13px}

/* Основной серый текста всех девяти страниц не проходил AA (4.39:1). */
:root{--v2-muted:#5B6878}
@media(max-width:600px){.v2-card p,.v2-step p{font-size:15px}}

/* FAQ: паддинг стоял на details, поэтому зона клика была ~25px
   вместо минимальных 44px, а hover и фокус отсутствовали. */
.v2-faq details{padding:0}
.v2-faq summary{padding:15px 18px;min-height:52px;display:flex;align-items:center;gap:10px;border-radius:var(--v2-r);box-sizing:border-box}
.v2-faq summary::before{margin-right:0;flex:0 0 1em;text-align:center;font-size:20px;line-height:1}
.v2-faq summary:hover{background:var(--v2-soft)}
.v2-faq summary:focus-visible{outline:2px solid var(--v2-brand);outline-offset:-2px}
.v2-faq p{padding:0 18px 16px;margin:0}

/* Финальный экран приходит из старого шаблона: свой H2 «Получить
   консультацию» шёл сразу за нашим «Оставьте заявку», плюс синий
   блок с фотофоном и прямыми углами посреди белых карточек. */
.v2-page .th-section-fp-calc{background-image:none;background:linear-gradient(118deg,#0142A8,#035CDD 42%,#0077B8);border-radius:var(--v2-r-lg);overflow:hidden}
.v2-page .th-section-fp-calc .th-section-header{display:none}
.v2-page .th-section-fp-calc .th-fp-calc{border-radius:0!important}

/* Отступ под шапкой был на грани (8px), а margin первой секции
   схлопывался наружу и отбрасывал оффер вниз. */
.v2-page{padding-top:96px}
@media(max-width:991.98px){.v2-page{padding-top:84px}}
@media(max-width:768px){.v2-page{padding-top:76px}}
.v2-wrap > .v2-anchor:first-child > .v2-section{margin-top:24px}

/* Левый край шапки не совпадал с левым краем контента (~40px). */
.v2-tpl .th-site-header .container,.v2-topbar-inner{max-width:1320px}
.v2-topbar{font-size:13px}

/* Смена плотности: три секции на мягкой подложке, чтобы девять
   одинаковых белых блоков подряд не читались монотонной лентой. */
#v2-steps > .v2-section,#v2-scope > .v2-section,#v2-faq > .v2-section{background:var(--v2-soft);border-radius:var(--v2-r-lg);padding:48px 40px;margin:64px 0}
@media(max-width:768px){#v2-steps > .v2-section,#v2-scope > .v2-section,#v2-faq > .v2-section{padding:32px 20px;margin:44px 0}}

/* Проза: рамка обводила пустоту — текст занимал ~52% ширины карточки. */
.v2-prose{background:none;border:0;box-shadow:none;padding:0;max-width:66ch}
.v2-prose p,.v2-prose ul,.v2-prose ol{max-width:66ch;font-size:16px}
.v2-prose ul,.v2-prose ol{padding-left:22px}
.v2-prose li{margin:6px 0}

/* Границы услуги: правая колонка была красной, хотя это не ошибка,
   а честная граница. Плюс одинаковые маркеры в обеих колонках. */
.v2-scope .v2-z.v2-no{background:var(--v2-soft);border-color:var(--v2-line)}
.v2-scope .v2-z.v2-no h3{color:var(--v2-ink)}
.v2-scope ul{list-style:none;padding-left:0}
.v2-scope li{position:relative;padding-left:26px;margin:8px 0}
.v2-scope li::before{position:absolute;left:0;top:0;font-weight:800}
.v2-scope .v2-yes li::before{content:"✓";color:var(--v2-ok)}
.v2-scope .v2-no li::before{content:"✕";color:var(--v2-muted)}

/* Ценовое сравнение: главная цифра была мельче заголовка секции. */
.v2-cmp-price-cost{font-size:40px}
.v2-cmp-price .v2-win .v2-cmp-price-caption{opacity:1;color:rgba(255,255,255,.94)}
.v2-cmp-price li{min-height:44px}

/* Кнопки первого экрана: обводка второй кнопки на светлом фоне
   опускалась ниже 3:1, приоритет между кнопками не читался. */
.v2-hero .v2-btn-g{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 2px rgba(255,255,255,.92)}

/* Ползунки калькулятора были ниже порога касания. */
.v2-calc-range-input{height:44px}
/* ============================================================
   Доступность: правки по итогам аудита WCAG 2.1 AA 03.08.2026.
   Все правила чинят унаследованное поведение темы и действуют
   только на страницах, куда подключён этот файл.
   ============================================================ */

/* 2.1.1 — тема прячет чекбокс согласия через display:none. Он выпадал
   из порядка обхода и из дерева доступности: с клавиатуры галочку
   поставить нельзя, а браузер молча блокировал отправку формы, потому
   что не может сфокусировать обязательное нерендерящееся поле.
   Прячем визуально, но оставляем в потоке и в фокусе. */
.th-checkbox__input{display:block;position:absolute;top:0;left:0;width:20px;height:20px;margin:0;opacity:0;cursor:pointer;z-index:1}
.th-checkbox__input:focus-visible ~ .th-checkbox__checkmark{outline:3px solid #0142A8;outline-offset:3px}

/* 2.4.7 — тема обнуляет outline у всех ссылок, кнопок и полей.
   Возвращаем видимый фокус там, где он был потерян. */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #0142A8;outline-offset:2px;border-radius:4px}
.footer-section a:focus-visible,.v2-topbar a:focus-visible,.th-modal .fancybox-close-small:focus-visible{outline:3px solid #54D6EB;outline-offset:2px}

/* 2.1.1 — подменю «Услуги» раскрывалось только по наведению мышью,
   девять ссылок были недостижимы с клавиатуры. */
.header-menu .main-menu li:focus-within > .sub-menu{opacity:1;visibility:visible;top:100%}

/* 1.4.3 — кнопка отправки форм: белый на #009BE8 давал 3.06:1. */
.th-btn_fill-blue{background-color:#0071AE}
.th-btn_fill-blue:hover,.th-btn_fill-blue:focus{background-color:#0062A0}

/* 1.4.3 — текущий пункт хлебных крошек #919191 давал 3.15:1. */
.breadcrumbs-list li span{color:#5B6878}

/* 1.4.11 — рамки полей и карточек были почти не видны. */
.th-input,.th-textarea{border:1px solid #8C97A5}

/* 2.5.5 — паддинг пунктов меню стоял на li, зона клика по ссылке
   была около 24px по высоте. */
.header-menu .main-menu li{padding-top:0;padding-bottom:0}
.header-menu .main-menu li > a{display:flex;align-items:center;min-height:44px}
.footer-section .widget-link .link li a{display:inline-block;padding:8px 0}

/* Кнопка «наверх» продублирована в подвале темы — блоки лежат друг
   на друге и дают двойное кольцо тени. */
.progress-wrap ~ .progress-wrap{display:none!important}

/* 2.3.3 — уважаем системную настройку «меньше движения». */
@media (prefers-reduced-motion: reduce){
	*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* Служебный класс для меток, скрытых визуально, но доступных AT. */
.th-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --- Догоняющие правки контраста в шаблоне v2 (аудит 03.08.2026) --- */

/* Регрессия предыдущей правки: подсветка второй кнопки героя белым
   осветляла фон под белым же текстом и роняла контраст до 3.83:1.
   Затемняющая заливка даёт 6.16:1 и тот же эффект «стеклянной» кнопки. */
.v2-hero .v2-btn-g{background:rgba(0,0,0,.14);box-shadow:inset 0 0 0 2px rgba(255,255,255,.92)}

/* Декоративный круг рисовался поверх заголовка (как было в .ita-hero). */
.v2-hero{isolation:isolate}
.v2-hero::after{z-index:0}
.v2-hero > *{position:relative;z-index:1}

/* Строка доверия: 4.47:1 при пороге 4.5 — добираем до белого. */
.v2-trust div{color:#fff}

/* Панели калькулятора и «победной» колонки сравнения: белый текст на
   светлом конце градиента давал 2.6-3.1:1. */
.v2-calc-range,.v2-calc-quote,.v2-cmp-price .v2-win .v2-cmp-price-head{background:linear-gradient(135deg,#0142A8,#035CDD)}

/* Смысловые галочки «✓» были 3.00:1 на белом и 2.81:1 на мягкой подложке. */
.v2-cmp .v2-win li:before,.v2-scope .v2-yes li::before{color:#157A55}

/* Глифы иконок карточек: 2.72:1 на светло-голубой плашке. */
.v2-card .v2-ico{color:#035CDD}

.v2-card,.v2-step,.v2-cmp .v2-col,.v2-scope .v2-z{border-color:#C2CDDB}

/* Заголовок внутри виджета калькулятора визуально мельче секционных,
   но семантически был того же уровня. */
.v2-calc-head h3{font-size:18px;margin:0 0 6px}

/* Вторая строка в карточке результата: разброс вокруг средней суммы.
   Появилась 20.08.2026 вместе с заменой «от N ₽» на среднюю величину. */
.v2-calc-range-spread{margin-top:10px;font-size:14px!important;line-height:1.5!important;font-weight:600!important;letter-spacing:normal!important;opacity:.95;color:#fff!important}
