:root{--or:#ff6a13;--or2:#ff8a3d;--dk:#0b1424;--dk2:#111d33;--tx:#1a2233;--mut:#6b7385;--bg:#f4f6fa;--r:12px;--sh:0 6px 24px rgba(15,25,45,.08)}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:"Segoe UI",Roboto,Arial,sans-serif;color:var(--tx);background:#fff;line-height:1.45;overflow-x:hidden}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}
.container{width:100%;max-width:1340px;margin:0 auto;padding:0 20px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 28px;border-radius:8px;font-weight:600;font-size:15px;border:0;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s,color .25s;font-family:inherit}
.btn svg{transition:transform .25s}.btn:hover svg{transform:translateX(4px)}
.btn-or{background:linear-gradient(180deg,var(--or2),var(--or));color:#fff;box-shadow:0 6px 18px rgba(255,106,19,.35)}
.btn-or:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,106,19,.55);background:linear-gradient(180deg,#ff9a55,#ff5a00)}
.btn-ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(4px)}
.btn-ghost:hover{background:#fff;color:var(--dk);transform:translateY(-2px)}
.btn-sm{padding:11px 20px;font-size:14px}
.play{width:30px;height:30px;border-radius:50%;background:#fff;color:var(--dk);display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:12px;transition:background .25s,color .25s}
.btn-ghost:hover .play{background:var(--or);color:#fff}
/* header */
.header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(8,16,30,.55);backdrop-filter:blur(8px);transition:background .3s,box-shadow .3s}
.header.scrolled{background:rgba(8,16,30,.96);box-shadow:0 4px 20px rgba(0,0,0,.3)}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:20px;height:76px}
.logo{display:flex;align-items:center;gap:10px;color:#fff;flex-shrink:0}.logo-ic{color:#9fd4ff;display:flex;transition:transform .6s}.logo:hover .logo-ic{transform:rotate(180deg)}
.logo b{display:block;font-size:20px;letter-spacing:.5px;line-height:1.1}.logo small{font-size:10.5px;letter-spacing:.6px;opacity:.85}
.nav{display:flex;gap:26px}.nav a{color:#fff;font-size:14px;position:relative;padding:6px 0;transition:color .25s}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--or);transition:width .3s}
.nav a:hover,.nav a.active{color:var(--or2)}.nav a:hover::after,.nav a.active::after{width:100%}
.hdr-r{display:flex;align-items:center;gap:18px}.hdr-ph{display:flex;align-items:center;gap:8px;color:#fff;transition:color .25s}.hdr-ph:hover{color:var(--or2)}
.hdr-ph b{display:block;font-size:15px}.hdr-ph small{font-size:11px;opacity:.75}
.soc{display:flex;gap:8px}.soc a{width:28px;height:28px;border-radius:0%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;transition:transform .25s,box-shadow .25s}
.soc a:hover{transform:translateY(-3px) scale(1.08);box-shadow:0 6px 14px rgba(0,0,0,.35)}
.wa{background:#25d366}.tg{background:#2aa3df}.ig{background:radial-gradient(circle at 30% 110%,#fdd36b,#f05a3a 45%,#c02f9f 70%,#5a4fd8)}
.burger{display:none;background:none;border:0;color:#fff;cursor:pointer;transition:color .25s}.burger:hover{color:var(--or)}
/* hero */
.hero{position:relative;color:#fff;padding:120px 0 30px;background:linear-gradient(90deg,rgba(6,12,24,.92) 0%,rgba(6,12,24,.6) 40%,rgba(6,12,24,.05) 70%),url(../images/hero.jpg) center/cover no-repeat;min-height:640px}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;background:linear-gradient(transparent,rgba(6,12,24,.85));pointer-events:none}
.hero .container{position:relative;z-index:1}
.hero-pre{font-size:19px;margin-bottom:6px}
.hero h1{font-size:clamp(40px,7vw,78px);font-weight:900;line-height:1;letter-spacing:.5px}
.hero h1 span{display:block;color:var(--or);font-size:clamp(20px,3.2vw,36px);margin-top:8px}
.hero-txt{font-size:18px;margin:18px 0 28px}.hero-btns{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:60px}
.feats{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding-top:24px;border-top:1px solid rgba(255,255,255,.15)}
.feat{display:flex;align-items:center;gap:12px;font-size:14px;transition:transform .25s}.feat:hover{transform:translateY(-3px)}
.feat i{color:var(--or);flex-shrink:0;display:flex;width:46px;height:46px;align-items:center;justify-content:center;border:1.5px solid rgba(255,106,19,.6);border-radius:10px}
/* sections */
.sec{padding:50px 0 20px}.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}
.sec h2,.h2{font-size:clamp(24px,3vw,40px);font-weight:800;color:var(--dk)}.sec-head p{color:var(--mut);font-size:17px;margin-top:4px}
.more{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:var(--dk);white-space:nowrap;transition:color .25s}
.more svg{transition:transform .25s}.more:hover{color:var(--or)}.more:hover svg{transform:translateX(5px)}
.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.card{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-6px);box-shadow:0 14px 34px rgba(15,25,45,.18)}
.card-img{overflow:hidden;aspect-ratio:16/11}.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.card:hover .card-img img{transform:scale(1.08)}
.card-b{position:relative;padding:14px 16px 16px;flex:1}.card-b h3{font-size:16px;font-weight:700;margin-bottom:4px;transition:color .25s}.card:hover h3{color:var(--or)}
.card-b p{font-size:12.5px;color:var(--mut);padding-right:40px}
.go{position:absolute;right:14px;bottom:14px;width:32px;height:32px;border-radius:50%;background:var(--or);color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .3s,background .3s}
.go svg{width:16px;height:16px}.card:hover .go{transform:rotate(-45deg) scale(1.1);background:#ff5000}
/* calc */
.calc{margin-top:40px;padding:60px 0;color:#fff;background:linear-gradient(90deg,rgba(8,16,30,.97) 0%,rgba(8,16,30,.85) 40%,rgba(8,16,30,.1) 70%),url(../images/calc.jpg) right center/cover no-repeat}
.calc-f{max-width:560px}.calc .h2{color:#fff}.sub{margin:4px 0 22px;opacity:.85}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fld{display:block;margin-bottom:14px}.fld span,.fld-t{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.fld input,.fld select,.mform input{width:100%;padding:12px 14px;border-radius:6px;border:1px solid transparent;font:inherit;font-size:14px;color:var(--tx);background:#fff;transition:border-color .25s,box-shadow .25s}
.fld input:focus,.fld select:focus,.mform input:focus{outline:0;border-color:var(--or);box-shadow:0 0 0 3px rgba(255,106,19,.3)}
.chks{display:flex;flex-wrap:wrap;gap:12px 26px;margin-bottom:22px}.chk{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer;transition:color .2s}.chk:hover{color:var(--or2)}
.chk input{width:18px;height:18px;accent-color:var(--or);cursor:pointer}
.calc-res{margin-top:16px;font-size:18px;font-weight:700;min-height:26px}.calc-res b{color:var(--or)}
/* fleet */
.slider{position:relative}.track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 64px)/5);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:6px 2px 16px}
.track::-webkit-scrollbar{display:none}.track .card{scroll-snap-align:start}.fleet .card-img{aspect-ratio:16/10;background:#fff}.fleet .card-img img{object-fit:contain;padding:8px}
.sl-btn{position:absolute;top:40%;z-index:2;width:40px;height:40px;border-radius:50%;border:0;background:#fff;box-shadow:var(--sh);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s,transform .25s}
.sl-btn:hover{background:var(--or);color:#fff;transform:scale(1.1)}.prev{left:-20px}.next{right:-20px}
.works .card-b h3{font-size:14px}.works .card-b p{padding:0}
/* map */
.map{margin-top:40px;padding:70px 0;color:#fff;background:linear-gradient(90deg,rgba(8,16,30,1) 0%,rgba(8,16,30,.85) 35%,rgba(8,16,30,0) 65%),url(../images/map.jpg) right center/cover no-repeat}
.map-t{max-width:560px}.map .h2{color:#fff}.map-t>p{margin:12px 0 24px;opacity:.85}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stat b,.stat em{font-size:34px;font-weight:900;color:var(--or);font-style:normal}.stat em{font-size:22px}.stat p{font-size:13px;opacity:.85}
/* adv */
.adv{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.adv-i{display:flex;gap:12px;align-items:center;background:#fff;border-radius:var(--r);padding:18px 16px;box-shadow:var(--sh);transition:transform .3s,box-shadow .3s}
.adv-i:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(15,25,45,.15)}.adv-i i{color:var(--or);display:flex;flex-shrink:0;transition:transform .4s}.adv-i:hover i{transform:rotate(360deg)}
.adv-i b{display:block;font-size:14px}.adv-i small{color:var(--mut);font-size:12px}
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-bottom:40px}.rev{display:flex;gap:16px;align-items:flex-start;background:#fff;border-radius:var(--r);padding:18px;box-shadow:var(--sh);transition:transform .3s,box-shadow .3s}
.rev:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(15,25,45,.15)}.rev img{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0}
.rev h3{font-size:16px}.stars{color:#ffb400;letter-spacing:2px;margin:2px 0 6px}.rev p{font-size:13px;color:var(--mut)}
/* footer */
.footer{background:var(--dk);color:#c9d1e0;padding:46px 0 0}.foot{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr 1fr;gap:30px}
.foot>div>p{font-size:14px;margin-top:16px}.foot h4{color:#fff;font-size:15px;margin-bottom:12px}.foot li{margin-bottom:8px;font-size:14px}
.foot ul a{transition:color .25s,padding .25s}.foot ul a:hover{color:var(--or2);padding-left:4px}.fc li{display:flex;align-items:center;gap:10px}.fc svg{color:var(--or);flex-shrink:0;width:18px;height:18px}
.foot-soc{display:flex;flex-direction:column;align-items:flex-end;gap:30px}.foot-soc .soc a{width:30px;height:30px}
.foot-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;padding:22px 20px;margin-top:30px;border-top:1px solid rgba(255,255,255,.1)}
.foot-bot a{margin-left:24px;transition:color .25s}.foot-bot a:hover{color:var(--or2)}
/* modal */
.modal{position:fixed;inset:0;background:rgba(5,10,20,.7);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;opacity:0;visibility:hidden;transition:.3s}
.modal.open{opacity:1;visibility:visible}.modal-box{position:relative;background:#fff;border-radius:14px;padding:34px 28px;max-width:400px;width:100%;transform:translateY(20px);transition:transform .3s}.modal.open .modal-box{transform:none}
.modal-box h3{font-size:24px}.modal-box p{color:var(--mut);margin:6px 0 18px}.mform{display:grid;gap:12px}.mform input{border-color:#d6dbe5}
.modal-x{position:absolute;right:14px;top:10px;border:0;background:none;font-size:30px;cursor:pointer;color:var(--mut);transition:color .25s,transform .25s}.modal-x:hover{color:var(--or);transform:rotate(90deg)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s}.reveal.vis{opacity:1;transform:none}
/* responsive */
@media(max-width:1200px){.nav{gap:16px}.hdr-ph{display:none}}
@media(max-width:1024px){.burger{display:flex}.hdr-r .btn-sm{display:none}
.nav{position:fixed;top:76px;left:0;right:0;flex-direction:column;gap:0;background:rgba(8,16,30,.98);padding:10px 20px 20px;transform:translateY(-120%);transition:transform .35s;z-index:-1}
.nav.open{transform:none}.nav a{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:16px}
.grid5,.adv{grid-template-columns:repeat(3,1fr)}.track{grid-auto-columns:calc((100% - 32px)/3)}.feats{grid-template-columns:repeat(3,1fr)}
.foot{grid-template-columns:1fr 1fr 1fr}.foot>div:first-child{grid-column:1/-1}.foot-soc{align-items:flex-start}.revs{grid-template-columns:1fr 1fr}
.calc,.map{background-position:70% center}.calc{background-image:linear-gradient(rgba(8,16,30,.88),rgba(8,16,30,.88)),url(../images/calc.jpg)}.map{background-image:linear-gradient(rgba(8,16,30,.85),rgba(8,16,30,.85)),url(../images/map.jpg)}}
@media(max-width:768px){.hero{min-height:0;padding-top:110px;background:linear-gradient(rgba(6,12,24,.75),rgba(6,12,24,.85)),url(../images/hero.jpg) 65% center/cover}
.feats{grid-template-columns:1fr 1fr}.grid5,.adv{grid-template-columns:1fr 1fr}.track{grid-auto-columns:calc((100% - 16px)/2)}
.stats{grid-template-columns:1fr 1fr}.revs{grid-template-columns:1fr}.foot{grid-template-columns:1fr 1fr}.prev{left:-6px}.next{right:-6px}}
@media(max-width:480px){.container{padding:0 15px}.logo b{font-size:17px}.logo small{font-size:9px}.soc a{width:28px;height:28px;font-size:12px}.hdr-r{gap:10px}
.hero-btns .btn{width:100%}.row{grid-template-columns:1fr}.grid5,.adv{grid-template-columns:1fr}.track{grid-auto-columns:80%}
.sec-head{flex-direction:column;align-items:flex-start;gap:8px}.foot{grid-template-columns:1fr}.foot-bot{flex-direction:column}.foot-bot a{margin:0 16px 0 0}.calc .btn{width:100%}}
@media(max-width:360px){.hdr .soc{display:none}.feats{grid-template-columns:1fr}}
.soc a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    padding: 0;
    overflow: hidden;
}

.soc a img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.soc a:hover img {
    transform: scale(1.1);
    transition: transform .25s ease;
}
/* ===== Снег на кнопках ===== */
.snowy {
    position: relative;
    overflow: visible;
    isolation: isolate;
}

/* Снежная шапка сверху кнопки */
.snowy__layer {
    position: absolute;
    left: 0;
    right: 0;
    top: -12px;
    height: 21px;
    pointer-events: none;
    z-index: 2;
    clip-path: inset(0 0 0 0);
    transition: opacity .9s ease, transform .9s cubic-bezier(.3, 1.4, .5, 1);
}

.snowy__layer svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    filter: drop-shadow(0 1.5px 1.2px rgba(10, 30, 60, .35));
}

/* Снег счищается слева направо */
.snowy.is-clean .snowy__layer {
    clip-path: inset(0 0 0 100%);
    transition: clip-path var(--clean, 600ms) cubic-bezier(.45, 0, .25, 1);
}

/* Снег снова выпадает сверху */
.snowy.is-refill .snowy__layer {
    opacity: 0;
    transform: translateY(-10px);
    transition: none;
}

/* Отвал, который чистит снег */
.snowy__plow {
    position: absolute;
    top: -12px;
    bottom: -2px;
    left: 0;
    width: 5px;
    border-radius: 2px;
    background: linear-gradient(180deg, #ffb347, #ff6a00 60%, #c94f00);
    box-shadow: 0 0 6px rgba(255, 120, 0, .6);
    transform: translateX(-50%);
    opacity: 0;
    pointer-events: none;
    z-index: 3;
}

/* Сугроб перед отвалом */
.snowy__plow::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 2px;
    width: 0;
    height: 0;
    border-radius: 50% 50% 40% 40%;
    background: #fff;
    box-shadow: 0 0 4px rgba(255, 255, 255, .8);
}

.snowy.is-clean .snowy__plow {
    animation: snowPlow var(--clean, 600ms) cubic-bezier(.45, 0, .25, 1) forwards;
}

.snowy.is-clean .snowy__plow::after {
    animation: snowPile var(--clean, 600ms) cubic-bezier(.45, 0, .25, 1) forwards;
}

@keyframes snowPlow {
    0%   { left: 0;    opacity: 1; }
    88%  {             opacity: 1; }
    100% { left: 100%; opacity: 0; }
}

@keyframes snowPile {
    0%   { width: 0;    height: 0; }
    80%  { width: 14px; height: 12px; }
    100% { width: 18px; height: 6px; opacity: 0; }
}

/* Летящие снежинки */
.snow-bit {
    position: fixed;
    top: 0;
    left: 0;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 3px rgba(255, 255, 255, .9);
    pointer-events: none;
    z-index: 9999;
}

@media (prefers-reduced-motion: reduce) {
    .snowy__plow { display: none; }
    .snowy.is-clean .snowy__layer { transition-duration: .01ms; }
}

/* ===== Страница «Политика конфиденциальности» ===== */
.pp-wrap {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.pp-hero {
    padding: 110px 0 48px;
    color: #fff;
    background:
        radial-gradient(circle at 80% 20%, rgba(255, 106, 0, .25), transparent 45%),
        linear-gradient(135deg, #081428, #10264a);
}

.pp-hero h1 {
    margin: 14px 0 8px;
    font-size: clamp(28px, 5vw, 46px);
    line-height: 1.15;
}

.pp-hero__date {
    margin: 0;
    color: rgba(255, 255, 255, .7);
    font-size: 15px;
}

.pp-crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 14px;
    color: rgba(255, 255, 255, .7);
}

.pp-crumbs a {
    color: #ff8a2b;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}

.pp-crumbs a:hover {
    color: #fff;
    transform: translateX(-2px);
}

.pp-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    padding-top: 32px;
    padding-bottom: 56px;
}

/* Содержание */
.pp-toc {
    position: sticky;
    top: 90px;
    background: #fff;
    border-radius: 16px;
    padding: 18px 20px;
    box-shadow: 0 6px 24px rgba(8, 20, 40, .08);
}

.pp-toc summary {
    cursor: pointer;
    font-weight: 700;
    font-size: 18px;
    list-style: none;
}

.pp-toc summary::-webkit-details-marker { display: none; }

.pp-toc summary::after {
    content: "▾";
    float: right;
    color: #ff6a00;
    transition: transform .25s ease;
}

.pp-toc details:not([open]) summary::after { transform: rotate(-90deg); }

.pp-toc ol {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
    counter-reset: toc;
}

.pp-toc li { counter-increment: toc; }

.pp-toc a {
    display: block;
    padding: 8px 10px;
    border-left: 3px solid transparent;
    border-radius: 0 8px 8px 0;
    color: #1d2b44;
    font-size: 14.5px;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, border-color .2s ease, padding-left .2s ease;
}

.pp-toc a::before {
    content: counter(toc) ". ";
    color: #ff6a00;
    font-weight: 700;
}

.pp-toc a:hover {
    background: #fff3ea;
    color: #ff6a00;
    padding-left: 15px;
}

.pp-toc a.is-active {
    background: #fff3ea;
    border-left-color: #ff6a00;
    color: #ff6a00;
    font-weight: 600;
}

/* Карточка с текстом */
.pp-card {
    background: #fff;
    border-radius: 16px;
    padding: 36px 40px;
    box-shadow: 0 6px 24px rgba(8, 20, 40, .08);
    color: #2a3550;
    font-size: 16px;
    line-height: 1.7;
    counter-reset: sec;
}

.pp-card section {
    scroll-margin-top: 90px;
    counter-increment: sec;
}

.pp-card section + section {
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid #e8edf5;
}

.pp-card h2 {
    margin: 0 0 14px;
    color: #081428;
    font-size: clamp(20px, 3vw, 26px);
    line-height: 1.25;
}

.pp-card h2::before {
    content: counter(sec) ". ";
    color: #ff6a00;
}

.pp-card p { margin: 0 0 12px; }

.pp-card ul { margin: 0 0 12px; padding-left: 22px; }

.pp-card li { margin-bottom: 8px; }

.pp-card li::marker { color: #ff6a00; }

.pp-card a {
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}

.pp-card a:hover { color: #081428; }

/* Таблица */
.pp-table {
    margin: 16px 0;
    overflow-x: auto;
    border: 1px solid #e8edf5;
    border-radius: 12px;
}

.pp-table table {
    width: 100%;
    min-width: 480px;
    border-collapse: collapse;
    font-size: 15px;
}

.pp-table th,
.pp-table td {
    padding: 12px 16px;
    text-align: left;
    vertical-align: top;
}

.pp-table thead th {
    background: #081428;
    color: #fff;
    font-weight: 600;
}

.pp-table tbody tr { transition: background .2s ease; }
.pp-table tbody tr:hover { background: #fff3ea; }
.pp-table tbody tr + tr td { border-top: 1px solid #e8edf5; }
.pp-table td:first-child { font-weight: 600; color: #081428; width: 38%; }

/* Контакты */
.pp-contacts {
    list-style: none;
    padding: 0 !important;
    margin: 0 0 20px;
}

.pp-contacts li {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    padding: 10px 0;
    border-bottom: 1px dashed #d7dfec;
}

.pp-contacts span {
    min-width: 130px;
    color: #7a869e;
}

/* Кнопка */
.pp-btn {
    display: inline-block;
    padding: 14px 28px;
    border-radius: 10px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    color: #fff !important;
    font-weight: 700;
    text-decoration: none !important;
    box-shadow: 0 6px 16px rgba(255, 106, 0, .35);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.pp-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 22px rgba(255, 106, 0, .5);
    filter: brightness(1.08);
}

.pp-btn:active { transform: translateY(0); }

/* Кнопка «Наверх» */
.pp-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: #ff6a00;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(255, 106, 0, .45);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s, background .2s ease;
    z-index: 50;
}

.pp-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.pp-top:hover {
    background: #081428;
    transform: translateY(-4px);
}

/* Адаптив */
@media (max-width: 960px) {
    .pp-layout {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .pp-toc { position: static; }
}

@media (max-width: 600px) {
    .pp-hero { padding: 90px 0 32px; }
    .pp-wrap { padding: 0 14px; }
    .pp-card { padding: 22px 18px; font-size: 15px; }
    .pp-card section + section { margin-top: 24px; padding-top: 24px; }
    .pp-contacts span { min-width: 100%; }
    .pp-btn { display: block; text-align: center; }
    .pp-top { right: 14px; bottom: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .pp-toc a, .pp-btn, .pp-top { transition: none; }
}

html { scroll-behavior: smooth; }

/* ===== Страница 404 ===== */
body.page-404 {
    margin: 0;
    background: #050b1c;
    overflow-x: hidden;
}

.e404 {
    --road-h: clamp(120px, 22vh, 190px);
    --plow-w: clamp(230px, 30vw, 360px);
    --plow-time: 11s;
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100svh;
    overflow: hidden;
    isolation: isolate;
    color: #fff;
}

/* Небо, луна, звёзды */
.e404__sky {
    position: absolute;
    inset: 0;
    z-index: -3;
    background:
        radial-gradient(60% 50% at 82% 10%, rgba(255, 150, 60, .22), transparent 70%),
        radial-gradient(70% 60% at 12% 0, rgba(60, 120, 255, .28), transparent 70%),
        linear-gradient(180deg, #050b1c 0%, #0b1d3d 55%, #17325e 100%);
}

.e404__sky i {
    position: absolute;
    border-radius: 50%;
    background: #fff;
    animation: e404Twinkle 3s ease-in-out infinite;
}

.e404__moon {
    position: absolute;
    top: 10%;
    right: 10%;
    width: clamp(56px, 8vw, 100px);
    aspect-ratio: 1;
    border-radius: 50%;
    background:
        radial-gradient(circle at 62% 66%, rgba(190, 170, 120, .45) 0 9%, transparent 10%),
        radial-gradient(circle at 36% 38%, rgba(190, 170, 120, .35) 0 12%, transparent 13%),
        radial-gradient(circle at 35% 35%, #fffdf2, #f4e9c6 55%, #d9c898);
    box-shadow: 0 0 60px 18px rgba(255, 236, 190, .25), 0 0 160px 60px rgba(120, 160, 255, .15);
}

/* Город */
.e404__city {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(var(--road-h) - 6px);
    height: clamp(150px, 36vh, 330px);
    z-index: -2;
    pointer-events: none;
}

.e404__city svg {
    display: block;
    width: 100%;
    height: 100%;
}

/* Падающий снег */
.e404__snowfall {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 6;
    pointer-events: none;
}

/* Шапка */
.e404__head {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px clamp(16px, 4vw, 48px);
}

.e404__logo {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    text-decoration: none;
    transition: transform .25s ease, filter .25s ease;
}

.e404__logo:hover {
    transform: translateY(-2px);
    filter: drop-shadow(0 4px 10px rgba(255, 138, 43, .55));
}

.e404__logo svg {
    width: 40px;
    height: 40px;
    transition: transform .6s ease;
}

.e404__logo:hover svg { transform: rotate(90deg); }

.e404__logo b {
    display: block;
    font-size: 20px;
    line-height: 1.1;
    letter-spacing: .04em;
}

.e404__logo small {
    display: block;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .75;
}

.e404__phone {
    padding: 10px 18px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    backdrop-filter: blur(6px);
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
}

.e404__phone:hover {
    background: #ff6a00;
    border-color: #ff6a00;
    transform: translateY(-2px);
}

/* Контент */
.e404__main {
    position: relative;
    z-index: 3;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 8px 20px 36px;
    text-align: center;
}

.e404__code {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .04em;
    margin: 0;
    font: 900 clamp(120px, 27vw, 300px) / 1 "Arial Black", Impact, system-ui, sans-serif;
    letter-spacing: -.02em;
    user-select: none;
}

.e404__code > span {
    display: block;
    background: linear-gradient(180deg, #fff 0 20%, #bcd9ff 45%, #4f8de0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 10px 30px rgba(60, 130, 255, .45));
    animation: e404Drop .9s cubic-bezier(.3, 1.5, .5, 1) both;
}

.e404__code > span:nth-child(2) { animation-delay: .15s; }
.e404__code > span:nth-child(3) { animation-delay: .3s; }

.e404__zero {
    height: .78em;
    background: none !important;
}

.e404__zero svg {
    display: block;
    height: 100%;
    width: auto;
    overflow: visible;
    animation: e404Glow 3s ease-in-out infinite alternate;
}

.e404__flake {
    transform-box: fill-box;
    transform-origin: center;
    animation: e404Spin 14s linear infinite;
}

.e404__title {
    margin: 6px 0 12px;
    font-size: clamp(24px, 4.4vw, 44px);
    font-weight: 800;
    line-height: 1.15;
}

.e404__text {
    max-width: 560px;
    margin: 0;
    color: rgba(255, 255, 255, .8);
    font-size: clamp(15px, 2vw, 18px);
    line-height: 1.6;
}

.e404__title, .e404__text, .e404__actions, .e404__links, .e404__copy {
    animation: e404Rise .8s ease both;
}
.e404__title   { animation-delay: .5s; }
.e404__text    { animation-delay: .65s; }
.e404__actions { animation-delay: .8s; }
.e404__links   { animation-delay: .95s; }
.e404__copy    { animation-delay: 1.1s; }

.e404__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin: 26px 0 22px;
}

.e404__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 30px;
    border-radius: 12px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 8px 22px rgba(255, 106, 0, .4);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease, background .25s ease, border-color .25s ease;
}

.e404__btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(255, 106, 0, .55);
    filter: brightness(1.08);
}

.e404__arr { transition: transform .25s ease; }
.e404__btn:hover .e404__arr { transform: translateX(5px); }

.e404__btn--ghost {
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .08);
    box-shadow: none;
    backdrop-filter: blur(6px);
}

.e404__btn--ghost:hover {
    border-color: #ff8a2b;
    background: rgba(255, 255, 255, .16);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
}

.e404__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 22px;
    font-size: 14px;
}

.e404__links a,
.e404__copy a {
    padding-bottom: 3px;
    background: linear-gradient(#ff8a2b, #ff8a2b) 0 100% / 0 2px no-repeat;
    color: rgba(255, 255, 255, .78);
    text-decoration: none;
    transition: background-size .25s ease, color .25s ease;
}

.e404__links a:hover,
.e404__copy a:hover {
    background-size: 100% 2px;
    color: #fff;
}

.e404__copy {
    margin: 22px 0 0;
    color: rgba(255, 255, 255, .5);
    font-size: 13px;
}

/* Дорога */
.e404__road {
    position: relative;
    z-index: 4;
    flex: none;
    height: var(--road-h);
}

.e404__asphalt {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, #1b2436 0%, #101827 55%, #0a0f1b 100%);
}

.e404__asphalt::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 58%;
    height: 4px;
    background: repeating-linear-gradient(90deg, rgba(255, 214, 102, .85) 0 38px, transparent 38px 76px);
}

.e404__asphalt::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 40% 30% at 20% 0, rgba(255, 170, 70, .2), transparent),
        radial-gradient(ellipse 40% 30% at 75% 0, rgba(255, 170, 70, .15), transparent);
}

/* Снег на дороге, его счищает машина */
.e404__snow {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        radial-gradient(circle, rgba(255, 255, 255, .95) 0 1px, transparent 1.6px) 0 0 / 17px 13px,
        linear-gradient(180deg, #fdfeff 0%, #e4eefb 45%, #c3d6ee 100%);
    animation: e404Clean var(--plow-time) linear 1s infinite both;
}

.e404__snow::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -14px;
    height: 16px;
    background:
        radial-gradient(circle at 14px 16px, #fdfeff 13px, transparent 14px) 0 0 / 30px 16px repeat-x,
        radial-gradient(circle at 30px 16px, #f0f6ff 9px, transparent 10px) 0 0 / 44px 16px repeat-x;
}

/* Сугроб у нижнего края */
.e404__road::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 22px;
    z-index: 3;
    background:
        radial-gradient(circle at 20px 22px, #fdfeff 18px, transparent 19px) 0 0 / 46px 22px repeat-x,
        linear-gradient(#e6f0fc, #e6f0fc) 0 100% / 100% 10px no-repeat;
}

/* Снегоуборочная машина */
.e404__plow {
    position: absolute;
    left: 0;
    bottom: 20%;
    z-index: 2;
    width: var(--plow-w);
    transform: translateX(-100%);
    animation: e404Drive var(--plow-time) linear 1s infinite both;
    will-change: left;
}

.e404__truck {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
    animation: e404Shake .5s ease-in-out infinite;
}

.e404__spin {
    transform-box: fill-box;
    transform-origin: center;
    animation: e404Spin .65s linear infinite;
}

.e404__beacon { animation: e404Blink .8s steps(2, jump-none) infinite; }
.e404__beacon-glow { animation: e404Blink .8s steps(2, jump-none) infinite; }

.e404__pile {
    transform-box: fill-box;
    transform-origin: bottom center;
    animation: e404Pile .6s ease-in-out infinite alternate;
}

/* Снег из-под отвала */
.e404__spray {
    position: absolute;
    right: -6px;
    bottom: 22%;
    width: 0;
    height: 0;
}

.e404__spray i {
    position: absolute;
    left: 0;
    bottom: 0;
    width: var(--s, 6px);
    height: var(--s, 6px);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 4px rgba(255, 255, 255, .9);
    opacity: 0;
    animation: e404Spray 1s ease-out infinite;
}

.e404__spray i:nth-child(1) { --dx: 34px;  --dy: -50px; --s: 6px; animation-delay: 0s; }
.e404__spray i:nth-child(2) { --dx: 14px;  --dy: -62px; --s: 4px; animation-delay: .12s; }
.e404__spray i:nth-child(3) { --dx: -12px; --dy: -44px; --s: 7px; animation-delay: .25s; }
.e404__spray i:nth-child(4) { --dx: 46px;  --dy: -34px; --s: 5px; animation-delay: .37s; }
.e404__spray i:nth-child(5) { --dx: -30px; --dy: -58px; --s: 4px; animation-delay: .5s; }
.e404__spray i:nth-child(6) { --dx: 24px;  --dy: -70px; --s: 5px; animation-delay: .62s; }
.e404__spray i:nth-child(7) { --dx: 4px;   --dy: -38px; --s: 6px; animation-delay: .75s; }
.e404__spray i:nth-child(8) { --dx: 40px;  --dy: -56px; --s: 4px; animation-delay: .87s; }

/* Анимации */
@keyframes e404Drive {
    0%        { left: 0; }
    72%, 100% { left: calc(100% + 420px); }
}

/* Снег исчезает ровно за отвалом, потом выпадает заново */
@keyframes e404Clean {
    0%   { clip-path: inset(-26px 0 0 0px); opacity: 1; }
    72%  { clip-path: inset(-26px 0 0 calc(100% + 420px)); opacity: 1; }
    74%  { clip-path: inset(-26px 0 0 calc(100% + 420px)); opacity: 0; }
    75%  { clip-path: inset(-26px 0 0 0px); opacity: 0; }
    100% { clip-path: inset(-26px 0 0 0px); opacity: 1; }
}

@keyframes e404Shake {
    0%, 100% { transform: translateY(0) rotate(0); }
    50%      { transform: translateY(-1.5px) rotate(-.25deg); }
}

@keyframes e404Spin { to { transform: rotate(360deg); } }

@keyframes e404Blink {
    0%   { opacity: 1; }
    100% { opacity: .15; }
}

@keyframes e404Pile {
    from { transform: scale(1, .85); }
    to   { transform: scale(1.1, 1.1); }
}

@keyframes e404Spray {
    0%   { opacity: 0; transform: translate(0, 0) scale(.6); }
    15%  { opacity: 1; }
    55%  { opacity: 1; transform: translate(calc(var(--dx) * .7), var(--dy)) scale(1); }
    100% { opacity: 0; transform: translate(var(--dx), calc(var(--dy) * .2 + 24px)) scale(.4); }
}

@keyframes e404Drop {
    from { opacity: 0; transform: translateY(-140px) rotate(-6deg); }
    to   { opacity: 1; transform: none; }
}

@keyframes e404Rise {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: none; }
}

@keyframes e404Glow {
    from { filter: drop-shadow(0 0 8px rgba(255, 120, 0, .35)); }
    to   { filter: drop-shadow(0 0 26px rgba(255, 120, 0, .85)); }
}

@keyframes e404Twinkle {
    0%, 100% { opacity: .25; }
    50%      { opacity: 1; }
}

/* Адаптив */
@media (max-width: 600px) {
    .e404__phone { display: none; }
    .e404__actions { width: 100%; }
    .e404__btn { width: 100%; max-width: 340px; justify-content: center; }
}

@media (max-height: 620px) {
    .e404__code { font-size: clamp(90px, 24vh, 200px); }
    .e404__actions { margin: 16px 0 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .e404 *, .e404 *::before { animation: none !important; transition: none !important; }
    .e404__plow { left: 58%; }
    .e404__snow { clip-path: inset(-26px 0 0 58%); }
}


/* ===== Страница «Контакты» ===== */
.ct {
    padding: 56px 0 72px;
    background: linear-gradient(180deg, #eef3fb, #e3ebf7);
}

/* Кнопка. Класс .btn нужен для снега, внешний вид задаёт .ct-btn */
.btn.ct-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 14px 26px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 8px 20px rgba(255, 106, 0, .35);
    color: #fff;
    font: 700 15px/1.2 inherit;
    font-family: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.btn.ct-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(255, 106, 0, .5);
    filter: brightness(1.08);
}

.btn.ct-btn:active { transform: translateY(0); }

.btn.ct-btn:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.btn.ct-btn--wide { width: 100%; }
.btn.ct-btn--wa  { background: linear-gradient(180deg, #3ddc84, #1faa59); box-shadow: 0 8px 20px rgba(31, 170, 89, .35); }
.btn.ct-btn--tg  { background: linear-gradient(180deg, #38b6f5, #1b8fd1); box-shadow: 0 8px 20px rgba(27, 143, 209, .35); }
.btn.ct-btn--max { background: linear-gradient(180deg, #8a6bff, #5b3fe0); box-shadow: 0 8px 20px rgba(91, 63, 224, .35); }
.btn.ct-btn--wa:hover  { box-shadow: 0 14px 28px rgba(31, 170, 89, .5); }
.btn.ct-btn--tg:hover  { box-shadow: 0 14px 28px rgba(27, 143, 209, .5); }
.btn.ct-btn--max:hover { box-shadow: 0 14px 28px rgba(91, 63, 224, .5); }

/* Карточки */
.ct-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}

.ct-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 28px 24px 26px;
    border-radius: 18px;
    background: linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 10px 30px rgba(8, 20, 40, .22);
    color: rgba(255, 255, 255, .75);
    transition: transform .3s ease, box-shadow .3s ease;
}

.ct-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(8, 20, 40, .35);
}

.ct-card__ico {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin-bottom: 18px;
    border-radius: 14px;
    background: rgba(255, 106, 0, .16);
    transition: background .3s ease, transform .3s ease;
}

.ct-card:hover .ct-card__ico {
    background: #ff6a00;
    transform: rotate(-6deg) scale(1.06);
}

.ct-card__ico svg { width: 26px; height: 26px; fill: #ff8a2b; transition: fill .3s ease; }
.ct-card:hover .ct-card__ico svg { fill: #fff; }

.ct-card h2 {
    margin: 0 0 8px;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .7;
}

.ct-card__link {
    margin-bottom: 8px;
    color: #fff;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: color .2s ease;
}

a.ct-card__link:hover { color: #ff8a2b; }

.ct-card p { margin: 0 0 auto; padding-bottom: 26px; font-size: 14px; }

/* Форма и мессенджеры */
.ct-main {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: 22px;
    margin-top: 40px;
    scroll-margin-top: 90px;
}

.ct-form,
.ct-side {
    padding: 36px;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(8, 20, 40, .12);
}

.ct-form { background: linear-gradient(160deg, #10264a, #081428); color: #fff; }
.ct-side { background: #fff; color: #2a3550; }

.ct-form h2,
.ct-side h2 { margin: 0 0 10px; font-size: clamp(22px, 3vw, 30px); line-height: 1.2; }
.ct-side h2 { color: #081428; }

.ct-form__lead,
.ct-side > p { margin: 0 0 24px; color: inherit; opacity: .78; line-height: 1.6; }

.ct-field { margin-bottom: 18px; }

.ct-field label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 600;
    color: rgba(255, 255, 255, .85);
}

.ct-field input,
.ct-field textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 12px;
    background: rgba(255, 255, 255, .07);
    color: #fff;
    font: inherit;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.ct-field textarea { resize: vertical; min-height: 110px; }
.ct-field input::placeholder,
.ct-field textarea::placeholder { color: rgba(255, 255, 255, .4); }

.ct-field input:hover,
.ct-field textarea:hover { border-color: rgba(255, 255, 255, .4); }

.ct-field input:focus,
.ct-field textarea:focus {
    outline: 0;
    border-color: #ff8a2b;
    background: rgba(255, 255, 255, .12);
    box-shadow: 0 0 0 4px rgba(255, 138, 43, .2);
}

.ct-field.is-invalid input { border-color: #ff6b6b; }

.ct-error {
    display: block;
    min-height: 0;
    margin-top: 6px;
    color: #ff9a9a;
    font-size: 13px;
}

.ct-error:empty { display: none; }

/* Чекбокс */
.ct-check {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 8px;
    font-size: 14px;
    line-height: 1.5;
    cursor: pointer;
}

.ct-check input { position: absolute; opacity: 0; pointer-events: none; }

.ct-check__box {
    flex: none;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-radius: 6px;
    transition: background .2s ease, border-color .2s ease;
}

.ct-check:hover .ct-check__box { border-color: #ff8a2b; }

.ct-check input:checked + .ct-check__box {
    border-color: #ff6a00;
    background: #ff6a00 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3.5' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 16px no-repeat;
}

.ct-check input:focus-visible + .ct-check__box { box-shadow: 0 0 0 4px rgba(255, 138, 43, .35); }

.ct-check a {
    color: #ff8a2b;
    text-underline-offset: 3px;
    transition: color .2s ease;
}

.ct-check a:hover { color: #fff; }

.ct-form .ct-btn { margin-top: 24px; }
.ct-form .ct-btn[disabled] { opacity: .6; pointer-events: none; }

.ct-status { min-height: 22px; margin: 16px 0 0; font-size: 14px; }
.ct-status.is-ok { color: #7dffb0; }
.ct-status.is-err { color: #ff9a9a; }

/* Мессенджеры */
.ct-msgrs {
    display: flex;
    flex-wrap: wrap;
    gap: 22px 14px;
    padding-top: 10px;
    margin-bottom: 28px;
}

.ct-msgrs .btn { flex: 1 1 130px; }

.ct-req { margin: 0; border-top: 1px solid #e8edf5; }

.ct-req div {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    padding: 14px 0;
    border-bottom: 1px dashed #d7dfec;
}

.ct-req dt { min-width: 100px; color: #7a869e; }
.ct-req dd { margin: 0; font-weight: 600; color: #081428; }

/* Карта */
.ct-map {
    position: relative;
    margin-top: 40px;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(8, 20, 40, .18);
    scroll-margin-top: 90px;
}

.ct-map iframe {
    display: block;
    width: 100%;
    height: 440px;
    border: 0;
    filter: saturate(.85) contrast(1.02);
}

.ct-map__badge {
    position: absolute;
    left: 24px;
    bottom: 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-width: 300px;
    padding: 22px 22px 20px;
    border-radius: 16px;
    background: linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 12px 30px rgba(8, 20, 40, .4);
    color: rgba(255, 255, 255, .8);
    font-size: 14px;
}

.ct-map__badge strong { color: #fff; font-size: 18px; }
.ct-map__badge .btn { margin-top: 22px; }

/* Адаптив */
@media (max-width: 1100px) {
    .ct-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .ct-main { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .ct { padding: 36px 0 48px; }
    .ct-cards { grid-template-columns: 1fr; gap: 18px; }
    .ct-form, .ct-side { padding: 24px 18px; }
    .ct-map iframe { height: 320px; }
    .ct-map__badge {
        position: static;
        max-width: none;
        border-radius: 0;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-card, .ct-card__ico, .btn.ct-btn { transition: none; }
}



/* ===== Общая шапка (privacy, contacts и другие страницы) ===== */
.sh {
    position: sticky;
    top: 0;
    z-index: 100;
    background: linear-gradient(180deg, #081428, #0b1d3d);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    color: #fff;
    transition: box-shadow .3s ease;
}

.sh.is-stuck { box-shadow: 0 8px 24px rgba(0, 0, 0, .35); }

.sh-in {
    display: flex;
    align-items: center;
    gap: 22px;
    max-width: 1280px;
    margin: 0 auto;
    padding: 20px clamp(14px, 3vw, 32px) 12px;
}

.sh-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: none;
    color: #fff;
    text-decoration: none;
    transition: transform .25s ease, filter .25s ease;
}

.sh-logo:hover {
    transform: translateY(-2px);
    filter: drop-shadow(0 4px 10px rgba(255, 138, 43, .55));
}

.sh-logo svg { width: 38px; height: 38px; transition: transform .6s ease; }
.sh-logo:hover svg { transform: rotate(90deg); }
.sh-logo b { display: block; font-size: 18px; line-height: 1.1; letter-spacing: .04em; }
.sh-logo small { display: block; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; opacity: .75; }

.sh-nav {
    display: flex;
    align-items: center;
    gap: 4px 18px;
    margin: 0 auto;
}

.sh-nav > a {
    position: relative;
    padding: 8px 2px;
    color: rgba(255, 255, 255, .85);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: color .2s ease, transform .2s ease;
}

.sh-nav > a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: #ff6a00;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s ease;
}

.sh-nav > a:hover { color: #fff; transform: translateY(-1px); }
.sh-nav > a:hover::after,
.sh-nav > a.is-active::after { transform: scaleX(1); }
.sh-nav > a.is-active { color: #fff; }

.sh-phone {
    display: flex;
    flex-direction: column;
    flex: none;
    color: #fff;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}

.sh-phone b { font-size: 15px; white-space: nowrap; }
.sh-phone small { font-size: 11px; opacity: .65; }
.sh-phone:hover { color: #ff8a2b; transform: translateY(-1px); }

.sh-soc { display: flex; gap: 8px; flex: none; }

.sh-soc a {
    display: block;
    width: 32px;
    height: 32px;
    transition: transform .25s ease, filter .25s ease;
}

.sh-soc a:hover { transform: translateY(-3px) scale(1.08); filter: drop-shadow(0 4px 8px rgba(255, 138, 43, .5)); }
.sh-soc img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* Класс .btn нужен для снега, внешний вид задаёт .sh-btn */
.btn.sh-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    padding: 11px 20px;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 6px 16px rgba(255, 106, 0, .35);
    color: #fff;
    font: 700 13px/1.2 inherit;
    font-family: inherit;
    text-decoration: none;
    white-space: nowrap;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.btn.sh-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 24px rgba(255, 106, 0, .5);
    filter: brightness(1.08);
}

.sh-mobile, .sh-burger { display: none; }

@media (max-width: 1180px) {
    .sh-soc { display: none; }
}

@media (max-width: 1020px) {
    .sh-phone--top small { display: none; }
    .sh-nav { gap: 4px 12px; }
}

@media (max-width: 900px) {
    .sh-in { gap: 12px; padding-top: 14px; }
    .sh-phone--top { display: none; }
    .btn.sh-btn--top { display: none; }
    .sh-logo { margin-right: auto; }

    .sh-burger {
        display: grid;
        place-content: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        border: 1px solid rgba(255, 255, 255, .22);
        border-radius: 10px;
        background: rgba(255, 255, 255, .06);
        cursor: pointer;
        transition: background .2s ease, border-color .2s ease;
    }

    .sh-burger:hover { background: #ff6a00; border-color: #ff6a00; }

    .sh-burger span {
        display: block;
        width: 22px;
        height: 2px;
        border-radius: 2px;
        background: #fff;
        transition: transform .25s ease, opacity .2s ease;
    }

    .sh.is-open .sh-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .sh.is-open .sh-burger span:nth-child(2) { opacity: 0; }
    .sh.is-open .sh-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    .sh-nav {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin: 0;
        padding: 6px clamp(14px, 3vw, 32px) 20px;
        background: #0b1d3d;
        box-shadow: 0 16px 30px rgba(0, 0, 0, .4);
        max-height: calc(100vh - 70px);
        overflow-y: auto;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-8px);
        transition: opacity .25s ease, transform .25s ease, visibility .25s;
    }

    .sh.is-open .sh-nav { opacity: 1; visibility: visible; transform: none; }

    .sh-nav > a {
        padding: 14px 4px;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
        font-size: 16px;
    }

    .sh-nav > a::after { display: none; }
    .sh-nav > a.is-active { color: #ff8a2b; }

    .sh-mobile {
        display: flex;
        flex-direction: column;
        gap: 18px;
        padding-top: 20px;
    }

    .sh-mobile .sh-phone { font-size: 18px; font-weight: 700; }
    .sh-mobile .btn.sh-btn { padding: 14px 20px; font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
    .sh *, .sh { transition: none !important; }
}

/* ===== Общий подвал ===== */
.sf {
    background: linear-gradient(180deg, #0b1d3d, #050b1c);
    color: rgba(255, 255, 255, .75);
    font-size: 15px;
}

.sf-in {
    display: grid;
    grid-template-columns: 1.5fr .8fr 1.3fr 1.1fr;
    gap: 40px;
    max-width: 1280px;
    margin: 0 auto;
    padding: 56px clamp(14px, 3vw, 32px) 40px;
}

.sf h3 {
    margin: 0 0 18px;
    color: #fff;
    font-size: 16px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.sf p { margin: 0 0 16px; line-height: 1.6; }
.sf ul { margin: 0; padding: 0; list-style: none; }

.sf a {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}

/* Логотип */
.sf-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: #fff !important;
    transition: transform .25s ease, filter .25s ease !important;
}

.sf-logo:hover {
    transform: translateY(-2px);
    filter: drop-shadow(0 4px 10px rgba(255, 138, 43, .55));
}

.sf-logo svg { width: 40px; height: 40px; transition: transform .6s ease; }
.sf-logo:hover svg { transform: rotate(90deg); }
.sf-logo b { display: block; font-size: 18px; line-height: 1.1; letter-spacing: .04em; }
.sf-logo small { display: block; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; opacity: .75; }

/* Соцсети */
.sf-soc { display: flex; gap: 10px; }

.sf-soc a {
    display: block;
    width: 36px;
    height: 36px;
    transition: transform .25s ease, filter .25s ease;
}

.sf-soc a:hover {
    transform: translateY(-4px) scale(1.08);
    filter: drop-shadow(0 6px 10px rgba(255, 138, 43, .5));
}

.sf-soc img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* Меню */
.sf-col ul:not(.sf-contacts) li + li { margin-top: 10px; }

.sf-col ul:not(.sf-contacts) a {
    display: inline-block;
    padding-bottom: 2px;
    background: linear-gradient(#ff8a2b, #ff8a2b) 0 100% / 0 2px no-repeat;
    transition: background-size .25s ease, color .25s ease, transform .25s ease;
}

.sf-col ul:not(.sf-contacts) a:hover {
    background-size: 100% 2px;
    color: #fff;
    transform: translateX(4px);
}

/* Контакты */
.sf-contacts li { padding: 0 0 12px; line-height: 1.45; }
.sf-contacts li:last-child { padding-bottom: 0; }

.sf-contacts span {
    display: block;
    margin-bottom: 2px;
    color: rgba(255, 255, 255, .45);
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.sf-contacts a { color: #fff; font-weight: 600; }
.sf-contacts a:hover { color: #ff8a2b; }

/* Кнопка (класс .btn нужен для снега) */
.sf-cta .btn.sf-btn { margin-top: 18px; }

.btn.sf-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 26px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 8px 20px rgba(255, 106, 0, .35);
    color: #fff;
    font: 700 15px/1.2 inherit;
    font-family: inherit;
    text-decoration: none;
    white-space: nowrap;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.btn.sf-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(255, 106, 0, .5);
    filter: brightness(1.08);
    color: #fff;
}

/* Нижняя полоса */
.sf-bottom { border-top: 1px solid rgba(255, 255, 255, .1); }

.sf-bottom__in {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 24px;
    max-width: 1280px;
    margin: 0 auto;
    padding: 20px clamp(14px, 3vw, 32px);
    font-size: 13px;
    color: rgba(255, 255, 255, .5);
}

.sf-bottom a:hover { color: #ff8a2b; }

/* Адаптив */
@media (max-width: 1000px) {
    .sf-in { grid-template-columns: 1fr 1fr; gap: 36px 28px; }
}

@media (max-width: 560px) {
    .sf-in { grid-template-columns: 1fr; padding-top: 40px; }
    .sf-cta .btn.sf-btn { width: 100%; }
    .sf-bottom__in { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .sf *, .sf { transition: none !important; }
}

/* ===== Всплывающее окно «Заказать звонок» ===== */
html.pm-lock { overflow: hidden; }

.pm {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    padding: 16px;
    overflow-y: auto;
    background: rgba(4, 10, 24, .72);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s;
}

.pm.open { opacity: 1; visibility: visible; }
.pm [hidden] { display: none !important; }

.pm-box {
    position: relative;
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    width: min(860px, 100%);
    margin: auto;
    overflow: hidden;
    border-radius: 22px;
    background: linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
    color: #fff;
    opacity: 0;
    transform: translateY(32px) scale(.95);
    transition: transform .5s cubic-bezier(.2, .9, .3, 1.15), opacity .3s ease;
}

.pm.open .pm-box { opacity: 1; transform: none; }

/* Кнопка закрытия */
.pm-x {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 5;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 50%;
    background: rgba(8, 20, 40, .6);
    color: #fff;
    cursor: pointer;
    transition: background .25s ease, border-color .25s ease, transform .35s ease;
}

.pm-x:hover { background: #ff6a00; border-color: #ff6a00; transform: rotate(90deg); }
.pm-x:focus-visible { outline: 3px solid #ff8a2b; outline-offset: 2px; }

/* Левая часть с фото */
.pm-side {
    position: relative;
    z-index: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 540px;
    padding: 32px 28px;
    overflow: hidden;
}

.pm-side img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pm.open .pm-side img { animation: pmZoom 14s ease-out forwards; }

.pm-side::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 20, 40, .3) 0%, rgba(8, 20, 40, .55) 45%, rgba(8, 20, 40, .96) 100%);
}

.pm-side__in { position: relative; z-index: 1; }

.pm-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    padding: 7px 14px;
    border-radius: 99px;
    background: rgba(255, 255, 255, .14);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.pm-badge::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #3ddc84;
    animation: pmPulse 1.8s ease-out infinite;
}

.pm-side h4 {
    margin: 0 0 20px;
    font-size: 24px;
    line-height: 1.25;
}

.pm-side ul { margin: 0; padding: 0; list-style: none; }

.pm-side li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    color: rgba(255, 255, 255, .9);
}

.pm-side li + li { margin-top: 12px; }

.pm-side li i {
    display: grid;
    flex: none;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background: rgba(255, 106, 0, .22);
    color: #ff8a2b;
}

/* Падающий снег */
.pm-flakes {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
    pointer-events: none;
}

.pm-flakes i {
    position: absolute;
    top: -12px;
    width: var(--s, 4px);
    height: var(--s, 4px);
    border-radius: 50%;
    background: #fff;
    opacity: 0;
    animation: pmSnow var(--t, 9s) linear var(--d, 0s) infinite;
}

.pm:not(.open) .pm-flakes i { animation-play-state: paused; }

.pm-flakes i:nth-child(1) { left: 6%;  --s: 4px; --t: 9s;  --d: 0s; }
.pm-flakes i:nth-child(2) { left: 18%; --s: 6px; --t: 12s; --d: 2s; }
.pm-flakes i:nth-child(3) { left: 31%; --s: 3px; --t: 8s;  --d: 4s; }
.pm-flakes i:nth-child(4) { left: 45%; --s: 5px; --t: 11s; --d: 1s; }
.pm-flakes i:nth-child(5) { left: 58%; --s: 3px; --t: 9s;  --d: 5s; }
.pm-flakes i:nth-child(6) { left: 70%; --s: 6px; --t: 13s; --d: 3s; }
.pm-flakes i:nth-child(7) { left: 83%; --s: 4px; --t: 10s; --d: 6s; }
.pm-flakes i:nth-child(8) { left: 94%; --s: 5px; --t: 12s; --d: 1.5s; }

/* Правая часть */
.pm-main {
    position: relative;
    z-index: 2;
    padding: 44px 36px 30px;
}

.pm-view--ok { padding: 30px 0 10px; text-align: center; }

.pm h3 {
    margin: 0 0 6px;
    padding-right: 36px;
    color: #fff;
    font-size: clamp(24px, 3vw, 30px);
    line-height: 1.2;
}

.pm-view--ok h3 { padding-right: 0; }
.pm-lead { margin: 0 0 24px; color: rgba(255, 255, 255, .75); line-height: 1.5; }

/* Поля */
.pm-f { margin-bottom: 16px; }

.pm-f label {
    display: block;
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, .85);
}

.pm-in { position: relative; }

.pm-in svg {
    position: absolute;
    top: 50%;
    left: 14px;
    width: 20px;
    height: 20px;
    transform: translateY(-50%);
    color: rgba(255, 255, 255, .5);
    pointer-events: none;
    transition: color .2s ease;
}

.pm-in:focus-within svg { color: #ff8a2b; }

.pm-in input {
    width: 100%;
    padding: 14px 16px 14px 44px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 12px;
    background: rgba(255, 255, 255, .07);
    color: #fff;
    font: inherit;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.pm-in input::placeholder { color: rgba(255, 255, 255, .4); }
.pm-in input:hover { border-color: rgba(255, 255, 255, .4); }

.pm-in input:focus {
    outline: 0;
    border-color: #ff8a2b;
    background: rgba(255, 255, 255, .12);
    box-shadow: 0 0 0 4px rgba(255, 138, 43, .2);
}

.pm-f.is-invalid input { border-color: #ff6b6b; }

.pm-err { display: block; margin-top: 6px; color: #ff9a9a; font-size: 13px; }
.pm-err:empty { display: none; }

/* Чекбокс */
.pm-check {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255, 255, 255, .8);
    cursor: pointer;
}

.pm-check input { position: absolute; opacity: 0; pointer-events: none; }

.pm-check__box {
    flex: none;
    width: 22px;
    height: 22px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-radius: 6px;
    transition: background .2s ease, border-color .2s ease;
}

.pm-check:hover .pm-check__box { border-color: #ff8a2b; }

.pm-check input:checked + .pm-check__box {
    border-color: #ff6a00;
    background: #ff6a00 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3.5' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 16px no-repeat;
}

.pm-check input:focus-visible + .pm-check__box { box-shadow: 0 0 0 4px rgba(255, 138, 43, .35); }
.pm-check a { color: #ff8a2b; text-underline-offset: 3px; transition: color .2s ease; }
.pm-check a:hover { color: #fff; }

/* Кнопка (класс .btn нужен для снега) */
.btn.pm-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin: 22px 0 0;
    padding: 15px 26px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 8px 20px rgba(255, 106, 0, .35);
    color: #fff;
    font: 700 15px/1.2 inherit;
    font-family: inherit;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.btn.pm-btn svg { transition: transform .25s ease; }
.btn.pm-btn:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(255, 106, 0, .5); filter: brightness(1.08); }
.btn.pm-btn:hover svg { transform: translateX(5px); }
.btn.pm-btn:active { transform: translateY(0); }
.btn.pm-btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.btn.pm-btn[disabled] { opacity: .6; pointer-events: none; }

/* Мессенджеры */
.pm-or {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 22px 0 14px;
    color: rgba(255, 255, 255, .5);
    font-size: 13px;
}

.pm-or::before,
.pm-or::after { content: ""; flex: 1; height: 1px; background: rgba(255, 255, 255, .14); }

.pm-msg { display: flex; flex-wrap: wrap; gap: 10px; }

.pm-msg a {
    display: flex;
    flex: 1 1 110px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 12px;
    background: rgba(255, 255, 255, .05);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.pm-msg a:hover { transform: translateY(-3px); border-color: #ff8a2b; background: rgba(255, 106, 0, .16); }
.pm-msg img { display: block; width: 22px; height: 22px; object-fit: contain; }

/* Экран «Спасибо» */
.pm-check-svg { display: block; width: 92px; height: 92px; margin: 0 auto 20px; }

.pm-check-svg__c {
    fill: rgba(255, 106, 0, .14);
    stroke: #ff8a2b;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 164;
    stroke-dashoffset: 164;
    transform-origin: center;
    transform: rotate(-90deg);
    animation: pmDraw .7s ease forwards;
}

.pm-check-svg__p {
    fill: none;
    stroke: #fff;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 40;
    stroke-dashoffset: 40;
    animation: pmDraw .45s ease .55s forwards;
}

/* Появление содержимого по очереди */
.pm.open .pm-view--form > * { animation: pmUp .55s ease both; }
.pm.open .pm-view--form > :nth-child(1) { animation-delay: .15s; }
.pm.open .pm-view--form > :nth-child(2) { animation-delay: .22s; }
.pm.open .pm-view--form > :nth-child(3) { animation-delay: .3s; }
.pm.open .pm-view--form > :nth-child(4) { animation-delay: .38s; }
.pm.open .pm-view--form > :nth-child(5) { animation-delay: .46s; }

@keyframes pmUp   { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes pmZoom { from { transform: scale(1); } to { transform: scale(1.12); } }
@keyframes pmDraw { to { stroke-dashoffset: 0; } }
@keyframes pmPulse {
    0%   { box-shadow: 0 0 0 0 rgba(61, 220, 132, .6); }
    100% { box-shadow: 0 0 0 10px rgba(61, 220, 132, 0); }
}
@keyframes pmSnow {
    0%   { opacity: 0; transform: translate(0, 0); }
    10%  { opacity: .85; }
    90%  { opacity: .85; }
    100% { opacity: 0; transform: translate(26px, 620px); }
}

/* Адаптив */
@media (max-width: 760px) {
    .pm { padding: 10px; }
    .pm-box { grid-template-columns: 1fr; }
    .pm-side { min-height: 160px; padding: 20px 22px; }
    .pm-side h4 { margin: 0; font-size: 18px; }
    .pm-side ul { display: none; }
    .pm-main { padding: 26px 20px 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .pm, .pm-box, .pm-x, .btn.pm-btn, .pm-msg a { transition: none; }
    .pm-flakes { display: none; }
    .pm.open .pm-side img,
    .pm.open .pm-view--form > *,
    .pm-badge::before { animation: none; }
    .pm-check-svg__c,
    .pm-check-svg__p { animation: none; stroke-dashoffset: 0; }
}

/* Появление блоков: без JS всё видно */
.js .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s ease, transform .6s ease;
}

.js .reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* ===== Блок «Цены на услуги» ===== */
.pt-wrap { margin-top: 20px; }

.pt-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 12px;
    text-align: left;
}

.pt-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* Шапка таблицы */
.pt-table thead th {
    padding: 16px 22px;
    background: linear-gradient(135deg, #081428, #10264a);
    color: rgba(255, 255, 255, .85);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pt-table thead th:first-child { border-radius: 14px 0 0 14px; }
.pt-table thead th:last-child  { border-radius: 0 14px 14px 0; }

/* Строки. Overflow не обрезаем, чтобы был виден снег на кнопках */
.pt-table tbody td {
    padding: 20px 22px;
    background: #fff;
    border-top: 1px solid #e8edf5;
    border-bottom: 1px solid #e8edf5;
    color: #2a3550;
    font-size: 15px;
    line-height: 1.5;
    vertical-align: middle;
    transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.pt-table tbody td:first-child {
    border-left: 1px solid #e8edf5;
    border-radius: 14px 0 0 14px;
}

.pt-table tbody td:last-child {
    border-right: 1px solid #e8edf5;
    border-radius: 0 14px 14px 0;
}

.pt-table tbody tr:hover td {
    background: #fff6ee;
    border-color: #ffd2ad;
}

.pt-table tbody tr:hover td:first-child { box-shadow: inset 4px 0 0 #ff6a00, 0 8px 24px rgba(8, 20, 40, .08); }
.pt-table tbody tr:hover td:not(:first-child) { box-shadow: 0 8px 24px rgba(8, 20, 40, .08); }

.pt-table tbody tr.is-hot td { border-color: #ffd2ad; }

/* Колонки */
.pt-table th:nth-child(1) { width: 25%; }
.pt-table th:nth-child(2) { width: 33%; }
.pt-table th:nth-child(3) { width: 13%; }
.pt-table th:nth-child(4) { width: 15%; }
.pt-table th:nth-child(5) { width: 14%; }

/* Название с иконкой */
.pt-name { display: flex; align-items: center; gap: 14px; }
.pt-name b { display: block; color: #081428; font-size: 17px; line-height: 1.25; }

.pt-ico {
    display: grid;
    flex: none;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #fff0e3;
    color: #ff6a00;
    transition: background .3s ease, color .3s ease, transform .3s ease;
}

.pt-table tbody tr:hover .pt-ico {
    background: #ff6a00;
    color: #fff;
    transform: rotate(-6deg) scale(1.06);
}

.pt-badge {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 9px;
    border-radius: 20px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    color: #fff;
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: .03em;
}

/* Цена */
.pt-price { display: inline-flex; align-items: baseline; gap: 5px; white-space: nowrap; }
.pt-price small { color: #7a869e; font-size: 14px; }
.pt-price b { color: #081428; font-size: 28px; font-weight: 800; line-height: 1; transition: color .25s ease; }
.pt-price span { color: #ff6a00; font-size: 20px; font-weight: 700; }
.pt-table tbody tr:hover .pt-price b { color: #e65c00; }

/* Кнопка. Класс .btn нужен для снега */
.pt-act { text-align: right; }

.btn.pt-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 12px 24px;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 6px 16px rgba(255, 106, 0, .35);
    color: #fff;
    font: 700 14px/1.2 inherit;
    font-family: inherit;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.btn.pt-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 24px rgba(255, 106, 0, .5);
    filter: brightness(1.08);
    color: #fff;
}

.btn.pt-btn:active { transform: translateY(0); }
.btn.pt-btn:focus-visible { outline: 3px solid #081428; outline-offset: 3px; }

/* Пояснение под таблицей */
.pt-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 24px;
    margin: 8px 0 0;
    padding: 18px 22px;
    border-radius: 14px;
    background: linear-gradient(135deg, #081428, #10264a);
    color: rgba(255, 255, 255, .8);
    font-size: 14px;
    line-height: 1.5;
}

.pt-link {
    color: #ff8a2b;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: color .2s ease;
}

.pt-link span { display: inline-block; transition: transform .25s ease; }
.pt-link:hover { color: #fff; }
.pt-link:hover span { transform: translateX(5px); }

/* Планшет */
@media (max-width: 1020px) {
    .pt-table thead th,
    .pt-table tbody td { padding-left: 14px; padding-right: 14px; }
    .pt-name b { font-size: 16px; }
    .pt-ico { width: 42px; height: 42px; }
    .btn.pt-btn { padding: 11px 18px; }
}

/* Телефон: строки становятся карточками */
@media (max-width: 860px) {
    .pt-table,
    .pt-table tbody { display: block; }

    .pt-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

    .pt-table tbody tr {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px 16px;
        margin-bottom: 16px;
        padding: 20px 18px;
        border: 1px solid #e8edf5;
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
        transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
    }

    .pt-table tbody tr:hover {
        transform: translateY(-3px);
        border-color: #ffd2ad;
        box-shadow: 0 12px 28px rgba(8, 20, 40, .12);
    }

    .pt-table tbody tr.is-hot { border-color: #ffd2ad; }

    .pt-table tbody td,
    .pt-table tbody td:first-child,
    .pt-table tbody td:last-child {
        display: block;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: none;
        box-shadow: none;
    }

    .pt-table tbody tr:hover td,
    .pt-table tbody tr:hover td:first-child,
    .pt-table tbody tr:hover td:not(:first-child) {
        background: none;
        border: 0;
        box-shadow: none;
    }

    .pt-table td[data-label="Услуга"],
    .pt-table td[data-label="Что входит"],
    .pt-act { grid-column: 1 / -1; }

    .pt-table td[data-label="Выезд"]::before,
    .pt-table td[data-label="Стоимость"]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 4px;
        color: #7a869e;
        font-size: 12px;
        letter-spacing: .06em;
        text-transform: uppercase;
    }

    .pt-table td[data-label="Выезд"] { color: #081428; font-weight: 700; }

    .pt-act { padding-top: 8px; text-align: stretch; }
    .btn.pt-btn { display: flex; width: 100%; padding: 14px 20px; font-size: 15px; }

    .pt-foot { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    .pt-table td, .pt-table tr, .pt-ico, .btn.pt-btn, .pt-link span { transition: none !important; }
}

/* ===== Блок «Наши услуги»: 4 карточки на всю ширину ===== */
.grid4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
}

.grid4 .card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    border: 1px solid #e8edf5;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
    color: inherit;
    text-decoration: none;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.grid4 .card:hover {
    transform: translateY(-6px);
    border-color: #ffd2ad;
    box-shadow: 0 16px 36px rgba(8, 20, 40, .14);
}

/* Фото одинакового размера у всех карточек */
.grid4 .card-img {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #eef2f8;
}

.grid4 .card-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.grid4 .card:hover .card-img img { transform: scale(1.07); }

/* Текст занимает всё оставшееся место, поэтому карточки равны по высоте */
.grid4 .card-b {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    padding: 20px 64px 22px 20px;
}

.grid4 .card-b h3 {
    margin: 0;
    color: #081428;
    font-size: 19px;
    line-height: 1.25;
}

.grid4 .card-b p {
    margin: 0;
    color: #5b6781;
    font-size: 14px;
    line-height: 1.5;
}

/* Круглая стрелка в правом нижнем углу */
.grid4 .go {
    position: absolute;
    right: 18px;
    bottom: 18px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #fff0e3;
    color: #ff6a00;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}

.grid4 .card:hover .go {
    background: #ff6a00;
    color: #fff;
    transform: translateX(4px);
}

.grid4 .card:focus-visible { outline: 3px solid #ff6a00; outline-offset: 3px; }

/* Планшет: 2 в ряд */
@media (max-width: 1100px) {
    .grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}

/* Телефон: 1 в ряд */
@media (max-width: 560px) {
    .grid4 { grid-template-columns: 1fr; gap: 16px; }
    .grid4 .card-img { aspect-ratio: 16 / 10; }
    .grid4 .card-b h3 { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    .grid4 .card,
    .grid4 .card-img img,
    .grid4 .go { transition: none; }
}

/* ===== Посадочная страница услуги ===== */
/* ===== Посадочная страница услуги ===== */

/* Секции и фон */
.lp-sec { padding: clamp(64px, 9vw, 120px) 0; }
.lp-white { background: #fff; }
.lp-alt {
    background:
        radial-gradient(circle, rgba(255, 255, 255, .95) 0 2px, transparent 2.6px) 0 0 / 120px 120px,
        radial-gradient(circle, rgba(255, 255, 255, .75) 0 1.5px, transparent 2px) 60px 60px / 120px 120px,
        #eef3fb;
}

/* Появление блоков. Скрываем только если JS включён */
.lp-js .lp-fade {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .7s ease, transform .7s ease;
}
.lp-js .lp-fade.is-in { opacity: 1; transform: none; }

/* Хлебные крошки */
.lp-crumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
    font-size: 14px;
    color: rgba(255, 255, 255, .7);
}
.lp-crumbs li + li::before { content: "/"; margin-right: 10px; opacity: .5; }
.lp-crumbs a { color: #ff8a2b; text-decoration: none; transition: color .2s ease; }
.lp-crumbs a:hover { color: #fff; }

/* Метка и заголовки секций */
.lp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: #ff6a00;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.lp-eyebrow::before {
    content: "";
    width: 28px;
    height: 3px;
    border-radius: 3px;
    background: linear-gradient(90deg, #ff8a2b, #ff6a00);
}
.lp-eyebrow--light { color: #ffb072; }

.lp-h2 {
    margin: 0 0 18px;
    color: #081428;
    font-size: clamp(26px, 3.6vw, 40px);
    line-height: 1.15;
}
.lp-h2::after {
    content: "";
    display: block;
    width: 64px;
    height: 4px;
    margin-top: 16px;
    border-radius: 4px;
    background: linear-gradient(90deg, #ff8a2b, #ff6a00);
}
.lp-h2--sm { font-size: clamp(22px, 2.6vw, 30px); }
.lp-h2--sm::after { width: 48px; height: 3px; margin-top: 12px; }

/* Шапка секции: слева заголовок, справа вводный текст */
.lp-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px clamp(28px, 5vw, 72px);
    align-items: end;
    margin: 0 0 clamp(32px, 4.5vw, 56px);
}
.lp-head .lp-h2 { margin-bottom: 0; }
.lp-head p {
    margin: 0;
    color: #5b6781;
    font-size: clamp(15px, 1.5vw, 17px);
    line-height: 1.75;
}
.lp-head--solo { display: block; }

/* Общая карточка */
.lp-box {
    position: relative;
    padding: 30px 28px;
    border: 1px solid #e8edf5;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.lp-box::before {
    content: "";
    position: absolute;
    left: 24px;
    right: 24px;
    top: -1px;
    height: 3px;
    border-radius: 0 0 4px 4px;
    background: linear-gradient(90deg, #ff8a2b, #ff6a00);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s ease;
}
.lp-box:hover {
    transform: translateY(-6px);
    border-color: #ffd2ad;
    box-shadow: 0 18px 40px rgba(8, 20, 40, .14);
}
.lp-box:hover::before { transform: scaleX(1); }
.lp-box h3 { margin: 0 0 10px; color: #081428; font-size: 19px; line-height: 1.3; }
.lp-box p  { margin: 0; color: #5b6781; font-size: 15px; line-height: 1.7; }

/* Иконка */
.lp-ico {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin-bottom: 18px;
    border-radius: 16px;
    background: #fff0e3;
    color: #ff6a00;
    transition: background .3s ease, color .3s ease, transform .3s ease;
}
.lp-ico svg,
.lp-adv__item i svg,
.lp-note__ico svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.lp-box:hover .lp-ico { background: #ff6a00; color: #fff; transform: rotate(-6deg) scale(1.06); }

/* Вводный блок и двухколоночные блоки */
.lp-split {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
}
.lp-split--wide { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
.lp-split--rev  { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
.lp-split--rev .lp-card { order: -1; }

.lp-text p { margin: 0 0 16px; color: #2a3550; font-size: 17px; line-height: 1.8; }
.lp-text p:last-child { margin-bottom: 0; }

.lp-card {
    padding: 32px 30px;
    border-radius: 20px;
    background: linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 14px 36px rgba(8, 20, 40, .25);
    color: rgba(255, 255, 255, .85);
}
.lp-card h3 { margin: 0 0 20px; color: #fff; font-size: 21px; }

.lp-check { margin: 0; padding: 0; list-style: none; }
.lp-check li { position: relative; padding: 0 0 14px 36px; line-height: 1.5; }
.lp-check li:last-child { padding-bottom: 0; }
.lp-check li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ff6a00 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3.5' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 14px no-repeat;
}

/* Полоса с цифрами */
.lp-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: clamp(40px, 5vw, 64px) 0 0;
    padding: 0;
    list-style: none;
}
.lp-facts li {
    padding: 24px 26px;
    border: 1px solid #ffe0c7;
    border-radius: 18px;
    background: linear-gradient(135deg, #fff5ec, #fff);
    transition: transform .3s ease, box-shadow .3s ease;
}
.lp-facts li:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(255, 106, 0, .18); }
.lp-facts b { display: block; margin-bottom: 4px; color: #ff6a00; font-size: clamp(26px, 3vw, 38px); font-weight: 800; line-height: 1.1; }
.lp-facts span { color: #5b6781; font-size: 14px; }

/* Аудитория */
.lp-aud {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Шаги */
.lp-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: st;
}
.lp-steps li {
    padding: 30px 26px 28px;
    border: 1px solid #e8edf5;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
    counter-increment: st;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.lp-steps li:hover { transform: translateY(-6px); border-color: #ffd2ad; box-shadow: 0 18px 40px rgba(8, 20, 40, .14); }
.lp-steps li::before {
    content: counter(st);
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
    border-radius: 14px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 6px 16px rgba(255, 106, 0, .35);
    color: #fff;
    font-size: 21px;
    font-weight: 800;
}
.lp-steps h3 { margin: 0 0 10px; color: #081428; font-size: 19px; }
.lp-steps p  { margin: 0; color: #5b6781; font-size: 15px; line-height: 1.65; }

/* Этапы вывоза */
.lp-stages {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.lp-stages li { padding-top: 36px; }
.lp-stage__n {
    position: absolute;
    top: 14px;
    right: 22px;
    color: rgba(255, 106, 0, .14);
    font-size: 76px;
    font-weight: 900;
    line-height: 1;
    pointer-events: none;
}
.lp-tag {
    display: inline-block;
    margin-top: 18px;
    padding: 7px 14px;
    border-radius: 99px;
    background: #eef3fb;
    color: #10264a;
    font-size: 13px;
    font-weight: 600;
}

/* Автопарк */
.lp-slider { position: relative; }
.lp-fleet {
    display: flex;
    gap: 20px;
    margin: 0;
    padding: 6px 2px 16px;
    list-style: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.lp-fleet::-webkit-scrollbar { display: none; }
.lp-fleet li {
    flex: 0 0 calc((100% - 80px) / 5);
    scroll-snap-align: start;
    min-width: 0;
    padding: 16px 16px 20px;
    border: 1px solid #e8edf5;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.lp-fleet li:hover { transform: translateY(-6px); border-color: #ffd2ad; box-shadow: 0 18px 40px rgba(8, 20, 40, .14); }
.lp-fleet img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; margin-bottom: 12px; }
.lp-fleet h3 { margin: 0 0 4px; color: #081428; font-size: 16px; line-height: 1.25; }
.lp-fleet p  { margin: 0; color: #5b6781; font-size: 14px; }

.lp-arrow {
    position: absolute;
    top: 42%;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 6px 18px rgba(8, 20, 40, .25);
    color: #081428;
    cursor: pointer;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}
.lp-arrow--prev { left: -10px; }
.lp-arrow--next { right: -10px; }
.lp-arrow:hover { background: #ff6a00; color: #fff; transform: scale(1.1); }

/* Факторы цены */
.lp-factors {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.lp-factors li { padding: 24px 24px 24px 28px; border-left: 4px solid #ff6a00; }
.lp-factors li::before { display: none; }
.lp-factors h3 { font-size: 18px; }

.lp-note {
    position: sticky;
    top: 110px;
    padding: 34px 30px;
    overflow: hidden;
    border-radius: 20px;
    background: linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 14px 36px rgba(8, 20, 40, .25);
    color: rgba(255, 255, 255, .85);
}
.lp-note::after {
    content: "";
    position: absolute;
    right: -70px;
    top: -70px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 106, 0, .38), transparent 70%);
    pointer-events: none;
}
.lp-note > * { position: relative; z-index: 1; }
.lp-note__ico {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    margin-bottom: 18px;
    border-radius: 16px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 8px 20px rgba(255, 106, 0, .4);
    color: #fff;
}
.lp-note h3 { margin: 0 0 12px; color: #fff; font-size: 21px; }
.lp-note p  { margin: 0 0 14px; line-height: 1.65; }
.lp-note small { color: rgba(255, 255, 255, .65); font-size: 14px; }
.lp-formula {
    padding: 14px 16px;
    border: 1px dashed rgba(255, 255, 255, .35);
    border-radius: 12px;
    background: rgba(255, 255, 255, .06);
    color: #fff;
    font-weight: 700;
}
.lp-note .btn { margin-top: 10px; }

/* Преимущества */
.lp-adv {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.lp-adv__item {
    display: flex;
    gap: 18px;
    padding: 28px 26px;
    border: 1px solid #e8edf5;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.lp-adv__item:hover { transform: translateY(-6px); border-color: #ffd2ad; box-shadow: 0 18px 40px rgba(8, 20, 40, .14); }
.lp-adv__item i {
    display: grid;
    flex: none;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: #fff0e3;
    color: #ff6a00;
    transition: background .3s ease, color .3s ease, transform .3s ease;
}
.lp-adv__item:hover i { background: #ff6a00; color: #fff; transform: rotate(-6deg) scale(1.06); }
.lp-adv__item h3 { margin: 2px 0 8px; color: #081428; font-size: 18px; line-height: 1.25; }
.lp-adv__item p  { margin: 0; color: #5b6781; font-size: 15px; line-height: 1.6; }

/* Отзывы */
.lp-revs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.lp-rev {
    display: flex;
    gap: 18px;
    padding: 26px;
    border: 1px solid #e8edf5;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.lp-rev:hover { transform: translateY(-6px); border-color: #ffd2ad; box-shadow: 0 18px 40px rgba(8, 20, 40, .14); }
.lp-rev img { flex: none; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.lp-rev h3 { margin: 0 0 4px; color: #081428; font-size: 17px; }
.lp-stars { margin-bottom: 8px; color: #ffb400; font-size: 16px; letter-spacing: 2px; }
.lp-rev p { margin: 0; color: #5b6781; font-size: 15px; line-height: 1.65; }

/* Когда заказать / область */
.lp-duo {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    align-items: stretch;
}
.lp-panel { padding: clamp(28px, 4vw, 48px); }
.lp-panel p { margin: 0 0 14px; color: #2a3550; font-size: 16px; line-height: 1.75; }
.lp-panel p:last-child { margin-bottom: 0; }
.lp-panel a {
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
.lp-panel a:hover { color: #081428; }

.lp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 18px; padding: 0; list-style: none; }
.lp-chips li {
    padding: 8px 15px;
    border-radius: 99px;
    background: #fff0e3;
    color: #b34700;
    font-size: 14px;
    font-weight: 600;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}
.lp-chips li:hover { background: #ff6a00; color: #fff; transform: translateY(-2px); }

/* Блок призыва */
.lp-cta {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(420px, 50vw, 560px);
    padding: clamp(90px, 11vw, 140px) 0 clamp(80px, 10vw, 130px);
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 85% 20%, rgba(255, 106, 0, .35), transparent 50%),
        radial-gradient(circle at 8% 95%, rgba(60, 120, 255, .22), transparent 50%),
        linear-gradient(135deg, #081428, #10264a);
    color: #fff;
}
/* Сугроб сверху */
.lp-cta::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -1px;
    height: 36px;
    z-index: 1;
    background:
        radial-gradient(circle at 24px 0, #fff 26px, transparent 27px) 0 0 / 48px 36px repeat-x,
        radial-gradient(circle at 60px 0, #fff 17px, transparent 18px) 0 0 / 90px 26px repeat-x;
}
/* Падающий снег */
.lp-cta::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(circle, rgba(255, 255, 255, .9) 0 2px, transparent 2.6px) 0 0 / 90px 90px,
        radial-gradient(circle, rgba(255, 255, 255, .6) 0 1.4px, transparent 2px) 30px 40px / 60px 60px;
    opacity: .5;
    animation: lpSnow 18s linear infinite;
    pointer-events: none;
}
@keyframes lpSnow {
    from { background-position: 0 0, 30px 40px; }
    to   { background-position: 0 90px, 30px 100px; }
}

.lp-cta__flake {
    position: absolute;
    right: -40px;
    top: 50%;
    z-index: -1;
    width: clamp(240px, 36vw, 480px);
    height: auto;
    margin-top: calc(clamp(240px, 36vw, 480px) / -2);
    fill: none;
    stroke: currentColor;
    stroke-width: 1;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: rgba(255, 255, 255, .08);
    animation: lpTurn 70s linear infinite;
    pointer-events: none;
}
@keyframes lpTurn { to { transform: rotate(360deg); } }

.lp-cta__in { position: relative; z-index: 2; }
.lp-cta h2 {
    max-width: 760px;
    margin: 0 0 16px;
    font-size: clamp(30px, 5vw, 56px);
    line-height: 1.1;
}
.lp-cta__s { max-width: 640px; margin: 0 0 26px; color: rgba(255, 255, 255, .82); font-size: clamp(16px, 1.8vw, 20px); line-height: 1.6; }

.lp-cta__perks { display: flex; flex-wrap: wrap; gap: 10px 12px; margin: 0 0 34px; padding: 0; list-style: none; }
.lp-cta__perks li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 99px;
    background: rgba(255, 255, 255, .08);
    backdrop-filter: blur(6px);
    font-size: 14px;
    font-weight: 600;
}
.lp-cta__perks li::before { content: "✓"; color: #ff8a2b; font-weight: 800; }

.lp-cta__btns { display: flex; flex-wrap: wrap; gap: 14px; }

/* SEO-блок: вопросы и ответы */
.lp-faqwrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: start;
}
.lp-faqside { position: sticky; top: 110px; }
.lp-faqside p { margin: 0 0 24px; color: #5b6781; font-size: 16px; line-height: 1.7; }

.lp-q {
    margin-bottom: 14px;
    border: 1px solid #e8edf5;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(8, 20, 40, .05);
    transition: border-color .25s ease, box-shadow .25s ease;
}
.lp-q:hover, .lp-q[open] { border-color: #ffd2ad; box-shadow: 0 10px 26px rgba(8, 20, 40, .1); }
.lp-q summary {
    position: relative;
    padding: 20px 60px 20px 24px;
    list-style: none;
    cursor: pointer;
}
.lp-q summary::-webkit-details-marker { display: none; }
.lp-q summary h3 { margin: 0; color: #081428; font-size: 17px; line-height: 1.35; }
.lp-q summary::after {
    content: "+";
    position: absolute;
    right: 20px;
    top: 50%;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    margin-top: -15px;
    border-radius: 50%;
    background: #fff0e3;
    color: #ff6a00;
    font-size: 20px;
    line-height: 1;
    transition: transform .25s ease, background .25s ease, color .25s ease;
}
.lp-q:hover summary::after { transform: rotate(90deg); }
.lp-q[open] summary::after { content: "−"; background: #ff6a00; color: #fff; }
.lp-q p { margin: 0; padding: 0 24px 22px; color: #5b6781; line-height: 1.75; }

/* Адаптив */
@media (max-width: 1100px) {
    .lp-aud, .lp-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lp-adv, .lp-revs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lp-fleet li { flex-basis: calc((100% - 40px) / 3); }
    .lp-stages { gap: 22px; }
}

@media (min-width: 1001px) {
    .lp-stages li:not(:last-child)::after {
        content: "→";
        position: absolute;
        top: 50%;
        right: -31px;
        z-index: 2;
        display: grid;
        place-items: center;
        width: 30px;
        height: 30px;
        margin-top: -15px;
        border-radius: 50%;
        background: #ff6a00;
        box-shadow: 0 4px 12px rgba(255, 106, 0, .45);
        color: #fff;
        font-size: 16px;
    }
}

@media (max-width: 1000px) {
    .lp-split, .lp-split--wide, .lp-split--rev { grid-template-columns: 1fr; }
    .lp-split--rev .lp-card { order: 0; }
    .lp-note { position: static; }
    .lp-stages { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .lp-head { grid-template-columns: 1fr; align-items: start; }
    .lp-duo { grid-template-columns: 1fr; }
    .lp-faqwrap { grid-template-columns: 1fr; gap: 28px; }
    .lp-faqside { position: static; }
}

@media (max-width: 700px) {
    .lp-fleet li { flex-basis: calc((100% - 20px) / 2); }
    .lp-adv, .lp-revs { grid-template-columns: 1fr; }
    .lp-factors { grid-template-columns: 1fr; }
    .lp-cta__btns .btn { width: 100%; justify-content: center; }
}

@media (max-width: 560px) {
    .lp-aud, .lp-steps { grid-template-columns: 1fr; }
    .lp-facts { gap: 12px; }
    .lp-facts li { padding: 18px 16px; }
    .lp-fleet li { flex-basis: 78%; }
    .lp-arrow { display: none; }
    .lp-text p { font-size: 16px; }
    .lp-card, .lp-note { padding: 26px 22px; }
    .lp-q summary { padding: 18px 54px 18px 18px; }
    .lp-q p { padding: 0 18px 20px; }
    .lp-cta__flake { right: -90px; }
}

@media (prefers-reduced-motion: reduce) {
    .lp-js .lp-fade { opacity: 1; transform: none; transition: none; }
    .lp-cta::after, .lp-cta__flake { animation: none; }
    .lp-box, .lp-box::before, .lp-ico, .lp-facts li, .lp-steps li, .lp-fleet li,
    .lp-adv__item, .lp-adv__item i, .lp-rev, .lp-q, .lp-q summary::after,
    .lp-chips li, .lp-arrow { transition: none; }
}

/* ===== Полоса прокрутки ===== */

/* Chrome, Edge, Safari, Opera */
::-webkit-scrollbar {
    width: 14px;
    height: 14px;
}

::-webkit-scrollbar-track {
    background: #081428;
    border-left: 1px solid rgba(255, 255, 255, .06);
}

::-webkit-scrollbar-thumb {
    min-height: 48px;
    border: 3px solid #081428;
    border-radius: 99px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    background-clip: padding-box;
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #ffa24f, #ff7a14);
    background-clip: padding-box;
}

::-webkit-scrollbar-thumb:active {
    background: #e65c00;
    background-clip: padding-box;
}

::-webkit-scrollbar-corner {
    background: #081428;
}

/* Firefox. Браузеры на Chrome эти свойства понимают тоже и тогда игнорируют правила выше, поэтому включаем их только там, где ::-webkit-scrollbar не поддерживается */
@supports not selector(::-webkit-scrollbar) {
    html {
        scrollbar-width: thin;
        scrollbar-color: #ff6a00 #081428;
    }
}

#cheni { scroll-margin-top: 110px; }


/* ===== Страница «Уборка снега»: дополнения ===== */
.lp-aud--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.lp-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 16px;
    color: #e65c00;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: color .2s ease, gap .25s ease;
}
.lp-more:hover { color: #081428; gap: 12px; }

.lp-head p a {
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
.lp-head p a:hover { color: #081428; }

.lp-text p a {
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
.lp-text p a:hover { color: #081428; }

#parking, #roofs, #roads, #industrial, #process, #types { scroll-margin-top: 110px; }

@media (max-width: 1100px) {
    .lp-aud--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .lp-aud--3 { grid-template-columns: 1fr; }
}

/* Ссылки внутри текста и карточек */
.lp-text p a,
.lp-head p a,
.lp-box p a {
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
.lp-text p a:hover,
.lp-head p a:hover,
.lp-box p a:hover { color: #081428; }

#types, #process, #compare, #audience, #prices { scroll-margin-top: 110px; }


/* ===== Дополнения для страниц услуг ===== */
.lp-aud--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.lp-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 16px;
    color: #e65c00;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: color .2s ease, gap .25s ease;
}
.lp-more:hover { color: #081428; gap: 12px; }

.lp-text p a,
.lp-head p a,
.lp-box p a {
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
.lp-text p a:hover,
.lp-head p a:hover,
.lp-box p a:hover { color: #081428; }

#where, #melting, #polygon, #process, #docs, #prices { scroll-margin-top: 110px; }

@media (max-width: 1100px) {
    .lp-aud--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .lp-aud--3 { grid-template-columns: 1fr; }
}

/* ===== Страница «Снегоплавильные пункты»: дополнения ===== */


.lp-text p a,
.lp-head p a,
.lp-box p a,
.lp-cmp-note a {
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
.lp-text p a:hover,
.lp-head p a:hover,
.lp-box p a:hover,
.lp-cmp-note a:hover { color: #081428; }

/* Таблица сравнения */
.lp-cmp-wrap {
    overflow-x: auto;
    border: 1px solid #e8edf5;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
}
.lp-cmp {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    font-size: 16px;
    line-height: 1.6;
}
.lp-cmp th,
.lp-cmp td {
    padding: 18px 24px;
    text-align: left;
    vertical-align: top;
}
.lp-cmp thead th {
    background: linear-gradient(160deg, #10264a, #081428);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
}
.lp-cmp thead th:nth-child(2) { background: linear-gradient(180deg, #ff8a2b, #ff6a00); }
.lp-cmp tbody th {
    width: 26%;
    color: #081428;
    font-weight: 700;
}
.lp-cmp tbody td { color: #2a3550; }
.lp-cmp tbody tr { transition: background .2s ease; }
.lp-cmp tbody tr:hover { background: #fff5ec; }
.lp-cmp tbody tr + tr th,
.lp-cmp tbody tr + tr td { border-top: 1px solid #e8edf5; }

.lp-cmp-note { margin: 22px 0 0; color: #5b6781; font-size: 16px; line-height: 1.7; }

#how-works, #why, #compare, #choose, #geo, #docs, #prices { scroll-margin-top: 110px; }


/* ===== Cookie: плашка и окно настроек ===== */
.ck-lock { overflow: hidden; }
.ck-ov[hidden] { display: none !important; }

.ck__ico {
    display: grid;
    flex: none;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 8px 20px rgba(255, 106, 0, .4);
    color: #fff;
}
.ck__ico svg { width: 26px; height: 26px; }
.ck__ico--lg { width: 56px; height: 56px; margin-bottom: 16px; border-radius: 16px; }
.ck__ico--lg svg { width: 30px; height: 30px; }

/* Плашка */
.ck {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 8000;
    width: min(460px, calc(100% - 40px));
    padding: 22px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 22px;
    background: linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
    color: rgba(255, 255, 255, .85);
    opacity: 0;
    visibility: hidden;
    transform: translateY(40px) scale(.96);
    transition: opacity .5s ease, transform .6s cubic-bezier(.2, .9, .3, 1.15), visibility .5s;
}
.ck.is-in { opacity: 1; visibility: visible; transform: none; }
.ck.is-out { opacity: 0; visibility: hidden; transform: translateY(30px) scale(.96); }

.ck::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: linear-gradient(90deg, #ff8a2b, #ff6a00, #7fc4ff);
}
.ck::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle, rgba(255, 255, 255, .8) 0 1.6px, transparent 2.2px) 0 0 / 70px 70px,
        radial-gradient(circle, rgba(255, 255, 255, .5) 0 1.2px, transparent 1.8px) 25px 35px / 50px 50px;
    opacity: .35;
    animation: ckSnow 14s linear infinite;
    pointer-events: none;
}
@keyframes ckSnow {
    from { background-position: 0 0, 25px 35px; }
    to   { background-position: 0 70px, 25px 85px; }
}
.ck > * { position: relative; z-index: 1; }

.ck__top { display: flex; gap: 16px; align-items: flex-start; }
.ck.is-in .ck__ico { animation: ckWobble 1.2s ease .6s 1; }
@keyframes ckWobble {
    0%, 100% { transform: rotate(0); }
    25% { transform: rotate(-14deg) scale(1.08); }
    50% { transform: rotate(10deg); }
    75% { transform: rotate(-6deg); }
}
.ck__t { margin: 2px 0 6px; color: #fff; font-size: 18px; font-weight: 700; line-height: 1.25; }
.ck__s { margin: 0; font-size: 14px; line-height: 1.6; }
.ck a {
    color: #ff8a2b;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
.ck a:hover { color: #fff; }

.ck__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; }

/* Кнопки */
.ck-btn {
    position: relative;
    padding: 12px 20px;
    border: 2px solid transparent;
    border-radius: 12px;
    font: 700 14px/1.2 inherit;
    font-family: inherit;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease, color .25s ease, filter .25s ease;
}
.ck-btn:focus-visible { outline: 2px solid #7fc4ff; outline-offset: 3px; }
.ck-btn--main {
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
    box-shadow: 0 6px 16px rgba(255, 106, 0, .35);
    color: #fff;
}
.ck-btn--main:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(255, 106, 0, .5); filter: brightness(1.08); }
.ck-btn--line { border-color: rgba(255, 255, 255, .35); background: transparent; color: #fff; }
.ck-btn--line:hover { transform: translateY(-3px); border-color: #ff8a2b; background: rgba(255, 138, 43, .12); color: #ffb072; }
.ck-btn--link { padding-left: 8px; padding-right: 8px; background: none; color: rgba(255, 255, 255, .75); text-decoration: underline; text-underline-offset: 4px; }
.ck-btn--link:hover { color: #ff8a2b; }
.ck-btn:active { transform: translateY(0); }

/* Окно настроек */
.ck-ov {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: grid;
    place-items: center;
    padding: 16px;
    background: rgba(5, 11, 28, .7);
    backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity .3s ease;
}
.ck-ov.is-in { opacity: 1; }

.ck-dlg {
    position: relative;
    width: min(540px, 100%);
    max-height: calc(100vh - 32px);
    padding: 34px 32px 30px;
    overflow-y: auto;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 24px;
    background: linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
    color: rgba(255, 255, 255, .85);
    outline: none;
    opacity: 0;
    transform: translateY(30px) scale(.95);
    transition: opacity .3s ease, transform .4s cubic-bezier(.2, .9, .3, 1.15);
}
.ck-ov.is-in .ck-dlg { opacity: 1; transform: none; }

.ck-x {
    position: absolute;
    right: 16px;
    top: 16px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    cursor: pointer;
    transition: background .25s ease, transform .3s ease;
}
.ck-x:hover { background: #ff6a00; transform: rotate(90deg); }
.ck-x:focus-visible { outline: 2px solid #7fc4ff; outline-offset: 2px; }

.ck-dlg__t { margin: 0 0 8px; color: #fff; font-size: 26px; line-height: 1.2; }
.ck-dlg__s { margin: 0 0 22px; font-size: 15px; line-height: 1.65; }
.ck-dlg a { color: #ff8a2b; text-decoration: underline; text-underline-offset: 3px; transition: color .2s ease; }
.ck-dlg a:hover { color: #fff; }

.ck-row {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 12px;
    padding: 16px 18px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 16px;
    background: rgba(255, 255, 255, .05);
    cursor: pointer;
    transition: border-color .25s ease, background .25s ease, transform .25s ease;
}
.ck-row:hover { border-color: #ff8a2b; background: rgba(255, 138, 43, .08); transform: translateX(3px); }
.ck-row--fixed { cursor: default; }
.ck-row--fixed:hover { border-color: rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .05); transform: none; }
.ck-row__t { flex: 1; min-width: 0; }
.ck-row__t b { display: block; margin-bottom: 4px; color: #fff; font-size: 16px; }
.ck-row__t small { display: block; font-size: 13px; line-height: 1.5; color: rgba(255, 255, 255, .65); }

.ck-row input { position: absolute; opacity: 0; width: 0; height: 0; }
.ck-sl {
    position: relative;
    flex: none;
    width: 50px;
    height: 28px;
    border-radius: 99px;
    background: rgba(255, 255, 255, .22);
    transition: background .3s ease;
}
.ck-sl::after {
    content: "";
    position: absolute;
    left: 3px;
    top: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
    transition: transform .3s cubic-bezier(.3, 1.4, .5, 1);
}
.ck-row input:checked + .ck-sl { background: #ff6a00; }
.ck-row input:checked + .ck-sl::after { transform: translateX(22px); }
.ck-row input:disabled + .ck-sl { opacity: .55; }
.ck-row input:focus-visible + .ck-sl { outline: 2px solid #7fc4ff; outline-offset: 3px; }

.ck-dlg__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }

/* Кнопка в подвале */
.sf-bottom__links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; }
.sf-ck {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease, transform .2s ease;
}
.sf-ck:hover { color: #ff8a2b; transform: translateY(-1px); }
.sf-ck:focus-visible { outline: 2px solid #7fc4ff; outline-offset: 3px; }

/* Адаптив */
@media (max-width: 560px) {
    .ck { left: 10px; right: 10px; bottom: 10px; width: auto; padding: 18px; border-radius: 18px; }
    .ck__ico { width: 40px; height: 40px; }
    .ck__btns { flex-direction: column; align-items: stretch; }
    .ck__btns .ck-btn { width: 100%; text-align: center; }
    .ck-dlg { padding: 28px 18px 22px; border-radius: 20px; }
    .ck-dlg__t { font-size: 22px; }
    .ck-dlg__btns { flex-direction: column; }
    .ck-dlg__btns .ck-btn { width: 100%; }
    .ck-row { gap: 12px; padding: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .ck, .ck-ov, .ck-dlg, .ck-btn, .ck-sl, .ck-sl::after, .ck-row, .ck-x, .sf-ck { transition: none; }
    .ck::after, .ck.is-in .ck__ico { animation: none; }
}



/* ===== Адаптив шапки ===== */
#header .nav-extra,
#header .hdr-call,
#header .burger {
    display: none;
}

@media (max-width: 1180px) {
    #header .hdr {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: nowrap;
        gap: 10px;
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        padding-left: 14px;
        padding-right: 14px;
    }

    #header .logo { flex: none; min-width: 0; }

    #header .hdr-r {
        display: flex;
        align-items: center;
        gap: 10px;
        flex: none;
        margin-left: auto;
    }

    /* В шапке остаются только звонок и бургер */
    #header .hidden-mobile { display: none !important; }

    #header .hdr-call {
        display: grid !important;
        place-items: center;
        width: 44px;
        height: 44px;
        border-radius: 12px;
        background: linear-gradient(180deg, #ff8a2b, #ff6a00);
        box-shadow: 0 6px 16px rgba(255, 106, 0, .35);
        color: #fff;
        transition: transform .25s ease, filter .25s ease;
    }

    #header .hdr-call:hover { transform: translateY(-2px); filter: brightness(1.08); }

    #header .burger {
        display: grid !important;
        place-content: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, .25);
        border-radius: 12px;
        background: rgba(255, 255, 255, .06);
        cursor: pointer;
        transition: background .2s ease, border-color .2s ease;
    }

    #header .burger:hover { background: #ff6a00; border-color: #ff6a00; }

    #header .burger span {
        display: block;
        width: 22px;
        height: 2px;
        margin: 0;
        border-radius: 2px;
        background: #fff;
        transition: transform .25s ease, opacity .2s ease;
    }

    #header.is-open .burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    #header.is-open .burger span:nth-child(2) { opacity: 0; }
    #header.is-open .burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    /* Выпадающее меню */
    #header .nav {
        position: absolute !important;
        left: 0;
        right: 0;
        top: 100%;
        bottom: auto;
        z-index: 99;
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: auto;
        max-height: calc(100vh - 80px);
        max-height: calc(100dvh - 80px);
        margin: 0;
        padding: 6px 14px 22px;
        overflow-y: auto;
        background: #0b1d3d;
        box-shadow: 0 18px 30px rgba(0, 0, 0, .4);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-8px);
        transition: opacity .25s ease, transform .25s ease, visibility .25s;
    }

    #header.is-open .nav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
    }

    #header .nav > a {
        display: block;
        padding: 15px 4px;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
        color: #fff;
        font-size: 17px;
        font-weight: 600;
        text-decoration: none;
    }

    #header .nav > a::after { display: none; }
    #header .nav > a.active { color: #ff8a2b; }

    /* Телефон, соцсети и кнопка внутри меню */
    #header .nav-extra {
        display: flex !important;
        flex-direction: column;
        gap: 16px;
        padding-top: 18px;
    }

    #header .nx-ph {
        display: flex;
        flex-direction: column;
        gap: 2px;
        color: #fff;
        text-decoration: none;
    }

    #header .nx-ph b { font-size: 20px; }
    #header .nx-ph small { font-size: 12px; opacity: .65; }

    #header .nav-extra .soc {
        display: flex !important;
        gap: 10px;
    }

    #header .nav-extra .btn {
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        width: 100%;
        margin-top: 14px; /* место для снежной шапки кнопки */
        text-align: center;
    }
}

@media (max-width: 600px) {
    /* На телефоне от логотипа остаётся только снежинка */
    #header .logo-text { display: none; }
    #header .hdr { gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
    #header .nav,
    #header .burger,
    #header .burger span,
    #header .hdr-call { transition: none; }
}

/* ===== Шапка на посадочных: страховка от выпадающего бургера ===== */
html, body {
    max-width: 100%;
    overflow-x: clip;
}

@media (max-width: 1180px) {
    #header {
        left: 0;
        right: 0;
        width: 100%;
        max-width: 100vw;
        box-sizing: border-box;
    }

    #header .hdr {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 10px 14px;
    }

    #header .hdr-r {
        display: flex;
        align-items: center;
        gap: 10px;
        flex: none;
        width: auto;
        min-width: 0;
        margin: 0 0 0 auto;
    }

    /* Бургер всегда в потоке, сразу после кнопки звонка */
    #header .hdr-call { order: 1; flex: none; }

    #header .burger {
        order: 2;
        flex: none;
        position: static !important;
        inset: auto !important;
        margin: 0 !important;
        translate: none;
    }
}

/* ===== Страница «Цены» ===== */
.lp-aud--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pt-ico svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.lp-more { margin: 28px 0 0; color: #5b6781; font-size: 16px; line-height: 1.8; }
.lp-more a {
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}
.lp-more a:hover { color: #081428; }

.pc-group {
    position: relative;
    margin: 40px 0 16px;
    padding-left: 16px;
    color: #081428;
    font-size: clamp(19px, 2.4vw, 24px);
    line-height: 1.25;
}
.pc-group::before {
    content: "";
    position: absolute;
    left: 0;
    top: 3px;
    bottom: 3px;
    width: 5px;
    border-radius: 3px;
    background: linear-gradient(180deg, #ff8a2b, #ff6a00);
}

/* Калькулятор */
.pc-calc {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
.pc-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    padding: 32px;
    border: 1px solid #e8edf5;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
}
.pc-field--full { grid-column: 1 / -1; }
.pc-field label {
    display: block;
    margin-bottom: 8px;
    color: #081428;
    font-size: 14px;
    font-weight: 700;
}
.pc-field select,
.pc-field input[type="number"] {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #d8e0ee;
    border-radius: 12px;
    background: #f8faff;
    color: #081428;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.pc-field select:hover,
.pc-field input[type="number"]:hover { border-color: #ffb27a; }
.pc-field select:focus,
.pc-field input[type="number"]:focus {
    outline: 0;
    border-color: #ff6a00;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(255, 106, 0, .15);
}

.pc-vol { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 18px; align-items: center; }
.pc-vol input[type="range"] { width: 100%; accent-color: #ff6a00; }

.pc-help { margin-top: 14px; border-radius: 12px; background: #fff5ec; }
.pc-help summary {
    padding: 12px 16px;
    color: #c24f00;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
.pc-help__row {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 14px;
    align-items: end;
    padding: 0 16px 16px;
}
.pc-help__btn {
    padding: 13px 20px;
    border: 0;
    border-radius: 12px;
    background: #081428;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease;
}
.pc-help__btn:hover { background: #ff6a00; }

.pc-res {
    position: sticky;
    top: 110px;
    padding: 30px 28px;
    border-radius: 20px;
    background:
        radial-gradient(circle at 90% 8%, rgba(255, 106, 0, .3), transparent 50%),
        linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 14px 40px rgba(8, 20, 40, .28);
    color: #fff;
}
.pc-res__label { color: rgba(255, 255, 255, .7); font-size: 14px; }
.pc-res__sum {
    margin: 6px 0 4px;
    font-size: clamp(34px, 4.4vw, 48px);
    font-weight: 800;
    line-height: 1.1;
}
.pc-res__range { margin: 0 0 20px; color: #ff8a2b; font-size: 15px; font-weight: 600; }
.pc-res__list { margin: 0 0 18px; padding: 0; list-style: none; }
.pc-res__list li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-top: 1px solid rgba(255, 255, 255, .14);
    font-size: 15px;
}
.pc-res__list span { color: rgba(255, 255, 255, .75); }
.pc-res__note { margin: 0 0 20px; color: rgba(255, 255, 255, .65); font-size: 13.5px; line-height: 1.55; }
.pc-res .btn { width: 100%; justify-content: center; }

#prices, #calc, #info { scroll-margin-top: 110px; }

@media (max-width: 1100px) {
    .lp-aud--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
    .pc-calc { grid-template-columns: 1fr; }
    .pc-res { position: static; }
}
@media (max-width: 640px) {
    .lp-aud--3 { grid-template-columns: 1fr; }
    .pc-form { grid-template-columns: 1fr; padding: 22px 18px; }
    .pc-vol { grid-template-columns: 1fr; gap: 12px; }
    .pc-help__row { grid-template-columns: 1fr 1fr; }
    .pc-help__btn { grid-column: 1 / -1; }
}

.pr-more {
    display: block !important;
    max-width: 960px;
    margin: 28px auto 0;
    color: #4a5878;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.7;
    text-align: left;
}

.pr-more a {
    display: inline;
    padding: 0;
    color: #e65c00;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .2s ease;
}

.pr-more a:hover {
    color: #081428;
}

/* ===== Калькулятор на странице города ===== */
.kc {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
}

.kc-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-content: start;
    padding: 32px;
    border: 1px solid #e8edf5;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(8, 20, 40, .08);
}

.kc-f label {
    display: block;
    margin-bottom: 8px;
    color: #081428;
    font-size: 14px;
    font-weight: 700;
}

.kc-f input,
.kc-f select {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid #d5dded;
    border-radius: 12px;
    background: #f7f9fd;
    color: #081428;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.kc-f input:hover,
.kc-f select:hover { border-color: #ffb27a; }

.kc-f input:focus,
.kc-f select:focus {
    outline: 0;
    border-color: #ff6a00;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(255, 106, 0, .15);
}

.kc-check {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #2a3550;
    font-size: 15px;
    cursor: pointer;
}
.kc-check input { width: 20px; height: 20px; accent-color: #ff6a00; }
.kc-f--wide { grid-column: 1 / -1; }

.kc-res {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 32px 28px;
    border-radius: 20px;
    background:
        radial-gradient(circle at 90% 0, rgba(255, 106, 0, .3), transparent 55%),
        linear-gradient(160deg, #10264a, #081428);
    box-shadow: 0 14px 36px rgba(8, 20, 40, .28);
    color: rgba(255, 255, 255, .85);
}

.kc-res__lbl { margin: 0; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; opacity: .75; }

.kc-res__sum {
    margin: 0;
    color: #ff8a2b;
    font-size: clamp(34px, 5vw, 48px);
    font-weight: 800;
    line-height: 1.1;
}

.kc-res__list { margin: 0; padding: 0; list-style: none; }
.kc-res__list li {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-top: 1px solid rgba(255, 255, 255, .14);
}
.kc-res__list b { color: #fff; }

.kc-res .btn { justify-content: center; margin-top: 6px; }
.kc-res small { color: rgba(255, 255, 255, .6); font-size: 13px; line-height: 1.5; }

#calc, #services, #prices { scroll-margin-top: 110px; }

@media (max-width: 960px) {
    .kc { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .kc-form { grid-template-columns: 1fr; padding: 22px 18px; }
    .kc-res { padding: 26px 20px; }
}
/* ===== Наши услуги (карточки как на главной) ===== */
.hs-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.hs-grid > li { display: flex; }

.hs-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
    border: 1px solid #e8edf5;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(8, 20, 40, .06);
    color: inherit;
    text-decoration: none;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.hs-card:hover {
    transform: translateY(-6px);
    border-color: #ffd2ad;
    box-shadow: 0 16px 36px rgba(8, 20, 40, .14);
}
.hs-card:focus-visible { outline: 3px solid #ff6a00; outline-offset: 3px; }

.hs-img { aspect-ratio: 4 / 3; overflow: hidden; background: #dfe7f3; }
.hs-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}
.hs-card:hover .hs-img img { transform: scale(1.07); }

.hs-body {
    display: grid;
    flex: 1;
    grid-template-columns: 1fr 40px;
    gap: 8px 14px;
    align-items: end;
    padding: 20px 22px 22px;
}
.hs-body h3 {
    grid-column: 1 / -1;
    margin: 0;
    color: #081428;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.25;
}
.hs-body p {
    margin: 0;
    color: #5b6781;
    font-size: 14px;
    line-height: 1.55;
}

.hs-arr {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff0e3;
    color: #ff6a00;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}
.hs-card:hover .hs-arr {
    background: #ff6a00;
    color: #fff;
    transform: translateX(4px);
}

#services { scroll-margin-top: 110px; }

@media (max-width: 1100px) {
    .hs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .hs-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .hs-card, .hs-img img, .hs-arr { transition: none !important; }
}
/* Чипы-ссылки */
.lp-chips li { padding: 0; }
.lp-chips li a,
.lp-chips li button {
    display: block;
    padding: 8px 15px;
    border: 0;
    border-radius: 99px;
    background: none;
    color: inherit;
    font: inherit;
    cursor: pointer;
    text-decoration: none;
}
.lp-chips li a:hover { text-decoration: none; }
.lp-chips li a:focus-visible,
.lp-chips li button:focus-visible { outline: 3px solid #ff6a00; outline-offset: 2px; }

.lp-chips__more { border: 1px dashed #ffb27a; }