
/* Общие токены и компоненты черновых макетов «Деталь ремонта» */
:root{
  --g:#00A730;          /* фирменный зелёный */
  --ink:#171917;        /* графитовый */
  --w:#FFFFFF;          /* белый */
  --muted:#5f655f;
  --line:#e3e6e3;
  --soft:#f4f6f4;
  --g-soft:#eaf7ed;
  --r:4px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Onest',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--w);line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.1;letter-spacing:-.02em}
p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.sec{padding:96px 0}
.sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;flex-wrap:wrap}
.sec-h h2{font-size:clamp(28px,4vw,44px);font-weight:700;max-width:720px}
.eyebrow{display:block;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.eyebrow::before{content:"";display:inline-block;width:12px;height:12px;margin-right:10px;vertical-align:-1px;background:var(--g)}
.muted{color:var(--muted)}

/* Кнопки: зелёные — с тёмным текстом */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border:0;border-radius:var(--r);font-family:inherit;font-weight:600;font-size:16px;cursor:pointer;text-decoration:none;transition:filter .15s,background .15s,transform .15s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-g{background:var(--g);color:var(--ink)}
.btn-g:hover{filter:brightness(1.07)}
.btn-d{background:var(--ink);color:#fff}
.btn-d:hover{background:#2a2d2a}
.btn-o{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn-o:hover{background:rgba(127,127,127,.08)}
.btn-max::before{content:"MAX";font-size:10px;font-weight:800;letter-spacing:.04em;border:1.5px solid currentColor;border-radius:4px;padding:3px 4px;line-height:1}
.btn-sm{min-height:42px;padding:0 18px;font-size:15px}
.btn-block{width:100%}

/* Сигнальные полосы — из букв «Е» и «Н» логотипа */
.stripes{background:repeating-linear-gradient(-45deg,var(--g) 0 8px,transparent 8px 16px)}
.stripe-line{height:10px;background:repeating-linear-gradient(-45deg,var(--g) 0 8px,transparent 8px 16px)}

/* Квадрат-маркер — из сетки логотипа */
.sq{display:inline-block;width:10px;height:10px;background:var(--g);flex:none}

/* Заглушки фотографий */
.ph{position:relative;overflow:hidden;background:linear-gradient(150deg,#e8e2d6,#c4b9a6)}
.ph.t2{background:linear-gradient(150deg,#d5dcdd,#97a5a9)}
.ph.t3{background:linear-gradient(150deg,#dcc7a8,#a2835e)}
.ph.t4{background:linear-gradient(150deg,#5d625d,#2b2f2b)}
.ph.t5{background:linear-gradient(150deg,#e1e8de,#a6b7a0)}
.ph.t6{background:linear-gradient(150deg,#efece6,#cfc8bc)}
.ph.t7{background:linear-gradient(150deg,#c9c3bb,#8b8379)}
.ph::before{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,transparent 55%,rgba(23,25,23,.18)),
  linear-gradient(90deg,transparent 64%,rgba(255,255,255,.18) 64% 65%,transparent 65%),
  linear-gradient(0deg,rgba(0,0,0,.07) 0 22%,transparent 22%)}
.ph[data-label]::after{content:attr(data-label);position:absolute;left:12px;bottom:12px;font-size:12px;font-weight:500;color:#fff;background:rgba(23,25,23,.62);padding:4px 9px;border-radius:3px}

/* Поля ввода */
.field{display:block;margin-bottom:12px}
.field>span{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.inp{width:100%;min-height:52px;padding:0 16px;border:1.5px solid var(--line);border-radius:var(--r);font:inherit;background:#fff;color:var(--ink);transition:border-color .15s}
.inp:focus{outline:none;border-color:var(--g)}
textarea.inp{padding:14px 16px;min-height:96px;resize:vertical}
.agree{font-size:12px;color:var(--muted);margin-top:10px}
.agree a{color:inherit}

/* Варианты-плитки в формах */
.opts{display:grid;gap:10px}
.opts.c2{grid-template-columns:1fr 1fr}
.opts.c4{grid-template-columns:repeat(4,1fr)}
.opt{position:relative;display:block}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt span{display:flex;flex-direction:column;gap:2px;height:100%;padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--r);cursor:pointer;background:#fff;color:var(--ink);transition:.15s}
.opt span b{font-weight:600}
.opt span small{font-size:13px;color:var(--muted)}
.opt:hover span{border-color:#b9c2b9}
.opt input:checked+span{border-color:var(--g);box-shadow:inset 0 0 0 1px var(--g);background:var(--g-soft)}
.opt input:focus-visible+span{outline:2px solid var(--g);outline-offset:2px}

/* Переключатель города */
.city{display:inline-flex;padding:3px;border-radius:999px;box-shadow:inset 0 0 0 1.5px currentColor;gap:2px}
.city a{border:0;background:none;color:inherit;font:inherit;font-size:14px;font-weight:500;padding:6px 12px;border-radius:999px;cursor:pointer;opacity:.75}
.city a.on{background:var(--g);color:var(--ink);opacity:1}

/* Калькулятор сметы */
.calc .step{display:none}
.calc .step.on{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.calc-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:10px}
.prog{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:24px}
.prog i{height:4px;background:var(--line)}
.prog i.on{background:var(--g)}
.calc h3{font-size:22px;margin-bottom:16px}
.calc-nav{display:flex;gap:10px;margin-top:20px}
.calc-nav .btn{flex:1}
.range-row{display:flex;align-items:center;gap:16px}
.range-row input[type=range]{flex:1;accent-color:var(--g);height:28px}
.range-row output{min-width:84px;text-align:right;font-size:24px;font-weight:700}
.estimate{margin-top:18px;padding:16px;border-radius:var(--r);background:var(--soft);display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.estimate b{font-size:24px}
.estimate small{color:var(--muted);font-size:13px}

/* Модальные окна */
dialog{border:0;border-radius:8px;padding:0;width:calc(100% - 32px);max-width:460px;color:var(--ink)}
dialog::backdrop{background:rgba(23,25,23,.72)}
.dlg{padding:32px 28px 28px;position:relative}
.dlg h3{font-size:24px;margin-bottom:8px}
.dlg p{margin-bottom:20px}
.x{position:absolute;right:10px;top:10px;width:40px;height:40px;border:0;background:none;font-size:26px;line-height:1;cursor:pointer;color:inherit}
dialog.lb{max-width:1100px;background:var(--ink);color:#fff}
dialog.lb .ph{aspect-ratio:16/10}
dialog.lb .lb-cap{padding:16px 20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
dialog.lb .x{color:#fff;z-index:2;background:rgba(23,25,23,.5);border-radius:50%}
.sent{display:none;text-align:center;padding:12px 0}
form.done .sent{display:block}
form.done .form-body{display:none}
.sent .sq{width:28px;height:28px;margin-bottom:12px}

/* До / после */
.ba{position:relative;overflow:hidden;--pos:50%;aspect-ratio:16/10;user-select:none}
.ba>.ph{position:absolute;inset:0}
.ba .after{clip-path:inset(0 0 0 var(--pos))}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;z-index:3}
.ba .bar{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:#fff;z-index:2;pointer-events:none}
.ba .bar::after{content:"‹ ›";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:16px;box-shadow:0 4px 16px rgba(0,0,0,.25)}
.ba .tag{position:absolute;top:12px;z-index:2;font-size:12px;font-weight:600;padding:4px 10px;border-radius:3px;background:rgba(23,25,23,.7);color:#fff;pointer-events:none}
.ba .tag.l{left:12px}.ba .tag.r{right:12px;background:var(--g);color:var(--ink)}

/* Фильтры */
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters button{border:0;font:inherit;font-size:15px;font-weight:500;padding:9px 16px;border-radius:999px;background:var(--soft);color:var(--ink);cursor:pointer}
.filters button.on{background:var(--ink);color:#fff}
[data-tags].hide{display:none}

/* Вопросы */
.faq details{border-top:1.5px solid var(--line)}
.faq details:last-child{border-bottom:1.5px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 48px 22px 0;font-size:18px;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;margin-top:-7px;background:var(--g);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 48px 22px 0;color:var(--muted)}

/* Нижняя панель на телефоне */
.mbar{display:none}
@media (max-width:760px){
  .sec{padding:64px 0}
  .opts.c4{grid-template-columns:1fr 1fr}
  .mbar{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:6px;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--ink);box-shadow:0 -6px 24px rgba(0,0,0,.2)}
  .mbar .btn{min-height:46px;padding:0 10px;font-size:14px}
  body{padding-bottom:70px}
}

/* Плашка черновика и переключатель вариантов */
.mock{position:fixed;left:12px;bottom:12px;z-index:60;display:flex;align-items:center;gap:4px;padding:5px;border-radius:999px;background:#fff;color:var(--ink);box-shadow:0 6px 24px rgba(0,0,0,.18);font-size:13px}
.mock span{padding:0 8px;font-weight:600}
.mock a{text-decoration:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:600}
.mock a.on{background:var(--g)}
@media (max-width:760px){.mock{bottom:78px}}



/* Вариант 1: тёмный первый экран, сетка-дом из логотипа как главный образ */
.hdr{position:sticky;top:0;z-index:40;background:var(--ink);color:#fff;border-bottom:1px solid #2a2d2a}
.hdr .wrap{display:flex;align-items:center;gap:20px;height:76px}
.hdr .logo{flex:none}
.hdr .logo img{height:46px;width:auto}
.hdr nav{display:flex;gap:16px;font-size:14px;margin-right:auto;white-space:nowrap}
.hdr nav a{text-decoration:none;opacity:.8}.hdr nav a:hover{opacity:1}
.hdr .tel{font-weight:600;text-decoration:none;white-space:nowrap}
@media (max-width:1240px){.hdr nav{display:none}.hdr .logo{margin-right:auto}}
@media (max-width:760px){.hdr .tel,.hdr .btn{display:none}.hdr .logo img{height:36px}}

.hero{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;padding-top:72px;padding-bottom:88px}
.hero .eyebrow{color:#b6bcb6}
.hero h1{font-size:clamp(36px,5vw,62px);font-weight:800;margin-bottom:22px}
.hero h1 em{font-style:normal;color:var(--g)}
.hero .lead{font-size:19px;color:#c9cec9;max-width:560px;margin-bottom:34px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:56px;border-top:1px solid #333733}
.facts div{padding:20px 20px 0 0}
.facts b{display:block;font-size:22px;font-weight:700;line-height:1.2;margin-bottom:4px;white-space:nowrap}
.facts span{font-size:14px;color:#a5aba5}

/* Дом из квадратов: одна «деталь» встаёт на место */
.house{position:relative;width:100%;max-width:440px;margin-left:auto;aspect-ratio:1/1.02}
.house .roof{position:absolute;left:0;right:0;top:0;height:34%}
.house .grid{position:absolute;left:17%;right:17%;bottom:0;top:30%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:7%}
.house .grid i{background:var(--g)}
.house .grid i.e{background:transparent}
.house .grid i.w{background:#fff;animation:drop 2.4s cubic-bezier(.2,.8,.2,1) .4s both}
@keyframes drop{0%{transform:translate(160%,-120%) rotate(18deg);opacity:0}60%{opacity:1}100%{transform:none}}
.house .note{position:absolute;right:0;bottom:-56px;font-size:13px;color:#a5aba5;background:#222522;padding:8px 12px;border-left:3px solid var(--g)}

.hero-strip{height:14px}

/* Направления */
.dirs{display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr;gap:20px}
.dir.big{grid-row:span 2}
.dir.sm{min-height:250px}
.dir.sm h3{font-size:26px}
.dir{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:440px;padding:32px;color:#fff;text-decoration:none;overflow:hidden;border-radius:var(--r)}
.dir .ph{position:absolute;inset:0;transition:transform .5s}
.dir:hover .ph{transform:scale(1.03)}
.dir::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(23,25,23,.88))}
.dir>*:not(.ph){position:relative;z-index:1}
.dir .badge{position:absolute;top:24px;left:24px;z-index:1;background:var(--g);color:var(--ink);font-size:13px;font-weight:700;padding:5px 10px}
.dir h3{font-size:32px;margin-bottom:10px}
.dir ul{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:6px 16px;color:#d6dad6;font-size:15px}
.dir ul li{display:flex;align-items:center;gap:8px}
.dir .go{font-weight:600;display:inline-flex;gap:8px;align-items:center}
.dir .go::after{content:"→";color:var(--g)}

/* Цены */
.prices{display:grid;grid-template-columns:repeat(3,1fr);border:1.5px solid var(--line);border-radius:var(--r)}
.price{padding:32px 28px;border-right:1.5px solid var(--line);display:flex;flex-direction:column}
.price:last-child{border-right:0}
.price.hot{background:var(--ink);color:#fff;position:relative}
.price.hot .tag{position:absolute;top:-1px;right:24px;background:var(--g);color:var(--ink);font-size:12px;font-weight:700;padding:5px 10px}
.price h3{font-size:22px;margin-bottom:8px}
.price .sum{font-size:34px;font-weight:800;margin:18px 0 4px}
.price .sum small{font-size:16px;font-weight:500;opacity:.7}
.price ul{list-style:none;padding:0;margin:18px 0 26px;display:grid;gap:10px;font-size:15px}
.price li{display:flex;gap:10px;align-items:baseline}
.price li .sq{width:8px;height:8px;transform:translateY(-1px)}
.price .btn{margin-top:auto}
.price:not(.hot) .muted{color:var(--muted)}
.price.hot .muted{color:#a5aba5}

/* Объекты: фото вместо «до/после» */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.case{border-radius:var(--r);overflow:hidden;background:#fff;display:flex;flex-direction:column}
.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;cursor:zoom-in}
.shots .main{grid-column:1/-1;aspect-ratio:4/3}
.shots .ph:not(.main){aspect-ratio:4/3}
.shots .ph{transition:filter .2s}
.shots:hover .ph{filter:brightness(1.05)}
.count{position:absolute;right:12px;top:12px;z-index:1;font-size:12px;font-weight:600;padding:5px 10px;border-radius:3px;background:rgba(23,25,23,.72);color:#fff}
.case .body{padding:20px 22px 24px}
.case h3{font-size:20px;margin-bottom:6px}
.case .meta{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;color:var(--muted);margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line)}
.case .meta b{display:block;color:var(--ink);font-size:16px}
.case .city-tag{font-size:12px;font-weight:600;color:var(--muted)}

/* Галерея: фото и видео */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:12px}
.bento .ph{border-radius:var(--r);cursor:zoom-in;transition:filter .2s}
.bento .ph:hover{filter:brightness(1.06)}
.bento .w2{grid-column:span 2}.bento .h2{grid-row:span 2}
.play{position:absolute;left:50%;top:50%;width:60px;height:60px;margin:-30px 0 0 -30px;background:var(--g);display:grid;place-items:center;z-index:1;pointer-events:none;transition:transform .2s}
.play::after{content:"";border-left:17px solid var(--ink);border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px}
.ph:hover .play{transform:scale(1.08)}
.dur{position:absolute;right:12px;top:12px;z-index:1;font-size:12px;font-weight:700;padding:4px 8px;border-radius:3px;background:rgba(23,25,23,.72);color:#fff}
dialog.lb .play{display:none;width:84px;height:84px;margin:-42px 0 0 -42px}
dialog.lb.video .play{display:grid}

/* Соцсети: единые текстовые значки вместо чужих логотипов */
.soc{display:flex;flex-wrap:wrap;gap:8px}
.soc a{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 16px 0 6px;border-radius:999px;text-decoration:none;font-size:15px;font-weight:500;color:#fff;box-shadow:inset 0 0 0 1.5px #3a3f3a;transition:box-shadow .15s}
.soc a:hover{box-shadow:inset 0 0 0 1.5px var(--g)}
.soc b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:800;letter-spacing:.02em;background:#2a2d2a;color:#fff}
.soc a.main b{background:var(--g);color:var(--ink)}
.soc-note{font-size:12px;color:#6f756f;margin-top:12px;max-width:640px}

/* Как работаем: лента шагов */
.how{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}
.how-intro{position:sticky;top:110px}
.how-intro h2{font-size:clamp(30px,4vw,48px);margin-bottom:18px}
.how-intro p{color:#a5aba5;font-size:17px;margin-bottom:30px;max-width:420px}
.tl{position:relative;padding-left:44px}
.tl::before{content:"";position:absolute;left:6px;top:10px;bottom:30px;width:2px;background:#2e322e}
.tl-phase{position:relative;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#a5aba5;padding:4px 0 14px}
.tl-phase+.tl-step{border-top:0}
.tl-phase:not(:first-child){margin-top:28px}
.tl-phase::before{content:"";position:absolute;left:-44px;top:3px;width:14px;height:14px;background:repeating-linear-gradient(-45deg,var(--g) 0 3px,var(--ink) 3px 6px);box-shadow:0 0 0 2px var(--g)}
.tl-step{position:relative;display:grid;grid-template-columns:52px 1fr;gap:8px;padding:22px 0;border-top:1px solid #2a2d2a}
.tl-step::before{content:"";position:absolute;left:-42px;top:29px;width:10px;height:10px;background:var(--g)}
.tl-n{font-size:15px;font-weight:700;color:var(--g);padding-top:5px}
.tl-step h3{font-size:22px;margin-bottom:6px}
.tl-step p{color:#a5aba5;font-size:16px}
.tl-step small{display:block;margin-top:10px;font-size:13px;color:#d6dad6}
.tl-step small::before{content:"";display:inline-block;width:6px;height:6px;background:var(--g);margin-right:8px;vertical-align:2px}
.tl-end{position:relative;margin-top:8px;padding:20px 24px;background:var(--g);color:var(--ink);font-weight:700;font-size:18px}
.tl-end::before{content:"";position:absolute;left:-46px;top:50%;width:18px;height:18px;margin-top:-9px;background:#fff}

/* С чего начать: что нужно от клиента */
.need{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.need-intro{position:sticky;top:104px}
.need-intro h2{font-size:clamp(28px,4vw,44px);margin-bottom:16px}
.weeks{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:28px 0 8px}
.weeks i{height:10px;background:repeating-linear-gradient(-45deg,var(--g) 0 6px,var(--ink) 6px 12px)}
.weeks-l{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}
.todo{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.todo li{display:grid;grid-template-columns:56px 1fr auto;gap:20px;align-items:start;padding:24px;border:1.5px solid var(--line);border-radius:8px;background:#fff}
.todo li:first-child{border-color:var(--g);box-shadow:inset 0 0 0 1px var(--g)}
.todo .ic{width:56px;height:56px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.todo .ic i{background:var(--line)}
.todo .ic i.on{background:var(--g)}
.todo .when{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--g);margin-bottom:6px}
.todo h3{font-size:20px;margin-bottom:6px}
.todo p{color:var(--muted);font-size:15px}
.todo .badge{font-size:12px;font-weight:600;padding:6px 11px;border-radius:999px;background:var(--ink);color:#fff;white-space:nowrap}
.calm{position:relative;overflow:hidden;margin-top:12px;border-radius:8px;background:var(--ink);color:#fff;padding:28px 28px 28px 40px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.calm .stripes{position:absolute;left:0;top:0;bottom:0;width:12px}
.calm p{color:#c9cec9}
.calm b{display:block;font-size:28px;margin-top:6px;letter-spacing:-.01em}

/* Расчёт */
.calc-sec{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.calc-card{background:#fff;border:1.5px solid var(--line);border-radius:8px;padding:32px;box-shadow:0 20px 50px rgba(23,25,23,.07)}
.calc-sec ul{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px}
.calc-sec li{display:flex;gap:12px;align-items:baseline}

/* Гарантии */
.guar{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.guar div{padding:26px 24px;border:1.5px solid var(--line);border-radius:var(--r)}
.guar b{display:block;font-size:40px;font-weight:800;line-height:1;margin-bottom:10px}
.guar b span{color:var(--g)}

/* Отзывы */
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rev{padding:28px;background:var(--soft);border-radius:var(--r)}
.rev p{font-size:16px;margin-bottom:18px}
.rev .who{display:flex;gap:12px;align-items:center;font-size:14px}
.rev .ava{width:42px;height:42px;border-radius:50%}
.stars{color:var(--g);letter-spacing:2px;margin-bottom:12px}

/* Финальная форма */
.final{background:var(--ink);color:#fff}
.final .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.final h2{font-size:clamp(30px,4vw,48px);margin-bottom:16px}
.final .lead{color:#c9cec9;margin-bottom:28px}
.final form{background:#fff;color:var(--ink);padding:32px;border-radius:8px}
.contacts{display:grid;gap:10px;font-size:16px}
.contacts>a{text-decoration:none;font-size:26px;font-weight:700}
.ftr{background:#0f110f;color:#8c928c;font-size:14px;padding:32px 0}
.ftr .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.ftr img{height:34px}
dialog.lb .muted{color:#a5aba5}

@media (max-width:980px){
  .hero .wrap,.calc-sec,.final .wrap{grid-template-columns:1fr}
  .house{max-width:280px;margin:0 auto}
  .dirs,.prices,.cases,.revs{grid-template-columns:1fr}
  .price{border-right:0;border-bottom:1.5px solid var(--line)}
  .how,.need{grid-template-columns:1fr;gap:40px}
  .how-intro{position:static}
  .need-intro{position:static}
  .dir.big{grid-row:auto}
  .guar{grid-template-columns:1fr 1fr}
  .bento{grid-template-columns:1fr 1fr;grid-auto-rows:160px}
}
@media (max-width:600px){
  .facts{grid-template-columns:1fr 1fr;row-gap:18px}
  .guar{grid-template-columns:1fr}
  .tl{padding-left:34px}
  .tl-phase::before{left:-34px}
  .tl-step::before{left:-32px}
  .tl-end::before{left:-36px}
  .tl-step{grid-template-columns:40px 1fr}
  .tl-step h3{font-size:19px}
  .soc a{height:40px;font-size:14px}
  .todo li{grid-template-columns:44px 1fr;gap:16px;padding:20px}
  .todo .ic{width:44px;height:44px;gap:3px}
  .todo .badge{grid-column:2;justify-self:start}
  .calm{grid-template-columns:1fr;padding:24px 22px 24px 34px}
  .calm b{font-size:24px}
  .dir.sm{min-height:240px}
  .dir{min-height:340px;padding:24px}
  .calc-card,.final form{padding:22px}
  .hero .cta .btn{width:100%}
  .house .note{display:none}
}

.hdr .city{display:inline-flex;gap:2px;margin:0}
.hdr .city a{text-decoration:none;opacity:.9;line-height:1.5}
.hdr .city a.on{opacity:1}
.hero h1 em{white-space:nowrap}
.skip{position:fixed;top:8px;left:8px;z-index:80;padding:12px;background:#fff;transform:translateY(-150%)}
.skip:focus{transform:none}
.todo .when{color:#007523}
.range-row input[type=range]{min-width:0}
:focus-visible{outline:3px solid #1073dc;outline-offset:3px}
.opt:has(:focus-visible){outline:3px solid #1073dc;outline-offset:3px}
[id]{scroll-margin-top:90px}
@media (max-width:980px){.hero .wrap,.calc-sec,.final .wrap,.prices{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.mbar{grid-template-columns:1fr}.hdr .wrap{gap:8px;justify-content:space-between}}
@media (max-width:400px){.hdr .wrap{padding-inline:12px}.hdr .logo img{height:30px}.hdr .city a{font-size:13px;padding:6px 8px}.hero h1{font-size:clamp(28px,9vw,36px)}.opts.c2{grid-template-columns:1fr}.price .btn{white-space:normal;text-align:center}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
