/* Бобровский & Пантюхина — единая визуальная система (вариант A+B «Журнал без кейсов», редакция 2)
   Материал: тёплый уголь со светом из студии, золото как чернила и как полоса. Антиква для заголовков, гротеск для текста. */
:root{
  --bg:#120F0C;--bg-2:#17130F;--panel:#1F1913;--panel-2:#272019;
  --ink:#F5F0E6;--ink-2:#DACFBD;--muted:#AB9F8C;--muted-2:#877C6B;
  --gold:#C9A14A;--gold-2:#E4BE62;--gold-ink:#171206;
  --line:rgba(245,240,230,.09);--line-2:rgba(245,240,230,.17);--line-gold:rgba(201,161,74,.5);
  --shadow:0 28px 56px -30px rgba(0,0,0,.75);
  --serif:"Playfair Display","Playfair Fallback",Georgia,"Times New Roman",serif;
  --sans:"Manrope","Manrope Fallback","Segoe UI",system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);--spring:linear(0,.006,.025 2.8%,.101 6.1%,.539 18.9%,.721 25.3%,.849 31.5%,.937 38.1%,.968 41.8%,.991 45.7%,1.006 50.3%,1.012 57.7%,1.002 72.7%,1);--fast:.18s;--base:.6s;
  --wrap:1240px;--gutter:clamp(20px,4vw,48px);--r:16px;--r-sm:6px;
  --s-13:13px;--s-15:15px;--s-17:17px;--s-20:clamp(18px,1.5vw,20px);--s-24:clamp(21px,1.9vw,24px);
  --s-30:clamp(25px,2.5vw,30px);--s-40:clamp(30px,3.3vw,40px);--s-56:clamp(36px,4.5vw,56px);--s-80:clamp(42px,6vw,84px);
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scrollbar-color:var(--muted-2) var(--bg)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
html{scroll-padding-top:88px}
html.lock{overflow:hidden}
body{background:var(--bg);color:var(--ink-2);font:400 var(--s-17)/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
::selection{background:var(--gold);color:var(--gold-ink)}
:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px;border-radius:3px}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
svg{display:block}
.wrap{width:min(var(--wrap),100% - 2*var(--gutter));margin-inline:auto;position:relative}

h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--ink);line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:var(--s-80);line-height:1.02}
h2{font-size:var(--s-56)}
h3{font-size:var(--s-24);line-height:1.2}
em.g{font-style:italic;color:var(--gold-2)}
p{text-wrap:pretty}.lead{font-size:var(--s-20);line-height:1.55;color:var(--ink-2);max-width:34.16em}
.small{font-size:var(--s-15);color:var(--muted)}
.ulink{color:var(--gold-2);text-decoration:underline;text-decoration-color:var(--line-gold);text-underline-offset:4px;text-decoration-thickness:1px;transition:text-decoration-color var(--fast) var(--ease)}
.ulink:hover{text-decoration-color:var(--gold-2)}
.arrow{display:inline-flex;align-items:center;gap:8px;padding-block:8px;color:var(--gold-2);font-weight:600;font-size:var(--s-15)}
.arrow svg{width:16px;height:16px;transition:transform .25s var(--ease)}
.arrow:hover svg{transform:translateX(4px)}

/* атмосфера: размытый свет из студии, где сняты портреты */
.atmo{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.atmo::before{content:"";position:absolute;left:-6%;right:-6%;top:-6vh;height:112vh;background:url(img/atmo.webp) center/cover no-repeat;opacity:var(--atmo,.55);animation:atmo 26s var(--ease) infinite alternate;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);mask-image:linear-gradient(180deg,#000 72%,transparent)}
/* высота света привязана к экрану, а не к блоку: подмена шрифта больше не «двигает» фон (CLS) */
.team-sec .atmo::before{top:-6%;height:112%;-webkit-mask-image:none;mask-image:none}
.atmo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,15,12,.2) 0%,rgba(18,15,12,.55) 55%,var(--bg) 100%)}
@keyframes atmo{from{transform:scale(1) translateY(0)}to{transform:scale(1.07) translateY(-1.5%)}}

