:root{
  --paper:#F7F7F5; --surface:#FFFFFF; --ink:#141414; --ink-2:#3B3C3F;
  --grey:#6C717A; --grey-2:#9CA0A7; --line:#E2E3E2; --line-strong:#C8CACC;
  --wine:#6B1D2B; --wine-hover:#561623; --on-wine:#FFFFFF; --wine-soft:#F4EDEE;
  --danger:#6B1D2B;
  --f-display:"Inter Tight","Helvetica Neue",Arial,sans-serif;
  --f-body:"Manrope","Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(16px,4vw,48px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --paper:#111113; --surface:#18181B; --ink:#EDEDEA; --ink-2:#C9C9C5;
    --grey:#8F949C; --grey-2:#696D74; --line:#2A2B2F; --line-strong:#3B3D42;
    --wine:#A8445A; --wine-hover:#BD5569; --on-wine:#FFFFFF; --wine-soft:#26181C; --danger:#D07083;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#111113; --surface:#18181B; --ink:#EDEDEA; --ink-2:#C9C9C5;
  --grey:#8F949C; --grey-2:#696D74; --line:#2A2B2F; --line-strong:#3B3D42;
  --wine:#A8445A; --wine-hover:#BD5569; --on-wine:#FFFFFF; --wine-soft:#26181C; --danger:#D07083;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--wine);outline-offset:2px}
.num,.tnum{font-variant-numeric:tabular-nums}
.wrap{max-width:1320px;margin:0 auto;padding-inline:var(--gutter)}

/* ---------- шапка ---------- */
.masthead{padding-block:28px 0}
.meta-row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);padding-bottom:18px;border-bottom:1px solid var(--line)}
.meta-row b{color:var(--ink);font-weight:600}
h1{font-family:var(--f-display);font-weight:600;text-transform:uppercase;letter-spacing:-.025em;line-height:.95;font-size:clamp(30px,6.2vw,76px);margin:40px 0 36px;text-wrap:balance;max-width:14ch}
h1 span{color:var(--wine)}
.label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);font-weight:500}

/* сегменты */
.segments{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line-strong);background:var(--surface)}
.seg{appearance:none;border:0;border-right:1px solid var(--line-strong);background:transparent;text-align:left;padding:18px 20px 20px;display:flex;flex-direction:column;gap:6px;min-height:104px;transition:background .15s,color .15s}
.seg:last-child{border-right:0}
.seg:hover{background:var(--wine-soft)}
.seg .seg-idx{font-size:11px;letter-spacing:.14em;color:var(--grey)}
.seg .seg-name{font-family:var(--f-display);font-size:clamp(18px,2.2vw,26px);font-weight:600;text-transform:uppercase;letter-spacing:-.01em;line-height:1}
.seg .seg-note{font-size:12.5px;color:var(--grey);line-height:1.4}
.seg[aria-pressed="true"]{background:var(--wine);color:var(--on-wine)}
.seg[aria-pressed="true"] .seg-idx,.seg[aria-pressed="true"] .seg-note{color:rgba(255,255,255,.72)}

/* этапы */
.stepper-scroll{overflow-x:auto;margin-top:32px;scrollbar-width:none}
.stepper-scroll::-webkit-scrollbar{display:none}
.stepper{display:flex;justify-content:space-between;gap:clamp(12px,1.1vw,18px);min-width:max-content;padding-bottom:4px}
.s-col{flex:none;border-top:2px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.s-col.done,.s-col.current{border-top-color:var(--wine)}
.s-group{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);font-weight:500}
.s-col.current .s-group{color:var(--wine)}
.s-col ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.stepper button{appearance:none;background:none;border:0;text-align:left;padding:3px 0;display:flex;align-items:baseline;gap:8px;color:var(--grey-2)}
.stepper .s-no{font-family:var(--f-display);font-size:13px;font-weight:600;min-width:18px}
.stepper .s-name{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;white-space:nowrap}
.stepper li.done button{color:var(--ink-2)}
.stepper li.current button{color:var(--ink)}
.stepper li.current .s-no{color:var(--wine)}
.stepper li.current .s-name{font-weight:600}
.stepper button:hover{color:var(--ink)}

/* ---------- макет ---------- */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(24px,4vw,64px);padding-block:40px 120px;align-items:start}
.sheet{min-width:0}
.sheet-head{display:grid;grid-template-columns:auto 1fr;gap:6px 24px;align-items:end;padding-bottom:20px;border-bottom:1px solid var(--ink)}
.sheet-no{font-family:var(--f-display);font-size:clamp(44px,6vw,72px);font-weight:500;line-height:.85;color:var(--wine);letter-spacing:-.03em;grid-row:span 2}
.sheet-head h2{font-family:var(--f-display);font-size:clamp(22px,3vw,32px);font-weight:600;text-transform:uppercase;letter-spacing:-.01em;margin:0;line-height:1}
.sheet-head .lead{margin:0;color:var(--grey);font-size:14px;max-width:62ch}
.sheet-body{display:flex;flex-direction:column;gap:40px;padding-top:32px}
.block{display:flex;flex-direction:column;gap:16px}
.block-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.block-title h3{margin:0;font-family:var(--f-display);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.block-title .hint{font-size:12px;color:var(--grey)}
.note{font-size:13px;color:var(--grey);max-width:66ch;margin:0}

/* переключатель режима */
.toggle{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--line-strong);background:var(--surface);align-self:flex-start}
.toggle button{appearance:none;border:0;border-right:1px solid var(--line-strong);background:none;padding:11px 22px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--grey);white-space:nowrap}
.toggle button:last-child{border-right:0}
.toggle button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.toggle.wine button[aria-pressed="true"]{background:var(--wine);color:var(--on-wine)}

