/* Wallmax theme. Brand: ink #111111, graphite #1C1C1B, paper #F3F1EC, signal #FA6400.
   Fonts are self-hosted (OFL): Nunito Sans (width 125, headings), Onest (text), JetBrains Mono (labels). */
@font-face{font-family:'Onest';src:url(../fonts/Onest.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url(../fonts/NunitoSans-W125.woff2) format('woff2');font-weight:500 1000;font-stretch:125%;font-style:normal;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url(../fonts/JetBrainsMono.woff2) format('woff2');font-weight:400 500;font-style:normal;font-display:swap}
:root{--wm-accent:#FA6400}

html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
[hidden]{display:none!important}
img{max-width:100%}
button{font:inherit}
body{margin:0;background:#F3F1EC}
a{color:#111111}
a:hover{color:#C2410C}
[style*="JetBrains"]{font-variant-ligatures:none}
@keyframes wmWave{0%{transform:translateY(0.55em);opacity:0}60%{transform:translateY(-0.06em);opacity:1}100%{transform:translateY(0);opacity:1}}
@keyframes wmMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.wv{display:inline-block;animation:wmWave .8s cubic-bezier(.2,.7,.2,1) both}
.mq{animation:wmMarquee 80s linear infinite}
.mq:hover{animation-play-state:paused}
.pcard img{transition:transform .9s cubic-bezier(.22,1,.36,1),filter .7s ease}
.pcard:hover img,.pcard:focus-visible img{transform:scale(1.04);filter:brightness(.86)}
.pcard .ln{position:absolute;display:flex;align-items:flex-start;height:18px;pointer-events:none}
.pcard .ln span{flex:1;height:2.4px;border-radius:2px 0 0 2px;transform:scaleX(0);transform-origin:left center;transition:transform .45s cubic-bezier(.65,0,.35,1) .3s}
.pcard .ln svg{flex:none;width:50px;height:18px;margin-left:-1px;overflow:visible}
.pcard .ln polyline{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100 120;stroke-dashoffset:101;transition:stroke-dashoffset .4s cubic-bezier(.65,0,.35,1) 0s}
.pcard:hover .ln span,.pcard:focus-visible .ln span{transform:scaleX(1);transition-delay:0s}
.pcard:hover .ln polyline,.pcard:focus-visible .ln polyline{stroke-dashoffset:0;transition-delay:.4s}
.pcard .go{position:absolute;right:18px;top:18px;width:46px;height:46px;border-radius:50%;color:#111111;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.4);transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s ease}
.pcard:hover .go,.pcard:focus-visible .go{opacity:1;transform:scale(1)}
.pcard .cap{transition:transform .6s cubic-bezier(.22,1,.36,1)}
.pcard:hover .cap,.pcard:focus-visible .cap{transform:translateY(-4px)}
.pcard .shade{opacity:0;transition:opacity .5s ease}
.pcard:hover .shade,.pcard:focus-visible .shade{opacity:1}
@media (prefers-reduced-motion: reduce){.pcard img,.pcard .ln span,.pcard .ln polyline,.pcard .go,.pcard .cap,.pcard .shade{transition:none}}
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}
.c3{grid-column:span 3}
.c4{grid-column:span 4}
.c5{grid-column:span 5}
.c6{grid-column:span 6}
.c7{grid-column:span 7}
.c8{grid-column:span 8}
@media (max-width: 960px){.g12>*{grid-column:1/-1}}
@media (prefers-reduced-motion: reduce){.wv,.mq{animation:none}}
:focus-visible{outline:2px solid #FA6400;outline-offset:3px;box-shadow:0 0 0 3px #111111}
a[style*="999px"],button[style*="999px"]{transition:opacity .15s ease,transform .15s ease}
a[style*="999px"]:hover,button[style*="999px"]:hover{opacity:.86}
a[style*="999px"]:active,button[style*="999px"]:active{transform:translateY(1px)}
.burger{display:none}
.logoS{display:none}
@media (max-width: 720px){.navD{display:none!important}.burger{display:inline-flex}.logoL{display:none}.logoS{display:block}}
.g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width: 600px){.g2{grid-template-columns:minmax(0,1fr)}}
.heroShade{background:linear-gradient(180deg,rgba(17,17,17,0.72) 0%,rgba(17,17,17,0.3) 13%,rgba(17,17,17,0) 26%,rgba(17,17,17,0) 40%,rgba(17,17,17,0.72) 60%,rgba(17,17,17,0.86) 74%,rgba(17,17,17,0.9) 100%)}
@media (max-width: 720px){.heroShade{background:linear-gradient(180deg,rgba(17,17,17,0.6) 0%,rgba(17,17,17,0.1) 18%,rgba(17,17,17,0.1) 38%,rgba(17,17,17,0.8) 58%,rgba(17,17,17,0.9) 100%)}}
.wmChrome{position:sticky;top:0;z-index:60;pointer-events:none;--navFg:#111111}
.wmChrome.dk{height:0;--navFg:#FFFFFF}
.wmChrome.lt{height:89px}
.wmHead{position:absolute;left:0;right:0;top:0;box-sizing:border-box;border-bottom:1px solid transparent;transition:background-color .35s ease,border-color .35s ease}
.wmChrome.lt .wmHead{background-color:#F3F1EC;border-bottom-color:#DCD8D0}
.wmBar{pointer-events:auto;position:relative;box-sizing:border-box;width:100%;max-width:1440px;height:88px;margin:0 auto;padding:0 clamp(16px,4.4vw,64px);display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid transparent;border-radius:0;background-color:rgba(17,17,17,0);-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);transition:max-width .8s cubic-bezier(.22,1,.36,1),height .6s cubic-bezier(.22,1,.36,1),padding .6s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1),border-radius .8s cubic-bezier(.22,1,.36,1),background-color .45s ease,border-color .45s ease,box-shadow .6s ease,-webkit-backdrop-filter .45s ease,backdrop-filter .45s ease}
.wmChrome.isS{--navFg:#FFFFFF}
.wmChrome.isS .wmHead{background-color:rgba(243,241,236,0);border-bottom-color:rgba(220,216,208,0)}
.isS .wmBar{max-width:620px;height:60px;padding:0 8px 0 22px;transform:translateY(12px);border-radius:30px;background-color:rgba(24,24,23,0.62);border-color:rgba(255,255,255,0.22);box-shadow:0 16px 40px rgba(17,17,17,0.22),inset 0 1px 0 rgba(255,255,255,0.22);-webkit-backdrop-filter:blur(24px) saturate(1.8);backdrop-filter:blur(24px) saturate(1.8)}
.wmBar::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.03) 48%,rgba(255,255,255,0) 100%);opacity:0;pointer-events:none;transition:opacity .45s ease}
.isS .wmBar::before{opacity:1}
.wmNav,.wmBurger{position:relative}
.isS .wmLink{text-shadow:0 1px 2px rgba(17,17,17,0.45)}
/* Logo: WM mark keeps its height, the name (divider + WALLMAX CONSTRUCTION) slides under the mark and fades; --lh = logo height */
.wmLogo{--lh:min(40px, calc((100vw - 480px) * 0.115));position:relative;display:block;flex:none;overflow:hidden;width:calc(var(--lh) * 8.547);height:var(--lh);transition:width .8s cubic-bezier(.22,1,.36,1)}
.wmLogo img{position:absolute;left:0;top:0;height:100%;width:auto;max-width:none;display:block}
.wmLogo .lgMa,.wmLogo .lgMb{transition:opacity .45s ease}
.wmLogo .lgT{left:calc(var(--lh) * 3.3374);transition:opacity .4s ease .12s,transform .8s cubic-bezier(.22,1,.36,1)}
.lt .wmLogo .lgMb{opacity:0}
.isS .wmLogo{width:calc(var(--lh) * 2.9826)}
.isS .wmLogo .lgT{opacity:0;transform:translateX(calc(var(--lh) * -0.35));transition:opacity .3s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.lt.isS .wmLogo .lgMa{opacity:0}
.lt.isS .wmLogo .lgMb{opacity:1}
.wmNav{display:flex;align-items:center;gap:clamp(14px,2.6vw,36px);transition:gap .6s cubic-bezier(.22,1,.36,1)}
.isS .wmNav{gap:26px}
.wmLink{position:relative;display:inline-flex;align-items:center;height:44px;color:var(--navFg);text-decoration:none;font-size:16px;font-weight:500;white-space:nowrap;transition:color .45s ease}
.wmLink:hover{color:var(--navFg)}
.wmLink[aria-current="page"]{font-weight:600}
.wmUl{position:absolute;left:0;right:0;top:35px;height:10px;display:flex;align-items:flex-start;pointer-events:none}
.wmUl span{flex:1;height:2px;border-radius:2px 0 0 2px;transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.65,0,.35,1) .25s}
.wmUl svg{flex:none;width:24px;height:10px;margin-left:-1px;overflow:visible}
.wmUl polyline{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100 120;stroke-dashoffset:101;transition:stroke-dashoffset .3s cubic-bezier(.65,0,.35,1) 0s}
.wmLink:hover .wmUl span,.wmLink:focus-visible .wmUl span,.wmLink[aria-current="page"] .wmUl span{transform:scaleX(1);transition-delay:0s}
.wmLink:hover .wmUl polyline,.wmLink:focus-visible .wmUl polyline,.wmLink[aria-current="page"] .wmUl polyline{stroke-dashoffset:0;transition-delay:.3s}
.wmCta{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border-radius:999px;color:#111111;text-decoration:none;font-size:15px;font-weight:600;white-space:nowrap;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}
.wmCta:hover{color:#111111;transform:translateY(-1px);box-shadow:0 6px 16px rgba(250,100,0,0.35)}
.wmCta svg{transition:transform .25s cubic-bezier(.22,1,.36,1)}
.wmCta:hover svg{transform:translateX(3px)}
.wmBurger{width:48px;height:48px;border:0;border-radius:999px;align-items:center;justify-content:center;cursor:pointer;background-color:#111111;color:#FFFFFF;transition:background-color .45s ease,color .45s ease,width .6s ease,height .6s ease}
.dk .wmBurger,.isS .wmBurger{background-color:#FFFFFF;color:#111111}
.isS .wmBurger{width:44px;height:44px}
.wmVira{position:absolute;top:0;right:max(9px,calc((100% - 1440px) / 2 + 9px));width:46px;height:0}
.wmSw{position:absolute;left:0;top:0;width:100%;height:0;transform-origin:50% 0}
.wmVira[data-sw="a"] .wmSw{animation:wmSwA 2.2s cubic-bezier(.3,.6,.4,1)}
.wmVira[data-sw="b"] .wmSw{animation:wmSwB 2.2s cubic-bezier(.3,.6,.4,1)}
@keyframes wmSwA{0%{transform:rotate(0deg)}12%{transform:rotate(1.4deg)}32%{transform:rotate(-1deg)}52%{transform:rotate(.55deg)}72%{transform:rotate(-.25deg)}100%{transform:rotate(0deg)}}
@keyframes wmSwB{0%{transform:rotate(0deg)}12%{transform:rotate(1.4deg)}32%{transform:rotate(-1deg)}52%{transform:rotate(.55deg)}72%{transform:rotate(-.25deg)}100%{transform:rotate(0deg)}}
.wmHook{position:absolute;left:0;top:var(--vy,240px);width:46px;height:46px;padding:0;border:0;border-radius:999px;background-color:#111111;color:#FFFFFF;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;pointer-events:auto;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 0 0 2px rgba(243,241,236,0.92),0 10px 24px rgba(17,17,17,0.22);visibility:hidden;opacity:0;transform:translateY(calc(-1 * var(--vy,240px) - 72px));transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .3s ease .6s,visibility 0s linear .9s,background-color .25s ease,color .25s ease}
.wmHook::before{content:"";position:absolute;left:50%;bottom:100%;width:2px;height:3000px;margin-left:-1px;background-color:#8A867F;transition:background-color .25s ease}
.wmHook::after{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;margin-left:-5px;border-radius:50%;box-sizing:border-box;border:2px solid #8A867F;background-color:#F3F1EC;transition:border-color .25s ease}
.viraOn .wmHook{visibility:visible;opacity:1;transform:translateY(0);transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .2s ease,visibility 0s,background-color .25s ease,color .25s ease}
.wmHook:hover{background-color:#FA6400;color:#111111}
.wmHook:hover::before{background-color:#FA6400}
.wmHook:hover::after{border-color:#FA6400}
.wmRing{position:absolute;left:-7px;top:-7px;width:60px;height:60px;overflow:visible;transform:rotate(-90deg);pointer-events:none;display:none}
.wmRing circle{fill:none;stroke:#FA6400;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:100 120;stroke-dashoffset:var(--po,101)}
.wmRing circle.tr{stroke:rgba(17,17,17,0.14);stroke-dasharray:none;stroke-dashoffset:0}
.viraSt .wmRing{display:block}
.viraSt .wmHook::before,.viraSt .wmHook::after{display:none}
.viraSt .wmHook{transform:translateY(24px) scale(.9)}
.viraSt.viraOn .wmHook{transform:none}
@media (max-width: 720px){
.wmChrome.lt{height:73px}
.wmBar{height:72px}
.isS .wmBar{max-width:calc(100% - 24px);height:56px;padding:0 6px 0 16px;border-radius:28px;transform:translateY(10px)}
.wmLogo{--lh:min(32px, calc((100vw - 104px) * 0.117))}
.wmVira{right:14px;width:48px}
.wmHook{width:48px;height:48px}
.wmHook::before,.wmHook::after{display:none}
.wmHook{transform:translateY(24px) scale(.9)}
.wmRing{display:block;left:-7px;top:-7px;width:62px;height:62px}
}
@media (prefers-reduced-motion: reduce){.wmBar,.wmLogo,.wmLogo img,.wmHook,.wmUl span,.wmUl polyline,.wmNav,.wmSw{transition:none!important;animation:none!important}}
.c12{grid-column:1/-1}
.tl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}
@media (max-width: 860px){.tl{grid-template-columns:minmax(0,1fr)}}
.rqv{all:unset;cursor:pointer;font-size:16px;line-height:1.45;color:#111111;overflow-wrap:anywhere}
.rqv:hover{color:#C2410C}
.rqv:focus-visible{outline:2px solid #FA6400;outline-offset:3px;box-shadow:0 0 0 3px #111111}
input::placeholder{color:#8A867F}
@keyframes wmWalk{from{background-position:0 0}to{background-position:10px 0}}
.walkLine{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background-image:linear-gradient(90deg,#8A867F 0,#8A867F 50%,rgba(138,134,127,0) 50%,rgba(138,134,127,0) 100%);background-size:10px 2px;background-repeat:repeat-x;animation:wmWalk .9s linear infinite}
@media (prefers-reduced-motion: reduce){.walkLine{animation:none}}

/* Projects filter */
.wmFilter{border:1px solid #DCD8D0;background:#FFFFFF;color:#111111;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.wmFilter[aria-pressed="true"]{background:#111111;color:#FFFFFF;border-color:#111111}
.wmFilter:hover{border-color:#111111}
/* Mobile menu */
.wmMenu{position:fixed;left:0;top:0;right:0;bottom:0;z-index:100;background:#111111;color:#FFFFFF;display:flex;flex-direction:column;overflow-y:auto;font-family:'Onest',system-ui,sans-serif}
.wmMenu a{color:#FFFFFF}
html.wmLock{overflow:hidden}
/* Toast after copying */
.wmToast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:120;max-width:calc(100% - 32px);padding:14px 20px;border-radius:16px;background:#111111;color:#FFFFFF;font-size:15px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 40px rgba(17,17,17,0.25)}
/* Lightbox */
.wmLightbox{position:fixed;left:0;top:0;right:0;bottom:0;z-index:110;background:rgba(17,17,17,0.95);color:#FFFFFF;display:flex;flex-direction:column;font-family:'Onest',system-ui,sans-serif}
/* Ordinary pages (privacy policy etc.) */
.wmProse{max-width:820px;font-size:18px;line-height:1.65;color:#2A2926}
.wmProse h2{font-size:clamp(22px,2.4vw,30px);line-height:1.2;margin:1.6em 0 .6em}
.wmProse h3{font-size:20px;margin:1.4em 0 .5em}
.wmProse a{color:#111111;text-decoration:underline;text-underline-offset:3px}
.wmProse ul,.wmProse ol{padding-left:1.2em}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}
/* Footer bottom bar: one layout for both footers and all widths */
.wmFootTop{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px}
.wmFootNav{display:flex;flex-wrap:wrap;gap:12px 28px}
.wmFootNav a{color:#FFFFFF;text-decoration:none;font-size:15px}
.wmFootNav a.mu{color:#A8A49C}
.wmFootBot{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin-top:20px;font-size:14px;color:#A8A49C}
/* SOUT link (426-FZ): small and dim, right of the copyright; under it on phones (the «Вира» button is on the right) */
.wmSout{font-size:12px;line-height:16px;color:#6F6C66;text-decoration:none}
.wmSout:hover{color:#A8A49C}
@media (max-width: 720px){.wmFootBot{flex-direction:column;align-items:flex-start}}