/* кнопки: золотая с бликом при наведении */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:var(--r-sm);font:600 var(--s-15)/1 var(--sans);color:var(--ink);border:1px solid transparent;cursor:pointer;white-space:nowrap;overflow:hidden;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--ease),box-shadow .3s var(--ease)}
.btn svg{width:18px;height:18px;flex:none}
.btn-gold{background:var(--gold);color:var(--gold-ink);box-shadow:0 14px 30px -16px rgba(201,161,74,.55)}
.btn-gold::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.38) 50%,transparent 65%);transform:translateX(-130%);transition:transform .7s var(--ease)}
.btn-gold:hover{background:var(--gold-2);box-shadow:0 18px 34px -16px rgba(201,161,74,.7)}
.btn-gold:hover::after{transform:translateX(130%)}
.btn-line{border-color:var(--line-2)}
.btn-line:hover{border-color:var(--line-gold);background:rgba(201,161,74,.06)}
.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.6;cursor:default}

/* шапка: стекло только здесь и в нижней панели */
.top{position:fixed;inset:0 0 auto;z-index:50;background:rgba(18,15,12,.7);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.logo{font:600 15px/1 var(--serif);letter-spacing:.07em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.top .logo{view-transition-name:logo}
.logo b{color:var(--gold);font-weight:600}
.nav{display:flex;gap:28px}
.nav a{position:relative;padding:8px 0;font:500 var(--s-15)/1 var(--sans);color:var(--ink-2);transition:color var(--fast) var(--ease)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover{color:var(--ink)}
.nav a:hover::after{transform:scaleX(1)}
.top-cta{display:flex;align-items:center;gap:14px}
.burger{display:none;width:44px;height:44px;border:0;background:none;color:var(--ink);cursor:pointer;align-items:center;justify-content:center}
.burger svg{width:24px;height:24px}
.menu{display:none}

/* секции и их ритм: уголь / тёплый уголь / золотая полоса */
.sec{position:relative;padding-block:clamp(72px,9vw,120px)}
.sec+.sec{border-top:1px solid var(--line)}
.sec.warm{background:var(--bg-2)}
.sec-h{display:grid;grid-template-columns:7fr 5fr;gap:24px 40px;align-items:end;margin-bottom:clamp(36px,5vw,60px)}.sec-h p{font-size:var(--s-20);color:var(--ink-2);max-width:26.84em;padding-bottom:6px}.sec-h h2{max-width:12.6em}
.sec-h .rule{grid-column:1/-1;height:1px;background:linear-gradient(90deg,var(--gold) 0,var(--gold) 64px,var(--line-2) 64px);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease) .15s}
.sec-h.in .rule,html:not(.js) .sec-h .rule{transform:scaleX(1)}

/* золотая полоса: цвет на уровне страницы, а не акцент */
.gold-band{position:relative;padding-block:clamp(56px,7vw,96px);background:linear-gradient(135deg,#D6AE58 0%,#C9A14A 55%,#B8903F 100%);color:var(--gold-ink)}
.gold-band .wrap{display:grid;grid-template-columns:8fr 4fr;gap:24px 40px;align-items:end}.gold-band p{font:italic 500 var(--s-40)/1.22 var(--serif);max-width:15.12em;color:#171206;letter-spacing:-.01em;text-wrap:balance}
.gold-band .small{color:rgba(23,18,6,.88);font-weight:600}
.gold-band ::selection{background:#171206;color:var(--gold-2)}

/* определения: hairline-сетка вместо карточек */
.defs{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-2)}
.def{padding:30px 40px 34px 0;border-bottom:1px solid var(--line)}
.def:nth-child(odd){border-right:1px solid var(--line)}
.def:nth-child(even){padding-left:40px;padding-right:0}
.def h3{margin-bottom:10px}.def p{max-width:24.4em}

/* услуги: редакционные строки со схемой-плиткой */
.svc{position:relative;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(300px,4fr);gap:32px 48px;padding:clamp(32px,4vw,52px) 0;border-top:1px solid var(--line-2);align-items:center}
.svc:last-of-type{border-bottom:1px solid var(--line-2)}
.svc::before{content:"";position:absolute;inset:0 calc(-1*var(--gutter));background:linear-gradient(90deg,rgba(201,161,74,.08),transparent 55%);opacity:0;transition:opacity .45s var(--ease);pointer-events:none}
.svc:hover::before{opacity:1}
.svc h3{font-size:var(--s-40);line-height:1.06}
.svc h3 a{transition:color var(--fast) var(--ease)}
.svc:hover h3 a{color:var(--gold-2)}.svc p{margin-bottom:18px;max-width:28.06em}
.facts{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:22px;font-size:var(--s-15);color:var(--muted)}
.facts li{display:flex;align-items:center;gap:10px}
.facts li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold)}

/* схема: плитка с тёплым светом, линии рисуются при появлении, подписи антиквой */
.dg{position:relative;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;color:var(--gold);background:radial-gradient(120% 100% at 15% 0%,rgba(201,161,74,.2),transparent 55%),var(--panel);border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.dg svg{position:absolute;inset:0;width:100%;height:100%;padding:6%}
.dg path,.dg .ring{transition:stroke-dashoffset 1.4s var(--ease) var(--d,0s)}
.dg circle:not(.ring){transform-box:fill-box;transform-origin:center;transition:transform .5s var(--ease) var(--d,0s)}
.dg text{font:italic 500 18px var(--serif);fill:var(--gold-2);stroke:none;transition:opacity .6s var(--ease) 1.2s}
html.js .dg:not(.on) path,html.js .dg:not(.on) .ring{stroke-dasharray:1;stroke-dashoffset:1}
html.js .dg:not(.on) circle:not(.ring){transform:scale(0)}
html.js .dg:not(.on) text{opacity:0}

/* цитата (если не полоса) */
.quote{margin-top:clamp(48px,6vw,80px);padding-top:clamp(36px,4vw,56px);border-top:1px solid var(--line-2);display:grid;grid-template-columns:7fr 5fr;gap:24px 40px;align-items:start}.quote p{font:italic 500 var(--s-30)/1.3 var(--serif);color:var(--ink);max-width:17.64em;text-wrap:balance}

/* команда */
.team{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px)}
.member figure{overflow:hidden;border-radius:var(--r);aspect-ratio:4/5;background:var(--panel);margin-bottom:26px;box-shadow:var(--shadow)}
.member img{width:100%;height:100%;object-fit:cover;object-position:center 18%;transition:transform 1.1s var(--ease)}
.member figure:hover img{transform:scale(1.04)}
.member h3{font-size:var(--s-40);margin-bottom:6px}
.member .role{color:var(--gold-2);font-weight:500;margin-bottom:18px}
.member ul{border-top:1px solid var(--line-2);margin-bottom:22px}.member li{padding:12px 0;border-bottom:1px solid var(--line);font-size:var(--s-15);color:var(--ink-2);max-width:28.06em}
.member .links{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.strip{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:clamp(40px,5vw,64px);padding-top:28px;border-top:1px solid var(--line-2);font-size:var(--s-15);color:var(--muted)}
.strip li{display:flex;align-items:center;gap:12px}
.strip li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold)}
.strip b{color:var(--ink);font-weight:600}

/* процесс: линия прочерчивается, точки появляются по очереди */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;position:relative;padding-top:28px}
.steps::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line-2);transform-origin:left;transition:transform 1.4s var(--ease)}
.step{position:relative}
.step::before{content:"";position:absolute;left:0;top:-32px;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 6px rgba(201,161,74,.12);transition:transform .45s var(--spring) calc(.25s + var(--i,0)*.22s)}
.step .n{font:600 var(--s-20)/1 var(--serif);color:var(--gold-2);margin-bottom:14px}
.step h3{font-size:var(--s-24);margin-bottom:10px}.step p{font-size:var(--s-15);color:var(--ink-2);max-width:18.3em}
html.js .steps:not(.in)::before{transform:scaleX(0)}
html.js .steps:not(.in) .step::before{transform:scale(0)}
.steps.v{grid-template-columns:1fr;gap:0;padding-top:0}
.steps.v::before{top:0;bottom:0;left:4px;right:auto;width:1px;height:auto;transform-origin:top}
.steps.v .step{padding:0 0 36px 36px}
.steps.v .step::before{left:0;top:8px}
html.js .steps.v:not(.in)::before{transform:scaleY(0)}

