@font-face{font-family:'Montserrat';font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/montserrat-cyrillic-wght-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/montserrat-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/roboto-cyrillic-wght-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Roboto';font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/roboto-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Layout: корпоративный промышленный сайт по образцу vt-metall / termolex — белая шапка, тёмный фото-баннер, карточки услуг с изображением, счётчики, тёмный подвал */
:root{
  --bg:#ffffff;
  --alt:#f3f4f6;
  --ink:#1c1f24;
  --muted:#5f6670;
  --line:#e2e5e9;
  --accent:#f5b800;      /* сигнальный красный, RAL 3020 */
  --accent-d:#d9a200;
  --dark:#0b0b0c;        /* графит — баннер, этапы, подвал */
  --dark-2:#18181a;
  --on-dark:#f2f3f5;
  --on-dark-m:#a8afb8;
  --f-head:"Montserrat",Arial,sans-serif;
  --f-body:"Roboto",Arial,sans-serif;
  --wrap:1200px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0e0e0f;--alt:#161617;--ink:#eceef1;--muted:#a3aab3;--line:#2a2a2c;--dark:#050505;--dark-2:#141415;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0e0e0f;--alt:#161617;--ink:#eceef1;--muted:#a3aab3;--line:#2a2a2c;--dark:#050505;--dark-2:#141415;color-scheme:dark}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 var(--f-body)}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:20px}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:800;line-height:1.15;text-wrap:balance;margin:0}
h1{font-size:clamp(1.9rem,4.4vw,3.2rem);text-transform:uppercase;letter-spacing:.01em}
h2{font-size:clamp(1.5rem,3vw,2.2rem);text-transform:uppercase;letter-spacing:.01em}
h3{font-size:1.15rem;font-weight:700}
p{margin:0}
.lead{font-size:1.1rem;color:var(--muted);max-width:64ch}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* верхняя полоса */
.top{background:var(--dark);color:var(--on-dark-m);font-size:.85rem}
.top .wrap{display:flex;flex-wrap:wrap;gap:6px 24px;padding-block:7px;justify-content:space-between;align-items:center}
.top a{text-decoration:none;color:var(--on-dark)}
.top .msg{display:flex;gap:16px;flex-wrap:wrap}

/* шапка */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--bg);box-shadow:0 2px 14px rgba(0,0,0,.08)}
header.site .bar{display:flex;align-items:center;gap:28px;padding-block:14px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo b{font:900 1.7rem/1 var(--f-head);background:var(--accent);color:#fff;padding:6px 10px;letter-spacing:.04em}
.logo small{font-size:.78rem;line-height:1.3;color:var(--muted);max-width:17ch}
.hcontact{margin-left:auto;display:flex;align-items:center;gap:22px}
.hcontact .ph{display:grid;text-align:right}
.hcontact .ph b{font:800 1.2rem var(--f-head);white-space:nowrap}
.hcontact .ph span{font-size:.78rem;color:var(--muted)}
nav.main{border-top:1px solid var(--line)}
nav.main .wrap{display:flex;flex-wrap:wrap}
nav.main a{text-decoration:none;padding:13px 16px;font:600 .9rem var(--f-head);text-transform:uppercase;letter-spacing:.02em;border-bottom:3px solid transparent}
nav.main a:first-child{padding-left:0}
nav.main a:hover,nav.main a[aria-current]{color:var(--accent);border-color:var(--accent)}
.burger{display:none;background:none;border:1px solid var(--line);color:var(--ink);padding:9px 14px;font:600 .9rem var(--f-head);cursor:pointer}
@media (max-width:960px){
  .hcontact .ph,.hcontact .btn{display:none}
  .burger{display:block}
  nav.main{display:none}
  nav.main.open{display:block}
  nav.main .wrap{flex-direction:column}
  nav.main a{padding-left:0}
}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#fff;font:700 .92rem var(--f-head);text-transform:uppercase;letter-spacing:.03em;text-decoration:none;padding:15px 26px;border:0;cursor:pointer;transition:background .15s}
.btn:hover{background:var(--accent-d)}
.btn.line{background:transparent;border:2px solid currentColor;padding:13px 24px}
.btn.line:hover{background:rgba(255,255,255,.08)}
.row{display:flex;flex-wrap:wrap;gap:14px}

/* «фото»: если файла нет — тёмная стальная плашка с иконкой процесса */
.pic{position:relative;overflow:hidden;background:
  radial-gradient(120% 90% at 85% 110%,rgba(255,120,40,.35),transparent 55%),
  linear-gradient(115deg,#2a3038 0%,#141415 45%,#303740 70%,#1b1f24 100%);color:#c9ced5}
.pic img{width:100%;height:100%;object-fit:cover}
.pic svg{position:absolute;inset:0;margin:auto;width:42%;height:42%;opacity:.85}
.pic .tag{position:absolute;left:10px;bottom:10px;font-size:.7rem;background:rgba(0,0,0,.45);color:#dfe3e8;padding:3px 7px}

/* баннер */
.banner{position:relative;color:var(--on-dark);background:var(--dark);overflow:hidden}
.banner .bgimg{position:absolute;inset:0}
.banner .bgimg.pic svg{display:none}
.banner .bgimg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,6,7,.92) 0%,rgba(6,6,7,.7) 55%,rgba(6,6,7,.35) 100%)}
.banner .wrap{position:relative;padding-block:clamp(56px,9vw,110px)}
.banner .lead{color:var(--on-dark-m);margin-top:18px}
.banner h1{max-width:20ch}
.banner .kicker{display:inline-block;background:var(--accent);color:#fff;font:700 .78rem var(--f-head);text-transform:uppercase;letter-spacing:.08em;padding:6px 12px;margin-bottom:20px}
.banner .row{margin-top:30px}
.checks{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 28px;max-width:640px}
.checks li{padding-left:28px;position:relative}
.checks li::before{content:"";position:absolute;left:0;top:.45em;width:14px;height:8px;border-left:3px solid var(--accent);border-bottom:3px solid var(--accent);transform:rotate(-45deg)}
@media (max-width:600px){.checks{grid-template-columns:1fr}}
.banner.small .wrap{padding-block:clamp(40px,6vw,72px)}

/* преимущества под баннером */
.adv{display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg);box-shadow:0 10px 30px rgba(0,0,0,.08);position:relative;margin-top:-40px;z-index:2}
.adv>div{padding:24px;border-right:1px solid var(--line);display:grid;gap:6px}
.adv>div:last-child{border-right:0}
.adv b{font:800 1.05rem var(--f-head)}
.adv span{color:var(--muted);font-size:.9rem}
.adv svg{width:36px;height:36px;color:var(--accent)}
@media (max-width:900px){.adv{grid-template-columns:1fr 1fr;margin-top:0}.adv>div:nth-child(2){border-right:0}.adv>div{border-bottom:1px solid var(--line)}}
@media (max-width:520px){.adv{grid-template-columns:1fr}.adv>div{border-right:0}}

/* секции */
section{padding-block:clamp(52px,7vw,90px)}
section.alt{background:var(--alt)}
.head{display:grid;gap:12px;margin-bottom:36px}
.head h2::after{content:"";display:block;width:56px;height:4px;background:var(--accent);margin-top:16px}
.head.c{text-align:center;justify-items:center}
.head.c h2::after{margin-inline:auto}

/* крошки */
.crumbs{font-size:.85rem;color:var(--on-dark-m);margin-bottom:16px}
.crumbs a{text-decoration:none;color:var(--on-dark)}
.crumbs span{margin-inline:6px}

/* цены-полоса */
.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.prices>div{background:var(--bg);border:1px solid var(--line);border-top:4px solid var(--accent);padding:22px 24px}
.prices b{display:block;font:800 1.7rem var(--f-head);margin-block:4px}
.prices span{color:var(--muted);font-size:.9rem}
@media (max-width:760px){.prices{grid-template-columns:1fr}}

/* карточки услуг */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:960px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.cards{grid-template-columns:1fr}}
.card{background:var(--bg);border:1px solid var(--line);display:flex;flex-direction:column;text-decoration:none;transition:box-shadow .2s,transform .2s}
.card:hover{box-shadow:0 14px 34px rgba(0,0,0,.12);transform:translateY(-3px)}
.card .pic{aspect-ratio:16/10;max-width:100%}
.card .body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.card ul{margin:0;padding-left:18px;color:var(--muted);font-size:.93rem}
.card .more{margin-top:auto;padding-top:8px;color:var(--accent);font:700 .85rem var(--f-head);text-transform:uppercase}

/* счётчики */
.counters{background:var(--accent);color:#fff}
.counters .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-block:40px}
.counters b{display:block;font:900 clamp(2rem,4vw,2.8rem)/1 var(--f-head)}
.counters span{font-size:.92rem;opacity:.9}
@media (max-width:760px){.counters .wrap{grid-template-columns:1fr 1fr}}

/* оборудование */
.equip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media (max-width:860px){.equip{grid-template-columns:1fr}}
.eq{display:grid;grid-template-columns:200px minmax(0,1fr);background:var(--bg);border:1px solid var(--line)}
.eq .pic{min-height:100%}
.eq .body{padding:20px 22px;display:grid;gap:8px;align-content:start}
.eq dl{margin:0;display:grid;gap:4px;font-size:.92rem}
.eq dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-bottom:4px}
.eq dt{color:var(--muted)}
.eq dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:520px){.eq{grid-template-columns:1fr}.eq .pic{aspect-ratio:16/9}}