/* поля */
.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px 24px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label,.field .flabel{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);font-weight:500}
.input{display:flex;align-items:stretch;border:1px solid var(--line-strong);background:var(--surface);transition:border-color .15s}
.input:focus-within{border-color:var(--ink)}
.input input,.input select{border:0;background:transparent;padding:12px 12px;width:100%;min-width:0;font-size:16px;font-variant-numeric:tabular-nums;outline:none}
.input select{appearance:none;cursor:pointer}
.input .unit{display:flex;align-items:center;padding:0 12px;color:var(--grey);font-size:13px;border-left:1px solid var(--line);white-space:nowrap}
.field.invalid .input{border-color:var(--danger)}
.err{font-size:12px;color:var(--danger);min-height:0}
.err:empty{display:none}
.sub{font-size:12px;color:var(--grey)}

/* счётчик */
.counter{display:inline-grid;grid-template-columns:40px 56px 40px;border:1px solid var(--line-strong);background:var(--surface);height:42px}
.counter button{appearance:none;border:0;background:none;font-size:18px;line-height:1;color:var(--ink-2)}
.counter button:hover{background:var(--wine-soft);color:var(--wine)}
.counter button:disabled{color:var(--grey-2);background:none;cursor:default}
.counter input{border:0;border-inline:1px solid var(--line);text-align:center;width:100%;background:transparent;font-variant-numeric:tabular-nums;font-size:15px;outline:none}
.counter.sm{grid-template-columns:32px 44px 32px;height:34px}

/* список помещений */
.rows{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:12px 20px;align-items:center;padding-block:12px;border-bottom:1px solid var(--line)}
.row .rname{font-weight:500}
.row .rname .sub{display:block;font-weight:400}
.row .input input{padding:9px 10px;font-size:15px}
.icon-btn{appearance:none;background:none;border:1px solid transparent;width:36px;height:36px;color:var(--grey);font-size:18px;line-height:1}
.icon-btn:hover{border-color:var(--line-strong);color:var(--wine)}
.row.custom{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto}
.count-line{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.count-line .clabel{font-weight:500}

/* кнопки */
.btn{appearance:none;border:1px solid var(--ink);background:none;padding:15px 26px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;display:inline-flex;align-items:center;gap:12px;transition:background .15s,color .15s,border-color .15s}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.primary{background:var(--wine);border-color:var(--wine);color:var(--on-wine)}
.btn.primary:hover{background:var(--wine-hover);border-color:var(--wine-hover)}
.btn.ghost{border-color:var(--line-strong);color:var(--ink-2)}
.btn.ghost:hover{border-color:var(--ink);background:none;color:var(--ink)}
.btn.link{border:0;padding:10px 0;color:var(--wine)}
.btn.link:hover{background:none;color:var(--wine-hover);text-decoration:underline;text-underline-offset:4px}
.btn .arr{font-family:var(--f-display);font-size:15px;letter-spacing:0}
.nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:28px;margin-top:48px;border-top:1px solid var(--line)}
.nav .spacer{flex:1}

/* спецификация (ключ — значение) */
.spec{border-top:1px solid var(--ink);display:flex;flex-direction:column}
.spec .sr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding-block:11px;border-bottom:1px solid var(--line);align-items:baseline}
.spec .sr .k{color:var(--ink-2)}
.spec .sr .k small{display:block;color:var(--grey);font-size:12px}
.spec .sr .v{font-variant-numeric:tabular-nums;text-align:right;font-weight:500;white-space:nowrap}
.spec .sr.total{border-bottom:1px solid var(--ink)}
.spec .sr.total .k{font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--ink)}
.spec .sr.total .v{color:var(--wine);font-family:var(--f-display);font-size:22px;font-weight:600}
.spec .sr.muted .v,.spec .sr.muted .k{color:var(--grey)}

/* таблица позиций */
.table-scroll{overflow-x:auto}
table.items{width:100%;border-collapse:collapse;min-width:560px}
table.items th{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);font-weight:500;text-align:right;padding:0 0 10px 12px;border-bottom:1px solid var(--ink);white-space:nowrap}
table.items th:first-child{text-align:left;padding-left:0}
table.items td{padding:12px 0 12px 12px;border-bottom:1px solid var(--line);text-align:right;vertical-align:middle;font-variant-numeric:tabular-nums;white-space:nowrap}
table.items td:first-child{text-align:left;padding-left:0;white-space:normal}
table.items td .sub{display:block;white-space:normal}
table.items tr.off td{color:var(--grey-2)}
table.items tfoot td{border-bottom:1px solid var(--ink);font-weight:600;padding-top:14px}
table.items tfoot td:last-child{color:var(--wine);font-family:var(--f-display);font-size:18px}
.missing{color:var(--grey);font-size:12px;letter-spacing:.02em;display:inline-flex;align-items:center;gap:6px}
.missing::before{content:"";width:6px;height:6px;border:1px solid var(--wine);display:inline-block}
.cell-input{display:inline-flex;justify-content:flex-end}
.cell-input .input{width:110px}
.cell-input .input input{padding:7px 8px;text-align:right;font-size:14px}

/* чекбокс */
.check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.check input{appearance:none;width:18px;height:18px;border:1px solid var(--line-strong);background:var(--surface);margin:0;display:grid;place-content:center;cursor:pointer;flex:none}
.check input:checked{background:var(--wine);border-color:var(--wine)}
.check input:checked::after{content:"";width:8px;height:4px;border-left:2px solid var(--on-wine);border-bottom:2px solid var(--on-wine);transform:rotate(-45deg) translate(1px,-1px)}
.check input:disabled{opacity:.4;cursor:default}

