/* INHOUSE — общая таблица стилей сайта. Обновлено 21.09.2026 */
:root{
  --ink:#14161f;
  --ink-soft:#3d4152;
  --paper:#f7f5f0;
  --paper-raised:#ffffff;
  --gold:#b8873f;
  --gold-soft:#ecdfc7;
  --line:#e3ddd0;
  --radius:14px;
  --wrap:1180px;
  --display:'Manrope',sans-serif;
  --body:'Inter',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:-0.01em;line-height:1.1;}
section{padding:88px 0;}
.eyebrow{
  font-family:var(--body);font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);margin-bottom:14px;display:block;
}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:15px 28px;border-radius:999px;font-weight:600;font-size:15px;
  border:1px solid transparent;cursor:pointer;transition:transform .15s ease, background .2s ease;
  font-family:var(--body);
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--ink);color:#fff;}
.btn-primary:hover{background:var(--gold);}
.btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink);}
.btn-ghost:hover{background:var(--ink);color:#fff;}
.btn-tg{background:#229ED9;color:#fff;}

/* HEADER */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,245,240,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:82px;}
.logo{font-family:var(--display);font-weight:800;font-size:22px;}
nav ul{list-style:none;display:flex;gap:26px;font-size:14px;font-weight:600;}
nav a:hover{color:var(--gold);}
.nav-cta{display:flex;align-items:center;gap:14px;}
.nav-phone{font-family:var(--display);font-weight:800;font-size:15px;white-space:nowrap;}
.nav-phone:hover{color:var(--gold);}
.burger{display:none;background:none;border:none;font-size:22px;cursor:pointer;}
@media(max-width:1150px){.nav-phone{display:none;}}
@media(max-width:980px){
  nav{display:none;}
  .nav-cta .btn-ghost{display:none;}
  .burger{display:block;}
}

/* ВЫПАДАЮЩЕЕ МЕНЮ УСЛУГ */
.has-sub{position:relative;}
.submenu{
  position:absolute;top:100%;left:-18px;min-width:290px;padding:10px 0;
  background:var(--paper-raised);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 18px 40px rgba(20,22,31,.10);
  display:none;flex-direction:column;gap:0;
}
.has-sub:hover .submenu,.has-sub:focus-within .submenu{display:flex;}
.submenu li{list-style:none;}
.submenu a{display:block;padding:11px 20px;font-size:14px;font-weight:500;}
.submenu a:hover{background:var(--paper);color:var(--gold);}

/* МОБИЛЬНОЕ МЕНЮ */
.mobile-menu{display:none;border-bottom:1px solid var(--line);background:var(--paper-raised);}
.mobile-menu.open{display:block;}
.mobile-menu .wrap{display:block;height:auto;padding:0 24px;}
.mobile-menu ul{list-style:none;padding:12px 0 20px;}
.mobile-menu li{border-bottom:1px solid var(--line);}
.mobile-menu li:last-child{border-bottom:none;}
.mobile-menu a{display:block;padding:14px 0;font-weight:600;font-size:15px;}
.mobile-menu .sub a{padding-left:16px;font-weight:500;font-size:14px;color:var(--ink-soft);}
.mobile-menu a:hover{color:var(--gold);}
@media(min-width:981px){.mobile-menu{display:none !important;}}

/* ХЛЕБНЫЕ КРОШКИ */
.crumbs{padding:18px 0 0;font-size:13px;color:var(--ink-soft);}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.crumbs a:hover{color:var(--gold);}
.crumbs li+li::before{content:'/';margin-right:8px;color:var(--line);}
.crumbs [aria-current]{color:var(--ink);}

/* ГЕРОЙ СТРАНИЦЫ УСЛУГИ */
.page-hero{padding:44px 0 0;}
.page-hero h1{font-size:44px;max-width:840px;margin-bottom:18px;}
.page-hero h1 em{font-style:normal;color:var(--gold);}
.page-hero .lead{font-size:18px;color:var(--ink-soft);max-width:680px;margin-bottom:30px;}
.page-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.page-trustline{font-size:13px;color:var(--ink-soft);}
@media(max-width:900px){.page-hero h1{font-size:31px;}}

/* ПОЛОСА ФАКТОВ */
.facts{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  margin:48px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.fact{padding:24px 26px;border-right:1px solid var(--line);}
.fact:last-child{border-right:none;}
.fact .num{font-family:var(--display);font-weight:800;font-size:24px;color:var(--gold);line-height:1.15;}
.fact .lbl{font-size:13px;color:var(--ink-soft);margin-top:6px;}
@media(max-width:900px){
  .facts{grid-template-columns:1fr 1fr;}
  .fact{border-bottom:1px solid var(--line);}
  .fact:nth-child(2n){border-right:none;}
  .fact:nth-last-child(-n+2){border-bottom:none;}
}

/* ЗАГОЛОВОК СЕКЦИИ */
.section-head{max-width:680px;margin-bottom:48px;}
.section-head h2{font-size:34px;margin-bottom:14px;}
.section-head p{color:var(--ink-soft);font-size:16px;}

/* БОЛИ */
.pains-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.pain-card{
  background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px 30px;position:relative;
}
.pain-card::before{
  content:'“';font-family:var(--display);font-weight:800;font-size:56px;color:var(--gold-soft);
  position:absolute;top:10px;right:22px;line-height:1;
}
.pain-card p{font-size:16px;color:var(--ink-soft);position:relative;z-index:1;max-width:92%;}
.pains-after{
  margin-top:34px;font-family:var(--display);font-weight:800;font-size:22px;line-height:1.35;max-width:760px;
}
.pains-after span{color:var(--gold);}
@media(max-width:900px){.pains-grid{grid-template-columns:1fr;}}

/* КАРТОЧКИ (что входит, услуги, отрасли) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.cards.two{grid-template-columns:repeat(2,1fr);}
.cards.four{grid-template-columns:repeat(4,1fr);gap:18px;}
.card{
  background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px;display:flex;flex-direction:column;gap:12px;
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.card:hover{box-shadow:0 16px 36px rgba(20,22,31,.09);transform:translateY(-3px);border-color:var(--gold-soft);}
.card .tag{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);}
.card h3{font-size:19px;}
.card p{font-size:14px;color:var(--ink-soft);flex-grow:1;}
.card .price{
  font-family:var(--display);font-weight:800;font-size:16px;
  border-top:1px solid var(--line);padding-top:14px;margin-top:4px;
}
.card .price span{display:block;font-family:var(--body);font-weight:400;font-size:12px;color:var(--ink-soft);}
.card .pick{font-size:13px;font-weight:700;color:var(--ink);}
.card .pick:hover{color:var(--gold);}
@media(max-width:900px){.cards,.cards.two,.cards.four{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.cards,.cards.two,.cards.four{grid-template-columns:1fr;}}

/* СПИСОК С ГАЛОЧКАМИ */
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;}
.checks li{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--ink-soft);}
.checks li::before{content:'✓';color:var(--gold);font-weight:800;font-family:var(--display);flex:0 0 auto;}
@media(max-width:760px){.checks{grid-template-columns:1fr;}}