/* этапы */
.dark{background:var(--dark);color:var(--on-dark)}
.dark .lead{color:var(--on-dark-m)}
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;padding:0;margin:0;counter-reset:s}
.steps li{list-style:none;counter-increment:s;background:var(--dark-2);padding:24px 20px;border-top:3px solid var(--accent)}
.steps li::before{content:counter(s);display:block;font:900 2.2rem/1 var(--f-head);color:var(--accent);margin-bottom:14px}
.steps b{display:block;font:700 1.02rem var(--f-head);margin-bottom:6px}
.steps span{color:var(--on-dark-m);font-size:.9rem}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* галерея */
.works{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:960px){.works{grid-template-columns:repeat(2,minmax(0,1fr))}}
.work{background:var(--bg);border:1px solid var(--line)}
.work .pic{aspect-ratio:4/3;max-width:100%}
.work .c{padding:12px 14px}
.work b{display:block;font-size:.95rem;line-height:1.35}
.work span{font-size:.82rem;color:var(--muted)}

/* текст + картинка */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.split .pic{aspect-ratio:4/3}
.prose{display:grid;gap:14px;max-width:70ch}
.prose ul{margin:0;padding-left:20px;display:grid;gap:6px}
.note{border-left:4px solid var(--accent);background:var(--alt);padding:14px 18px;font-size:.95rem}