/* вопросы: раскрытие с анимацией высоты */
.faq{border-top:1px solid var(--line-2);max-width:820px}
.faq .q{border-bottom:1px solid var(--line)}
.faq button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;background:none;border:0;cursor:pointer;text-align:left;font:600 var(--s-20)/1.3 var(--serif);color:var(--ink);letter-spacing:-.01em;transition:color var(--fast) var(--ease)}
.faq button:hover{color:var(--gold-2)}
.faq button svg{width:20px;height:20px;flex:none;color:var(--gold-2);transition:transform .35s var(--ease)}
.faq .q.open button svg{transform:rotate(45deg)}
.faq .a{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .45s var(--ease),visibility 0s linear .45s}
.faq .q.open .a{grid-template-rows:1fr;visibility:visible;transition-delay:0s}
.faq .a>div{overflow:hidden}.faq .a p{padding:0 0 24px;max-width:37.82em;color:var(--ink-2)}

/* контакт */
.contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,72px);align-items:start}
.form{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,3vw,36px);box-shadow:var(--shadow)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fld{display:grid;gap:8px;margin-bottom:18px}
.fld label{font-size:var(--s-15);font-weight:500;color:var(--ink-2)}
.fld input,.fld textarea{width:100%;background:var(--bg);border:1px solid rgba(245,240,230,.42);border-radius:var(--r-sm);padding:14px 16px;color:var(--ink);font:400 16px/1.4 var(--sans);caret-color:var(--gold-2);transition:border-color var(--fast) var(--ease),box-shadow .3s var(--ease)}
.fld input::placeholder,.fld textarea::placeholder{color:var(--muted-2)}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,161,74,.14)}
.fld textarea{min-height:120px;resize:vertical}
.chk{display:flex;gap:12px;align-items:flex-start;font-size:var(--s-15);color:var(--muted);margin:4px 0 22px}
.chk input{accent-color:var(--gold);width:18px;height:18px;margin-top:3px;flex:none}
.form .note{margin-top:14px;font-size:var(--s-13);color:var(--muted);text-align:center}
.ways{border-top:1px solid var(--line-2)}
.ways a{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);color:var(--ink);font-weight:500;transition:color var(--fast) var(--ease),padding-left .25s var(--ease)}
.ways a:hover{color:var(--gold-2);padding-left:6px}
.ways a svg{width:22px;height:22px;color:var(--gold);flex:none}
.ways small{margin-left:auto;color:var(--muted);font-size:var(--s-15);font-weight:400;white-space:nowrap}
.step0{margin-top:28px;padding:22px 24px;border:1px solid var(--line-gold);border-radius:var(--r);background:linear-gradient(135deg,rgba(201,161,74,.1),transparent 60%)}
.step0 h3{font-size:var(--s-20);margin-bottom:8px}
.step0 p{font-size:var(--s-15);margin-bottom:14px}