/* карточки выбора (материалы, радиаторы) */
.options{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}
.opt{appearance:none;text-align:left;background:var(--surface);border:0;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);padding:18px;display:flex;flex-direction:column;gap:8px;min-height:120px;position:relative}
.opt .o-seg{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
.opt .o-name{font-family:var(--f-display);font-weight:600;font-size:17px;line-height:1.15}
.opt .o-price{margin-top:auto;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.opt[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--wine)}
.opt[aria-pressed="true"] .o-price{color:var(--wine);font-weight:600}
.opt[aria-pressed="true"]::after{content:"";position:absolute;top:14px;right:14px;width:8px;height:8px;background:var(--wine)}
.opt:disabled{cursor:default;background:transparent}
.opt:disabled .o-name,.opt:disabled .o-price{color:var(--grey-2)}

/* санузлы */
.bath{border:1px solid var(--line);background:var(--surface)}
.bath-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;flex-wrap:wrap}
.bath-head .bname{font-family:var(--f-display);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:14px}
.bath-head .bmeta{color:var(--grey);font-size:13px}
.bath-body{border-top:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:16px}

/* ---------- смета сбоку ---------- */
.aside{position:sticky;top:calc(env(safe-area-inset-top,0px) + 24px);border:1px solid var(--line-strong);background:var(--surface)}
.aside-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.aside-head .label b{color:var(--wine);font-weight:600}
.aside ul{list-style:none;margin:0;padding:6px 20px}
.aside li{display:flex;justify-content:space-between;gap:12px;padding-block:9px;border-bottom:1px solid var(--line);font-size:13.5px}
.aside li:last-child{border-bottom:0}
.aside li .v{font-variant-numeric:tabular-nums;white-space:nowrap}
.aside li.na .v{color:var(--grey);font-size:12px}
.aside-total{padding:18px 20px 20px;border-top:1px solid var(--ink);display:flex;flex-direction:column;gap:4px}
.aside-total .big{font-family:var(--f-display);font-weight:600;font-size:30px;letter-spacing:-.02em;color:var(--wine);font-variant-numeric:tabular-nums;line-height:1.1}
.aside-foot{padding:0 20px 18px;font-size:12px;color:var(--grey)}

/* мобильная панель итога */
.bottom-bar{display:none}

/* ---------- итог ---------- */
.result-hero{padding-block:8px 32px;display:flex;flex-direction:column;gap:14px}
.result-total{font-family:var(--f-display);font-weight:600;font-size:clamp(44px,9vw,104px);letter-spacing:-.04em;line-height:.9;color:var(--wine);font-variant-numeric:tabular-nums;word-break:break-word}
.stamp{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--ink)}
.stamp div{padding:10px 14px;border-right:1px solid var(--line-strong);display:flex;flex-direction:column;gap:2px;min-width:0}
.stamp div:last-child{border-right:0}
.stamp .v{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc{border-top:1px solid var(--ink)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-btn{appearance:none;background:none;border:0;width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) auto 28px;gap:12px;align-items:center;padding:18px 0;text-align:left}
.acc-btn .a-no{font-family:var(--f-display);font-size:12px;color:var(--grey);font-weight:600}
.acc-btn .a-name{font-family:var(--f-display);font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:16px}
.acc-btn .a-val{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.acc-btn .a-val.na{color:var(--grey);font-weight:400;font-size:13px}
.acc-btn .a-sign{width:14px;height:14px;position:relative;justify-self:end}
.acc-btn .a-sign::before,.acc-btn .a-sign::after{content:"";position:absolute;background:var(--ink);left:0;top:6px;width:14px;height:1.5px;transition:transform .2s}
.acc-btn .a-sign::after{transform:rotate(90deg)}
.acc-item.open .a-sign::after{transform:rotate(0)}
.acc-item.open .a-name{color:var(--wine)}
.acc-body{padding:0 0 24px 48px}
.disclaimer{margin-top:32px;padding-top:18px;border-top:1px solid var(--line);font-size:13px;color:var(--grey);max-width:70ch}
.excluded{font-size:13px;color:var(--grey);display:flex;flex-direction:column;gap:6px}


/* ручная стоимость, смета, итог — дополнения */
.ov-input{width:150px}
.aside{max-height:calc(100vh - 48px);overflow:auto}
.aside li.subtotal{font-weight:600;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-top:-1px}
.aside .ov-mark{color:var(--wine)}
/* цена и количество за единицу: «ввести свою цену» / «изменить вручную» */
.pc{display:inline-flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;max-width:100%}
.pc-v{font-variant-numeric:tabular-nums;white-space:nowrap}
.pc-label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);font-weight:500}
.pc .sub{font-size:12px;color:var(--grey);white-space:normal;font-weight:400}
.pc-link{font-size:12px;font-weight:400}
.cell-input .input.pc-input{width:176px}
.spec .sr.pc-row{align-items:center}
.spec .sr.pc-row .v{white-space:normal;font-weight:500}
.options.compact .opt{min-height:0;padding:14px 16px}
.link-inline{appearance:none;background:none;border:0;padding:0;font:inherit;color:var(--wine);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.spec .sr.long .v{white-space:normal;max-width:60%}
.aside-total .label:last-child:empty{display:none}
.acc-btn .a-name .sub{display:block;font-family:var(--f-body);text-transform:none;letter-spacing:0;font-weight:400;font-size:12px;color:var(--grey)}
.acc-btn .a-name .sub:empty{display:none}
.acc-btn .a-val .na{color:var(--grey);font-weight:400;font-size:13px}
.stamp.kpi{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}
.stamp.kpi div:nth-child(-n+2){border-bottom:1px solid var(--line-strong)}
.stamp.kpi div:nth-child(2n){border-right:0}
.stamp.kpi .v{font-family:var(--f-display);font-size:20px;letter-spacing:-.01em}
.stamp.kpi .v.accent{color:var(--wine)}
@media (max-width:1040px){
  .layout{grid-template-columns:minmax(0,1fr)}
  .aside{display:none}
  .bottom-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--surface);border-top:1px solid var(--ink);padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom,0px));justify-content:space-between;align-items:center;gap:16px}
  .bottom-bar .big{font-family:var(--f-display);font-weight:600;font-size:22px;color:var(--wine);font-variant-numeric:tabular-nums;line-height:1.1}
  .bottom-bar .btn{padding:12px 16px}
}
@media (max-width:640px){
  body{font-size:14.5px}
  h1{margin:28px 0 24px}
  .segments{grid-template-columns:1fr}
  .seg{border-right:0;border-bottom:1px solid var(--line-strong);min-height:0;flex-direction:row;align-items:baseline;gap:14px;padding:14px 16px}
  .seg:last-child{border-bottom:0}
  .seg .seg-note{display:none}
  .sheet-head{grid-template-columns:1fr}
  .sheet-no{grid-row:auto}
  .row,.row.custom{grid-template-columns:minmax(0,1fr) auto}
  .row > .rinput{grid-column:1 / 2}
  .stamp{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stamp div{border-bottom:1px solid var(--line-strong)}
  .stamp.kpi{grid-template-columns:1fr}
  .stamp.kpi div{border-right:0}
  .acc-body{padding-left:0}
  .acc-btn{grid-template-columns:28px minmax(0,1fr) auto 20px}
  .nav .btn{flex:1;justify-content:center}
  .nav .spacer{display:none}
}

/* ======================================================================
   САЙТ: шапка, финальный блок, подвал, окно выбора мессенджера
   ====================================================================== */
.skip-link{position:absolute;left:-9999px;top:0}
.skip-link:focus{left:16px;top:16px;z-index:200;background:var(--surface);padding:10px 14px;border:1px solid var(--ink)}
.btn.sm{padding:10px 16px;font-size:11px;gap:8px}
.site-header{border-bottom:1px solid var(--line);background:var(--paper)}
.site-header-in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;padding-block:10px}
.site-brand{font-family:var(--f-display);font-weight:600;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap}
.site-nav{display:flex;align-items:center;gap:10px}
.site-link{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--ink-2);text-decoration:none;padding:10px 10px}
.site-link:hover{color:var(--wine)}
.site-link sup,.site-final sup,.site-footer sup,.cta-inline sup{font-size:.7em;color:var(--grey)}
.site-menu-btn{display:none;appearance:none;background:none;border:1px solid var(--line-strong);padding:10px 14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink)}
.site-calculator .masthead .meta-row{display:none}
.site-calculator .masthead{padding-block:8px 0}

