:root{--bg:#060908;--card:#101614;--line:rgba(255,255,255,.08);--g:#39f6a2;--g2:#10bd79;--t:#f1f5f2;--m:#8b9691;--r:20px;--btn:linear-gradient(135deg,#b7ffdd,#39f6a2 40%,#10bd79)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-color:rgba(255,255,255,.18) var(--bg)}
*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:10px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(57,246,162,.55);background-clip:padding-box}
body{min-height:100vh;color:var(--t);background:var(--bg);background-image:radial-gradient(60% 40% at 80% 0,rgba(57,246,162,.12),transparent),radial-gradient(45% 30% at 0 60%,rgba(16,189,121,.08),transparent);background-attachment:fixed;font:400 16px/1.6 'Montserrat',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}
h1,h2{letter-spacing:-.03em;line-height:1.1}
/* nav */
.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 32px;background:rgba(6,9,8,.75);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:15px}.logo::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--g);box-shadow:0 0 12px var(--g)}
.logo b{font-weight:800}
.nav{display:flex;gap:6px;flex-wrap:wrap}.nav a,.nav span{padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--m);transition:.2s}
.nav a:hover{color:var(--t)}.nav .on{color:var(--g);background:rgba(57,246,162,.07);box-shadow:inset 0 0 0 1px rgba(57,246,162,.25)}.nav span{opacity:.5}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px 40px}
/* hero */
.kicker{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid rgba(57,246,162,.25);border-radius:999px;background:rgba(57,246,162,.06);color:var(--g);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
h1{font-size:clamp(36px,5.2vw,64px);font-weight:800;margin-top:22px}
.grad{background:linear-gradient(110deg,#eafff5,#39f6a2 50%,#a8ffd5);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 26px rgba(57,246,162,.28))}
.sub{margin:18px 0 34px;max-width:560px;font-size:17px;color:#a3ada8}
.hero{padding:64px 0 0}
/* cards */
.card{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:24px;transition:.25s}
.card:hover{border-color:rgba(57,246,162,.3)}
.order{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:14px;align-items:start}
.sum{border-top:2px solid var(--g);position:sticky;top:84px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.tab{padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--m);font-size:13px;font-weight:700;transition:.2s}
.tab:hover{color:var(--t)}.tab.on{color:#04120d;border-color:transparent;background:var(--btn);box-shadow:0 8px 24px rgba(57,246,162,.22)}
label.l{display:block;margin:20px 0 8px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--m)}
select,input{width:100%;min-height:54px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.3);color:var(--t);font:600 15px 'Montserrat',sans-serif;outline:0;transition:.2s}
select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2339f6a2' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}
select:focus,input:focus{border-color:rgba(57,246,162,.55)}input::placeholder{color:#66716c}select option{background:#101614}
.chips,.meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.chip{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:13px;font-weight:700;transition:.2s}.chip:hover{border-color:rgba(57,246,162,.5);color:var(--g)}
.pill{font-size:11px;font-weight:700;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.06);color:#a5b0ab}.pill.g{background:rgba(57,246,162,.1);color:var(--g)}
.err{min-height:18px;margin-top:6px;font-size:12px;font-weight:600;color:#ff8b8b}
.sum .row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--m)}.sum .row b{color:var(--t)}
.total{display:flex;justify-content:space-between;align-items:baseline;margin:20px 0}.total span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.total b{font-size:38px;font-weight:800;letter-spacing:-.03em;color:var(--g)}
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:17px;border:0;border-radius:14px;font-weight:800;font-size:14px;color:#04120d;background:var(--btn);box-shadow:0 10px 32px rgba(57,246,162,.25)}
.btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}
.lock{margin-top:14px;padding:12px 14px;border-radius:14px;border:1px solid rgba(57,246,162,.25);background:rgba(57,246,162,.06);color:#bfe9d6;font-size:13px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.steps div{padding:20px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);font-size:13px;color:var(--m)}.steps b{display:block;margin-bottom:6px;font-size:15px;color:var(--g)}
.foot{padding:24px;text-align:center;font-size:12px;color:var(--m)}
/* hub (корневая) */
.hub{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.hub-grid{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}
.hub-cell{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:clamp(22px,4vw,56px);background:var(--bg);isolation:isolate;transition:background .35s}
.hub-cell::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 70% at 85% 0,rgba(57,246,162,.1),transparent 70%);opacity:.6;transition:opacity .35s,transform .6s}
a.hub-cell:hover::before{opacity:1;transform:scale(1.15)}a.hub-cell:hover{background:#0a110e}
.hub-tag{display:flex;gap:.9em;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--m)}.hub-tag b{color:var(--g)}
.hub-name{font-size:clamp(30px,4vw,56px);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-top:14px}
.hub-desc{margin-top:12px;max-width:34ch;color:#a9b5af;font-size:15px}
.hub-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.hub-price b{display:block;font-size:clamp(22px,2.6vw,36px);font-weight:800;letter-spacing:-.03em;color:var(--g);line-height:1.1}.hub-price small{color:var(--m);font-size:13px}
.hub-go{position:relative;display:grid;place-items:center;flex:none;width:64px;height:64px;border-radius:50%;color:var(--g);border:3px solid rgba(57,246,162,.7);transition:.3s}
.hub-go svg{width:41%;height:41%;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
a.hub-cell:hover .hub-go{color:#04120d;background:var(--btn);border-color:transparent;box-shadow:0 0 28px rgba(57,246,162,.35)}
.hub-cell.soon{opacity:.55}.hub-cell.soon .hub-price b{color:var(--m);font-size:20px}
.hub-foot{padding:12px 24px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);text-align:center;font-size:12px;color:var(--m)}
@media(max-width:860px){.order,.steps{grid-template-columns:1fr}.sum{position:static}.top{padding:12px 18px}.hero{padding-top:36px}
.hub-grid{grid-template-columns:1fr;grid-auto-rows:minmax(170px,auto)}.hub-desc{display:none}.hub-go{width:48px;height:48px}}
/* список услуг (страница заказа) */
.card>label.l:first-child{margin-top:0}
.svcs{display:grid;gap:8px;max-height:min(46vh,430px);overflow-y:auto;overscroll-behavior:contain;margin-right:-6px;padding:2px 6px 2px 2px}
.svc{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;text-align:left;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.3);transition:border-color .2s,background .2s,box-shadow .2s}
.svc:hover{border-color:rgba(57,246,162,.4)}
.svc:focus-visible{outline:2px solid rgba(57,246,162,.7);outline-offset:2px}
.svc.on{border-color:rgba(57,246,162,.6);background:rgba(57,246,162,.07);box-shadow:inset 0 0 0 1px rgba(57,246,162,.25)}
.svc-dot{flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.22);transition:border-color .2s}
.svc.on .svc-dot{border-color:var(--g)}
.svc.on .svc-dot::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--g);box-shadow:0 0 10px var(--g)}
.svc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.svc-name{font-size:14px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}
.svc-sub{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:12px;font-weight:600;color:var(--m)}.svc-sub .g{color:var(--g)}
.svc-price{flex:none;text-align:right;line-height:1.2}.svc-price b{display:block;font-size:16px;font-weight:800;color:var(--g);white-space:nowrap}.svc-price small{font-size:11px;font-weight:600;color:var(--m)}
.hint{margin-top:8px;font-size:12px;font-weight:600;color:var(--m)}
/* сводка: длинные значения не ломают вёрстку */
.sum .row span{flex:none}.sum .row b{min-width:0;text-align:right;overflow-wrap:anywhere}
.total{gap:12px}.total b{font-size:clamp(28px,5vw,38px);text-align:right;overflow-wrap:anywhere}
/* пустое состояние */
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(40px,8vw,72px) 24px}
.empty-ico{display:grid;place-items:center;width:64px;height:64px;margin-bottom:22px;border-radius:50%;border:3px solid rgba(57,246,162,.7);color:var(--g)}
.empty-ico svg{width:44%;height:44%;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.empty h2{font-size:clamp(22px,3vw,30px);font-weight:800}
.empty p{margin-top:12px;max-width:44ch;font-size:15px;color:#a3ada8}
.foot{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
@media(max-width:860px){
select,input{font-size:16px} /* iOS не приближает страницу при фокусе */
.svcs{max-height:min(52vh,380px)}.svc{padding:12px 13px;gap:11px}.svc-price b{font-size:15px}
.wrap{padding:0 16px 32px}.card{padding:18px}
}
