/* ============================================================
   АКАДЕМИЧЕСКИЙ САЛОН — МОБИЛЬНАЯ РЕДАКЦИЯ
   Загружается последним из app.js и сводит локальные media query
   страниц к одной устойчивой геометрии телефона.
   ============================================================ */

@media screen and (max-width:880px){
  :root{
    --mobile-gutter:clamp(16px,4.7vw,20px);
    --mobile-header-h:calc(58px + env(safe-area-inset-top));
    --mobile-dock-h:calc(58px + env(safe-area-inset-bottom));
    --mobile-bottom-clear:calc(var(--mobile-dock-h) + 12px);
    --tap:48px;
  }

  html{
    max-width:100%;
    overflow-x:clip;
    scroll-padding-top:calc(var(--mobile-header-h) + 12px);
    scroll-padding-bottom:var(--mobile-bottom-clear);
  }
  body{
    width:100%;
    max-width:100%;
    overflow-x:clip;
    padding-bottom:var(--mobile-dock-h);
  }
  body.no-mcta{padding-bottom:0}
  .wrap{
    width:100%;
    max-width:100%;
    padding-left:var(--mobile-gutter);
    padding-right:var(--mobile-gutter);
  }
  main,.chapter,.sheet,.stacked{min-width:0;max-width:100%}
  section[id],[id].chapter{scroll-margin-top:calc(var(--mobile-header-h) + 12px)}

  /* Один режим колонтитула на всём диапазоне мобильного дока. */
  .site-header{
    padding-top:env(safe-area-inset-top);
    background:var(--paper);
  }
  .site-header .wrap.nav{
    padding-left:max(var(--mobile-gutter),env(safe-area-inset-left));
    padding-right:max(var(--mobile-gutter),env(safe-area-inset-right));
  }
  .site-header .nav,
  .site-header.scrolled .nav{height:58px;gap:8px}
  .site-header .nav-links{display:none!important}
  .site-header .nav-cta>.btn{display:none!important}
  .site-header .brand{
    flex:1 1 auto;
    min-width:0;
    min-height:44px;
    gap:8px;
    overflow:hidden;
  }
  .site-header .brand .b-name{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .site-header .nav-cta{flex:0 0 auto;margin-left:0}
  .nav-cab,.menu-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    min-width:44px;
    min-height:44px;
    padding:0;
  }

  input,textarea,select,
  .sdlg input,.sdlg textarea,.nf-form input,.nf-form textarea{
    max-width:100%;
    font-size:16px!important;
  }
  button,a,input,textarea,select{-webkit-tap-highlight-color:rgba(178,59,34,.12)}
  .btn{min-height:50px;white-space:normal;text-align:center}
  .chapter{padding-top:52px}
  .chapter .ch-rule{margin-bottom:24px}
  .h-display{font-size:clamp(31px,9vw,40px);line-height:1.04}
  h2{font-size:clamp(25px,7vw,31px)}
  .lead{font-size:16px;line-height:1.58}

  /* Повторяющиеся десктопные сетки становятся читаемым потоком. */
  .grid-2,.grid-3,.split,.pages,.ws-grid,.proc-grid,.trust-grid,
  .route-grid,.plus-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .grid-2>*,.grid-3>*,.split>*,.pages>*,.ws-grid>*,.proc-grid>*,
  .trust-grid>*,.route-grid>*,.plus-grid>*,
  .dotrow>*,.optrow>*,.ledger>*,.report-sheet>*{min-width:0}
  .price-xl{max-width:100%;overflow-wrap:anywhere}

  .doc-wrap{padding-top:88px;padding-bottom:48px}
  .doc{max-width:100%}
  .doc h1{font-size:clamp(30px,8.5vw,37px)}
  .doc h2{font-size:24px;margin-top:30px}
  .doc p,.doc li{line-height:1.62}
  .doc pre,.doc code,.doc table{
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .doc img,.doc video,.doc iframe{max-width:100%;height:auto}
  .doc .btn{width:100%;justify-content:center}

  /* Нижняя навигация — компактная системная полоса. На телефоне печать,
     выступавшая над панелью, спорила с контентом и с браузерным chrome. */
  .mobile-cta.mnav{
    display:grid;
    min-height:var(--mobile-dock-h);
    padding:4px max(6px,env(safe-area-inset-right))
      max(4px,env(safe-area-inset-bottom))
      max(6px,env(safe-area-inset-left));
    border-top-color:color-mix(in srgb,var(--ink) 14%,transparent);
    background:color-mix(in srgb,var(--paper) 98%,transparent);
    box-shadow:0 -8px 24px -22px rgba(34,32,27,.48);
  }
  .mnav .mn-i{
    min-height:50px;
    justify-content:center;
    gap:3px;
    padding:4px 2px;
    border-radius:3px;
    font-size:10px;
    letter-spacing:.01em;
  }
  .mnav .mn-i .mn-ic{height:20px;font-size:17px}
  .mnav .mn-calc .mn-ic{
    width:auto;
    height:20px;
    margin-top:0;
    border:0;
    border-radius:0;
    background:none;
    color:currentColor;
    box-shadow:none;
  }
  .mnav .mn-calc:active .mn-ic{
    transform:none;
    box-shadow:none;
  }
  .mnav .mn-calc.has-draft .mn-ic::after{
    content:"";
    position:absolute;
    right:calc(50% - 25px);
    top:-1px;
    width:10px;
    height:10px;
    border:2px solid var(--paper);
    border-radius:50%;
    background:#E9C972;
    box-sizing:border-box;
  }
  .site-footer{padding-bottom:calc(var(--mobile-dock-h) + 14px)}

  /* Черновик на телефоне живёт в центральной кнопке дока. */
  .resume-bar{display:none!important}

  /* После выбора типа не повторяем вводный экран на каждом шаге. */
  body.conf-step-later main .chapter.conf-chapter{
    padding-top:calc(var(--mobile-header-h) + 12px);
  }
  body.conf-step-later .conf-chapter>.ch-rule,
  body.conf-step-later .conf-chapter .conf-head{
    display:none!important;
  }
  body.conf-step-later .conf-chapter .wprog{
    margin-bottom:16px;
  }
  body.conf-step-later .conf-chapter .ws-title{
    margin-bottom:14px;
    font-size:clamp(23px,6.5vw,27px);
    line-height:1.14;
  }
  .conf-chapter #btnBack{display:none!important}
  body.conf-step-later #discGroup{
    gap:8px;
  }
  body.conf-step-later #discGroup .optrow{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px 10px;
    align-items:center;
    min-height:58px;
    padding:11px 13px;
    border-radius:5px;
    font-size:14.5px;
    line-height:1.3;
  }
  body.conf-step-later #discGroup .optrow .dots{display:none}
  body.conf-step-later #discGroup .optrow .o-val{
    font-size:11.5px;
    color:var(--ink-faint);
  }
  body.conf-step-later #discGroup .optrow[aria-checked="true"]{
    border-color:var(--wax);
    background:linear-gradient(110deg,var(--wax-soft),var(--sheet) 78%);
    box-shadow:inset 3px 0 0 var(--wax);
  }
  body.conf-step-later #discGroup .optrow[aria-checked="true"] .o-val{
    color:var(--wax);
  }
  body.conf-step-later .disc-profile{display:none}

  /* Финальный лист заявки: три понятных раздела вместо длинной ленты полей. */
  body.conf-step-final{
    padding-bottom:calc(76px + env(safe-area-inset-bottom));
  }
  body.conf-step-final .conf-chapter .wprog{
    position:static;
    z-index:auto;
    margin:0 0 13px;
    padding:0;
    background:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  body.conf-step-final .conf-chapter .ws-title{
    margin-bottom:7px;
  }
  body.conf-step-final .wstep-final{
    display:flex!important;
    flex-direction:column;
  }
  body.conf-step-final .wstep-final>#ws4t{order:0}
  body.conf-step-final .wstep-final>.conf-final-intro{order:1}
  body.conf-step-final .wstep-final>#checkoutFields{display:contents}
  body.conf-step-final .wstep-final .final-contact{order:2}
  body.conf-step-final .wstep-final>.final-files{order:3}
  body.conf-step-final .wstep-final>.final-task{order:4}
  body.conf-step-final .wstep-final .final-more-toggle{order:5}
  body.conf-step-final .wstep-final .final-more-body{order:6}
  body.conf-step-final .wstep-final .wsubmit-note{order:7}
  body.conf-step-final .conf-final-intro{
    display:block;
    margin:0 0 14px;
    padding:0 0 13px;
    border-bottom:1px solid var(--hairline);
  }
  body.conf-step-final .conf-final-intro .caps{
    display:block;
    margin-bottom:5px;
    color:var(--wax);
    font-size:8.5px;
  }
  body.conf-step-final .conf-final-intro p{
    max-width:42ch;
    color:var(--ink-soft);
    font-size:13px;
    line-height:1.45;
  }
  body.conf-step-final .final-section{
    margin:0 0 10px;
    padding:13px 13px 1px;
    border:1px solid var(--hairline);
    border-radius:7px;
    background:color-mix(in srgb,var(--sheet) 78%,transparent);
    box-shadow:0 8px 24px -25px rgba(34,32,27,.5);
  }
  body.conf-step-final .final-section-head{
    display:grid;
    grid-template-columns:27px minmax(0,1fr);
    gap:9px;
    align-items:start;
    margin:0 0 13px;
    padding:0 0 11px;
    border-bottom:1px solid var(--hairline);
  }
  body.conf-step-final .final-section-no{
    display:grid;
    width:27px;
    height:27px;
    place-items:center;
    border:1px solid color-mix(in srgb,var(--wax) 62%,var(--hairline));
    border-radius:50%;
    color:var(--wax);
    font:9px/1 var(--mono);
  }
  body.conf-step-final .final-section-head b{
    display:block;
    margin-top:-1px;
    font:500 17px/1.2 var(--serif);
    color:var(--ink);
  }
  body.conf-step-final .final-section-head small{
    display:block;
    margin-top:3px;
    color:var(--ink-faint);
    font-size:11px;
    line-height:1.35;
  }
  body.conf-step-final .wstep-final>.final-section .field,
  body.conf-step-final #ctGuest .field{
    margin-bottom:13px;
  }
  body.conf-step-final .final-section .field>label{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:7px;
    font-size:9.5px;
    letter-spacing:.12em;
  }
  body.conf-step-final .field-optional{
    flex:0 0 auto;
    padding:3px 6px;
    border-radius:999px;
    background:var(--paper-2);
    color:var(--ink-faint);
    font:8px/1 var(--sans);
    letter-spacing:.02em;
    text-transform:none;
  }
  body.conf-step-final .final-section input[type=text],
  body.conf-step-final .final-section input[type=email],
  body.conf-step-final .final-section input[type=tel]{
    min-height:48px;
    padding:11px 12px;
    border-radius:5px;
  }
  body.conf-step-final #fDetails{
    min-height:92px;
    padding:11px 12px;
    border-radius:5px;
    line-height:1.45;
  }
  body.conf-step-final .final-task .field:last-child,
  body.conf-step-final .final-files .field:last-child,
  body.conf-step-final .final-contact .field:last-child{
    margin-bottom:12px;
  }
  body.conf-step-final #attAdd{
    min-height:48px;
    justify-content:flex-start;
    padding:10px 12px;
    border-radius:5px;
    background:color-mix(in srgb,var(--paper-2) 72%,transparent);
    font-size:13px;
    line-height:1.3;
    text-align:left;
  }
  body.conf-step-final #attHint,
  body.conf-step-final #ctHint{
    margin:7px 0 0!important;
    color:var(--ink-faint);
    font-size:11.5px;
    line-height:1.4;
  }
  body.conf-step-final .att-item{
    gap:7px;
    padding:8px 9px;
    font-size:12.5px;
  }
  body.conf-step-final #ctAuthed p{
    margin:0 0 12px;
    padding:10px 11px;
    border-left:3px solid var(--verify);
    border-radius:0 5px 5px 0;
    background:var(--verify-soft);
    color:var(--ink-soft);
    font-size:12px;
    line-height:1.45;
  }
  body.conf-step-final #ctChips{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:6px;
    margin-bottom:8px;
  }
  body.conf-step-final #ctChips .ct-chip{
    grid-column:span 2;
    min-width:0;
    min-height:44px;
    padding:6px 5px;
    font-size:11px;
  }
  body.conf-step-final #ctChips .ct-chip:nth-child(4),
  body.conf-step-final #ctChips .ct-chip:nth-child(5){
    grid-column:span 3;
  }
  body.conf-step-final .consent-row{
    display:grid;
    grid-template-columns:22px minmax(0,1fr);
    gap:9px;
    align-items:start;
    margin:2px 0 11px;
    cursor:pointer;
    color:var(--ink-soft);
    font-size:11.5px;
    line-height:1.45;
  }
  body.conf-step-final .consent-row input{
    width:22px;
    height:22px;
    margin:0;
    accent-color:var(--wax);
  }
  body.conf-step-final #tgLoginBtn{
    min-height:46px;
    margin:0 0 9px;
    padding:9px 12px;
    font-size:12.5px;
  }
  body.conf-step-final .contact-or{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 10px;
    color:var(--ink-faint);
    font:8.5px/1 var(--mono);
    letter-spacing:.1em;
    text-transform:uppercase;
  }
  body.conf-step-final .contact-or::before,
  body.conf-step-final .contact-or::after{
    content:"";
    height:1px;
    flex:1;
    background:var(--hairline);
  }
  body.conf-step-final .field-name{display:none}
  body.conf-step-final .final-more-toggle{
    display:grid;
    grid-template-columns:28px minmax(0,1fr) 28px;
    gap:9px;
    align-items:center;
    width:100%;
    min-height:60px;
    margin:2px 0 10px;
    padding:8px 10px;
    border:1px solid var(--hairline);
    border-radius:7px;
    background:transparent;
    color:var(--ink);
    text-align:left;
    cursor:pointer;
  }
  body.conf-step-final .final-more-mark{
    display:grid;
    width:28px;
    height:28px;
    place-items:center;
    border-radius:50%;
    background:var(--wax-soft);
    color:var(--wax);
    font:17px/1 var(--serif);
  }
  body.conf-step-final .final-more-toggle b{
    display:block;
    font-size:13px;
    font-weight:500;
  }
  body.conf-step-final .final-more-toggle small{
    display:block;
    margin-top:2px;
    color:var(--ink-faint);
    font-size:10.5px;
    line-height:1.3;
  }
  body.conf-step-final .final-more-arrow{
    display:grid;
    width:28px;
    height:28px;
    place-items:center;
    color:var(--wax);
    font:20px/1 var(--serif);
    transition:transform .18s ease;
  }
  body.conf-step-final .final-more-toggle.open .final-more-arrow{
    transform:rotate(45deg);
  }
  body.conf-step-final .final-more-body[hidden]{display:none!important}
  body.conf-step-final .final-more-body{
    margin:-2px 0 10px;
    padding:10px;
    border:1px solid var(--hairline);
    border-radius:7px;
    background:color-mix(in srgb,var(--sheet) 72%,transparent);
  }
  body.conf-step-final .coupon{
    margin:0 0 7px;
    border-style:solid;
    background:transparent;
  }
  body.conf-step-final .cp-toggle{
    min-height:44px;
    padding:9px 10px;
    font-size:12.5px;
  }
  body.conf-step-final .cp-body{padding:2px 10px 10px}
  body.conf-step-final .cp-done{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) 34px;
    gap:3px 8px;
    padding:9px 10px;
  }
  body.conf-step-final .cp-done>span[aria-hidden]{grid-row:1/3}
  body.conf-step-final .cp-done .cp-code{
    grid-column:2;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  body.conf-step-final .cp-done .cp-what{grid-column:2}
  body.conf-step-final .cp-done .cp-x{
    grid-column:3;
    grid-row:1/3;
    align-self:center;
  }
  body.conf-step-final .contact-fallbacks{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin-top:8px;
  }
  body.conf-step-final .contact-fallbacks .btn{
    min-height:44px;
    padding:8px;
    font-size:11.5px;
  }
  body.conf-step-final .qm-card{
    margin:8px 0 0;
    padding:10px;
    border-left-width:3px;
    background:transparent;
  }
  body.conf-step-final .qm-head{
    display:grid;
    grid-template-columns:18px minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
    flex-wrap:nowrap;
  }
  body.conf-step-final .qm-head svg{margin:0}
  body.conf-step-final .qm-head .qm-t{font-size:12.5px}
  body.conf-step-final .qm-head .petit{
    font-size:10.5px;
    line-height:1.35;
  }
  body.conf-step-final .qm-open{
    grid-column:3;
    min-height:40px;
    padding:7px 9px;
    font-size:11px;
  }
  body.conf-step-final .qm-form{margin-top:9px;padding-top:9px}
  body.conf-step-final .wsubmit-note{
    display:flex;
    gap:7px;
    margin:7px 0 12px!important;
    padding:9px 10px;
    border-radius:5px;
    background:var(--verify-soft);
    color:var(--ink-soft);
    font-size:11.5px;
    line-height:1.4;
  }
  body.conf-step-final .wsubmit-note>span{
    flex:0 0 auto;
    color:var(--verify);
  }
  body.conf-step-final .wnav{display:none}

  /* Конфигуратор: один спокойный лист сметы и одно главное действие. */
  .mobile-cta.conf-mcta{
    display:flex;
    min-height:0;
    padding:8px max(8px,env(safe-area-inset-right))
      max(8px,env(safe-area-inset-bottom))
      max(8px,env(safe-area-inset-left));
    gap:8px;
    border-top:1px solid color-mix(in srgb,var(--ink) 13%,transparent);
    background:color-mix(in srgb,var(--paper) 98%,transparent);
    box-shadow:0 -14px 34px -28px rgba(34,32,27,.68);
  }
  .conf-mcta .mq-panel{
    width:100%;
    max-height:min(54svh,430px);
    overflow:auto;
    overscroll-behavior:contain;
    border:1px solid var(--hairline-strong);
    border-radius:14px;
    padding:16px;
    background:var(--sheet);
    box-shadow:0 18px 46px -30px rgba(34,32,27,.72);
  }
  .conf-mcta .lq-mobile-head{
    align-items:center;
    gap:10px;
    margin:0 0 14px;
  }
  .conf-mcta .lq-mobile-head .lq-head{
    font-size:9px;
    letter-spacing:.16em;
  }
  .conf-mcta .lq-mobile-head .lq-type{
    margin:4px 0 0;
    font:500 18px/1.2 var(--serif);
    color:var(--ink);
  }
  .conf-mcta .lq-step{
    padding:5px 9px;
    border-color:var(--hairline);
    background:transparent;
    font-size:8.5px;
  }
  .conf-mcta .lq-mobile-price{
    padding:0 0 14px!important;
    border:0!important;
    border-bottom:1px solid var(--hairline)!important;
    border-radius:0!important;
    background:none!important;
  }
  .conf-mcta .lq-mobile-price .lg-total{
    align-items:flex-end;
  }
  .conf-mcta .lq-mobile-price .lg-total b{
    padding-bottom:4px;
    font:500 13px/1.2 var(--sans);
    color:var(--ink-soft);
  }
  .conf-mcta .lq-mobile-price .lg-total .num{
    font-size:clamp(31px,9.5vw,38px);
    line-height:1;
    letter-spacing:.025em;
  }
  .conf-mcta .lq-mobile-price .lq-high{
    display:block;
    margin:6px 0 0;
    padding:0;
    border-radius:0;
    background:none;
    font-size:12px;
    line-height:1.4;
  }
  .conf-mcta .lq-mobile-formula,
  .conf-mcta .lq-mobile-terms{
    margin:0;
    border-bottom:1px solid var(--hairline);
  }
  .conf-mcta .lq-mobile-formula>summary,
  .conf-mcta .lq-mobile-terms>summary{
    display:flex;
    min-height:46px;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    list-style:none;
    cursor:pointer;
    color:var(--ink-soft);
    font:500 12.5px/1.3 var(--sans);
    letter-spacing:0;
    text-transform:none;
  }
  .conf-mcta .lq-mobile-formula>summary::-webkit-details-marker,
  .conf-mcta .lq-mobile-terms>summary::-webkit-details-marker{display:none}
  .conf-mcta .lq-mobile-formula>summary::after,
  .conf-mcta .lq-mobile-terms>summary::after{
    content:"+";
    flex:0 0 auto;
    color:var(--wax);
    font:20px/1 var(--serif);
    transition:transform .18s ease;
  }
  .conf-mcta .lq-mobile-formula[open]>summary::after,
  .conf-mcta .lq-mobile-terms[open]>summary::after{transform:rotate(45deg)}
  .conf-mcta .lq-mobile-formula .ledger{
    margin:0;
    padding:0 0 10px;
  }
  .conf-mcta .lq-mobile-formula .ledger .lg-row{
    padding:7px 0;
    font-size:12px;
  }
  .conf-mcta .lq-mobile-info{
    margin:0!important;
    padding:0 0 12px!important;
    border:0!important;
  }
  .conf-mcta .lq-mobile-info .lq-pay{
    margin:0 0 10px;
    padding:0;
    border:0;
    background:none;
    font-size:12.5px;
    line-height:1.5;
  }
  .conf-mcta .lq-mobile-info .lq-when{
    margin:0;
    padding-top:10px;
    border-top:1px solid var(--hairline);
    font-size:12px;
    line-height:1.5;
    color:var(--ink-soft);
  }
  .conf-mcta .lq-mobile-info .lq-promo,
  .conf-mcta .lq-mobile-info .lq-gift,
  .conf-mcta .lq-mobile-info .lq-plus{
    margin:10px 0 0;
    padding:9px 10px;
    border:0;
    border-radius:4px;
    background:var(--paper-2);
    font-size:11.5px;
    line-height:1.45;
  }
  .conf-mcta .lq-mobile-info .lq-cheaper{
    margin:8px 0 0!important;
    padding-top:8px;
    border-top:1px solid var(--hairline);
  }
  .conf-mcta .lq-mobile-info .lq-cheaper>summary{
    min-height:36px;
    display:flex;
    align-items:center;
  }
  .conf-mcta .mq-bar{
    display:grid;
    grid-template-columns:48px minmax(0,1fr) minmax(116px,.78fr);
    align-items:stretch;
    gap:8px;
    width:100%;
  }
  .conf-mcta .mq-back[hidden]+.mq-total{grid-column:1/3}
  .conf-mcta .mq-back{
    width:48px;
    min-height:52px;
    border-radius:5px;
  }
  .conf-mcta .mq-total{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    justify-content:stretch;
    gap:8px;
    min-width:0;
    min-height:52px;
    padding:6px 10px;
    border-color:var(--hairline);
    border-radius:5px;
    text-align:left;
  }
  .conf-mcta .mq-total-copy{
    display:grid;
    min-width:0;
    gap:2px;
  }
  .conf-mcta .mq-total-copy small{
    color:var(--ink-faint);
    font:8px/1 var(--mono);
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .conf-mcta .mq-total-copy .num{
    overflow:hidden;
    font-size:15px;
    line-height:1.15;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .conf-mcta .mq-more{
    color:var(--wax);
    font:10px/1.2 var(--sans);
    white-space:nowrap;
  }
  .conf-mcta .cart-tab{display:none!important}
  .conf-mcta #mNext{
    min-width:0;
    min-height:52px;
    padding:8px 12px;
    border-radius:5px;
    font-size:15px;
    line-height:1.15;
  }
  body.conf-step-final .conf-mcta .mq-bar{
    grid-template-columns:48px minmax(0,1fr) 132px;
  }
  body.svc-checkout .conf-mcta .mq-bar{
    grid-template-columns:minmax(96px,.58fr) minmax(154px,1fr);
  }
  body.svc-checkout .conf-mcta .mq-total{
    grid-column:auto!important;
  }
  body.conf-step-final .conf-mcta #mNext,
  body.svc-checkout .conf-mcta #mNext{
    font-size:13.5px;
  }
  body.conf-step-final .conf-mcta .mq-total{padding-inline:6px}

  /* Все мобильные листы открываются от нижней кромки. */
  .contact-sheet{align-items:flex-end!important}
  .contact-sheet .cs-card{
    width:100%;
    max-width:100%;
    max-height:min(90svh,760px);
    overflow:auto;
    border-radius:14px 14px 0 0!important;
    padding:24px var(--mobile-gutter) calc(18px + env(safe-area-inset-bottom));
  }
  .sdlg-card,.tour-card,.dossier-dialog,.mledger{
    max-width:calc(100vw - 20px);
    max-height:calc(100svh - var(--mobile-header-h) - 20px);
    overflow:auto;
    overscroll-behavior:contain;
  }
  .cart-drawer{
    width:100%;
    height:min(90dvh,780px);
    max-height:calc(100dvh - 8px);
  }
  html.keyboard-open .mobile-cta{transform:translateY(110%)}

  /* Главная на телефоне не зависит от десктопной 3D-геометрии. */
  .home .pr-track{height:auto!important}
  .home .pr-scene{
    position:relative!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  .home .pr-stage{min-height:0!important;height:auto!important}
  /* Мобильный титул: одна ось и одна иерархия вместо набора декоративных
     полос. Дата издания, знак §, вторичная статистика и сториз остаются
     за пределами первого экрана. */
  html[data-pr-flat] .home .pr-copy,
  html:not(.has-js) .home .pr-copy{
    max-width:520px;
    padding-left:var(--mobile-gutter);
    padding-right:var(--mobile-gutter);
  }
  html[data-pr-flat] .home .pr-kicker,
  html:not(.has-js) .home .pr-kicker{
    min-height:28px;
    gap:9px;
    margin-bottom:20px;
    padding:0;
    border:0;
    font-size:8.5px;
    letter-spacing:.17em;
  }
  html[data-pr-flat] .home .pr-kicker::before,
  html:not(.has-js) .home .pr-kicker::before{
    width:28px;
    height:28px;
    flex-basis:28px;
    font-size:17px;
  }
  html[data-pr-flat] .home .pr-kicker::after,
  html:not(.has-js) .home .pr-kicker::after{display:none!important}
  .home .pr-h{
    font-size:clamp(36px,10.4vw,42px);
    line-height:.96;
    letter-spacing:-.03em;
  }
  .home .pr-h .ln:nth-child(2),
  .home .pr-h .ln:nth-child(3){padding-left:0}
  .home .pr-lead{
    margin-top:20px;
    padding:16px 0 0;
    border-top:1px solid var(--hairline-strong);
    font-size:15px;
    line-height:1.52;
  }
  .home .pr-lead::before{display:none}
  html[data-pr-flat] .home .pr-cta,
  html:not(.has-js) .home .pr-cta{margin-top:20px}
  html[data-pr-flat] .home .pr-note,
  html:not(.has-js) .home .pr-note,
  .home .story-chip{display:none!important}
  .home .slot-line--cover{
    justify-content:space-between;
    gap:10px;
    margin-top:16px;
    margin-bottom:0;
    padding:12px 0 0;
    border-top:1px solid var(--hairline);
    border-bottom:0;
  }
  .home .slot-line--cover .sl-k{
    font-size:9px;
    letter-spacing:.14em;
  }
  .home .slot-line--cover .sl-v{font-size:14px}

  /* Переход к содержанию — продолжение листа, а не новая стопка карточек. */
  .home .pr-toc{
    padding:44px var(--mobile-gutter) 56px;
  }
  .home .pr-toccaps{display:none}
  .home .pr-toc h2{
    margin:0 0 8px;
    font-size:30px;
  }
  .home .pr-tocsub{
    max-width:29ch;
    margin:0 auto 24px;
    font-size:14px;
    line-height:1.5;
  }
  .home .pr-first-here{
    margin-bottom:18px;
    padding:14px 4px;
    border-width:1px 0;
    border-radius:0;
    background:transparent;
  }
  .home .pr-first-here .s{line-height:1.45}
  .home .pr-row{padding:12px 4px}
  /* На мобильной главной остаётся одна CTA в hero. Закрытая декоративная
     книга скрыта; по оранжевой кнопке сразу открывается полноэкранный лист. */
  html.has-js[data-pr-flat] body:not(.pr-open) .home .pr-bookwrap{
    display:none!important;
  }
  /* Компактная книжная геометрия остаётся только как no-JS fallback.
     Открытый интерактивный формуляр ниже получает всю ширину. */
  .home .pr-bookwrap{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .home .pr-book{
    min-width:0!important;
    width:min(68vw,232px)!important;
    max-width:232px!important;
    margin:18px auto 0!important;
  }
  .home .pr-cover,.home .pr-cvout{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
  }
  html.has-js[data-pr-flat] .home .pr-cvout{
    height:auto!important;
    aspect-ratio:340/472;
  }
  html.has-js[data-pr-flat] .home .pr-book-trigger{
    width:100%!important;
    height:100%!important;
  }
  .home .pr-first,.home .pr-cvin{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
  }
  .home .pr-cvname,.home .pr-cvsub,.home .pr-cvblind{
    max-width:100%;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
  }
  .home .pr-cvinner{
    width:100%!important;
    padding:0 20px 52px!important;
  }
  .home .pr-cvpara{font-size:40px;margin-bottom:12px}
  .home .pr-cvname{
    font-size:clamp(14px,4.1vw,16px);
    line-height:1.16;
    letter-spacing:.01em;
    white-space:nowrap;
  }
  .home .pr-cvrule{margin-top:14px}
  /* На маленькой обложке служебные строки конкурировали с действием
     и слипались в нечитаемый набор. Оставляем знак, имя и одно действие. */
  .home .pr-cvsub,.home .pr-cvblind{display:none!important}
  .home .pr-book-trigger-label,
  html.has-js[data-pr-flat] .home .pr-book-trigger-label{
    inset:auto 12px 12px!important;
    width:auto!important;
    height:44px!important;
    grid-template-columns:minmax(0,1fr) 22px!important;
    gap:7px!important;
    padding:0 10px!important;
    border:1px solid color-mix(in srgb,var(--wax) 46%,var(--hairline))!important;
    border-radius:4px!important;
    background:color-mix(in srgb,var(--sheet) 94%,transparent)!important;
    box-shadow:0 10px 22px -18px rgba(34,32,27,.65)!important;
    text-shadow:none!important;
    transform:none!important;
  }
  .home .pr-book-trigger-index{display:none!important}
  .home .pr-book-trigger-copy{justify-content:center}
  .home .pr-book-trigger-copy strong{
    color:var(--ink);
    font-family:var(--serif);
    font-size:14px;
    font-weight:600;
  }
  .home .pr-book-trigger-copy small{display:none!important}
  .home .pr-book-trigger-arrow{
    width:22px;
    height:22px;
    color:var(--wax);
    font-size:16px;
  }
  .home .pr-pg{min-height:0!important}
  .home .pr-form[data-estimator-flow="1"] .plates button{min-height:50px}
  .home .pr-qnext,.home .pr-qback{min-height:50px}
  .home .pr-book-close{
    width:48px;
    height:48px;
    right:8px!important;
    top:8px!important;
  }
  .home .pr-step-tab{min-width:44px;min-height:44px;padding:8px}
  .home #qFull.plate-more{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:8px 2px;
  }
  .home .pr-formsub,.home .pr-step-help,
  .home .pr-estimate-note{font-size:12.5px;line-height:1.5}
  .home .pr-trust{font-size:10.5px;line-height:1.4}

  /* Открытая смета — самостоятельный мобильный экран. Нижний док
     не перехватывает кнопку «Далее», навигация шага остаётся у пальца. */
  body.pr-open{overflow:hidden!important}
  body.pr-open .site-header,
  body.pr-open .mobile-cta.mnav{visibility:hidden!important;pointer-events:none!important}
  body.pr-open .home .pr-bookwrap{
    position:fixed!important;
    inset:0!important;
    z-index:160;
    display:block!important;
    margin:0!important;
    padding:max(8px,env(safe-area-inset-top)) 10px
      max(10px,env(safe-area-inset-bottom))!important;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:var(--paper);
    translate:none!important;
    transform:none!important;
  }
  body.pr-open .home .pr-bshadow{display:none!important}
  body.pr-open .home .pr-book{
    width:min(100%,560px)!important;
    max-width:560px!important;
    margin:0 auto!important;
    transform:none!important;
  }
  body.pr-open .home .pr-form,
  body.pr-open .home .pr-ledger{
    min-height:calc(100svh - max(18px,env(safe-area-inset-top) + env(safe-area-inset-bottom)))!important;
    padding-bottom:18px!important;
  }
  body.pr-open .home .pr-form-meta,
  body.pr-open .home .pr-estimate-head{padding-right:52px}
  body.pr-open .home .pr-qnav{
    position:sticky;
    bottom:0;
    z-index:5;
    margin:16px -2px -4px;
    padding:9px 2px 4px;
    background:linear-gradient(180deg,color-mix(in srgb,var(--sheet) 0%,transparent),var(--sheet) 18%);
  }

  /* Горизонтальные полки ощущаются как намеренный свайп. */
  main.tariffs .cc-grid,
  main.tariffs .eq,
  main.tariffs .tiers,
  .shelf{
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
  }
  main.tariffs .cc,
  main.tariffs .eq>*,
  main.tariffs .tier,
  .shelf>*{scroll-snap-align:start}
  main.tariffs .cc-filters{position:sticky!important;top:var(--mobile-header-h)!important}
  .wprog{top:var(--mobile-header-h)}

  /* Меню — отдельный мобильный экран, а не ещё одна шапка под шапкой. */
  html.menu-lock,
  body.menu-lock{
    overflow:hidden!important;
    overscroll-behavior:none;
  }
  body.menu-lock{
    position:fixed;
    left:0;
    right:0;
    width:100%;
  }
  body.menu-lock .site-header,
  body.menu-lock .mobile-cta{
    visibility:hidden;
    pointer-events:none;
  }
  .toc{
    --toc-left:max(var(--mobile-gutter),env(safe-area-inset-left));
    --toc-right:max(var(--mobile-gutter),env(safe-area-inset-right));
    z-index:220;
    height:100dvh;
    max-height:100dvh;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .toc-inner{
    display:flex;
    flex-direction:column;
    min-height:100%;
    padding:0 var(--toc-right) calc(14px + env(safe-area-inset-bottom)) var(--toc-left);
  }
  .toc .toc-head{
    top:0;
    gap:10px;
    min-height:66px;
    margin:0 calc(var(--toc-right) * -1) 10px calc(var(--toc-left) * -1);
    padding:calc(9px + env(safe-area-inset-top)) var(--toc-right) 9px var(--toc-left);
  }
  .toc .toc-head>div{min-width:0}
  .toc-kicker{
    margin-bottom:3px;
    font-size:8px;
    letter-spacing:.18em;
  }
  .toc-title{
    overflow:hidden;
    font-size:24px;
    line-height:1.05;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .toc-close{
    width:44px;
    height:44px;
    flex-basis:44px;
    border-color:color-mix(in srgb,var(--wax) 34%,var(--hairline));
    background:var(--wax-soft);
    color:var(--wax);
  }
  .toc-search{flex:0 0 auto;margin-bottom:9px}
  .toc [data-toc-home][hidden]{display:none!important}
  .toc-search input{
    height:48px;
    padding-left:43px;
    padding-right:14px;
    border-radius:6px;
    box-shadow:none;
  }
  .toc-choices{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-bottom:9px;
  }
  .toc-choice{
    min-height:88px;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto minmax(0,1fr);
    align-items:start;
    gap:6px 8px;
    padding:10px 11px;
    border-radius:6px;
  }
  .toc-choice.is-main{
    box-shadow:inset 3px 0 0 var(--wax);
  }
  .tch-no{
    grid-column:1;
    grid-row:1;
    align-self:auto;
    padding:0;
    font-size:8.5px;
  }
  .tch-copy{
    grid-column:1/-1;
    grid-row:2;
    align-self:end;
  }
  .tch-copy b{
    font-size:15.5px;
    line-height:1.14;
  }
  .tch-copy small{display:none}
  .tch-go{
    grid-column:2;
    grid-row:1;
    font-size:15px;
    line-height:1;
  }
  .toc-route{
    display:flex;
    align-items:center;
    min-height:48px;
    margin:0 0 9px;
    padding:0 11px;
    border:1px solid var(--hairline);
    border-radius:6px;
    background:color-mix(in srgb,var(--sheet) 72%,transparent);
  }
  .toc-route .tr-head{
    width:100%;
    margin:0;
    padding:0;
    align-items:center;
  }
  .toc-route .tr-head .toc-grp-t{
    margin:0;
    color:var(--ink-soft);
    letter-spacing:.13em;
  }
  .toc-route .tr-head>a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    color:var(--wax);
  }
  .toc-route .tr-steps{display:none}
  .toc-directory{
    flex:0 0 auto;
    margin-bottom:0;
    border-radius:6px;
  }
  .toc-directory>summary{
    min-height:50px;
    padding:7px 11px;
  }
  .toc-directory>summary b{font-size:15.5px}
  .toc-directory>summary small{font-size:10px}
  .toc-grid{padding:12px 11px}
  .toc-sr .dotrow>span:first-child{
    min-width:0;
    overflow-wrap:anywhere;
  }
  .toc-sr .dots{min-width:12px}
  .toc-footbar{
    flex:0 0 auto;
    margin-top:auto;
    padding:10px 0 0;
  }
  .toc-footbar button{
    width:100%;
    min-height:50px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 13px;
    border-radius:6px;
    background:var(--wax);
    color:#FFFEF9;
    text-align:left;
  }
  .toc-footbar button span{
    color:color-mix(in srgb,#FFFEF9 72%,transparent);
    font-size:10px;
  }
  .toc-footbar button b{
    color:#FFFEF9;
    font-size:14px;
  }

  /* Кабинет и ссылка оплаты: узкие строки становятся двухрядными. */
  .file-line{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
  }
  .file-line .fl-meta{grid-column:2;white-space:normal!important}
  .file-line>a,.file-line>.link{grid-column:3;grid-row:1/3}
  .ovg{grid-template-columns:minmax(0,1fr)!important}
  #zkMcta{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
  }
  #zkMcta .zk-ml{min-width:0}
  #zkMcta .btn{min-width:0;max-width:46vw}
  #zkMctaNote{min-width:0;max-width:100%;overflow-wrap:anywhere}
  .zk-markst{position:static!important;width:max-content;max-width:100%;margin:8px 0 12px}

  .dossier-dialog-content{padding-bottom:84px}

  /* Первый consent — компактное решение, а не второй экран поверх сайта. */
  .cookiebar{
    left:8px;
    right:8px;
    bottom:max(8px,env(safe-area-inset-bottom));
    width:auto;
    max-height:min(52svh,360px);
    overflow:auto;
    padding:12px;
    border-radius:8px;
  }
  .cookiebar .cb-head{margin-bottom:7px}
  .cookiebar>p{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    margin-bottom:9px;
    font-size:12px;
    line-height:1.4;
  }
  .cookiebar .cb-actions{grid-template-columns:1fr 1fr;gap:7px}
  .cookiebar .cb-actions .btn{min-height:46px}
  .cookiebar .cb-foot{margin-top:7px;padding-top:7px}
}

@media screen and (max-width:480px){
  .site-header .brand .b-full{display:none!important}
  .site-header .brand .b-short{display:inline!important}
  .site-header .brand .b-name{font-size:14px}
}

@media screen and (max-width:420px){
  .mnav .mn-i{font-size:10px;letter-spacing:0}
  .conf-mcta .mq-bar{
    grid-template-columns:46px minmax(0,1fr) minmax(106px,.74fr);
    gap:6px;
  }
  .conf-mcta .mq-back{width:46px}
  .conf-mcta .mq-more{font-size:9.5px}
  .conf-mcta #mNext{font-size:14px}
  body.conf-step-final .conf-mcta .mq-bar{
    grid-template-columns:46px minmax(0,1fr) 132px;
  }
  body.svc-checkout .conf-mcta .mq-bar{
    grid-template-columns:minmax(92px,.56fr) minmax(150px,1fr);
  }
  #zkMcta .btn{max-width:44vw;padding-left:12px;padding-right:12px}
  .home .pr-form[data-estimator-flow="1"] .plates,
  .home .pr-form[data-estimator-flow="1"] .plates.cols-3{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .home .pr-form[data-estimator-flow="1"] .plates button{text-align:left}
  .home .pr-form[data-estimator-flow="1"] .pr-type-choices{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  .home .pr-form[data-estimator-flow="1"] .pr-type-choices .pr-choice-secondary,
  .home .pr-form[data-estimator-flow="1"] .pr-type-choices .plate-more{
    grid-column:1/-1;
  }
  .cookiebar h2{font-size:18px}
  .cookiebar .cb-mark{width:29px;height:29px}
  .cookiebar .cb-foot{grid-template-columns:max-content max-content}
  .cookiebar .cb-foot>span{display:none}
}

@media screen and (max-width:340px){
  .site-header .brand{max-width:148px}
  .mnav .mn-i{font-size:9.5px}
  .home .pr-note{
    margin-top:9px!important;
    padding-left:0!important;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:9.5px!important;
  }
  .conf-mcta .mq-bar{
    grid-template-columns:44px minmax(0,1fr) minmax(96px,.7fr);
    gap:5px;
  }
  .conf-mcta .mq-more{display:none}
  body.conf-step-final .conf-mcta .mq-bar{
    grid-template-columns:44px minmax(0,1fr) 128px;
  }
  body.svc-checkout .conf-mcta .mq-bar{
    grid-template-columns:minmax(88px,.54fr) minmax(146px,1fr);
  }
}

@media screen and (max-width:380px) and (max-height:620px){
  /* На коротких телефонах не отдаём главный CTA под нижнюю навигацию. */
  .home .pr-scope{display:none!important}
  .home .pr-lead{margin-top:14px;padding-top:12px}
  .home .pr-cta{margin-top:14px!important}
  .rv-hero{padding-top:calc(var(--mobile-header-h) + 18px)!important}
  .rv-hero .h-display{font-size:44px!important;line-height:.98!important}
  .rv-hero .rv-lead{font-size:14.5px!important;line-height:1.45!important}
  .rv-cover-actions{margin-top:16px!important}
  .rv-cover-note{display:none!important}
}

@media screen and (max-width:880px) and (max-height:700px){
  .contact-sheet .cs-card{max-height:94svh}
  .sdlg-card,.tour-card,.dossier-dialog,.mledger{max-height:94svh}
  .home .pr-h{font-size:35px}
  .home .pr-lead{font-size:14px;line-height:1.5}
  .home .pr-cta{margin-top:18px!important}
  .home .pr-note{margin-top:10px!important}
  .home .story-chip{
    min-height:44px;
    margin-top:10px;
    padding-top:9px;
    padding-bottom:9px;
  }
}