/* кто ведёт: два практика на странице услуги */
.who{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.who-c{display:grid;grid-template-columns:132px minmax(0,1fr);gap:24px;align-items:center;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);transition:border-color .3s var(--ease)}
.who-c picture{display:block;border-radius:12px;overflow:hidden;aspect-ratio:4/5;background:var(--panel-2)}
.who-c img{width:100%;height:100%;object-fit:cover}
.who-c h3{font-size:var(--s-24);margin-bottom:4px}
.who-c .role{font-size:var(--s-15);color:var(--gold-2);font-weight:500;margin-bottom:10px}
.who-c p:not(.role){font-size:var(--s-15);color:var(--ink-2)}
.who-c .arrow{margin-top:6px}
@media (hover:hover){.who-c:hover{border-color:var(--line-gold)}.who-c:hover .arrow svg{transform:translateX(4px)}}

/* финальная полоса */
.band{position:relative;padding-block:clamp(64px,8vw,110px);background:var(--panel);border-top:1px solid var(--line-2);overflow:hidden}
.band .wrap{display:grid;grid-template-columns:8fr 4fr;gap:32px 40px;align-items:end}.band h2{max-width:12.6em;margin-bottom:18px}.band p{max-width:28.06em;font-size:var(--s-20)}
.band .acts{justify-self:end}