/* ПРОЦЕСС */
.process-list{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:step;}
.process-item{position:relative;padding-top:52px;}
.process-item::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  font-family:var(--display);font-weight:800;font-size:34px;color:var(--gold-soft);
  position:absolute;top:0;left:0;
}
.process-item h3,.process-item h4{font-size:16px;margin-bottom:8px;}
.process-item p{font-size:14px;color:var(--ink-soft);}
.process-item .when{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold);border:1px solid var(--gold-soft);border-radius:999px;padding:3px 10px;margin-bottom:10px;
}
@media(max-width:900px){.process-list{grid-template-columns:1fr 1fr;row-gap:36px;}}

/* ЦЕНА */
.pay-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:28px;}
.pay-step{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:28px;}
.pay-step .tag{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);}
.pay-step .num{font-family:var(--display);font-weight:800;font-size:30px;margin:10px 0 8px;}
.pay-step p{font-size:14px;color:var(--ink-soft);}
.note-box{border:1px solid var(--gold-soft);background:var(--gold-soft);border-radius:var(--radius);padding:28px 30px;}
.note-box h3,.note-box h4{font-size:19px;margin-bottom:10px;}
.note-box p{font-size:15px;color:var(--ink-soft);max-width:820px;}
@media(max-width:900px){.pay-steps{grid-template-columns:1fr;}}