/* итог калькулятора: мягкий призыв */
.cta-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:center;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding-block:24px}
.cta-inline .cta-title{margin:0 0 4px;font-family:var(--f-display);font-weight:600;font-size:18px;letter-spacing:-.01em}
.cta-inline .note{margin:0}
.cta-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cta-inline .btn.link{grid-column:1 / -1;justify-self:start;padding-block:0}

.site-final{padding-block:8px 64px}
.site-final-in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px 64px;align-items:end;border-top:1px solid var(--ink);padding-top:32px}
.site-final h2{font-family:var(--f-display);font-weight:600;font-size:clamp(24px,3vw,36px);letter-spacing:-.02em;line-height:1.05;margin:10px 0 12px;text-wrap:balance}
.site-final .note{max-width:52ch}
.site-final-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}
.site-final-actions .btn.link{flex-basis:100%;text-align:right;justify-content:flex-end;padding-block:4px 0}

.site-footer{border-top:1px solid var(--line);padding-block:32px 40px;background:var(--paper)}
.site-footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:24px}
.site-footer-name{font-family:var(--f-display);font-weight:600;font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.site-footer-sub{color:var(--grey);font-size:13px;margin-top:6px}
.site-footer-item{display:flex;flex-direction:column;gap:6px}
.site-footer a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-strong);align-self:flex-start}
.site-footer a:hover{color:var(--wine);border-bottom-color:var(--wine)}
.site-legal{font-size:12px;color:var(--grey);margin:24px 0 0;max-width:90ch}
.site-legal + .site-legal{margin-top:8px}