/* футер */
.foot{padding:56px 0 40px;border-top:1px solid var(--line)}
.foot .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px 40px;margin-bottom:48px}.foot .brand p{max-width:20.74em;margin-top:14px;font-size:var(--s-15);color:var(--muted)}
.foot h4{font:500 var(--s-13)/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.foot li{margin-bottom:10px}
.foot li a{font-size:var(--s-15);color:var(--ink-2);padding:8px 0;display:inline-block;transition:color var(--fast) var(--ease)}
.foot li a:hover{color:var(--gold-2)}
.foot li.city{font-size:var(--s-15);color:var(--muted);padding:8px 0}
.foot .bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding-top:24px;border-top:1px solid var(--line);font-size:var(--s-13);color:var(--muted)}
.foot .bottom a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}

/* появление блоков при прокрутке: разное для разных типов, от видимого состояния по умолчанию */
.rv{transition:opacity var(--base) var(--ease) var(--d,0s),translate var(--base) var(--ease) var(--d,0s)}
html.js .rv:not(.in){opacity:0;translate:0 22px}

/* путь от заявки до результата: кольца с номерами на одной линии, итог шага под чертой */
.journey{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:40px 32px;padding-top:4px}
.journey::before{content:"";position:absolute;left:28px;right:28px;top:32px;height:1px;background:linear-gradient(90deg,var(--gold),var(--line-2) 40%,var(--line-2));transform-origin:left;transition:transform 1.8s var(--ease) .2s}
.jstep{position:relative}
.jn{position:relative;z-index:1;width:56px;height:56px;border-radius:50%;border:1px solid var(--line-gold);background:var(--bg-2);display:grid;place-items:center;font:600 24px/1 var(--serif);color:var(--gold-2);margin-bottom:24px;box-shadow:0 0 0 10px var(--bg-2);transition:transform .6s var(--spring) calc(.35s + var(--i,0)*.25s),background .3s var(--ease),color .3s var(--ease)}
.jstep:hover .jn{background:var(--gold);color:var(--gold-ink)}
.jstep h3{font-size:var(--s-24);margin-bottom:10px}.jstep p{font-size:var(--s-15);color:var(--ink-2);max-width:18.3em}
.jo{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line-2);font-size:var(--s-15);font-weight:600;color:var(--gold-2)}
.jo svg{width:16px;height:16px;flex:none}
html.js .journey:not(.in)::before{transform:scaleX(0)}
html.js .journey:not(.in) .jn{transform:scale(0)}
.sec:not(.warm) .jn{background:var(--bg);box-shadow:0 0 0 10px var(--bg)}

/* вопросы: липкое вступление слева, крупные вопросы справа, открытый вопрос отмечен золотой чертой */
.faq-grid{display:grid;grid-template-columns:5fr 7fr;gap:40px clamp(32px,5vw,72px);align-items:start}
.faq-aside{position:sticky;top:96px}
.faq-aside h2{margin-bottom:18px}.faq-aside p{font-size:var(--s-20);color:var(--ink-2);max-width:21.96em;margin-bottom:26px}
.faq-aside .acts{display:flex;flex-wrap:wrap;gap:12px}
.faq-grid .faq{max-width:none}
.faq .q{transition:padding-left .35s var(--ease),border-color .35s var(--ease);border-left:1px solid transparent}
.faq .q.open{padding-left:22px;border-left-color:var(--gold)}
.faq .q button{font-size:var(--s-24)}
.faq .q.open button{color:var(--gold-2)}

