:root{
  --accent:#42ab44; --accent-strong:#2f8331; --accent-hover:#389a3a; --gold:#bf9b5f;
  --green-050:#f1f9f1; --green-100:#e4f3e4; --green-300:#8fd291; --green-800:#245826;
  --ink:#191919; --body:#2f3337; --muted:#676767; --on-dark:#ffffff; --placeholder:#767676;
  --page:#ffffff; --subtle:#f6f7f8; --card:#ffffff; --card-muted:#f4f4f4; --inset:#ecedef; --dark:#222222;
  --border-soft:#e6e8eb; --border-default:#c8ccd0; --border-strong:#191919; --danger:#ac2d3c; --gold-100:#f5ecd9;
  --gold-800:#7a5c24; --ph-bg:#ffffff;   /* подпись на золотой плашке и фон под фото (для PNG с прозрачностью) */
  --r-sm:8px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-pill:999px; --r-ctl:8px; --r-ctl-sm:6px;
  --maxw:1216px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Onest",-apple-system,Segoe UI,Roboto,sans-serif;color:var(--body);background:var(--page);line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 32px}
/* type scale (Figma text styles) */
.t-hero{font-family:"Onest";font-weight:600;font-size:44px;line-height:52px;letter-spacing:-.01em;color:var(--ink)}
.t-h2{font-family:"Onest";font-weight:600;font-size:32px;line-height:40px;color:var(--ink)}
.t-h3{font-family:"Onest";font-weight:600;font-size:30px;line-height:38px;color:var(--ink)}
.t-h5{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:var(--ink)}
.t-title{font-family:"Onest";font-weight:500;font-size:18px;line-height:26px}
.t-bodylg{font-size:16px;line-height:24px;color:var(--body)}
.t-body{font-size:14px;line-height:20px}
.t-caption{font-weight:500;font-size:13px;line-height:18px}
.muted{color:var(--muted)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:"Onest";font-weight:600;font-size:16px;line-height:24px;height:56px;padding:0 24px;border-radius:var(--r-ctl);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:.15s}
.btn-primary{background:var(--accent-strong);color:#fff}
.btn-primary:hover{background:#276e29}
.btn-secondary{background:var(--page);color:var(--body);border-color:var(--accent)}
.btn-secondary:hover{background:var(--green-050)}
.btn-sm{height:40px;padding:0 16px;font-size:14px;line-height:20px;border-radius:var(--r-ctl-sm)}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--card);border-bottom:1px solid var(--border-soft)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;padding-bottom:16px}
/* логотип и выбор города — левая группа, меню за счёт этого встаёт ближе к центру */
.header-left{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.logo{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.logo .mark{width:39px;height:38px;border-radius:var(--r-sm);background:var(--accent);color:#fff;display:grid;place-items:center;font-family:"Ubuntu";font-weight:700;font-size:15px}
.logo .name{font-family:"Ubuntu";font-weight:700;font-size:20px;color:var(--ink)}
.nav{display:flex;gap:2px;flex-wrap:nowrap}
.nav .menu-cta{display:none}
.nav a{font-family:"Ubuntu";font-weight:400;font-size:16px;color:var(--body);padding:8px 10px;border-radius:var(--r-ctl);white-space:nowrap}
.nav a:hover{color:var(--accent-strong)}
.header-right{display:flex;align-items:center;gap:16px}
.header-right .phone{font-family:"Ubuntu";font-weight:500;font-size:14px;color:var(--body);white-space:nowrap;transition:color .15s ease}
.header-right .phone:hover{color:var(--accent-strong)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.burger span{width:22px;height:2px;background:var(--ink);border-radius:2px}
/* page rhythm */
/* Именно main.page: WordPress вешает класс «page» ещё и на <body>,
   и неспецифичное правило раздвигало шапку с подвалом на 80px. */
main.page{display:flex;flex-direction:column;gap:80px;padding-bottom:0}
section{scroll-margin-top:80px}
/* hero */
.hero{padding-top:64px}
.hero .row{display:flex;gap:24px;align-items:center}
.hero .col-text{flex:0 0 642px;max-width:642px;display:flex;flex-direction:column;gap:48px}
.hero .headline{display:flex;flex-direction:column;gap:32px}
.hero .headline .inner{display:flex;flex-direction:column;gap:24px}
.hero .badge{font-family:"Onest";font-weight:500;font-size:18px;line-height:26px;color:var(--accent-strong)}
.hero .lead{max-width:519px;color:var(--body);font-size:16px;line-height:24px}
.hero .cta{display:flex;gap:12px}
.hero .col-img{flex:1 1 0;min-width:0}
.hero .col-img .frame{aspect-ratio:400/300;border-radius:var(--r-lg);overflow:hidden;background:var(--ph-bg)}
.hero .col-img img{width:100%;height:100%;object-fit:cover}
/* bordered cards row (из-за чего споры) */
.cards-row{display:flex;gap:16px;align-items:stretch}
/* информационный блок: нейтральная рамка вместо акцентной — зелёный оставляем действиям */
.card-outline{flex:1 1 0;min-width:0;border:1px solid var(--border-default);border-radius:var(--r-md);padding:24px;display:flex;flex-direction:column;gap:24px}
.card-outline h3{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:var(--ink)}
.card-outline p{font-size:16px;line-height:24px;color:var(--body)}
.sec-title-wrap{display:flex;flex-direction:column;gap:24px}
.sec-head{display:flex;flex-direction:column;gap:16px}
.sec-head .sub{font-family:"Onest";font-weight:500;font-size:18px;line-height:26px;color:var(--muted);max-width:596px}
/* grey panel (для тех кто спорит) */
.panel-grey{background:var(--subtle);border-radius:var(--r-lg);padding:64px 32px;display:flex;flex-direction:column;gap:48px}
.panel-grey .head{display:flex;flex-direction:column;gap:16px}
.panel-grey .head .sub{font-family:"Onest";font-weight:500;font-size:18px;line-height:26px;color:var(--muted);max-width:596px}
.row2{display:flex;gap:24px;align-items:stretch}
.row2 .img-col{flex:1 1 0;min-width:0;border-radius:var(--r-lg);overflow:hidden;background:var(--ph-bg)}
.row2 .img-col img{width:100%;height:100%;object-fit:cover;min-height:440px}
.row2 .cards-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:16px}
/* стадии спора: три карточки, фото сверху (Figma 224:2535) */
.stage-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.stage-card{display:flex;flex-direction:column;gap:16px;min-width:0}
.stage-card .photo{aspect-ratio:400/300;border-radius:var(--r-lg);overflow:hidden;background:var(--ph-bg)}
.stage-card .photo img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.22,.61,.36,1)}
.stage-card:hover .photo img{transform:scale(1.04)}
/* колонка тянется, кнопка прижата к низу — у всех трёх она на одной линии */
.stage-card .col{flex:1 1 auto;display:flex;flex-direction:column;gap:16px;padding:0 16px}
.stage-card h3{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:var(--ink)}
.stage-card .col p{font-size:16px;line-height:24px;color:var(--body)}
.stage-card .btn{align-self:flex-start;margin-top:auto;padding-top:0}
.stage-card .col > .btn{margin-top:24px}
.stage-card .col p + .btn{margin-top:auto}
@media (prefers-reduced-motion:reduce){ .stage-card:hover .photo img{transform:none} }

/* icon cards (что сделаем) */
.cards-3{display:flex;gap:20px;align-items:stretch}
.card-icon{background:var(--card);border-radius:var(--r-md);padding:24px;display:flex;flex-direction:column;gap:16px;flex:1 1 0;min-width:0}
.card-icon .ico{width:56px;height:56px;border-radius:12px;overflow:hidden;flex:0 0 auto;background:var(--ph-bg)}
.card-icon .ico img{width:56px;height:56px;object-fit:contain}
.card-icon h3{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:var(--ink)}
.card-icon p{font-size:16px;line-height:24px;color:var(--body)}
/* calculator */
.calc-sec{display:flex;flex-direction:column;gap:24px}
.calc-sec .sub{font-family:"Onest";font-weight:500;font-size:18px;line-height:26px;color:var(--muted);max-width:640px}
.calc-wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:32px;align-items:start}
/* поля — одна общая карточка */
.calc-fields{background:var(--subtle);border-radius:var(--r-lg);padding:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px;align-content:start}
.calc-field{min-width:0}
.calc-field label{display:block;font-family:"Onest";font-weight:400;font-size:14px;line-height:20px;color:var(--body);margin-bottom:8px}
.ipwrap{position:relative}
/* рамки нет: белое поле и так читается на серой панели. Прозрачная рамка оставлена,
   чтобы при фокусе ничего не сдвигалось */
.ipwrap input[type=text]{width:100%;min-width:0;height:56px;padding:0 44px 0 16px;border:1px solid transparent;border-radius:var(--r-ctl);background:var(--card);font-family:"Onest";font-weight:400;font-size:16px;color:var(--ink)}
.ipwrap input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(66,171,68,.14)}
.ipwrap .unit{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-family:"Onest";font-weight:400;font-size:14px;line-height:20px;color:var(--muted)}
/* ползунок */
.rrow{display:flex;align-items:center;gap:12px;margin-top:10px}
.rmark{font-family:"Onest";font-weight:400;font-size:12px;line-height:16px;color:var(--muted);white-space:nowrap}
.calc-field input[type=range]{-webkit-appearance:none;appearance:none;flex:1;min-width:0;height:22px;background:transparent;cursor:pointer}
.calc-field input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:3px;background:var(--inset)}
.calc-field input[type=range]::-moz-range-track{height:5px;border-radius:3px;background:var(--inset)}
.calc-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);border:3px solid var(--card);box-shadow:0 1px 4px rgba(0,0,0,.22);margin-top:-8px}
.calc-field input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--accent);border:3px solid var(--card);box-shadow:0 1px 4px rgba(0,0,0,.22)}
.calc-field input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}
.calc-disc{grid-column:1/-1;font-family:"Onest";font-weight:500;font-size:13px;line-height:18px;color:var(--muted)}
/* результат */
/* по макету: рамка, без тени — карточка не должна казаться выше по слою */
.calc-res{background:var(--card);border:1px solid var(--border-default);border-radius:var(--r-lg);padding:32px;position:sticky;top:88px;min-width:0}
.calc-res .verdict{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;margin-bottom:8px}
.calc-res .bignum{font-family:"Onest";font-weight:600;font-size:32px;line-height:40px}
/* заголовок нейтральный: цветом говорит только сумма и разница на шкале */
.calc-res .verdict{color:var(--ink)}
.calc-res.pos .bignum{color:var(--accent-strong)}
.calc-res.neg .bignum{color:var(--danger)}
.fhint{margin-top:6px;font-family:"Onest";font-weight:500;font-size:13px;line-height:18px;color:var(--muted)}
/* сравнение двух итогов: полос нет — это не доли одного целого */
.compare{margin-top:16px;display:flex;flex-direction:column}
.compare .crow{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;font-size:14px;line-height:20px;color:var(--muted)}
.compare .crow b{font-weight:700;white-space:nowrap;color:var(--body)}
/* «как это посчитано» — раскрытие тем же приёмом, что и FAQ (grid-template-rows) */
/* Разбор «Как это посчитано» на странице скрыт — эти строки уходят в письме.
   Разметку оставляем в DOM: из неё попап собирает текст расчёта для e-mail. */