/* окно выбора мессенджера */
html.modal-open{overflow:hidden}
.order-modal{position:fixed;inset:0;z-index:100;background:rgba(17,17,19,.48);display:flex;align-items:center;justify-content:center;padding:16px}
.order-sheet{background:var(--surface);border:1px solid var(--ink);width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow:auto;padding:24px;display:flex;flex-direction:column;gap:18px}
.order-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.order-close{appearance:none;background:none;border:1px solid transparent;width:40px;height:40px;font-size:22px;line-height:1;color:var(--grey)}
.order-close:hover{border-color:var(--line-strong);color:var(--wine)}
.order-sheet h2{margin:0;font-family:var(--f-display);font-weight:600;font-size:24px;letter-spacing:-.01em;text-transform:uppercase}
.order-message{border-left:2px solid var(--wine);padding:4px 0 4px 14px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.order-message p{margin:0;font-size:15px}
.order-list{display:flex;flex-direction:column;border-top:1px solid var(--line-strong)}
.order-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name arr" "sub arr";gap:2px 16px;align-items:center;min-height:64px;padding:12px 4px;border-bottom:1px solid var(--line-strong);color:var(--ink);text-decoration:none;cursor:pointer}
.order-item .m-name{grid-area:name;font-family:var(--f-display);font-weight:600;font-size:17px}
.order-item .m-sub{grid-area:sub;font-size:12.5px;color:var(--grey)}
.order-item .m-arr{grid-area:arr;font-family:var(--f-display);font-size:18px;color:var(--wine)}
.order-item:hover,.order-item:focus-visible{background:var(--wine-soft)}
.order-item:hover .m-name{color:var(--wine)}
.order-hint{font-size:13px;color:var(--ink-2);background:var(--wine-soft);padding:12px 14px}
.order-phone{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--grey)}
.order-phone a{color:var(--ink);font-variant-numeric:tabular-nums}
.order-toast{margin:0;font-size:13px;color:var(--wine)}

@media (max-width:900px){
  .site-menu-btn{display:inline-flex}
  .site-header-in{flex-wrap:wrap}
  .site-nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:8px;padding-bottom:12px}
  .site-nav.open{display:flex}
  .site-nav .site-link{padding:12px 0;border-bottom:1px solid var(--line)}
  .site-nav .btn{justify-content:center;padding:14px 16px}
  .site-final-in{grid-template-columns:1fr}
  .site-final-actions{justify-content:flex-start}
  .site-final-actions .btn.link{text-align:left;justify-content:flex-start}
  .site-footer-grid{grid-template-columns:1fr}
}
@media (max-width:1040px){
  .site-footer{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:640px){
  .cta-inline{grid-template-columns:1fr}
  .cta-actions .btn,.site-final-actions .btn:not(.link){flex:1 1 100%;justify-content:center}
  .order-modal{align-items:flex-end;padding:0}
  .order-sheet{max-width:none;max-height:92vh;border-inline:0;border-bottom:0;padding:20px 16px calc(20px + env(safe-area-inset-bottom,0px))}
  .order-item{min-height:68px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ======================================================================
   ПЕРВЫЙ ШАГ (площадь вверху), нижняя панель, «Начать сначала»
   ====================================================================== */
.start{margin:0 0 28px;max-width:520px}
.start-field label,.start-field .flabel{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-weight:600}
.start-field .input input{font-family:var(--f-display);font-size:28px;font-weight:600;padding-block:12px}
.start-exact{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.start-exact b{font-family:var(--f-display);font-size:28px;font-weight:600}
.start-label{margin-bottom:10px;color:var(--ink);font-weight:600}
.sheet-head .lead:empty{display:none}
.aside-reset{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;padding:12px 0 0;font-size:13px;color:var(--grey)}
.bb-actions{display:flex;gap:6px;align-items:center;flex:none}
.bottom-bar .label{white-space:nowrap}
.bottom-bar .bb-reset{border-color:var(--wine);color:var(--wine);white-space:nowrap}
.bottom-bar .bb-reset:hover{background:var(--wine);color:var(--on-wine)}
.bottom-bar .bb-arrow{width:44px;height:44px;padding:0;justify-content:center;font-family:var(--f-display);font-size:18px;letter-spacing:0}
.bottom-bar .bb-next{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.bottom-bar .bb-next:hover{background:var(--ink-2);border-color:var(--ink-2)}
.bottom-bar .bb-arrow:disabled{opacity:.35;cursor:default;background:none;color:var(--ink-2);border-color:var(--line-strong)}
.bb-s{display:none}
.bb-confirm{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.3}
@media (max-width:1040px){ .bottom-bar .bb-reset{height:44px;padding:0 14px} }
@media (max-width:640px){
  .start{margin-bottom:22px}
  .stepper-scroll{display:none}
  .masthead{padding-bottom:4px}
}
@media (max-width:440px){
  .bb-l{display:none}.bb-s{display:inline}
  .bottom-bar{gap:10px}
  .bottom-bar .big{font-size:19px}
  .bottom-bar .bb-reset{padding:0 10px;font-size:11px;letter-spacing:.1em}
  .bottom-bar .bb-arrow{width:40px}
}

/* ======================================================================
   ТАБЛИЦЫ ПОЗИЦИЙ НА ТЕЛЕФОНЕ: карточки без горизонтальной прокрутки
   (подписи колонок подставляет app.js в data-label)
   ====================================================================== */
@media (max-width:640px){
  html,body{overflow-x:hidden}
  .table-scroll{overflow:visible}
  table.items{min-width:0;display:block}
  table.items thead{display:none}
  table.items tbody,table.items tfoot{display:block}
  table.items tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 0;border-bottom:1px solid var(--line)}
  table.items td,table.items td:first-child{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0;border:0;text-align:right;white-space:normal;grid-column:1 / -1;min-width:0}
  table.items td:first-child{display:block;text-align:left;font-weight:500}
  table.items td[data-label]::before{content:attr(data-label);flex:none;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);font-weight:500;text-align:left}
  table.items td:empty{display:none}
  table.items td .pc{align-items:flex-end}
  table.items td .cell-input{flex-wrap:wrap;justify-content:flex-end}
  table.items tbody td:last-child:not([data-label]):not(:first-child){grid-column:2;grid-row:1;align-self:start}
  table.items tbody tr.has-remove td:first-child{grid-column:1}
  table.items tfoot tr{border-bottom:1px solid var(--ink);padding-top:12px}
  table.items tfoot td,table.items tfoot td:first-child{grid-column:auto;display:block}
  table.items tfoot td:last-child{text-align:right}
  table.items td[colspan="4"],table.items td[colspan="5"]{grid-column:1 / -1}
  /* корпусная мебель: полное название позиции, поля в ширину экрана */
  table.items td .input select{white-space:normal;text-overflow:clip}
  table.items td:first-child .input{width:100%}
  table.items td:first-child .sub{margin-top:6px}
  table.items td .cf-qty{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
}

/* ======================================================================
   ИТОГ: три показателя за м², блок PDF
   ====================================================================== */
.stamp.kpi.kpi3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stamp.kpi.kpi3 div{border-bottom:0;border-right:1px solid var(--line-strong)}
.stamp.kpi.kpi3 div:last-child{border-right:0}
.pdf-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 32px;align-items:center;border-top:1px solid var(--ink);padding-block:24px}
.pdf-inline .cta-title{margin:0 0 4px;font-family:var(--f-display);font-weight:600;font-size:18px;letter-spacing:-.01em}
.pdf-inline .note{margin:0}
.btn[aria-busy="true"]{opacity:.6;cursor:progress}
@media (max-width:640px){
  .stamp.kpi.kpi3{grid-template-columns:1fr}
  .stamp.kpi.kpi3 div{border-right:0;border-bottom:1px solid var(--line-strong)}
  .stamp.kpi.kpi3 div:last-child{border-bottom:0}
  .pdf-inline{grid-template-columns:1fr}
  .pdf-inline .btn{flex:1 1 100%;justify-content:center}
}
/* окно мессенджеров: расчёт в PDF */
.order-pdf{border:1px solid var(--line-strong);padding:14px;display:flex;flex-direction:column;gap:12px}
.order-pdf-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.order-pdf-sum{font-variant-numeric:tabular-nums;font-weight:600;font-size:13.5px;color:var(--wine)}
.order-pdf-actions{display:flex;gap:8px;flex-wrap:wrap}
.order-pdf-hint{margin:0;font-size:12.5px;color:var(--ink-2);line-height:1.45}
@media (max-width:640px){ .order-pdf-actions .btn{flex:1 1 0;justify-content:center} }

/* ======================================================================
   ПОМЕЩЕНИЯ: удаление «×»; ПАРТНЁРЫ: карточка товара производителя
   ====================================================================== */
.icon-btn.rm{justify-self:end;width:40px;height:40px;font-size:20px;color:var(--grey-2)}
.icon-btn.rm:hover,.icon-btn.rm:focus-visible{color:var(--wine);border-color:var(--line-strong)}
.add-rooms{display:flex;flex-wrap:wrap;gap:0 24px}

.partners{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.partner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);border:1px solid var(--line-strong);background:var(--surface)}
.partner.selected{box-shadow:inset 0 0 0 2px var(--wine)}
.pt-img{border-right:1px solid var(--line);min-height:100%;background:var(--wine-soft)}
.pt-img img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:3/2}
.pt-body{padding:16px 18px;display:flex;flex-direction:column;gap:4px;min-width:0}
.pt-brand{color:var(--ink);font-weight:600;letter-spacing:.2em}
.pt-name{font-family:var(--f-display);font-weight:600;font-size:17px;line-height:1.15;margin-top:6px}
.pt-variant{font-size:13px;color:var(--grey)}
.pt-price{margin-top:10px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--wine)}
.pt-old{color:var(--grey);font-weight:400;text-decoration:line-through;margin-right:4px}
.pt-promo{font-size:12px;color:var(--ink-2)}
.pt-actions{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:12px;flex-wrap:wrap}
@media (max-width:640px){
  .partners{grid-template-columns:1fr}
  .partner{grid-template-columns:1fr}
  .pt-img{border-right:0;border-bottom:1px solid var(--line)}
  .pt-actions .btn{flex:1 1 auto;justify-content:center}
}
@media (max-width:640px){
  .row > .rinput{grid-column:1 / -1}
  .row > .icon-btn.rm{grid-column:2;grid-row:1;align-self:center}
  .row.custom > .input:first-child{grid-column:1;grid-row:1}
  .pt-img img{aspect-ratio:16/9}
}

