@font-face{font-family:"Ruslan Display";font-display:swap;src:url(assets/fonts/ruslan-display-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Ruslan Display";font-display:swap;src:url(assets/fonts/ruslan-display-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:"Golos Text";font-weight:400 700;font-display:swap;src:url(assets/fonts/golos-text-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Golos Text";font-weight:400 700;font-display:swap;src:url(assets/fonts/golos-text-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --walnut:#1F2C36;
  --walnut-2:#2A3A46;
  --spruce:#25403A;
  --birch:#EDE3D0;
  --slate-card:#2B3B47;
  --brick:#A8331B;
  --brick-hot:#B8442A;
  --honey:#DDA55A;
  --cream:#F6E9D2;
  --cream-dim:rgba(246,233,210,.68);
  --ink:#1F2C36;
  --display:"Ruslan Display",Georgia,serif;
  --body:"Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:clamp(16px,4vw,48px);
  --r:32px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:56px}
body{margin:0;background:var(--walnut);color:var(--cream);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;margin:0;text-wrap:balance}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--gut)}
.skip{position:absolute;left:8px;top:-60px;background:var(--cream);color:var(--ink);padding:10px 14px;z-index:40}
.skip:focus{top:8px}
:focus-visible{outline:3px solid var(--honey);outline-offset:3px}