/* ТАБЛИЦА СРАВНЕНИЯ */
.compare{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper-raised);}
.compare-head,.compare-row{display:grid;grid-template-columns:1fr 46px 1fr;align-items:center;}
.compare-head{background:var(--ink);color:#fff;}
.compare-head div{padding:16px 26px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.compare-head .mid{color:#8c8fa0;text-align:center;padding:16px 0;}
.compare-head .us{color:var(--gold-soft);}
.compare-row{border-top:1px solid var(--line);}
.compare-row div{padding:20px 26px;font-size:15px;}
.compare-row .was{color:var(--ink-soft);}
.compare-row .mid{text-align:center;color:var(--gold);font-weight:700;padding:20px 0;}
.compare-row .now{font-weight:600;}
@media(max-width:760px){
  .compare-head{display:none;}
  .compare-row{grid-template-columns:1fr;}
  .compare-row .mid{text-align:left;padding:0 26px;}
  .compare-row .was{padding-bottom:6px;}
  .compare-row .now{padding-top:6px;}
}

/* FAQ */
.faq-item{border-bottom:1px solid var(--line);padding:22px 0;}
.faq-item summary{cursor:pointer;font-weight:700;font-size:16px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-size:22px;color:var(--gold);}
.faq-item[open] summary::after{content:'–';}
.faq-item p{margin-top:12px;color:var(--ink-soft);font-size:15px;max-width:760px;}
.faq-item p + p{margin-top:10px;}

/* КОНТАКТЫ И ФОРМА */
.contact{background:var(--ink);color:#fff;}
.contact .section-head p{color:#b9bbc7;}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;}
.contact-info .item{margin-bottom:26px;}
.contact-info .lbl{font-size:12px;color:#8c8fa0;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;}
.contact-info .val{font-size:18px;font-weight:700;}
.contact-info a.val:hover{color:var(--gold);}
form{background:#1e2130;border-radius:var(--radius);padding:32px;display:grid;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
label{font-size:13px;color:#c7c9d4;margin-bottom:6px;display:block;}
input,select,textarea{
  width:100%;background:#14161f;border:1px solid #35394a;border-radius:8px;color:#fff;
  padding:12px 14px;font-family:var(--body);font-size:14px;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);}
textarea{resize:vertical;min-height:90px;}
.consent-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:#8c8fa0;line-height:1.5;}
.consent-check input{width:16px;height:16px;flex:0 0 16px;margin-top:2px;padding:0;accent-color:var(--gold);}
.consent-check label{margin:0;font-size:12px;color:#8c8fa0;}
.consent-check a{text-decoration:underline;}
.consent-check a:hover{color:var(--gold);}
.hp{position:absolute;left:-9999px;}
#form-status{font-size:14px;margin-top:4px;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}.form-row{grid-template-columns:1fr;}}

/* ПЕРЕЛИНКОВКА */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.related a{
  background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;display:block;
}
.related a:hover{box-shadow:0 14px 30px rgba(20,22,31,.08);transform:translateY(-3px);border-color:var(--gold-soft);}
.related h3{font-size:17px;margin-bottom:6px;}
.related p{font-size:13px;color:var(--ink-soft);}
@media(max-width:900px){.related{grid-template-columns:1fr;}}

/* ПОДВАЛ */
footer{background:#0e0f16;color:#8c8fa0;padding:48px 0;font-size:14px;}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px;}
.footer-grid .logo{color:#fff;margin-bottom:10px;}
.footer-col h3,.footer-col h4{color:#fff;font-size:14px;margin-bottom:14px;font-family:var(--body);font-weight:600;letter-spacing:.06em;text-transform:uppercase;}
.footer-col ul{list-style:none;display:grid;gap:9px;}
.footer-col a:hover{color:#fff;}
.footer-legal{margin-top:32px;padding-top:20px;border-top:1px solid #23263a;font-size:12px;line-height:1.6;color:#5c5f70;}
.footer-legal a{text-decoration:underline;}
.footer-legal a:hover{color:#fff;}
.footer-req{margin-bottom:10px;color:#6f7285;}
.footer-grid.four{grid-template-columns:1.1fr 1fr 1fr 1fr;gap:28px;}
@media(max-width:980px){.footer-grid.four{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr;gap:26px;}.footer-grid.four{grid-template-columns:1fr;}}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:none;}

/* ——— Блог и статьи (добавлено 22.09.2026) ——— */
.post-meta{font-size:14px;color:var(--ink-soft);margin-top:14px;}
.card.post-card .post-meta{margin:10px 0 14px;font-size:13px;}
.article{max-width:820px;}
.article h2{font-size:30px;margin:44px 0 16px;}
.article h2:first-child{margin-top:0;}
.article h3{font-size:21px;margin:30px 0 12px;}
.article p{font-size:17px;color:var(--ink-soft);margin-bottom:16px;}
.article p a,.article li a{color:var(--gold);font-weight:600;border-bottom:1px solid var(--gold-soft);}
.article p a:hover,.article li a:hover{border-bottom-color:var(--gold);}
.article ul,.article ol{margin:0 0 20px 22px;}
.article li{font-size:17px;color:var(--ink-soft);margin-bottom:10px;}
.article strong{color:var(--ink);font-weight:600;}
.article .note-box{margin:0 0 28px;}
.article .note-box p{margin:0;font-size:15px;}
.callout{
  border-left:3px solid var(--gold);background:var(--paper-raised);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:22px 26px;margin:24px 0 28px;
  font-family:var(--display);font-weight:700;font-size:19px;line-height:1.4;
}
.callout.cta{font-family:var(--body);font-weight:400;margin-top:44px;padding:30px;}
.callout.cta h3{font-size:23px;margin-bottom:10px;}
.callout.cta p{font-size:16px;margin-bottom:0;}
.callout.cta p + p{margin-top:20px;display:flex;gap:12px;flex-wrap:wrap;}
.table-wrap{overflow-x:auto;margin:0 0 28px;}
.article table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px;}
.article th,.article td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top;}
.article th{background:var(--paper-raised);font-family:var(--display);font-weight:700;font-size:14px;}
.article td{color:var(--ink-soft);}
@media(max-width:620px){
  .article h2{font-size:25px;}
  .article p,.article li{font-size:16px;}
  .callout{font-size:17px;padding:18px 20px;}
}

/* ---------- Этап 7: UX и доступность (25.09.2026) ---------- */

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  .reveal{opacity:1 !important;transform:none !important;}
  .btn:hover{transform:none;}
}

@media(max-width:980px){
  .burger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;line-height:1;}
}

/* липкая панель связи на телефоне — блок добавляет site.js */
.mobile-cta{display:none;}
@media(max-width:760px){
  .mobile-cta{
    position:fixed;left:0;right:0;bottom:0;z-index:80;
    display:flex;gap:10px;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
    background:var(--paper-raised);border-top:1px solid var(--line);
    box-shadow:0 -8px 24px rgba(20,22,31,.10);
    transform:translateY(130%);transition:transform .25s ease;
  }
  .mobile-cta.show{transform:none;}
  .mobile-cta .btn{flex:1;justify-content:center;padding:13px 12px;font-size:15px;}
  body:has(.mobile-menu.open) .mobile-cta{transform:translateY(130%);}
  footer{padding-bottom:96px;}
}

/* защита от горизонтальной прокрутки в гридах */
@media(max-width:760px){
  .trust-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .trust-card{padding:16px;}
  .trust-card img{max-width:100%;}
  .about-grid{grid-template-columns:minmax(0,1fr);}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
}

/* читаемость и удобные нажатия на телефоне */
@media(max-width:760px){
  label,.consent,.consent-check,.consent-check label,.contact-info .lbl,
  .footer-legal,.footer-req,.ind-card p,.page-trustline,.lbl{font-size:14px;}
  .mobile-menu li.sub a,.mobile-menu .sub-m a{padding:11px 0;font-size:15px;}
  .service-card a.pick{display:inline-flex;align-items:center;min-height:44px;font-size:14px;}
}

/* ---------- Выравнивание неполного последнего ряда в сетках (05.10.2026) ----------
   Карточки и списки разложены в 2 или 3 колонки. Если элементов не хватает на полный
   ряд, последний ряд выглядел обрезанным: одна карточка у левого края и пустое место
   справа. Правила ниже дотягивают последний ряд, не меняя существующие раскладки.
   Добавлены только для десктопных ширин: на мобильных сетки одноколоночные. */

/* список с галочками: два столбца, нечётный последний пункт растягивается на всю ширину */
.checks li:last-child:nth-child(odd){grid-column:1/-1;}

/* карточки: две колонки (планшет) — последняя карточка занимает ряд целиком */
@media(min-width:621px) and (max-width:900px){
  .cards>.card:last-child:nth-child(odd){grid-column:1/-1;}
}

/* карточки: три колонки (десктоп) */
@media(min-width:901px){
  /* две колонки: последняя карточка занимает ряд целиком */
  .cards.two>.card:last-child:nth-child(odd){grid-column:1/-1;}
  /* три колонки: блок ровно из двух карточек раскладывается в две строки */
  .cards:not(.two):not(.four)>.card:first-child:nth-last-child(2),
  .cards:not(.two):not(.four)>.card:last-child:nth-child(3n+1),
  .related a:first-child:nth-last-child(2),
  .related a:last-child:nth-child(3n+1){grid-column:1/-1;}
  /* три колонки: в последнем ряду две карточки — вторая занимает оставшиеся столбцы */
  .cards:not(.two):not(.four)>.card:last-child:nth-child(3n+2),
  .related a:last-child:nth-child(3n+2){grid-column:span 2;}
}

/* ---------- Устойчивая раскладка шапки (05.10.2026) ----------
   Причина правки: у пунктов навигации и у кнопок не было запрета переноса строки,
   а кнопка — обычный flex-элемент, который сжимается. Когда ширина шапки упиралась
   в предел контейнера (1180px), текст внутри кнопки и пунктов переносился на вторую
   строку и «пилюля» становилась кривой. Теперь:
     * тексты не переносятся (white-space:nowrap) и логотип с блоком кнопок не сжимаются;
     * навигация может сжиматься и уступать место;
     * новый пункт про вакансии скрывается там, где навигация ещё показана, но места
       мало, — в этой полосе ссылка остаётся в мобильном меню и в подвале. */
header .wrap{gap:20px;}
header .logo{flex:0 0 auto;white-space:nowrap;}
nav{flex:0 1 auto;min-width:0;}
nav ul{flex-wrap:nowrap;white-space:nowrap;gap:22px;}
nav a{white-space:nowrap;}
.nav-cta{flex:0 0 auto;}
.nav-cta .btn{white-space:nowrap;flex:0 0 auto;}

@media(min-width:981px) and (max-width:1200px){
  nav li.nav-vac{display:none;}
}