/* таблицы */
.tbl{overflow-x:auto;border:1px solid var(--line);background:var(--bg)}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top}
th{font:700 .8rem var(--f-head);text-transform:uppercase;letter-spacing:.04em;background:var(--dark);color:var(--on-dark)}
tr:nth-child(2n) td{background:var(--alt)}
tr:last-child td{border-bottom:0}
td.n{font-weight:600}
.cols{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:44px}
@media (max-width:900px){.cols{grid-template-columns:minmax(0,1fr)}}

/* цвета RAL */
.swatches{display:flex;flex-wrap:wrap;gap:12px}
.sw{display:grid;gap:6px;width:100px;font-size:.8rem;font-weight:600}
.sw i{display:block;height:60px;border:1px solid var(--line)}

/* FAQ */
details{background:var(--bg);border:1px solid var(--line);margin-bottom:10px}
summary{cursor:pointer;font:700 1rem var(--f-head);list-style:none;display:flex;justify-content:space-between;gap:16px;padding:16px 20px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font:700 1.4rem/1 var(--f-head);color:var(--accent)}
details[open] summary::after{content:"–"}
details p,details ul{padding:0 20px 18px;margin:0;color:var(--muted);max-width:76ch}
details ul{padding-left:40px}
.faqgroup{margin-bottom:36px}
.faqgroup h3{margin-bottom:14px;font-size:1.3rem}