/* ======================================================================
   ИТОГ: спокойная подача, «Бюджет можно изменить», вилка
   ====================================================================== */
.hero-calm{margin:0;font-family:var(--f-display);font-size:18px;font-weight:500;color:var(--ink)}
.kpi-note{margin-top:-4px}
.range-note:empty{display:none}
.range-note{display:flex;flex-direction:column;gap:4px;border-left:2px solid var(--wine);padding:6px 0 6px 14px}
.range-note b{font-family:var(--f-display);font-size:20px;font-weight:600}
.explain{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:16px;max-width:66ch}
.explain p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.55}
.explain b{color:var(--ink);font-weight:600}
.budget-control{border-top:1px solid var(--ink);padding-top:24px;display:flex;flex-direction:column;gap:14px}
.bc-title,.bc-alt-title{margin:0;font-family:var(--f-display);font-weight:600;font-size:18px;letter-spacing:-.01em}
.bc-details{border:1px solid var(--line-strong);background:var(--surface)}
.bc-details summary{cursor:pointer;list-style:none;padding:14px 16px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;display:flex;justify-content:space-between;align-items:center}
.bc-details summary::-webkit-details-marker{display:none}
.bc-details summary::after{content:"+";font-family:var(--f-display);font-size:18px;color:var(--wine)}
.bc-details[open] summary::after{content:"−"}
.bc-details[open] summary{border-bottom:1px solid var(--line)}
.bc-list{list-style:none;margin:0;padding:0 16px}
.bc-list li{padding:14px 0;border-bottom:1px solid var(--line)}
.bc-list li:last-child{border-bottom:0}
.bc-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.bc-name{font-weight:600}
.bc-val{font-variant-numeric:tabular-nums;color:var(--grey);font-size:13px;white-space:nowrap}
.bc-tip{margin:4px 0 0;font-size:13px;color:var(--ink-2);line-height:1.5}
.bc-list .btn.link{padding:6px 0 0;font-size:11px}
.bc-alt{background:var(--wine-soft);padding:18px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.bc-alt .note{margin:0}
.bc-diff{list-style:none;margin:0;padding:0;width:100%;max-width:520px}
.bc-diff li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line-strong);font-size:13.5px}
.bc-diff li span:last-child{font-variant-numeric:tabular-nums;color:var(--wine);font-weight:600;white-space:nowrap}
@media (max-width:640px){
  .bc-alt .btn{width:100%;justify-content:center}
  .hero-calm{font-size:16px}
}