.cbar{display:none}
.sheet{display:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html.js .rv:not(.in){opacity:1;translate:0}
}
@view-transition{navigation:auto}

/* ---------- адаптив ---------- */
@media (max-width:1024px){
  .sec-h,.quote,.band .wrap,.gold-band .wrap{grid-template-columns:1fr}
  .band .acts{justify-self:start}
  .svc{grid-template-columns:1fr 1fr;align-items:start}
  .svc h3{grid-column:1/-1}
  .svc-b{grid-column:1}
  .dg{grid-column:2;max-width:360px;justify-self:end}
  .steps{grid-template-columns:1fr 1fr;row-gap:40px}
  .journey{grid-template-columns:1fr 1fr;row-gap:48px}
  .journey::before{display:none}
  .faq-grid{grid-template-columns:1fr}
  .faq-aside{position:static}
  .foot .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:1024px){
  .nav{display:none}
  .burger{display:inline-flex}
  .menu{display:none;position:fixed;inset:72px 0 0;z-index:49;background:var(--bg);padding:28px var(--gutter) 40px;flex-direction:column;gap:6px;overflow:auto;overscroll-behavior:contain}
  .menu.open{display:flex}
  .menu a{padding:14px 0;border-bottom:1px solid var(--line);font:600 var(--s-20)/1.2 var(--serif);color:var(--ink)}
  .menu .m-btn{margin-top:22px;border:0;padding:0}
  .menu .m-tel{font:500 var(--s-17) var(--sans);color:var(--ink-2);border:0;padding:10px 0}
}
@media (max-width:760px){
  .top-cta .btn{display:none}
  .defs{grid-template-columns:1fr}
  .def,.def:nth-child(odd),.def:nth-child(even){padding:24px 0 28px;border-right:0}
  .svc{grid-template-columns:1fr;gap:20px}
  .svc::before{display:none}
  .svc-b,.dg{grid-column:1}
  .dg{max-width:none;aspect-ratio:16/10;justify-self:stretch}
  .dg text{font-size:20px}
  .team{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;gap:0;padding-top:0}
  .steps::before{top:0;bottom:0;left:4px;right:auto;width:1px;height:auto;transform-origin:top}
  html.js .steps:not(.in)::before{transform:scaleY(0)}
  .step{padding:0 0 32px 32px}
  .step::before{left:0;top:8px}
  .journey{grid-template-columns:1fr;gap:0;padding-top:0}
  .journey::before{display:block;left:27px;right:auto;top:0;bottom:0;width:1px;height:auto;transform-origin:top;background:linear-gradient(180deg,var(--gold),var(--line-2) 40%,var(--line-2))}
  html.js .journey:not(.in)::before{transform:scaleY(0)}
  .jstep{display:grid;grid-template-columns:56px 1fr;column-gap:18px;padding-bottom:36px}
  .jn{grid-row:1/span 3;margin:0}
  .jstep h3,.jstep p,.jo{grid-column:2}
  .jstep h3{padding-top:14px}
  .contact{grid-template-columns:1fr}
  .form .row{grid-template-columns:1fr}
  .form .btn{width:100%}
  .ways a{flex-wrap:wrap}
  .ways small{flex-basis:100%;margin-left:38px;white-space:normal;font-size:var(--s-13)}
  .list.cols{grid-template-columns:1fr}
  .who{grid-template-columns:1fr}
  .who-c{grid-template-columns:84px minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:16px;row-gap:0;align-items:start;padding:16px}
  .who-c>div{display:contents}
  .who-c picture{grid-row:1/span 2}
  .who-c h3,.who-c .role{grid-column:2}
  .who-c h3{padding-top:6px}
  .who-c .role{margin-bottom:0}
  .who-c p:not(.role),.who-c .arrow{grid-column:1/-1}
  .who-c p:not(.role){margin-top:14px}
  .foot .cols{grid-template-columns:1fr;gap:28px}
  body.has-bar{padding-bottom:84px}
  html{scroll-padding-bottom:96px}
  .cbar{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:48;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom,0px));background:rgba(18,15,12,.84);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-top:1px solid var(--line-2);transform:translateY(110%);transition:transform .6s var(--spring)}
  .cbar.on{transform:none}
  .cbar>*{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 6px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:none;color:var(--ink);font:600 14px/1 var(--sans);cursor:pointer;white-space:nowrap}
  .cbar>* svg{width:18px;height:18px}
  .cbar .gold{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
  .sheet{display:block;position:fixed;inset:0;z-index:60;visibility:hidden}
  .sheet .bd{position:absolute;inset:0;background:rgba(0,0,0,.5);opacity:0;transition:opacity .25s var(--ease)}
  .sheet .pn{position:absolute;left:0;right:0;bottom:0;background:var(--panel);border-radius:18px 18px 0 0;padding:14px var(--gutter) calc(20px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .55s var(--spring)}
  .sheet.open{visibility:visible}
  .sheet.open .bd{opacity:1}
  .sheet.open .pn{transform:none}
  .sheet .grab{width:44px;height:4px;border-radius:2px;background:var(--line-2);margin:0 auto 14px}
  .sheet h3{font-size:var(--s-20);margin-bottom:6px}
  .sheet a{display:flex;align-items:center;gap:14px;min-height:56px;border-top:1px solid var(--line);color:var(--ink);font-weight:500}
  .sheet a svg{width:22px;height:22px;color:var(--gold)}
  .sheet a small{margin-left:auto;color:var(--muted);font-size:var(--s-13);font-weight:400}
}
@media (max-width:400px){.cbar>* svg{display:none}}

/* доступность: ссылка «к содержимому» видна только при фокусе с клавиатуры */
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:var(--r-sm);background:var(--gold);color:var(--gold-ink);font-weight:600;transition:top .2s var(--ease)}
.skip:focus{top:12px}
/* кнопка «закрыть» в листах «Написать / Позвонить» */
.sheet .x{position:absolute;right:calc(var(--gutter) - 10px);top:10px;width:44px;height:44px;border:0;background:none;color:var(--ink-2);cursor:pointer;display:grid;place-items:center;border-radius:50%}
.sheet .x svg{width:22px;height:22px}
.sheet .x:hover{color:var(--ink)}
/* когда играет видео, картинка под ним не анимируется (экономия кадров) */
.has-video picture,.has-video .sheen{animation:none!important}
/* наведение — только там, где есть мышь: на тач-экранах карточки не «залипают» поднятыми */
@media (hover:none){
  .member figure:hover img{transform:none}
  .ways a:hover{padding-left:0}
  .btn-gold:hover::after{transform:translateX(-130%)}
}

/* уведомление о cookie и Метрике: тонкая полоса внизу, показывается один раз (assets/site.js) */
.ck{position:fixed;left:0;right:0;bottom:0;z-index:47;background:rgba(18,15,12,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line-2);padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));font:400 14px/1.5 var(--sans);color:var(--ink-2);transform:translateY(110%);transition:transform .5s var(--ease),bottom .5s var(--ease)}
.ck.on{transform:none}
.ck .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px 20px}
.ck p{margin:0;max-width:56em}
.ck a{color:var(--gold-2);text-decoration:underline;text-decoration-color:var(--line-gold);text-underline-offset:3px}
.ck .btn{flex:none;min-height:40px;padding:0 18px;font-size:14px;background:transparent;color:var(--ink)}
.ck .btn:hover{background:rgba(201,161,74,.06)}
@media (max-width:760px){
  .ck .wrap{flex-direction:column;align-items:stretch}
  .ck .btn{width:100%}
  /* когда выехала нижняя панель «Написать · Позвонить · Заявка», полоса встаёт над ней */
  .cbar.on~.ck{bottom:calc(69px + env(safe-area-inset-bottom,0px));padding-bottom:12px}
}