/* заявка */
.cta{background:var(--dark);color:var(--on-dark);position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;right:-10%;top:-30%;width:60%;height:160%;background:radial-gradient(closest-side,rgba(245,184,0,.35),transparent);pointer-events:none}
.cta .grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}
@media (max-width:900px){.cta .grid{grid-template-columns:minmax(0,1fr)}}
.cta .contacts-list b{overflow-wrap:anywhere}
@media (max-width:600px){td.n{white-space:normal}}
.cta .lead{color:var(--on-dark-m)}
.cta h2::after{content:"";display:block;width:56px;height:4px;background:var(--accent);margin-top:16px}
form.lead-form{display:grid;gap:12px;background:var(--bg);color:var(--ink);padding:28px}
form.lead-form h3{margin-bottom:4px}
form.lead-form label{display:grid;gap:4px;font-size:.85rem;font-weight:500}
form.lead-form input,form.lead-form textarea{font:inherit;padding:12px 14px;border:1px solid var(--line);background:var(--alt);color:var(--ink)}
form.lead-form .file{border:2px dashed var(--line);padding:14px;font-size:.88rem;color:var(--muted)}
form.lead-form .agree{font-size:.75rem;color:var(--muted)}
.ok{background:var(--accent);color:#fff;padding:12px 14px;font-weight:600}
.contacts-list{display:grid;gap:16px;margin-top:26px}
.contacts-list div{display:grid}
.contacts-list small{color:var(--on-dark-m);font-size:.8rem}
.contacts-list b{font:800 1.2rem var(--f-head)}
.copy{background:none;border:1px solid currentColor;color:inherit;font:500 .72rem var(--f-body);padding:2px 8px;cursor:pointer;margin-left:10px;vertical-align:middle;opacity:.8}

/* подвал */
footer.site{background:var(--dark);color:var(--on-dark-m);padding-block:48px 28px;font-size:.9rem;border-top:4px solid var(--accent)}
footer.site .grid{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:28px}
@media (max-width:860px){footer.site .grid{grid-template-columns:1fr 1fr}}
footer.site h4{margin:0 0 12px;color:var(--on-dark);font-size:.95rem;text-transform:uppercase}
footer.site ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
footer.site a{text-decoration:none;color:var(--on-dark-m)}
footer.site a:hover{color:#fff}
footer.site .copy-line{border-top:1px solid #2a2a2c;margin-top:32px;padding-top:18px}

.mbar{display:none}
@media (max-width:700px){
  .mbar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:20;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--dark)}
  .mbar a{padding:15px;text-align:center;color:#fff;text-decoration:none;font:700 .9rem var(--f-head);text-transform:uppercase}
  .mbar a:last-child{background:var(--accent)}
  body{padding-bottom:56px}
}
@media (prefers-reduced-motion:reduce){.card,.btn{transition:none}.card:hover{transform:none}}
.banner canvas#laser{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.banner .wrap{z-index:2}
.banner .bgimg .tag{display:none}
.banner .hud{position:absolute;right:20px;bottom:14px;z-index:2;font:500 .72rem/1 ui-monospace,Menlo,Consolas,monospace;color:#9aa3ad;letter-spacing:.03em;white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:900px){.banner .hud{display:none}}

/* ===== Анимации ===== */
/* заголовок баннера по словам */
.js-anim .banner h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.js-anim .banner h1 .w>span{display:inline-block;transform:translateY(105%);transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.js-anim.loaded .banner h1 .w>span{transform:none}
.js-anim .banner .kicker,.js-anim .banner .lead,.js-anim .banner .checks li,.js-anim .banner .row,.js-anim .banner .crumbs{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.js-anim.loaded .banner .kicker,.js-anim.loaded .banner .crumbs{opacity:1;transform:none;transition-delay:.05s}
.js-anim.loaded .banner .lead{opacity:1;transform:none;transition-delay:.55s}
.js-anim.loaded .banner .checks li{opacity:1;transform:none}
.js-anim.loaded .banner .checks li:nth-child(1){transition-delay:.7s}
.js-anim.loaded .banner .checks li:nth-child(2){transition-delay:.8s}
.js-anim.loaded .banner .checks li:nth-child(3){transition-delay:.9s}
.js-anim.loaded .banner .checks li:nth-child(4){transition-delay:1s}
.js-anim.loaded .banner .row{opacity:1;transform:none;transition-delay:1.1s}
/* медленный «наезд» фото в баннере */
.banner .bgimg img{animation:kb 22s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.08) translate(-1%,-1%)}}

/* появление при прокрутке */
.rv{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
.head h2::after{transform-origin:left;transition:transform .9s .25s cubic-bezier(.2,.8,.2,1)}
.head.c h2::after{transform-origin:center}
.head.rv h2::after{transform:scaleX(0)}
.head.rv.in h2::after{transform:scaleX(1)}

/* кнопки: блик, стрелка, нажатие */
.btn{position:relative;overflow:hidden;transition:background .2s,transform .15s,box-shadow .2s}
.btn::before{content:"";position:absolute;top:0;left:-75%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s ease}
.btn:hover::before{left:130%}
.btn:hover{box-shadow:0 8px 22px rgba(245,184,0,.35);transform:translateY(-2px)}
.btn.line:hover{box-shadow:none}
.btn:active{transform:translateY(0) scale(.97)}
.btn::after{content:"→";display:inline-block;margin-left:2px;transition:transform .25s}
.btn:hover::after{transform:translateX(5px)}
/* пульс у главной кнопки в шапке */
.hcontact .btn{animation:pulse 3.2s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(245,184,0,.55)}70%{box-shadow:0 0 0 14px rgba(245,184,0,0)}100%{box-shadow:0 0 0 0 rgba(245,184,0,0)}}
.hcontact .btn:hover{animation:none}

/* меню: подчёркивание растёт слева */
nav.main a{position:relative;border-bottom-color:transparent!important}
nav.main a::after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s}
nav.main a:first-child::after{left:0}
nav.main a:hover::after,nav.main a[aria-current]::after{transform:scaleX(1)}

/* карточки и галерея: зум фото */
.card .pic img,.work .pic img,.split .pic img,.eq .pic img{transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.card:hover .pic img,.work:hover .pic img{transform:scale(1.07)}
.card .more{transition:letter-spacing .25s}
.card:hover .more{letter-spacing:.06em}
.work{transition:box-shadow .3s,transform .3s}
.work:hover{box-shadow:0 12px 28px rgba(0,0,0,.14);transform:translateY(-3px)}
.adv>div svg{transition:transform .4s}
.adv>div:hover svg{transform:rotate(-8deg) scale(1.12)}
.steps li{transition:transform .3s,background .3s}
.steps li:hover{transform:translateY(-4px);background:#232325}

/* шапка при прокрутке */
header.site .bar{transition:padding .25s}
header.site.scrolled .bar{padding-block:8px}
header.site.scrolled .logo b{font-size:1.4rem}
.logo b{transition:font-size .25s}

@media (prefers-reduced-motion:reduce){
  .banner .bgimg img,.hcontact .btn{animation:none}
  .btn::before{display:none}
  .card .pic img,.work .pic img{transition:none}
}

/* ===== Кнопки v4: скругление, автоматический отблеск, свечение, волна при нажатии ===== */
.btn{border-radius:12px;background:linear-gradient(180deg,#ffcb2e 0%,var(--accent) 55%,#dfa600 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.btn:hover{background:linear-gradient(180deg,#ffd447 0%,#f7bd0a 55%,#e0a800 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 26px rgba(245,184,0,.45)}
.btn.line{background:transparent;box-shadow:none}
.btn.line:hover{background:rgba(255,255,255,.08);box-shadow:none}
.burger,.copy{border-radius:8px}
/* отблеск пробегает сам раз в несколько секунд, при наведении — сразу */
.btn::before{left:-80%;width:45%;background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.08) 30%,rgba(255,255,255,.55) 50%,rgba(255,255,255,.08) 70%,transparent 100%);animation:glint 5s ease-in-out infinite;transition:none}
.btn:nth-of-type(2)::before{animation-delay:.6s}
.btn:hover::before{animation:glint-fast .7s ease-out}
@keyframes glint{0%,72%{left:-80%}88%,100%{left:135%}}
@keyframes glint-fast{from{left:-80%}to{left:135%}}
/* волна при нажатии */
.btn .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:ripple .6s ease-out forwards;pointer-events:none}
.btn.line .ripple{background:rgba(245,184,0,.25)}
@keyframes ripple{to{transform:scale(4);opacity:0}}
.hcontact .btn{animation:pulse2 3.2s ease-out infinite}
@keyframes pulse2{0%{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 0 0 rgba(245,184,0,.55)}70%{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 0 14px rgba(245,184,0,0)}100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 0 0 rgba(245,184,0,0)}}
@media (prefers-reduced-motion:reduce){.btn::before{animation:none}.btn .ripple{display:none}}

/* ===== Чёрно-жёлтый вариант ===== */
header.site{background:#0b0b0c;color:#f2f2f2;box-shadow:0 2px 14px rgba(0,0,0,.4)}
header.site .logo small,.hcontact .ph span{color:#9a9a9a}
nav.main{border-top-color:#232325}
.burger{color:#f2f2f2;border-color:#333}
nav.main a:hover,nav.main a[aria-current]{color:var(--accent)}
.btn,.btn:hover{color:#111}
.banner .btn.line,.cta .btn.line{color:#f2f2f2}
.btn .ripple{background:rgba(255,255,255,.6)}
.logo b,.banner .kicker,.counters,.ok,.mbar a:last-child{color:#111}
.card .more{color:var(--ink);align-self:flex-start;border-bottom:3px solid var(--accent);padding-bottom:2px}
.adv svg{color:#d9a200}
summary::after{color:#c99700}
.head h2::after{height:5px}
section a[style*="accent"]{color:var(--ink)!important;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px;text-underline-offset:4px}
.alt .btn.line[style]{border-color:var(--ink)}
.prices>div{border-top-width:5px}
/* сигнальная полоса «зебра» */
.counters{position:relative}
.counters::before,.counters::after{content:"";position:absolute;left:0;right:0;height:10px;background:repeating-linear-gradient(-45deg,#111 0 14px,var(--accent) 14px 28px)}
.counters::before{top:0}.counters::after{bottom:0}
footer.site{border-top:0;position:relative}
footer.site::before{content:"";position:absolute;top:0;left:0;right:0;height:10px;background:repeating-linear-gradient(-45deg,var(--accent) 0 14px,#111 14px 28px)}

/* плавная смена страниц */
body{animation:pagefade .45s ease both}
main{animation:pagein .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes pagefade{from{opacity:0}to{opacity:1}}
@keyframes pagein{from{transform:translateY(14px)}to{transform:none}}
html.leaving body{opacity:0;transition:opacity .22s ease}
html.leaving main{transform:translateY(-10px);transition:transform .22s ease}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){body,main{animation:none}html{scroll-behavior:auto}}

/* ===== Галерея работ: вкладки + объёмная карусель ===== */
.works-sec{overflow:hidden}
.gtabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.gtab{font:700 .9rem var(--f-head);text-transform:uppercase;letter-spacing:.02em;padding:12px 18px;border-radius:12px;border:1.5px solid #3a3a3d;background:transparent;color:var(--on-dark);cursor:pointer;display:inline-flex;gap:10px;align-items:center;transition:background .25s,border-color .25s,color .25s}
.gtab span{font:600 .75rem var(--f-body);background:#2a2a2c;color:var(--on-dark-m);border-radius:20px;padding:2px 8px}
.gtab:hover{border-color:var(--accent)}
.gtab[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:#111}
.gtab[aria-selected="true"] span{background:rgba(0,0,0,.15);color:#111}
.gtitle{font-size:1.4rem;margin-bottom:6px}
.gdesc{color:var(--on-dark-m);margin-bottom:8px;max-width:64ch}
.gpanel{animation:gin .5s ease both}
@keyframes gin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* без JS — обычная лента с прокруткой */
.cf-stage{display:flex;gap:16px;overflow-x:auto;padding-block:20px}
.cf-item{margin:0;flex:0 0 min(420px,80%);background:#1b1b1d;border-radius:14px;overflow:hidden}
.cf-item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.cf-item figcaption{padding:12px 16px;font-weight:600;color:var(--on-dark)}
.cf-nav,.cf-dots{display:none}

/* с JS — наплыв (fade) */
.cf.on{position:relative;outline:none;max-width:900px;margin-inline:auto}
.cf.on .cf-stage{display:grid;overflow:hidden;padding:0;margin-top:20px;border-radius:16px;box-shadow:0 30px 60px rgba(0,0,0,.55);background:#141415;touch-action:pan-y}
.cf.on .cf-item{grid-area:1/1;margin:0;width:100%;border-radius:0;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 0s 1.1s;user-select:none;-webkit-user-select:none}
.cf.on .cf-item.active{opacity:1;visibility:visible;transition:opacity 1.1s ease,visibility 0s;z-index:2}
.cf.on .cf-item img{aspect-ratio:16/10;transform:scale(1.07);transition:transform 6s ease-out;pointer-events:none}
.cf.on .cf-item.active img{transform:scale(1)}
.cf.on .cf-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:60px 26px 20px;background:linear-gradient(transparent,rgba(0,0,0,.85));font:700 1.15rem var(--f-head);opacity:0;transform:translateY(12px);transition:opacity .6s,transform .6s}
.cf.on .cf-item.active figcaption{opacity:1;transform:none;transition-delay:.5s}
.cf.on .cf-stage::after{content:"";position:absolute;inset:0;border:2px solid var(--accent);border-radius:16px;pointer-events:none;z-index:5}
.cf.on .cf-stage{position:relative}
.cf.instant .cf-item,.cf.instant .cf-item img,.cf.instant figcaption{transition:none!important}
.cf.on .cf-nav{display:flex;align-items:center;justify-content:center;position:absolute;top:calc(50% - 26px);z-index:30;width:52px;height:52px;border-radius:50%;border:0;background:var(--accent);color:#111;font:700 2rem/1 var(--f-head);cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.45);transition:transform .2s}
.cf.on .cf-nav:hover{transform:scale(1.1)}
.cf.on .cf-nav.prev{left:-72px}.cf.on .cf-nav.next{right:-72px}
.cf.on .cf-dots{display:flex;justify-content:center;gap:8px;margin-top:22px}
.cf-dots button{width:10px;height:10px;border-radius:10px;border:0;background:#3a3a3d;cursor:pointer;padding:0;transition:width .3s,background .3s}
.cf-dots button.on{width:28px;background:var(--accent)}
@media (max-width:640px){.cf.on .cf-nav.prev{left:8px}.cf.on .cf-nav.next{right:8px}.cf.on .cf-item figcaption{font-size:1rem;padding:40px 16px 14px}.cf.on .cf-nav{width:42px;height:42px;top:calc(50% - 21px)}.gtab{padding:10px 12px;font-size:.8rem;flex:0 0 auto}.gtabs{flex-wrap:nowrap;overflow-x:auto;margin-inline:-20px;padding-inline:20px;scrollbar-width:none}.gtabs::-webkit-scrollbar{display:none}}
@media (prefers-reduced-motion:reduce){.cf.on .cf-item{transition:none}.gpanel{animation:none}}

.cf-shade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;border-radius:inherit;z-index:1}
.cf.on .cf-item figcaption{z-index:2}
.cf.on .cf-item{overflow:hidden;-webkit-tap-highlight-color:transparent}
@media (max-width:640px){.cf.on .cf-item{box-shadow:0 12px 24px rgba(0,0,0,.45)}}

@media (max-width:1080px){.cf.on .cf-nav.prev{left:8px}.cf.on .cf-nav.next{right:8px}}
@media (max-width:640px){.cf.on .cf-item img{aspect-ratio:4/3}}
@media (prefers-reduced-motion:reduce){.cf.on .cf-item,.cf.on .cf-item img{transition:none}}
/* SEO-доработки: перекрёстные ссылки, ошибки формы, телефон-ссылка, 3 кнопки в мобильной панели */
.rels{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.rel{display:grid;gap:8px;padding:22px;border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--bg);color:var(--ink);text-decoration:none;border-radius:14px;transition:transform .2s,box-shadow .2s}
.rel b{font:800 1.08rem/1.25 var(--f-head)}
.rel span{color:var(--muted);font-size:.95rem}
.rel i{font-style:normal;font-weight:700;color:var(--accent)}
.rel:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.25)}
.err{background:#3a1212;color:#ffd7d7;padding:12px 14px;font-weight:600;border-radius:10px}
.err a,form.lead-form .agree a{color:inherit;text-decoration:underline}
.hcontact .ph a.tel{color:inherit;text-decoration:none}
.mbar a+a{border-left:1px solid rgba(255,255,255,.12)}.mbar a{padding:15px 6px !important}
/* иконки мессенджеров в верхней строке */
.top .msg{align-items:center;gap:10px}
.top .msg a.mi{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;transition:transform .2s,filter .2s}
.top .msg a.mi svg{width:16px;height:16px}
.top .msg a.tg{background:#26A5E4}.top .msg a.wa{background:#25D366}.top .msg a.vb{background:#7360F2}
.top .msg a.mi:hover{transform:translateY(-2px);filter:brightness(1.1)}
.top .msg a.ml{display:inline-flex;align-items:center;gap:6px;margin-left:6px}
.top .msg a.ml svg{width:16px;height:16px;opacity:.8}
/* видео «Как мы работаем» */
.howvid{margin:0 0 40px;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 24px 60px rgba(0,0,0,.45);border:1px solid rgba(245,184,0,.25);aspect-ratio:16/9}
.howvid video{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.howvid{border-radius:12px;margin-bottom:28px}}
.top .msg a.ig{background:radial-gradient(circle at 30% 110%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}

@media (max-width:480px){h1{font-size:clamp(1.3rem,6.2vw,1.9rem)}}
form.lead-form{grid-template-columns:minmax(0,1fr)}
form.lead-form input,form.lead-form textarea,form.lead-form .file{min-width:0;max-width:100%}
@media (max-width:400px){form.lead-form{padding:18px}th,td{padding-left:10px;padding-right:10px}}
article.prose h2{font-size:1.35rem;margin:34px 0 10px}
article.prose .tbl{margin:14px 0}
article.prose td,article.prose th{overflow-wrap:break-word;hyphens:none}
article.prose td.n{white-space:normal}
article.prose th:first-child,article.prose td:first-child{min-width:9em}
@media (max-width:480px){article.prose th:first-child,article.prose td:first-child{min-width:6.5em}}
@media (max-width:480px){article.prose td,article.prose th{font-size:.85rem;padding-left:8px;padding-right:8px}}
@media (max-width:400px){article.prose th{font-size:.68rem;letter-spacing:0}}