/* icons (mask, take currentColor) */
.ico{display:inline-block;width:22px;height:22px;flex:none;background:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.ico-phone{--m:url(assets/icons/phone.svg)}
.ico-wa{--m:url(assets/icons/whatsapp.svg)}
.ico-tg{--m:url(assets/icons/telegram.svg)}

/* header */
.top{position:fixed;inset:0 0 auto 0;z-index:30;display:flex;align-items:center;gap:28px;padding:10px var(--gut);background:linear-gradient(rgba(31,44,54,.86),rgba(31,44,54,0))}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{border-radius:4px}
.brand-name{font-family:var(--display);font-size:21px;line-height:1;white-space:nowrap}
.nav{display:flex;gap:28px;margin-left:auto;font-size:15px}
.nav a{text-decoration:none;padding:8px 0;border-bottom:1px solid transparent}
.nav a:hover{border-bottom-color:var(--cream)}

/* controls: round icon buttons and the phone button */
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.round{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:2px solid var(--cream);color:var(--cream);text-decoration:none;transition:background-color .15s,color .15s}
.round:hover{background:var(--cream);color:var(--walnut)}
.round-call{width:44px;height:44px;border-color:transparent;background:var(--brick-hot);color:#fff}
.round-call:hover{background:var(--honey);color:var(--walnut)}
.round-light{border-color:var(--walnut);color:var(--walnut)}
.round-light:hover{background:var(--walnut);color:var(--cream)}
.call{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 26px 0 20px;border-radius:26px;background:var(--brick-hot);color:#fff;font-weight:700;font-size:17px;text-decoration:none;white-space:nowrap;transition:background-color .15s,color .15s}
.call:hover{background:var(--honey);color:var(--walnut)}
.call-light{background:var(--walnut);color:var(--cream)}
.call-light:hover{background:#000;color:#fff}

/* hero: stays put, next panel slides over it */
.hero{position:sticky;top:0;z-index:1;height:100svh;min-height:560px;display:flex;align-items:flex-end;overflow:hidden;background:var(--walnut)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(31,44,54,.88) 0%,rgba(31,44,54,.25) 45%,rgba(31,44,54,0) 70%),linear-gradient(90deg,rgba(31,44,54,.78) 0%,rgba(31,44,54,0) 60%)}
.hero-in{position:relative;z-index:2;width:100%;max-width:1180px;margin:0 auto;padding:120px var(--gut) clamp(56px,10vh,96px)}
.hero h1{font-size:clamp(34px,4.6vw,66px);max-width:9em;color:#fff;line-height:1.12}
.hero-lead{max-width:30em;margin:20px 0 30px;font-size:clamp(17px,1.9vw,20px)}
@media (min-width:901px){.hero-img{left:38%;width:62%}.hero::after{background:linear-gradient(90deg,var(--walnut) 0%,var(--walnut) 38%,rgba(31,44,54,0) 62%),linear-gradient(0deg,rgba(31,44,54,.6),transparent 35%)}}

/* panels slide over each other, no flat bands */
.panel{position:relative;z-index:2;border-radius:var(--r) var(--r) 0 0;padding:clamp(56px,8vw,104px) 0 clamp(72px,9vw,120px)}
.panel + .panel{margin-top:calc(var(--r) * -1);padding-top:calc(clamp(56px,8vw,104px) + var(--r))}
.panel h2{font-size:clamp(28px,4vw,52px)}
.lead{margin-top:14px;max-width:34em;color:var(--cream-dim)}

/* services configurator */
.uslugi{background:var(--spruce);box-shadow:0 -18px 40px rgba(0,0,0,.35)}
.conf{display:grid;grid-template-columns:minmax(200px,3fr) 9fr;gap:clamp(20px,4vw,56px);margin-top:clamp(28px,4vw,48px);align-items:start}
.tabs{display:flex;flex-direction:column;gap:6px}
.tab{font:400 clamp(20px,2.2vw,28px)/1.15 var(--display);color:var(--cream-dim);background:none;border:0;border-left:4px solid transparent;text-align:left;padding:12px 0 12px 16px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:color .15s}
.tab:hover{color:var(--cream)}
.tab.on{color:#fff;border-left-color:var(--honey)}
.cnt{font:700 13px/1 var(--body);min-width:22px;height:22px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;background:var(--honey);color:var(--walnut)}
.rows{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.row{display:flex;align-items:stretch;gap:10px;border-radius:16px;border:1px solid rgba(246,233,210,.28);transition:background-color .15s,border-color .15s}
.row:hover{border-color:rgba(246,233,210,.6)}
.row.on{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.pick{flex:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:16px;min-height:56px}
.nm{font-weight:500}
.pr{font-weight:700;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.pr small{display:block;font-weight:400;font-size:13px;opacity:.75}
.qty{display:flex;align-items:center;gap:8px;padding-right:16px;font-size:14px;color:#4a5a66}
.qty input{width:84px;height:40px;border:2px solid var(--spruce);border-radius:12px;background:#fff;color:var(--ink);font:700 16px var(--body);text-align:center;padding:0 6px}
.qty input:focus{outline:3px solid var(--honey);outline-offset:1px}

.bar{position:sticky;bottom:14px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:28px;padding:14px 14px 14px 26px;border-radius:30px;background:var(--cream);color:var(--ink);box-shadow:0 6px 24px rgba(0,0,0,.35)}
.bar-sum{display:flex;flex-direction:column;line-height:1.2}
.bar-label{font-size:14px;color:#4a5a66}
.bar-total{font:400 clamp(24px,3vw,34px)/1.1 var(--display);color:var(--spruce)}

/* process: cards stack over each other while scrolling */
.kak{background:var(--birch);color:var(--ink);box-shadow:0 -18px 40px rgba(0,0,0,.25);padding-bottom:clamp(56px,7vw,88px)}
.kak .lead{color:#4a5a66}
.kak-grid{display:grid;grid-template-columns:4fr 8fr;gap:clamp(28px,6vw,88px);align-items:center}

/* contacts */
.kontakty{background:var(--walnut-2);box-shadow:0 -18px 40px rgba(0,0,0,.3)}
.kont-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(28px,6vw,80px);align-items:start}
address{font-style:normal;margin:22px 0 6px}
.addr-main{font-size:clamp(22px,2.6vw,28px);font-weight:700;line-height:1.25;margin-bottom:8px}
address p:last-child{color:var(--cream-dim)}
.facts{margin:22px 0 30px}
.facts div{display:flex;gap:20px;padding:12px 0;border-top:1px solid rgba(246,233,210,.2)}
.facts div:last-child{border-bottom:1px solid rgba(246,233,210,.2)}
.facts dt{width:84px;color:var(--cream-dim);flex:none}
.facts dd{margin:0;font-weight:500}
.facts a{text-underline-offset:3px}
.map{border-radius:24px;overflow:hidden;background:#1b2630;aspect-ratio:16/10}
.map iframe{width:100%;height:100%;border:0;display:block}
.photos{display:grid;grid-template-columns:7fr 4fr;gap:14px;margin-top:14px;align-items:end}
figure{margin:0}
figure img{width:100%;object-fit:cover;border-radius:18px;aspect-ratio:16/10}
.photos figure:last-child img{aspect-ratio:4/5}
figcaption{margin-top:6px;font-size:14px;color:var(--cream-dim)}
.foot{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:clamp(40px,6vw,72px);padding-top:20px;border-top:1px solid rgba(246,233,210,.18);font-size:14px;color:var(--cream-dim)}
.foot-demo{margin-left:auto}

@media (max-width:900px){
  .nav{display:none}
  .round-call{margin-left:auto}
  .hero-img{object-position:62% 40%;height:70%}
  .hero::after{background:linear-gradient(0deg,var(--walnut) 0%,rgba(31,44,54,.82) 38%,rgba(31,44,54,0) 72%)}
  .conf,.kak-grid,.kont-grid{grid-template-columns:1fr}
  .tabs{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:6px;scrollbar-width:none;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut)}
  .tab{border-left:0;border-bottom:3px solid transparent;padding:8px 14px;white-space:nowrap;flex:none}
  .tab.on{border-bottom-color:var(--honey)}
}
@media (max-width:560px){
  body{font-size:16px}
  .brand-name{font-size:17px}
  .row{flex-wrap:wrap}
  .pick{flex:1 1 100%;padding:12px 14px}
  .qty{padding:0 14px 12px}
  .bar{padding:10px 10px 10px 18px;border-radius:26px;flex-wrap:nowrap}
  .bar .call{height:46px;padding:0 18px 0 14px;font-size:15px}
  .bar .round-light{display:none}
  .photos{grid-template-columns:1fr 1fr}
  .foot-demo{margin-left:0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.round,.call,.row,.tab{transition:none}}

/* light motion */
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes zoomOut{from{transform:scale(1.07)}to{transform:scale(1)}}
@keyframes rowIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
@keyframes popIn{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
.hero-img{animation:zoomOut 1.8s cubic-bezier(.2,.7,.2,1) both}
.hero h1{animation:rise .8s .1s cubic-bezier(.2,.7,.2,1) both}
.hero-lead{animation:rise .8s .25s cubic-bezier(.2,.7,.2,1) both}
.hero .actions{animation:rise .8s .4s cubic-bezier(.2,.7,.2,1) both}
.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.js [data-reveal].in{opacity:1;transform:none}
.rows.anim .row{animation:rowIn .38s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--n) * 35ms)}
.qty{animation:popIn .25s cubic-bezier(.2,.7,.2,1) both}
.cnt{animation:popIn .25s cubic-bezier(.2,.7,.2,1) both}
.round,.call{transition:background-color .15s,color .15s,transform .15s}
.round:hover,.call:hover{transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){
  .hero-img,.hero h1,.hero-lead,.hero .actions,.rows.anim .row,.qty,.cnt{animation:none}
  .js [data-reveal]{opacity:1;transform:none;transition:none}
  .round:hover,.call:hover{transform:none}
}

.bar-total{white-space:nowrap}
@media (max-width:560px){.bar-total{font-size:22px}.bar-label{font-size:12.5px}}

/* process: one big card, the next one slides over it from the right */
.ico-arrow{--m:url(assets/icons/arrow.svg)}
.ico.flip{transform:scaleX(-1)}
.round-dark{border-color:var(--ink);color:var(--ink);background:transparent;cursor:pointer;font:inherit}
.round-dark:hover{background:var(--ink);color:var(--birch)}
.steps{min-width:0}
.stage{position:relative;overflow-x:clip;overflow-y:visible;height:clamp(300px,42vh,400px);touch-action:pan-y}
.step{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:clamp(26px,4vw,56px);border-radius:28px;background:var(--slate-card);color:var(--cream);box-shadow:0 16px 26px -14px rgba(31,44,54,.55);
  transform:translateX(112%);opacity:1;z-index:2;transition:transform .6s cubic-bezier(.2,.75,.15,1),opacity .6s,scale .6s}
.step h3{font-size:clamp(34px,4.2vw,60px);color:var(--honey)}
.step p{max-width:24em;font-size:clamp(18px,1.7vw,22px);line-height:1.45}
.step.is-active{transform:none;z-index:4}
.step.is-before{transform:translateX(calc(var(--d) * -2.5%)) scale(calc(1 - var(--d) * .035));opacity:calc(.55 - (var(--d) - 1) * .35);z-index:1}
.ctrl{display:flex;align-items:center;gap:16px;margin-top:22px}
.dots{display:flex;gap:10px;flex:1;justify-content:center}
.dot{width:10px;height:10px;padding:0;border-radius:50%;border:2px solid var(--ink);background:transparent;cursor:pointer;transition:background-color .2s,transform .2s,width .2s}
.dot.on{background:var(--ink);width:28px;border-radius:6px}
@media (max-width:900px){.stage{height:clamp(280px,46vh,380px)}}
@media (prefers-reduced-motion:reduce){.step{transition:none}.dot{transition:none}}


/* scrollbar */
@supports selector(::-webkit-scrollbar){
  html{scrollbar-width:auto}
  ::-webkit-scrollbar{width:14px;height:14px}
  ::-webkit-scrollbar-track{background:var(--walnut)}
  ::-webkit-scrollbar-thumb{background:var(--honey);border-radius:10px;border:3px solid var(--walnut)}
  ::-webkit-scrollbar-thumb:hover{background:var(--brick-hot)}
  ::-webkit-scrollbar-corner{background:var(--walnut)}
}
@supports not selector(::-webkit-scrollbar){
  html{scrollbar-width:thin;scrollbar-color:var(--honey) var(--walnut)}
}
.map-link{display:none}
@media (max-width:560px){
  .map{aspect-ratio:auto;height:min(62svh,420px)}
  .map-link{display:inline-block;margin-top:12px;color:var(--cream);text-underline-offset:3px;font-weight:500}
  .photos{grid-template-columns:1fr 1fr;align-items:stretch}
  .photos figure img,.photos figure:last-child img{aspect-ratio:3/4;height:auto}
  .photos figure:first-child img{object-position:72% 50%}
}

/* gallery */
.galery{background:var(--walnut-2);box-shadow:0 -18px 40px rgba(0,0,0,.3)}
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:clamp(28px,4vw,48px)}
.mosaic figure{margin:0;overflow:hidden;border-radius:22px;background:#1b2630}
.mosaic img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:auto;border-radius:0;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.mosaic figure:hover img{transform:scale(1.04)}
.m1,.m2{grid-column:span 3;height:clamp(220px,28vw,390px)}
.m3,.m4,.m5{grid-column:span 2;height:clamp(180px,19vw,270px)}
@media (max-width:700px){
  .mosaic{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .mosaic::-webkit-scrollbar{display:none}
  .mosaic figure,.m1,.m2,.m3,.m4,.m5{flex:0 0 78vw;height:auto;aspect-ratio:4/5;scroll-snap-align:center}
}

.find{margin:20px 0 0;color:var(--cream);font-weight:500}
.find + .photos{margin-top:12px}