.brk{display:none}
.brk-q{display:flex;align-items:center;gap:8px;width:100%;padding:0;background:none;border:0;cursor:pointer;text-align:left;font-family:"Onest";font-weight:600;font-size:14px;line-height:20px;color:var(--accent-strong)}
.brk-q{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.brk-q:hover{color:var(--accent)}
.brk-q:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.brk-a{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .28s ease,opacity .22s ease}
.brk.open .brk-a{grid-template-rows:1fr;opacity:1}
.brk-a>.brk-a-in{overflow:hidden;min-height:0}
.brk-rows{padding-top:6px}
.brow{display:flex;justify-content:space-between;gap:14px;padding:10px 0;font-size:14px;line-height:20px;border-bottom:1px solid var(--border-soft);color:var(--muted)}
.brow:last-child{border-bottom:none}
.brow .k{color:var(--body)}
.brow .k small{display:block;color:var(--muted);font-size:12px;line-height:16px}
.brow .v{font-weight:700;white-space:nowrap;color:var(--body)}
.calc-res .btn{width:100%;margin-top:20px}
.calc-res .btn+.btn{margin-top:8px}
/* появление блоков при прокрутке (класс навешивает JS, без JS всё видно) */
/* вход первого экрана — чистый CSS, стартует сам при загрузке */
@keyframes heroIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero .badge,.hero .t-hero,.hero .lead,.hero .cta,.hero .col-img{animation:heroIn .7s cubic-bezier(.22,.61,.36,1) both}
.hero .t-hero{animation-delay:.09s}
.hero .lead{animation-delay:.18s}
.hero .cta{animation-delay:.27s}
.hero .col-img{animation-delay:.36s}
/* Короткое проявление при смене города. Класс продублирован в селекторе, чтобы
   перебить анимацию входа героя: у неё специфичность выше и она объявлена ниже. */
@keyframes cityFlash{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.city-flash.city-flash{animation:cityFlash .35s cubic-bezier(.22,.61,.36,1) both}
@media (prefers-reduced-motion:reduce){ .city-flash.city-flash{animation:none} }
/* Появление — через keyframes, а не transition: в исходном состоянии нет transform,
   поэтому переходы по якорям попадают точно и без подпрыгивания в конце. */
[data-reveal]{opacity:0}
[data-reveal].in{animation:heroIn .6s cubic-bezier(.22,.61,.36,1) both}
[data-reveal].no-anim{opacity:1;animation:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-reveal].in{opacity:1;animation:none}
  .hero .badge,.hero .t-hero,.hero .lead,.hero .cta,.hero .col-img{animation:none}
  .brk-a{transition:none}
}
/* trust */
.trust-row{display:flex;gap:24px;align-items:stretch}
.trust-row .img-col{flex:1 1 0;min-width:0}
.trust-row .img-col .frame{aspect-ratio:400/300;border-radius:var(--r-lg);overflow:hidden;background:var(--ph-bg);height:100%}
.trust-row .img-col img{width:100%;height:100%;object-fit:cover}
.trust-col{flex:1 1 0;min-width:0;padding-top:16px;display:flex;flex-direction:column;gap:32px}
.trust-head{display:flex;flex-direction:column;gap:20px}
.trust-head p{max-width:596px;font-size:16px;line-height:24px;color:var(--body)}
.trust-card{border:1px solid var(--accent);border-radius:var(--r-md);padding:24px;display:flex;flex-direction:column;gap:16px}
.trust-card h4{font-family:"Onest";font-weight:500;font-size:24px;line-height:32px;color:var(--ink)}
.checklist{display:flex;flex-direction:column;gap:12px;list-style:none}
.checklist li{display:flex;gap:8px;align-items:flex-start}
.checklist .ck{flex:0 0 24px;height:24px;display:flex;justify-content:center;padding-top:4px}
.checklist p{flex:1;min-width:0;font-size:16px;line-height:24px;color:var(--body)}
.checklist .ck{color:var(--accent)}
/* pricing */
.price-row{display:flex;gap:24px;align-items:stretch}
.price-card{flex:1 1 0;min-width:0;border-radius:var(--r-md);padding:24px;display:flex;flex-direction:column;gap:16px}
.price-card.white{background:var(--card)}
.price-card.green{background:var(--accent-strong);color:#fff}
.price-card h3{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px}
.price-card.white h3{color:var(--ink)}
.price-card .checklist{gap:8px}
.price-card.green .checklist p{color:#fff}
.price-card.green .ck{color:#fff}
.price-card .note{margin-top:auto;padding-top:8px;font-family:"Onest";font-weight:500;font-size:13px;line-height:18px;color:#fff}
/* reviews */
.rev-sec{display:flex;flex-direction:column;gap:28px}
.rev-sec .sub{font-family:"Onest";font-weight:500;font-size:18px;line-height:26px;color:var(--muted);max-width:596px}
.rev-row{display:flex;gap:24px;align-items:stretch}
/* отзыв — цитата: вместо портрета крупная кавычка */
.rev-card{flex:1 1 0;min-width:0;background:var(--card);border:1px solid var(--border-soft);border-radius:var(--r-lg);
  padding:28px;display:flex;flex-direction:column;gap:20px;position:relative}
.rev-card::before{content:"\201C";font-family:"Onest";font-weight:600;font-size:64px;line-height:.7;color:var(--accent);opacity:.35}
.rev-text{flex:1 1 auto;font-size:17px;line-height:26px;color:var(--body)}
.rev-text p{margin:0}
.rev-text p + p{margin-top:12px}
.rev-name{display:flex;flex-direction:column;gap:2px;padding-top:4px;border-top:1px solid var(--border-soft)}
.rev-name b{font-family:"Onest";font-weight:600;font-size:16px;line-height:24px;color:var(--ink);padding-top:16px}
.rev-name span{font-size:14px;line-height:20px;color:var(--muted)}
/* cases */
.cases-row{display:flex;gap:24px;align-items:stretch}
.case-card{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:16px}
.case-img{position:relative;aspect-ratio:1/1;border-radius:var(--r-lg);overflow:hidden;background:var(--ph-bg)}
.case-img img{width:100%;height:100%;object-fit:cover}
.case-badge{position:absolute;left:16px;top:16px;background:var(--gold-100);color:var(--gold-800);font-family:"Onest";font-weight:500;font-size:13px;line-height:18px;padding:8px 16px;border-radius:var(--r-pill)}
.case-content{flex:1 1 0;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:0 16px}
.case-content .top{display:flex;flex-direction:column;gap:8px}
.case-content h3{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:var(--ink)}
.case-content .desc{font-size:14px;line-height:20px;color:var(--body)}
.case-result{border-top:1px solid var(--accent-strong);padding-top:24px;display:flex;flex-direction:column;gap:4px;color:var(--accent-strong);font-size:16px;line-height:24px}
/* articles */
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.head-row .left{display:flex;flex-direction:column;gap:16px}
.head-row .left .sub{font-family:"Onest";font-weight:500;font-size:18px;line-height:26px;color:var(--muted);max-width:596px}
.link-more{display:inline-flex;align-items:center;gap:6px;color:var(--accent-strong);font-family:"Onest";font-weight:500;font-size:14px;line-height:20px;white-space:nowrap}
.art-row{display:flex;gap:20px;align-items:stretch}
/* карусель кейсов и статей: нативный скролл со snap + стрелки */
.car-track{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}
.car-track::-webkit-scrollbar{display:none}
/* .car-track дважды — чтобы правило било flex:1 1 0 у карточек независимо от порядка в файле */
.car-track.car-track>*{scroll-snap-align:start;flex:0 0 calc((100% - 48px)/3)}
.art-row.car-track.car-track>*{flex-basis:calc((100% - 40px)/3)}
.head-side{display:flex;align-items:center;gap:20px}
.car-nav{display:flex;gap:8px}
.car-nav[hidden]{display:none}
.car-btn{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:var(--r-pill);border:1px solid var(--border-default);background:var(--card);color:var(--ink);cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}
.car-btn:hover:not(:disabled){border-color:var(--accent);background:var(--green-050);color:var(--accent-strong)}
.car-btn:disabled{opacity:.4;cursor:default}
.car-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.car-track{scroll-behavior:auto}}
.art-card{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:16px}
.art-card .case-img{aspect-ratio:1/1}
.art-card h3{padding:0 16px;font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:var(--ink)}
.art-card .desc{padding:0 16px;font-size:14px;line-height:20px;color:var(--body)}
/* «Читать» прижата к низу — у карточек разной длины подписи стоят на одной линии */
.art-card .read-more{margin-top:auto;padding:0 16px;display:inline-flex;align-items:center;gap:6px;
  font-family:"Onest";font-weight:500;font-size:14px;line-height:20px;color:var(--accent-strong)}
.art-card .read-more svg{transition:transform .18s ease}
.art-card:hover .read-more svg{transform:translateX(3px)}
.art-grid .art-card .meta{justify-content:space-between}
.art-grid .art-card .read-more{margin-top:0;padding:0}
@media (prefers-reduced-motion:reduce){ .art-card:hover .read-more svg{transform:none} }
/* ховер карточек кейсов и статей: картинка чуть наезжает, заголовок зеленеет */
.case-img img{transition:transform .55s cubic-bezier(.22,.61,.36,1)}
.case-content h3,.art-card h3{transition:color .2s ease}
.case-card:hover .case-img img,.art-card:hover .case-img img{transform:scale(1.06)}
.case-card:hover .case-content h3,.art-card:hover h3,.art-card:focus-visible h3{color:var(--accent-strong)}
@media (prefers-reduced-motion:reduce){
  .case-img img{transition:none}
  .case-card:hover .case-img img,.art-card:hover .case-img img{transform:none}
}
/* faq */
.faq-wrap{max-width:1080px;margin:0 auto;padding:0 32px;display:flex;flex-direction:column;gap:28px}
.acc{display:flex;flex-direction:column;gap:8px}
.acc-item{border:1px solid var(--border-default);border-radius:var(--r-lg);background:var(--card);transition:border-color .15s}
.acc-item:hover{border-color:var(--accent)}
.acc-q{width:100%;display:flex;gap:16px;align-items:center;padding:32px;background:none;border:0;text-align:left;font:inherit;cursor:pointer;transition:padding-bottom .28s ease}
.acc-item.open .acc-q{padding-bottom:12px}
.acc-q .q{flex:1;min-width:0;font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:var(--ink)}
.acc-q .pm{flex:0 0 24px;width:24px;height:24px;position:relative}
.acc-q .pm::before,.acc-q .pm::after{content:"";position:absolute;background:var(--accent);border-radius:2px}
.acc-q .pm::before{left:2px;right:2px;top:11px;height:2px}
.acc-q .pm::after{top:2px;bottom:2px;left:11px;width:2px;transition:opacity .28s ease}
.acc-item.open .acc-q .pm::after{opacity:0}
/* контент всегда в DOM, схлопнут в 0fr — поэтому переход честно играет в обе стороны */
.acc-a{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .28s ease,opacity .22s ease}
.acc-item.open .acc-a{grid-template-rows:1fr;opacity:1}
/* схлопывается пустая обёртка: у неё нет паддинга, поэтому 0fr даёт ровно 0 */
.acc-a>.acc-a-in{overflow:hidden;min-height:0}
.acc-a .ans{padding:0 32px 32px;font-size:16px;line-height:25px;color:var(--muted)}
@media (prefers-reduced-motion: reduce){
  .acc-q,.acc-a,.acc-q .pm::after{transition:none}
}
/* form */
.form-panel{background:var(--dark);border-radius:var(--r-xl);padding:48px;display:flex;gap:48px;align-items:center}
.form-panel .intro{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:16px}
.form-panel .intro h2{color:#fff}
.form-panel .intro p{color:rgba(255,255,255,.82);font-size:16px;line-height:24px}
.form-card{flex:1 1 0;min-width:0;background:var(--card);border-radius:var(--r-lg);padding:24px;display:flex;flex-direction:column;gap:12px}
.form-field{display:flex;flex-direction:column;gap:8px}
.form-field label{font-size:14px;line-height:20px;color:var(--body)}
/* фон и фокус — те же, что у полей калькулятора: это одни и те же по смыслу элементы */
.form-field input,.form-field select{width:100%;min-width:0;height:56px;padding:0 16px;border:1px solid var(--border-default);border-radius:var(--r-ctl);background:var(--card);font-family:"Onest";font-size:16px;color:var(--ink);appearance:none;-webkit-appearance:none}
.form-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 10l5 5 5-5' stroke='%23676767' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:44px}
.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(66,171,68,.14)}
.form-check{display:flex;gap:8px;align-items:center;font-size:14px;line-height:20px;color:var(--body)}
.form-check input{width:20px;height:20px;accent-color:var(--accent-strong);flex:0 0 auto}
.form-card .btn{width:100%;margin-top:4px}
/* footer */
.footer-sec{padding:20px}
/* шире контейнера ровно на 96px — тёмный остров всегда чуть выступает за сетку */
.footer-island{max-width:calc(var(--maxw) + 96px);margin:0 auto;background:var(--dark);border-radius:var(--r-lg);padding:56px 56px 40px;display:flex;flex-direction:column;gap:48px;color:#fff}
.footer-top{display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between}
.footer-brand{width:260px;display:flex;flex-direction:column;gap:16px}
.footer-brand .logo .name{color:#fff}
.footer-brand .phone{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:#fff;transition:color .15s ease}
.footer-brand .phone:hover{color:var(--accent)}
.footer-brand .tag{font-size:13px;line-height:18px;color:rgba(255,255,255,.55)}
.socials{display:flex;flex-wrap:wrap;gap:8px}
.socials span,.socials a.soc{width:40px;height:40px;border-radius:var(--r-sm);background:rgba(255,255,255,.1);display:grid;place-items:center;font-family:"Onest";font-weight:500;font-size:13px;color:rgba(255,255,255,.75);transition:background .15s ease,color .15s ease}
.socials a.soc svg{width:22px;height:22px;display:block}
.socials a.soc:hover{background:rgba(255,255,255,.16);color:var(--accent)}
.footer-col{min-width:170px;display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:20px}
.footer-col b{font-weight:500;color:#fff}
.footer-col a{color:rgba(255,255,255,.65)}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;line-height:18px;color:rgba(255,255,255,.55)}

/* ============ inner pages ============ */
.page-top{padding-top:40px}
.crumbs{display:flex;gap:8px;align-items:center;font-size:14px;line-height:20px;color:var(--muted);flex-wrap:wrap}
.crumbs a{color:var(--accent-strong)}
.crumbs a:hover{text-decoration:underline}
.page-hero{display:flex;flex-direction:column;gap:16px;max-width:760px;margin-top:24px}
.page-hero h1{font-family:"Onest";font-weight:600;font-size:40px;line-height:48px;letter-spacing:-.01em;color:var(--ink)}
.page-hero .lead{font-size:18px;line-height:27px;color:var(--muted)}
/* filter chips */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.chip{padding:10px 18px;border-radius:var(--r-ctl);border:1px solid var(--border-default);background:var(--card);font-family:"Onest";font-weight:500;font-size:14px;color:var(--body);cursor:pointer;transition:.15s}
.chip:hover{border-color:var(--accent);color:var(--accent-strong)}
.chip.active{background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}
/* articles grid */
.art-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.art-grid .art-card .meta{display:flex;gap:10px;align-items:center;padding:0 16px}
.art-grid .art-card .read{font-size:13px;color:var(--muted)}
/* article prose */
.prose{max-width:920px;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.prose .meta-row{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:13px}
.prose h1{font-family:"Onest";font-weight:600;font-size:40px;line-height:48px;letter-spacing:-.01em;color:var(--ink)}
.prose .lead{font-size:20px;line-height:30px;color:var(--muted)}
.prose .illus{aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;background:var(--ph-bg);margin:8px 0}
.prose .illus img{width:100%;height:100%;object-fit:cover}
.prose h2{font-family:"Onest";font-weight:600;font-size:30px;line-height:38px;color:var(--ink);margin-top:8px}
.prose p{font-size:18px;line-height:29px;color:var(--body)}
.callout{background:var(--green-050);border:1px solid var(--green-300);border-radius:var(--r-md);padding:24px;display:flex;flex-direction:column;gap:8px}
.callout b{font-family:"Onest";font-weight:600;font-size:18px;line-height:26px;color:var(--green-800)}
.callout p{font-size:18px;line-height:28px;color:var(--body)}
.badge-pill{align-self:flex-start;background:var(--gold-100);color:var(--gold-800);font-family:"Onest";font-weight:500;font-size:13px;line-height:18px;padding:6px 14px;border-radius:var(--r-pill)}
.article-cta{max-width:920px;margin:0 auto;background:var(--dark);border-radius:var(--r-lg);padding:40px;display:flex;flex-direction:column;gap:20px;color:#fff}
.article-cta h2{color:#fff;font-family:"Onest";font-weight:600;font-size:30px;line-height:38px}
.article-cta p{color:rgba(255,255,255,.82);font-size:16px;line-height:24px}
.article-cta .row-inline{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.article-cta .row-inline .form-field{flex:1 1 220px}
.article-cta .form-field input{background:var(--card)}
/* contacts */
.contacts-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.contact-list{display:flex;flex-direction:column;gap:20px}
/* контакты в строку: форма ушла ниже, ширина освободилась */
.contact-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-bottom:32px}
.contact-row .contact-item{padding-bottom:0;border-bottom:0}
.contact-row .contact-item .v a{color:var(--ink)}
.contact-row .contact-item .v a:hover{color:var(--accent-strong)}
.contact-item{display:flex;flex-direction:column;gap:4px;padding-bottom:20px;border-bottom:1px solid var(--border-soft)}
.contact-item .k{font-family:"Onest";font-weight:500;font-size:13px;line-height:18px;color:var(--muted)}
.contact-item .v{font-family:"Onest";font-weight:500;font-size:20px;line-height:28px;color:var(--ink)}
.contact-socials{display:flex;gap:8px}
.contact-socials span{width:44px;height:44px;border-radius:var(--r-pill);background:var(--subtle);display:grid;place-items:center;font-family:"Onest";font-weight:600;font-size:13px;color:var(--body)}
.contacts-form{background:var(--subtle);border-radius:var(--r-lg);padding:32px;display:flex;flex-direction:column;gap:12px}
.contacts-form h2{font-family:"Onest";font-weight:600;font-size:30px;line-height:38px;color:var(--ink);margin-bottom:4px}
.contacts-form .two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.contacts-form .note{font-family:"Onest";font-weight:500;font-size:13px;line-height:18px;color:var(--muted)}

/* ============ section padding helpers ============ */
.sec-pad-lg{padding:72px 0}
.sec-pad-form{padding:72px 0 80px}

/* ============ RESPONSIVE: tablet ============ */
@media (max-width:960px){
  /* header → burger */
  .site-header .container{position:relative}
  .nav{display:none}
  .header-right .phone{display:none}
  .burger{display:flex}
  /* меню на весь экран: пункты по центру, без разделителей */
  .site-header.menu-open .nav{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:6px;
    position:fixed;inset:0;z-index:1;background:var(--page);padding:88px 24px 40px;overflow-y:auto}
  .site-header.menu-open .header-left,.site-header.menu-open .header-right{position:relative;z-index:2}
  /* :not(.menu-cta) — иначе продублированная кнопка заявки получает вид пункта меню:
     селектор .nav a специфичнее, чем .btn-primary, и перебивает её цвет и размер */
  .site-header.menu-open .nav a:not(.menu-cta){padding:14px 20px;border:0;border-radius:var(--r-md);text-align:center;
    font-family:"Onest";font-weight:500;font-size:22px;line-height:30px;color:var(--ink)}
  .site-header.menu-open .nav .menu-cta{color:var(--on-dark);font-size:16px;line-height:24px;padding:0 24px}
  .site-header.menu-open .nav a.is-active{color:var(--accent-strong);background:var(--green-100)}
  /* бургер превращается в крестик */
  .burger span{transition:transform .25s ease,opacity .18s ease}
  .site-header.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .site-header.menu-open .burger span:nth-child(2){opacity:0}
  .site-header.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  @media (prefers-reduced-motion:reduce){.burger span{transition:none}}
  /* stacks */
  .hero .row{flex-direction:column;align-items:stretch;gap:32px}
  .hero .col-text{flex:1 1 auto;max-width:none}
  .row2,.trust-row,.form-panel{flex-direction:column}
  /* в колонке пропорция 4:3 даёт фото почти во весь экран */
  .trust-row .img-col .frame{aspect-ratio:16/9;height:auto}
  .trust-col{padding-top:0}
  .stage-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* в колонке flex:1 1 0 задаёт высоту и схлопывает фото в ноль */
  .row2 .img-col{flex:0 0 auto}
  .row2 .img-col img{min-height:0;height:300px}
  .calc-wrap{grid-template-columns:1fr;gap:20px}
  .calc-res{position:static}
  .contacts-grid{grid-template-columns:1fr}
  .contact-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .rev-row{flex-direction:column}
  /* 3-col rows → 2 col */
  .cards-row,.cards-3,.price-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .car-track.car-track>*,.art-row.car-track.car-track>*{flex-basis:calc((100% - 20px)/2)}
  .art-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* panel paddings */
  .panel-grey{padding:48px 28px}
  .form-panel{padding:36px}
  .footer-island{padding:48px 40px 32px}
}

/* ============ RESPONSIVE: mobile ============ */
@media (max-width:600px){
  .container{padding:0 20px}
  main.page{gap:56px}
  .sec-pad-lg{padding:48px 0}
  .sec-pad-form{padding:48px 0 56px}
  .hero{padding-top:40px}
  /* headings down */
  .t-hero{font-size:32px;line-height:38px}
  .t-h2{font-size:26px;line-height:32px}
  .t-h3{font-size:24px;line-height:30px}
  .page-hero h1,.prose h1{font-size:30px;line-height:36px}
  .page-hero .lead{font-size:16px;line-height:24px}
  .prose .lead{font-size:18px;line-height:27px}
  .prose h2{font-size:24px;line-height:30px}
  .prose p{font-size:16px;line-height:26px}
  /* all multi-col → 1 col */
  .cards-row,.cards-3,.price-row,.art-grid,.calc-fields,.contacts-form .two,.contact-row,.stage-cards{grid-template-columns:1fr}
  /* на узком экране карточки идут одна за другой; фото пониже, чтобы не занимало экран */
  .stage-card .photo{aspect-ratio:16/9}
  .stage-card .col{padding:0}
  /* в столбик карточки сливаются в сплошной поток — отделяем линией */
  .stage-card + .stage-card{border-top:1px solid var(--border-soft);padding-top:24px}
  .car-track.car-track>*,.art-row.car-track.car-track>*{flex-basis:100%}
  .row2 .img-col img{height:220px}
  /* hero buttons full width */
  .hero .cta{flex-direction:column}
  .hero .cta .btn{width:100%}
  /* calc */
  .calc-fields{padding:24px;gap:22px}
  .calc-res{padding:24px}
  .calc-res .verdict{font-size:19px;line-height:26px}
  /* panels */
  .panel-grey{padding:32px 20px}
  .form-panel{padding:24px}
  .form-panel .intro h2{font-size:26px;line-height:32px}
  /* faq */
  .faq-wrap{padding:0 20px}
  .acc-q{padding:24px}
  .acc-item.open .acc-q{padding-bottom:10px}
  .acc-a .ans{padding:0 24px 24px}
  .acc-q .q{font-size:18px;line-height:26px}
  /* reviews → stacked, smaller avatar */
  .rev-card{padding:24px;gap:16px}
  .rev-card::before{font-size:52px}
  /* article cta */
  .article-cta{padding:28px}
  .article-cta h2{font-size:24px;line-height:30px}
  .article-cta .row-inline{flex-direction:column;align-items:stretch}
  .article-cta .row-inline .btn{width:100%}
  /* articles head row */
  .head-row{flex-direction:column;align-items:flex-start;gap:16px}
  /* contacts form */
  .contacts-form{padding:24px}
  /* footer */
  .footer-island{padding:36px 24px 28px}
  .footer-bottom{flex-direction:column;gap:8px}
}

/* Широкие экраны: на 1920 контейнер занимал 63% ширины и терялся.
   Две ступени — чтобы 1440 тоже получил своё, а не ждал 1600.
   Растут только контейнер и текстовая колонка героя: у лида и подзаголовков
   свои ограничения, длина строки не меняется. */
@media (min-width:1440px){
  :root{--maxw:1320px}
  .hero .col-text{flex:0 0 680px;max-width:680px}
  /* типографика растёт вместе с сеткой — иначе заголовки мельчают на глаз */
  .t-hero{font-size:48px;line-height:56px}
  .t-h2{font-size:34px;line-height:42px}
  .page-hero h1,.prose h1{font-size:44px;line-height:52px}
  .hero .lead{max-width:560px}
  /* на широком экране карусели кейсов и статей показывают по 4 карточки —
     картинки не такие крупные (кейсы gap 24px, статьи 20px, по 3 промежутка) */
  .car-track.car-track>*{flex:0 0 calc((100% - 72px)/4)}
  .art-row.car-track.car-track>*{flex-basis:calc((100% - 60px)/4)}
}
@media (min-width:1600px){
  :root{--maxw:1400px}
  .hero .col-text{flex:0 0 720px;max-width:720px}
  .t-hero{font-size:52px;line-height:60px}
  .t-h2{font-size:36px;line-height:44px}
  .page-hero h1,.prose h1{font-size:46px;line-height:54px}
  .hero .lead{max-width:600px}
}
@media (min-width:1800px){
  :root{--maxw:1560px}
  .hero .col-text{flex:0 0 780px;max-width:780px}
  .t-hero{font-size:56px;line-height:64px}
  .t-h2{font-size:38px;line-height:46px}
  .page-hero h1,.prose h1{font-size:48px;line-height:56px}
  .hero .lead{max-width:640px;font-size:17px;line-height:26px}
  /* панель результата фиксированная — без этого она теряется рядом с широкими полями */
  .calc-wrap{grid-template-columns:minmax(0,1fr) 420px}
}
@media (max-width:1200px){ .header-right .phone{display:none} }
/* ===== гео: селектор, поповер, модалка ===== */
.city-pick{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--border-soft);border-radius:var(--r-ctl);background:var(--card);color:var(--body);font-family:"Ubuntu";font-size:14px;line-height:20px;cursor:pointer;white-space:nowrap;transition:border-color .15s ease,color .15s ease}
.city-pick:hover{border-color:var(--accent);color:var(--accent-strong)}
.city-pick:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.city-pick .cp-chev{opacity:.6}

.city-pop{position:fixed;z-index:80;width:250px;background:var(--card);border:1px solid var(--border-soft);border-radius:var(--r-md);box-shadow:0 16px 34px rgba(20,30,20,.16);padding:16px}
.city-pop::before{content:"";position:absolute;top:-7px;left:24px;width:12px;height:12px;background:var(--card);border-left:1px solid var(--border-soft);border-top:1px solid var(--border-soft);transform:rotate(45deg)}
.city-pop .cpop-q{font-size:14px;line-height:20px;color:var(--muted)}
.city-pop .cpop-city{font-family:"Onest";font-weight:600;font-size:20px;line-height:28px;color:var(--ink);margin:2px 0 12px}
.city-pop .cpop-acts{display:flex;gap:8px}
.city-pop .cpop-acts .btn{flex:1 1 0}
/* мало места — показываем полосой под шапкой */
.city-pop.as-bar{position:fixed;left:0;right:0;width:auto;border-radius:0;border-left:0;border-right:0;border-top:0;box-shadow:0 10px 20px rgba(0,0,0,.08)}
.city-pop.as-bar::before{display:none}

.city-modal{position:fixed;inset:0;z-index:90;display:none}
.city-modal.open{display:block}
.cm-backdrop{position:absolute;inset:0;background:rgba(15,20,15,.5);animation:cmFade .18s ease both}
@keyframes cmFade{from{opacity:0}to{opacity:1}}
@keyframes cmPop{from{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}
.cm-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(880px,calc(100% - 32px));max-height:min(84vh,720px);overflow:auto;background:var(--card);border-radius:var(--r-lg);padding:32px}
.cm-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.cm-head h2{font-family:"Onest";font-weight:600;font-size:28px;line-height:36px;color:var(--ink)}
.cm-x{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:0;border-radius:var(--r-pill);background:var(--subtle);color:var(--body);cursor:pointer}
.cm-x:hover{background:var(--inset)}
.cm-search-wrap{position:relative;margin-bottom:20px}
.cm-search{width:100%;height:48px;padding:0 44px 0 16px;border:1px solid var(--border-default);border-radius:var(--r-ctl);background:var(--page);font-family:"Onest";font-size:16px;color:var(--ink)}
.cm-search:focus{outline:none;border-color:var(--accent)}
/* родной крестик у type=search выглядит по-разному в браузерах — рисуем свой */
.cm-search::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.cm-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--r-pill);background:none;color:var(--muted);cursor:pointer}
.cm-clear:hover{background:var(--subtle);color:var(--ink)}
.cm-clear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cm-clear[hidden]{display:none}
.cm-empty{font-size:15px;line-height:22px;color:var(--muted);padding:4px 0 8px}
.cm-empty[hidden]{display:none}
.cm-list{columns:3;column-gap:24px}
.cm-group{break-inside:avoid;margin-bottom:20px}
.cm-group[hidden]{display:none}
.cm-region{font-family:"Onest";font-weight:600;font-size:13px;line-height:18px;color:var(--muted);margin-bottom:6px}
.cm-city{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:5px 0;border:0;background:none;font-family:"Onest";font-size:16px;line-height:24px;color:var(--ink);cursor:pointer;break-inside:avoid;transition:color .12s ease}
.cm-city .cm-pin{flex:0 0 auto;color:var(--muted);transition:color .12s ease}
.cm-city:hover,.cm-city:hover .cm-pin{color:var(--accent-strong)}
/* выбранный регион — зелёный текст и залитый зелёный пин */
.cm-city.is-current{color:var(--accent-strong);font-weight:500}
.cm-city.is-current .cm-pin{color:var(--accent-strong)}
.cm-city.is-current .cm-pin path,.cm-city.is-current .cm-pin circle{fill:var(--accent-strong)}
.cm-city[hidden]{display:none}
.cm-none{margin-top:8px;border:0;background:none;padding:0;font-family:"Onest";font-weight:500;font-size:14px;line-height:20px;color:var(--accent-strong);cursor:pointer;text-align:left}

/* ===== кнопка MAX в шапке ===== */
.max-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border:1px solid var(--border-default);border-radius:var(--r-ctl);background:var(--card);font-family:"Onest";font-weight:600;font-size:14px;line-height:1;color:var(--body);white-space:nowrap;transition:border-color .15s ease,background .15s ease,color .15s ease}
.max-btn .max-ico{color:var(--accent-strong);flex:0 0 auto}
.max-btn:hover{border-color:var(--accent);background:var(--green-050);color:var(--ink)}
.max-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ===== зелёная ссылка «полный расчёт на e-mail» ===== */
.calc-mail-link{display:block;width:100%;margin-top:12px;padding:8px 0;border:0;background:none;text-align:center;font-family:"Onest";font-weight:600;font-size:15px;line-height:22px;color:var(--accent-strong);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.calc-mail-link:hover{color:var(--accent)}
.calc-mail-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}

/* ===== попап «полный расчёт на e-mail» ===== */
.mail-modal{position:fixed;inset:0;z-index:95;display:none}
.mail-modal.open{display:block}
.mm-backdrop{position:absolute;inset:0;background:rgba(15,20,15,.5);animation:cmFade .18s ease both}
.mm-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 32px));max-height:min(90vh,640px);overflow:auto;background:var(--card);border-radius:var(--r-lg);padding:32px;animation:cmPop .2s ease both}
.mm-x{position:absolute;top:16px;right:16px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:var(--r-pill);background:none;color:var(--muted);cursor:pointer}
.mm-x:hover{background:var(--subtle);color:var(--ink)}
.mm-x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mm-box h3{font-family:"Onest";font-weight:600;font-size:24px;line-height:32px;color:var(--ink);padding-right:32px}
.mm-sub{font-size:15px;line-height:22px;color:var(--muted);margin-top:8px}
.mm-form{margin-top:20px;display:flex;flex-direction:column}
.mm-lbl{font-family:"Onest";font-size:14px;line-height:20px;color:var(--body);margin-bottom:6px}
.mm-email{height:52px;padding:0 16px;border:1px solid var(--border-default);border-radius:var(--r-ctl);background:var(--card);font-family:"Onest";font-size:16px;color:var(--ink)}
.mm-email:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--green-050)}
.mm-consent{display:flex;gap:10px;margin-top:16px;font-size:14px;line-height:20px;color:var(--body);cursor:pointer}
.mm-consent input{flex:0 0 auto;width:18px;height:18px;margin-top:1px;accent-color:var(--accent-strong)}
.mm-consent a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px}
.mm-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.mm-submit{margin-top:20px}
.mm-msg{margin-top:12px;font-size:14px;line-height:20px;min-height:0}
.mm-msg.ok{color:var(--accent-strong)}
.mm-msg.err{color:var(--danger)}
.mm-form.sent .mm-email,.mm-form.sent .mm-consent,.mm-form.sent .mm-submit{display:none}