/* ======================================================================
   СВОЙ УРОВЕНЬ РАЗДЕЛА: «Эконом | Комфорт | Бизнес» внутри этапа
   ====================================================================== */
.seg-switch{display:flex;flex-direction:column;gap:8px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.seg-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}
.seg-toggle button{padding:9px 16px;font-size:11px}
.seg-switch .sub{max-width:70ch;line-height:1.5}
.seg-mark{color:var(--wine);font-size:11.5px;white-space:nowrap}
.own-note{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border-left:2px solid var(--wine);padding:4px 0 4px 12px;font-size:13.5px;color:var(--ink-2)}
.own-note .btn.link{padding:4px 0 0}
@media (max-width:640px){
  .seg-switch-row{flex-direction:column;align-items:stretch}
  .seg-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .seg-toggle button{padding:11px 4px;letter-spacing:.06em}
}

/* ---------- правки: «Начать сначала», рекомендуемый производитель, строки спецификации ---------- */
.bottom-bar .bb-reset{background:var(--wine);border-color:var(--wine);color:var(--on-wine)}
.bottom-bar .bb-reset:hover{background:var(--wine-hover);border-color:var(--wine-hover);color:var(--on-wine)}
.partner{box-shadow:inset 0 0 0 1px var(--wine)}
.pt-rec{color:var(--wine);font-weight:600}
.pt-brand{font-size:12px;letter-spacing:.22em;font-weight:600;color:var(--ink);margin-top:8px}
.pt-promo{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}
.pt-code{font-family:var(--f-display);font-weight:600;letter-spacing:.12em;color:var(--ink);border:1px dashed var(--wine);padding:4px 8px}
.pt-copy{padding:7px 12px}
.pt-link{font-size:12.5px;margin-top:10px}
/* строка «ключ — значение»: подпись не сжимается в ноль, длинное значение переносится */
.spec .sr{grid-template-columns:minmax(min-content,1fr) minmax(0,auto)}
.spec .sr .k{min-width:0}
.spec .sr.long .v{max-width:none;white-space:normal;text-align:right}
@media (max-width:640px){ .pt-promo .pt-copy{margin-left:auto} }
.spec .sr.long{grid-template-columns:auto minmax(0,1fr)}
/* черновые материалы: пояснение по уровню */
.about-seg{display:flex;flex-direction:column;gap:10px}
.about-short{margin:0;font-size:14px;color:var(--ink-2);line-height:1.55;max-width:66ch}
.about-short b{color:var(--ink)}
.about-body{padding:4px 16px 14px}
.about-body ul{margin:6px 0 12px;padding-left:18px}
.about-body li{font-size:13.5px;color:var(--ink-2);line-height:1.5;margin:3px 0}
.about-lead{margin:10px 0 0;font-size:13px;color:var(--grey);line-height:1.5}
/* полы: группы покрытий */
.opt-groups{display:flex;flex-direction:column;gap:10px}
.opt-group-title{color:var(--ink);font-weight:600;margin-top:8px}
.opt-groups .opt-group-title:first-child{margin-top:0}

/* ======================================================================
   ПРОГРЕСС ПРОХОЖДЕНИЯ, ФРАЗЫ, МОМЕНТ РАСЧЁТА
   ====================================================================== */
