:root{--bg:#f3f4f3;--ink:#1c2326;--muted:#5f686b;--line:#dfe3e3;--accent:#0e8f9b;--white:#fff;--panel:#20292c}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font:400 16.5px/1.65 Onest,system-ui,sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}a{color:inherit}
h1,h2,h3{letter-spacing:-.03em;line-height:1.07;font-weight:600}
h1{font-size:clamp(40px,4.6vw,64px)}h2{font-size:clamp(30px,3vw,44px)}h3{font-size:19px;letter-spacing:-.01em}
.eyebrow{font:400 12px "Space Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:28px;padding:12px clamp(20px,4vw,56px);background:rgba(243,244,243,.9);backdrop-filter:blur(10px);transition:box-shadow .3s}
.top.scrolled{box-shadow:0 1px 0 var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:18px;letter-spacing:-.02em}
.brand img{width:30px;height:auto}.brand em{font-style:normal;font-weight:500;color:var(--muted)}
.top nav{margin-left:auto;display:flex;gap:28px;font-size:15px}.top nav a{text-decoration:none;color:var(--muted)}.top nav a:hover{color:var(--ink)}
.call{display:flex;align-items:center;gap:8px;background:var(--accent);color:#fff;text-decoration:none;padding:10px 18px;border-radius:10px;font-weight:600;font-size:15px}
.call svg{width:16px;height:16px;fill:#fff}
.hero{max-width:1240px;margin:0 auto;padding:clamp(50px,6vw,90px) clamp(20px,4vw,56px) 70px;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);align-items:center}
.lede{font-size:18px;color:var(--muted);margin:22px 0 32px;max-width:31em}
.ctas{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;padding:15px 26px;border-radius:10px;font:inherit;font-weight:600;border:0;cursor:pointer;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-1px);background:var(--accent)}.link{font-weight:600;text-decoration:none;border-bottom:2px solid var(--accent)}
.panel{background:linear-gradient(160deg,#fbfcfc,#e9eceb);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:0 40px 80px -50px rgba(28,35,38,.55),inset 0 1px 0 #fff}
.screen{position:relative;background:var(--panel);border-radius:16px;padding:24px 26px;display:flex;align-items:center;justify-content:space-between;box-shadow:inset 0 2px 12px rgba(0,0,0,.5)}
.lbl{font:400 11px "Space Mono",monospace;letter-spacing:.14em;color:#7d8a8d}
.read{font:700 clamp(40px,5vw,60px)/1 "Space Mono",monospace;color:#5fd3dc;letter-spacing:.06em;white-space:pre;text-shadow:0 0 18px rgba(95,211,220,.45)}
.dot{width:12px;height:12px;border-radius:50%;background:#3b4649;transition:background .4s,box-shadow .4s}
.fin .dot{background:#5fd3dc;box-shadow:0 0 12px #5fd3dc}
.ctrl{display:grid;grid-template-columns:110px 1fr;gap:24px;align-items:center;margin-top:26px}
.knob{width:100px;height:100px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d7dcdb 70%);box-shadow:0 10px 20px -10px rgba(0,0,0,.4),inset 0 -3px 6px rgba(0,0,0,.08);position:relative;transform:rotate(-120deg);transition:transform 2.6s cubic-bezier(.4,0,.2,1)}
.knob i{position:absolute;left:50%;top:10px;width:4px;height:22px;margin-left:-2px;border-radius:2px;background:var(--accent)}
.ready .knob{transform:rotate(100deg)}
.keys{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.keys span{font:400 12px "Space Mono",monospace;text-transform:uppercase;letter-spacing:.06em;text-align:center;padding:12px 6px;border-radius:10px;background:#fff;border:1px solid var(--line);color:var(--muted);transition:all .4s}
.fin .keys .on{background:var(--accent);color:#fff;border-color:var(--accent)}
.steps{display:flex;justify-content:space-between;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.steps span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:1px}
.brands{max-width:1240px;margin:0 auto;padding:22px clamp(20px,4vw,56px);display:flex;align-items:center;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap}
.brands p{font:400 12px "Space Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.brands ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px 30px;font-weight:600;font-size:17px;color:#7a8486}
.repairs,.area,.contact{max-width:1240px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px) 0}
.head{max-width:680px;margin-bottom:44px}.sub{color:var(--muted);margin-top:14px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.grid article{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:28px;transition:transform .3s,border-color .3s}
.grid article:hover{transform:translateY(-3px);border-color:var(--accent)}
.code{display:inline-grid;place-items:center;min-width:44px;height:30px;padding:0 8px;border-radius:8px;background:var(--panel);color:#5fd3dc;font:700 13px "Space Mono",monospace;margin-bottom:18px}
.grid p{color:var(--muted);font-size:15.5px;margin-top:8px}
.visit{margin-top:clamp(90px,10vw,140px);background:var(--panel);color:#eef1f1}
.visit-in{max-width:1240px;margin:0 auto;padding:clamp(70px,8vw,110px) clamp(20px,4vw,56px)}
.visit .eyebrow{color:#5fd3dc}
.visit ol{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.visit li{border-top:1px solid rgba(255,255,255,.16);padding-top:20px}
.visit li b{font:700 13px "Space Mono",monospace;color:#5fd3dc;display:block;margin-bottom:12px}
.visit p{color:#a9b4b6;font-size:15.5px;margin-top:6px}
.towns{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.towns li{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-weight:500}
.towns .home{background:var(--accent);color:#fff;border-color:var(--accent)}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-bottom:clamp(90px,10vw,130px)}
.card{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:clamp(28px,4vw,48px)}
.card h2{margin-bottom:24px}
.card dl div{padding:13px 0;border-top:1px solid var(--line)}
.card dt{font:400 11.5px "Space Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.card dd{font-size:17px;overflow-wrap:anywhere}.card a{text-decoration:none}
.form-wrap{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:clamp(28px,4vw,44px)}
.form-wrap h3{font-size:22px;margin-bottom:18px}
.quote label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:14px}
.quote input,.quote select,.quote textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;color:var(--ink);padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.quote :focus{outline:2px solid var(--accent);outline-offset:1px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quote .btn{width:100%;background:var(--accent)}
.status{font-size:14px;color:var(--accent);margin-top:12px;min-height:1em}.hp{position:absolute;left:-9999px}
footer{padding:28px clamp(20px,4vw,56px);font-size:14px;color:var(--muted);text-align:center;border-top:1px solid var(--line)}footer a{text-decoration:none}
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}.js .reveal.in{opacity:1;transform:none}
@media (max-width:960px){.top nav{display:none}.call{margin-left:auto}.hero,.contact{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.visit ol{grid-template-columns:1fr 1fr}.towns{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.brand em{display:none}.call span{display:none}.call{padding:11px}.grid,.row2,.visit ol{grid-template-columns:1fr}.towns{grid-template-columns:1fr 1fr}h1{font-size:38px}.ctrl{grid-template-columns:80px 1fr;gap:16px}.knob{width:76px;height:76px}.steps{flex-direction:column}.panel{padding:20px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