/* ===== реквизиты ===== */
.legal{display:flex;flex-wrap:wrap;gap:6px 20px;padding:20px 0 0;font-size:13px;line-height:19px;color:rgba(255,255,255,.55)}
.legal .legal-links{display:flex;flex-wrap:wrap;gap:6px 16px}
.legal a{text-decoration:underline;text-underline-offset:2px}
.legal a:hover{color:var(--on-dark)}
.legal--page{color:var(--muted);padding:0;border-top:1px solid var(--border-soft);padding-top:20px}
.legal--page a:hover{color:var(--accent-strong)}

/* ===== плашка куки ===== */
.cookie-bar{position:fixed;right:20px;bottom:20px;z-index:70;width:380px;max-width:calc(100vw - 40px);background:var(--dark);color:var(--on-dark);border-radius:var(--r-lg);padding:20px;box-shadow:0 16px 34px rgba(0,0,0,.22)}
.cookie-bar .ck-title{font-family:"Onest";font-weight:600;font-size:18px;line-height:26px;margin-bottom:6px}
.cookie-bar .ck-text{font-size:14px;line-height:20px;color:rgba(255,255,255,.75);margin-bottom:14px}
.cookie-bar .ck-text a{text-decoration:underline;text-underline-offset:2px;color:#fff}
.cookie-bar .ck-ok{width:100%}

@media (max-width:960px){
  .cm-list{columns:2}
  .cm-box{padding:24px}
  .mm-box{padding:24px}
}
@media (max-width:600px){
  /* селектор региона занял место — кнопку заявки и MAX переносим/прячем */
  .header-right .btn{display:none}
  .max-btn{display:none}
  .site-header.menu-open .nav .menu-cta{display:inline-flex;align-self:center;margin-top:20px}
  .city-pick{padding:6px 8px;font-size:13px}
  .city-pick .cp-chev{display:none}
  .city-pick .cp-name{max-width:120px;overflow:hidden;text-overflow:ellipsis}
  .cm-list{columns:1}
  .cm-head h2{font-size:22px;line-height:30px}
  .cookie-bar{left:12px;right:12px;bottom:12px;width:auto;max-width:none}
}

/* цифры по делу на странице кейса */
.case-facts{display:flex;flex-direction:column;border:1px solid var(--border-soft);border-radius:var(--r-md);overflow:hidden}
.case-facts .fact{display:flex;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border-soft)}
.case-facts .fact:last-child{border-bottom:0}
.case-facts .k{font-size:16px;line-height:24px;color:var(--body)}
.case-facts .v{font-family:"Onest";font-weight:600;font-size:16px;line-height:24px;color:var(--ink);white-space:nowrap}
/* карточка кейса как ссылка */
a.case-card{color:inherit}
a.case-card:hover h3{color:var(--accent-strong)}
@media (max-width:600px){ .case-facts .fact{flex-direction:column;gap:2px} }