.progress{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.pg-top{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap}
.pg-title{color:var(--ink);font-weight:600}
.pg-phrase{font-size:13px;color:var(--grey);flex:1;min-width:0}
.pg-phrase.changed{animation:pgfade .45s ease both}
.pg-pct{font-family:var(--f-display);font-weight:600;font-size:13px;color:var(--wine);font-variant-numeric:tabular-nums}
.pg-line{position:relative;height:2px;background:var(--line)}
.pg-fill{position:absolute;left:0;top:0;bottom:0;background:var(--wine);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.pg-tick{position:absolute;top:-2px;width:1px;height:6px;background:var(--line-strong);transform:translateX(-.5px)}
.pg-tick.done{background:var(--wine)}
@keyframes pgfade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

.hero-m2{font-family:var(--f-display);font-size:20px;font-weight:500;color:var(--ink-2);font-variant-numeric:tabular-nums}
.hero-m2:empty{display:none}
.calc-intro{display:none}
.result-hero.is-calculating .calc-intro{display:block;animation:pgfade .35s ease both}
.calc-intro p{margin:0;font-family:var(--f-display);font-size:clamp(18px,2.4vw,24px);font-weight:500;line-height:1.35;color:var(--ink)}
.calc-intro p + p{color:var(--grey)}
.result-hero.is-calculating .hero-label,.result-hero.is-calculating .result-total,.result-hero.is-calculating .hero-m2,
.result-hero.is-calculating ~ *,.result-hero.is-calculating > p,.result-hero.is-calculating .range-note{display:none}
.result-hero.is-counting .hero-m2,.result-hero.is-counting > p,.result-hero.is-counting .range-note{opacity:0}
.result-hero .hero-m2,.result-hero > p,.result-hero .range-note{transition:opacity .4s ease}
#sheet.revealing .sheet-body > :not(.result-hero){opacity:0}
#sheet .sheet-body > *{transition:opacity .45s ease}
@media (max-width:640px){
  .progress{margin-bottom:16px;gap:6px}
  .pg-top{flex-wrap:nowrap}
  .pg-title{display:none}
  .pg-phrase{font-size:12.5px;color:var(--ink-2)}
  .hero-m2{font-size:17px}
}
@media (prefers-reduced-motion:reduce){ .pg-fill{transition:none} .pg-phrase.changed{animation:none} }
#sheet.revealing .nav{opacity:0;pointer-events:none}
#sheet .nav{transition:opacity .45s ease}

/* ======================================================================
   ПРОРАБ: маленький пиксельный помощник рядом со шкалой прогресса
   ====================================================================== */
.foreman{display:flex;align-items:flex-end;gap:12px;margin-top:10px}
.fm-figure{flex:none;width:52px;height:60px;display:block;animation:fmIdle 2.8s steps(2,end) infinite}
.fm-svg,.fm-img{display:block;width:100%;height:100%;image-rendering:pixelated}
.fm-figure.fm-pop{animation:fmPop .35s steps(3,end) both,fmIdle 2.8s steps(2,end) .35s infinite}
.fm-say{position:relative;margin:0 0 6px;padding:8px 12px;border:1px solid var(--line-strong);background:var(--surface);font-size:13.5px;line-height:1.4;color:var(--ink);max-width:52ch}
.fm-say::before{content:"";position:absolute;left:-6px;bottom:10px;width:10px;height:10px;background:var(--surface);border-left:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);transform:rotate(45deg)}
.fm-name{display:block;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);font-weight:600;margin-bottom:1px}
.fm-text.fm-changed{animation:pgfade .4s ease both}
@keyframes fmIdle{0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes fmPop{0%{transform:translateY(3px)}100%{transform:none}}
.progress.with-foreman .pg-top{flex-wrap:nowrap}
@media (max-width:640px){
  .progress.with-foreman .pg-title{display:inline}
  .progress.with-foreman .pg-top{justify-content:space-between}
  .foreman{gap:10px;margin-top:8px}
  .fm-figure{width:38px;height:44px}
  .fm-say{font-size:12.5px;padding:6px 10px;margin-bottom:3px}
  .fm-name{display:none}
}
@media (prefers-reduced-motion:reduce){ .fm-figure,.fm-figure.fm-pop,.fm-text.fm-changed{animation:none} }
/* кот-прораб: фото вместо пиксельной позы */
.fm-figure.is-img{width:54px;height:66px;animation:none}
.fm-figure.is-img.fm-pop{animation:fmPop .3s ease both}
.fm-img{object-fit:contain;object-position:bottom center;image-rendering:auto}
.fm-figure.is-pixel .fm-svg{image-rendering:pixelated}
@media (max-width:640px){ .fm-figure.is-img{width:40px;height:50px} }

/* ======================================================================
   НИЖНЯЯ ПАНЕЛЬ НА ВСЕХ ЭКРАНАХ: шкала прогресса по верхнему краю,
   бюджет, этап, «Начать сначала» и стрелки
   ====================================================================== */
.bottom-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--surface);border-top:0;padding:0 0 env(safe-area-inset-bottom,0px);box-shadow:0 -1px 0 var(--line-strong),0 -8px 24px rgba(20,16,14,.05)}
.bottom-bar .bb-line{height:3px;background:var(--line)}
.bottom-bar .pg-tick{top:0;height:3px;width:1px;background:var(--surface);opacity:.9}
.bottom-bar .pg-tick.done{background:var(--surface)}
.bb-row{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;max-width:1320px;margin:0 auto;padding:12px var(--gutter)}
.bb-sum{min-width:0}
.bottom-bar .big{font-family:var(--f-display);font-weight:600;font-size:22px;color:var(--wine);font-variant-numeric:tabular-nums;line-height:1.1}
.bb-step{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;padding-left:24px;border-left:1px solid var(--line)}
.bb-stepname{font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-pct{font-family:var(--f-display);font-weight:600;font-size:13px;color:var(--wine);font-variant-numeric:tabular-nums;margin-right:8px}
.bottom-bar .btn{padding:12px 16px}
.bottom-bar .bb-reset{height:44px;padding:0 20px}
.sheet-top{margin-bottom:22px}
.sheet-top .foreman{margin-top:0}
.sheet-top .pg-phrase{margin:0;font-size:13px;color:var(--grey)}
.layout{padding-bottom:140px}
@media (min-width:1041px){
  .aside{top:calc(env(safe-area-inset-top,0px) + 24px);max-height:calc(100vh - 48px - 72px)}
  .site-footer{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:1040px){
  .bb-step{display:none}
  .bb-row{padding:10px var(--gutter)}
}
@media (max-width:640px){
  .sheet-top{margin-bottom:16px}
  .bb-pct{display:none}
}
@media (max-width:440px){
  .bb-row{gap:8px}
  .bottom-bar .bb-reset{padding:0 10px}
  .bottom-bar .big{font-size:18px}
}
