/* Maintenance - Service Template (Sharp Industrial). Edit colours/fonts in :root. */
:root{--ink:#14171a;--steel:#1f262c;--steel2:#2b343c;--paper:#f2f0eb;--white:#fff;--or:#ff6a13;--or2:#e85a05;--yel:#ffc400;--mut:#5b646b;--line:#d9d5cc;
--head:"Barlow Condensed","Arial Narrow",Impact,sans-serif;--body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;--ease:cubic-bezier(.2,.7,.2,1);--cut:polygon(0 0,100% 0,100% calc(100% - 28px),calc(100% - 28px) 100%,0 100%)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);font-size:1.05rem;color:var(--ink);background:var(--paper);line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--head);font-weight:700;text-transform:uppercase;line-height:1.02;margin:0 0 .5em;letter-spacing:.01em}
h1{font-size:clamp(3.2rem,8vw,6.6rem)}h2{font-size:clamp(2.4rem,5vw,4rem)}h3{font-size:1.7rem}p{margin:0 0 1em;color:var(--mut)}
.container{width:min(1220px,92%);margin-inline:auto}.section{padding:clamp(64px,9vw,120px) 0}.dark{background:var(--steel);color:#fff}.dark p{color:#b4bcc3}
svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:square;stroke-linejoin:miter;flex:none}
:focus-visible{outline:3px solid var(--yel);outline-offset:3px}
.kicker{display:inline-flex;align-items:center;gap:12px;font:700 1rem var(--head);letter-spacing:.2em;text-transform:uppercase;color:var(--or);margin-bottom:16px}.kicker::before{content:"";width:40px;height:4px;background:var(--or)}
.lead{font-size:1.2rem;max-width:58ch}.head{max-width:720px;margin-bottom:56px}.head.c{text-align:center;margin-inline:auto}.head.c .kicker::before{display:none}.head.c .lead{margin-inline:auto}
.haz{height:14px;background:repeating-linear-gradient(-45deg,var(--yel) 0 18px,var(--ink) 18px 36px)}
/* buttons: sweep */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:12px;padding:17px 34px;border:0;background:var(--or);color:#fff;font:700 1.1rem var(--head);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);z-index:0;transition:color .4s}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateX(-101%);transition:transform .5s var(--ease);z-index:-1}.btn:hover::before{transform:none}
.btn.dk{background:var(--ink)}.btn.dk::before{background:var(--or)}.btn.ln{background:transparent;box-shadow:inset 0 0 0 2px #fff}.btn.ln::before{background:#fff}.btn.ln:hover{color:var(--ink)}.btn.block{width:100%;justify-content:center}
.btn svg{width:20px;height:20px;transition:transform .4s var(--ease)}.btn:hover svg{transform:translateX(6px)}
.link{position:relative;display:inline-flex;gap:8px;align-items:center;font:700 1.05rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--or);padding-bottom:5px}
.link::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:currentColor;transform:scaleX(.25);transform-origin:left;transition:transform .45s var(--ease)}.link:hover::after{transform:scaleX(1)}.link svg{width:18px;height:18px;transition:transform .4s var(--ease)}.link:hover svg{transform:translateX(5px)}
/* header */
.topbar{background:var(--ink);color:#c9d0d6;font-size:.9rem}.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:10px 0;flex-wrap:wrap}.topbar span{display:inline-flex;gap:8px;align-items:center}.topbar svg{width:16px;height:16px;color:var(--or)}.topbar b{color:var(--yel)}
.site-header{position:sticky;top:0;z-index:60;background:var(--white);box-shadow:0 1px 0 var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:86px}
.logo{display:flex;align-items:center;gap:12px;font:700 2rem var(--head);text-transform:uppercase;letter-spacing:.04em}.logo i{width:44px;height:44px;background:var(--or);color:#fff;display:grid;place-items:center;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.nav{display:flex;align-items:center;gap:36px}.nav>ul{display:flex;gap:34px;list-style:none;margin:0;padding:0}
.nav a.nl{position:relative;display:block;padding:8px 0;font:700 1.12rem var(--head);letter-spacing:.14em;text-transform:uppercase}
.nav a.nl::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--or);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}.nav a.nl:hover::after,.nav a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.menu-btn,.menu-close{display:none;width:48px;height:48px;border:0;background:var(--ink);color:#fff;cursor:pointer;place-items:center}
/* hero */
.hero{position:relative;color:#fff;padding:120px 0 190px;background:var(--ink);overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 60px),0 100%)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;animation:zoom 22s ease-out both}@keyframes zoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(14,17,20,.95) 25%,rgba(14,17,20,.3))}
.hero .container{position:relative;z-index:2}.hero h1{max-width:12ch}.hero h1 em{font-style:normal;color:var(--or)}.hero p.lead{color:#d3d9de;margin-bottom:36px}.cta-row{display:flex;gap:16px;flex-wrap:wrap}
.emer{display:inline-flex;align-items:center;gap:14px;margin-top:44px;padding:14px 22px;background:rgba(255,196,0,.12);border-left:5px solid var(--yel)}.emer b{display:block;font:700 1.5rem var(--head);color:var(--yel);letter-spacing:.06em}.emer span{font-size:.85rem;color:#d3d9de}.emer svg{color:var(--yel);width:30px;height:30px}
/* sub hero */
.sub{margin-top:-120px;position:relative;z-index:5}.sub-grid{display:grid;grid-template-columns:repeat(4,1fr);background:var(--white);box-shadow:0 30px 60px -30px rgba(0,0,0,.45);border-top:6px solid var(--or)}
.cell{padding:34px 28px;border-right:1px solid var(--line);position:relative;overflow:hidden;z-index:0;transition:color .5s}.cell:last-child{border:0}
.cell::before{content:"";position:absolute;inset:0;background:var(--steel);transform:translateY(101%);transition:transform .55s var(--ease);z-index:-1}.cell:hover::before{transform:none}.cell:hover{color:#fff}.cell:hover p{color:#b4bcc3}
.cell svg{width:38px;height:38px;color:var(--or);margin-bottom:16px}.cell h3{font-size:1.45rem;margin-bottom:6px}.cell p{margin:0;font-size:.95rem;transition:color .5s}
/* about */
.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.frame{position:relative}.frame::before{content:"";position:absolute;left:-22px;top:22px;right:22px;bottom:-22px;border:4px solid var(--or);z-index:0}.frame .pic{position:relative;z-index:1;overflow:hidden;clip-path:var(--cut)}.frame img{width:100%;aspect-ratio:5/4;object-fit:cover;transition:transform 1.2s var(--ease)}.frame:hover img{transform:scale(1.07)}
.frame .exp{position:absolute;right:-18px;bottom:40px;z-index:2;background:var(--or);color:#fff;padding:22px 28px;font:700 1rem var(--head);letter-spacing:.1em;text-transform:uppercase;line-height:1.1}.exp b{display:block;font-size:3.2rem;line-height:1}
.ticks{list-style:none;padding:0;margin:0 0 34px;display:grid;gap:14px}.ticks li{display:flex;gap:14px;align-items:flex-start;font-weight:600;color:var(--ink)}.dark .ticks li{color:#fff}.ticks svg{color:var(--or);width:22px;height:22px;margin-top:3px}
/* services */
.grid{display:grid;gap:2px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.gap{gap:28px}
.svc{position:relative;overflow:hidden;background:var(--white);padding:44px 36px;z-index:0;transition:color .5s;border:1px solid var(--line)}
.svc::before{content:"";position:absolute;inset:0;background:var(--or);transform:translateY(101%);transition:transform .6s var(--ease);z-index:-1}.svc:hover::before{transform:none}.svc:hover,.svc:hover p,.svc:hover .num,.svc:hover svg,.svc:hover .link{color:#fff}
.svc .num{position:absolute;right:26px;top:14px;font:700 4.5rem var(--head);color:#ece9e2;transition:color .5s;line-height:1}.svc svg{width:46px;height:46px;color:var(--or);margin-bottom:26px;transition:color .5s,transform .5s var(--ease)}.svc:hover svg{transform:translateY(-4px) rotate(-6deg)}
.svc p{transition:color .5s}.svc .link{transition:color .5s}
/* clients */
.clients{display:grid;grid-template-columns:repeat(6,1fr);border-block:1px solid var(--line)}.client{padding:34px 10px;display:flex;flex-direction:column;align-items:center;gap:10px;font:700 1.1rem var(--head);letter-spacing:.1em;text-transform:uppercase;color:#8a9298;border-right:1px solid var(--line);transition:color .3s,background .3s}.client:last-child{border:0}.client:hover{color:var(--or);background:var(--white)}.client svg{width:34px;height:34px}
/* reviews */
.quote{margin:0;padding:40px 34px;background:var(--steel2);border-top:5px solid var(--or);transition:transform .5s var(--ease)}.quote:hover{transform:translateY(-8px)}.quote .mark{font:700 5rem/0.6 var(--head);color:var(--or)}.quote p{color:#e6eaed;font-size:1.12rem;margin:10px 0 26px}
.who{display:flex;gap:14px;align-items:center}.who img{width:54px;height:54px;object-fit:cover;border-radius:50%;border:3px solid var(--or)}.who b{display:block;font:700 1.15rem var(--head);letter-spacing:.06em;text-transform:uppercase;color:#fff}.who span{font-size:.85rem;color:#9aa4ac}
.stars{display:flex;color:var(--yel);margin-bottom:6px}.stars svg{width:18px;height:18px;fill:currentColor;stroke:none}
/* forms */
label{display:block;font:700 .95rem var(--head);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
input,select,textarea{width:100%;font:500 1rem var(--body);padding:15px 16px;border:2px solid var(--line);background:var(--white);color:var(--ink);border-radius:0;transition:border-color .3s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--or)}
.panel{background:var(--white);padding:clamp(28px,4vw,48px);border-top:6px solid var(--or);box-shadow:0 30px 60px -35px rgba(0,0,0,.4)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.fields .full{grid-column:1/-1}
.info{display:grid;gap:22px;margin-top:30px}.info div{display:flex;gap:18px;align-items:center}.info .ic{width:58px;height:58px;background:var(--or);display:grid;place-items:center;color:#fff;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}.info b{display:block;font:700 1.15rem var(--head);letter-spacing:.1em;text-transform:uppercase}.info p{margin:0}.dark .info b{color:#fff}
/* faq */
details{background:var(--white);border:1px solid var(--line);margin-bottom:12px;border-left:5px solid var(--or)}summary{cursor:pointer;padding:22px 26px;font:700 1.4rem var(--head);text-transform:uppercase;letter-spacing:.03em;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px}summary::-webkit-details-marker{display:none}summary::after{content:"+";font-size:2rem;color:var(--or);line-height:1;transition:transform .4s var(--ease)}details[open] summary::after{transform:rotate(45deg)}details p{padding:0 26px 24px;margin:0}
/* inner hero */
.phero{position:relative;background:var(--ink);color:#fff;padding:90px 0 130px;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 50px),0 100%)}
.phero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px}
.phero::after{content:"";position:absolute;right:-80px;top:-80px;width:360px;height:360px;background:var(--or);transform:rotate(45deg);opacity:.9}.phero .container{position:relative;z-index:2}.phero p.lead{color:#c9d0d6}
.crumbs{font:700 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:#aab3ba;margin-top:18px}.crumbs a:hover{color:var(--or)}
/* services page */
.rowx{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-bottom:90px}.rowx:nth-child(even) .frame{order:2}
.step{padding:36px 30px;background:var(--steel2);position:relative;border-top:5px solid var(--or)}.step b{display:block;font:700 4rem/1 var(--head);color:var(--or);margin-bottom:10px}.step h3{color:#fff}
.plan{background:var(--white);padding:44px 34px;border:1px solid var(--line);position:relative;transition:transform .5s var(--ease),box-shadow .5s}.plan:hover{transform:translateY(-10px);box-shadow:0 40px 60px -35px rgba(0,0,0,.45)}.plan.pop{background:var(--ink);color:#fff;border-top:6px solid var(--or)}.plan.pop p{color:#b4bcc3}.plan .pr{font:700 4rem/1 var(--head);color:var(--or)}.plan ul{list-style:none;padding:0;margin:24px 0 30px;display:grid;gap:12px}.plan li{display:flex;gap:10px;align-items:center}.plan li svg{color:var(--or);width:20px;height:20px}
/* blog */
.post{background:var(--white);border:1px solid var(--line);transition:transform .5s var(--ease),box-shadow .5s}.post:hover{transform:translateY(-8px);box-shadow:0 36px 50px -34px rgba(0,0,0,.5)}.post .m{overflow:hidden;aspect-ratio:16/10}.post .m img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}.post:hover .m img{transform:scale(1.08)}
.post .body{padding:26px 28px 28px}.meta{font:700 .95rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--or);margin-bottom:8px}.post details{border:0;background:none;margin:0}.post summary{padding:0;font:700 1.05rem var(--head);letter-spacing:.14em;color:var(--or)}.post summary::after{display:none}.post details p{padding:12px 0 0}
.pager{display:flex;justify-content:center;gap:10px;margin-top:54px}.pager a{width:52px;height:52px;display:grid;place-items:center;background:var(--white);border:1px solid var(--line);font:700 1.2rem var(--head);transition:all .3s}.pager a:hover,.pager a[aria-current]{background:var(--or);border-color:var(--or);color:#fff}
.team .ph{overflow:hidden;aspect-ratio:4/5}.team img{width:100%;height:100%;object-fit:cover;filter:grayscale(.6);transition:transform 1s var(--ease),filter .5s}.team:hover img{transform:scale(1.07);filter:none}.team .tb{padding:22px 24px;background:var(--white);border-bottom:5px solid var(--or)}.team .tb span{color:var(--or);font:700 1rem var(--head);letter-spacing:.14em;text-transform:uppercase}
.stat{text-align:center;padding:36px 16px;border:1px solid rgba(255,255,255,.14)}.stat b{display:block;font:700 4.2rem/1 var(--head);color:var(--or)}.stat span{font:700 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:#b4bcc3}
.iframe{width:100%;height:100%;min-height:340px;border:0;filter:grayscale(.8) contrast(1.1)}
/* footer */
.site-footer{position:relative;background:var(--ink);color:#aab3ba;padding:80px 0 26px}.site-footer h4{color:#fff;font-size:1.4rem;letter-spacing:.08em;margin-bottom:20px}.site-footer p{color:#aab3ba}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:46px;padding-bottom:46px;border-bottom:1px solid #2e373e}.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:11px}.site-footer ul a{transition:padding .3s,color .3s}.site-footer ul a:hover{padding-left:8px;color:var(--or)}.site-footer .logo{color:#fff}
.news{display:flex}.news input{background:#262e35;border-color:#323c44;color:#fff}.news .btn{padding:0 20px}.copy{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:26px;font-size:.92rem}
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity .85s var(--ease),transform .85s var(--ease);transition-delay:var(--d,0s)}.js .reveal.in{opacity:1;transform:none}
@media(max-width:1024px){.split,.rowx{grid-template-columns:1fr;gap:50px}.rowx:nth-child(even) .frame{order:0}.sub-grid,.g4{grid-template-columns:repeat(2,1fr)}.cell:nth-child(2){border-right:0}.cell:nth-child(-n+2){border-bottom:1px solid var(--line)}.g3{grid-template-columns:repeat(2,1fr)}.clients{grid-template-columns:repeat(3,1fr)}.client:nth-child(3){border-right:0}.fgrid{grid-template-columns:1fr 1fr}.frame{margin:0 22px 22px 22px}}
@media(max-width:900px){.menu-btn{display:grid}
.js .nav{position:fixed;inset:0 0 0 auto;width:min(380px,90%);z-index:80;background:var(--ink);color:#fff;flex-direction:column;align-items:stretch;gap:26px;padding:100px 30px 30px;overflow:auto;transform:translateX(100%);visibility:hidden;transition:transform .5s var(--ease),visibility .5s}
.js .nav.open{transform:none;visibility:visible}.js .menu-close{display:grid;position:absolute;top:20px;right:20px;background:var(--or)}.nav>ul{flex-direction:column;gap:0}.nav>ul>li{border-bottom:1px solid #2e373e}.nav a.nl{padding:18px 0;font-size:1.4rem}
.no-js .bar{flex-wrap:wrap;height:auto;padding:14px 0}.no-js .nav{width:100%;flex-direction:column;align-items:stretch;gap:14px}.no-js .nav>ul{flex-wrap:wrap;gap:6px 22px}.no-js .menu-btn{display:none}}
@media(max-width:640px){.sub-grid,.g2,.g3,.g4,.fields{grid-template-columns:1fr}.cell{border-right:0;border-bottom:1px solid var(--line)}.clients{grid-template-columns:repeat(2,1fr)}.client:nth-child(odd){border-right:1px solid var(--line)}.client:nth-child(even){border-right:0}.fgrid{grid-template-columns:1fr}.hero{padding:80px 0 170px}.topbar .hide-m{display:none}.news{flex-direction:column}.news .btn{padding:14px}.bar{height:74px}.logo{font-size:1.6rem}.frame .exp{right:-10px}.emer{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.js .reveal{opacity:1;transform:none}}
