:root{--ink:#11161a;--charcoal:#1b2228;--steel:#62707a;--line:#d8dde1;--paper:#f4f5f4;--white:#fff;--accent:#c6202e;--accent-dark:#971822;--max:1180px;--shadow:0 20px 60px rgba(14,20,24,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--white);font-family:Arial,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit}img{max-width:100%}button,input,select,textarea{font:inherit}.skip-link{position:absolute;left:-9999px;top:8px;background:#fff;padding:.75rem;z-index:100}.skip-link:focus{left:8px}.eyebrow{margin:0 0 .85rem;color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}.topbar{background:#0d1114;color:#cbd2d7;font-size:.8rem}.topbar .container{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0}.topbar a{text-decoration:none}.site-header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:78px}.brand{text-decoration:none;display:flex;align-items:center;gap:.7rem}.brand-logo{display:block;width:218px;height:auto}.nav{display:flex;align-items:center;gap:1.3rem}.nav a{text-decoration:none;font-size:.87rem;font-weight:700}.nav a:not(.button):hover,.nav a[aria-current="page"]{color:var(--accent)}.nav-group{position:relative}.nav-group>button{border:0;background:transparent;font-weight:700;font-size:.87rem;padding:.8rem 0;cursor:pointer}.nav-menu{display:none;position:absolute;top:100%;left:-1rem;width:290px;padding:.65rem;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.nav-group:hover .nav-menu,.nav-group:focus-within .nav-menu{display:grid}.nav-menu a{padding:.55rem .65rem}.menu-button{display:none;border:1px solid var(--line);background:#fff;padding:.55rem .7rem;font-weight:800}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.72rem 1.08rem;background:var(--accent);border:2px solid var(--accent);color:#fff;text-decoration:none;font-weight:800;line-height:1.2;cursor:pointer}.button:hover{background:#dd2d3a}.button-dark{background:var(--ink);border-color:var(--ink);color:#fff}.button-outline{background:transparent;border-color:currentColor;color:inherit}.hero{position:relative;overflow:hidden;background:var(--charcoal);color:#fff}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,transparent,#000)}.hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:5rem;padding:7.5rem 0 6rem}.hero h1,.page-hero h1{max-width:870px;margin:0;font-size:clamp(2.8rem,6vw,5.8rem);line-height:.97;letter-spacing:-.055em}.hero h1 span{color:var(--accent)}.hero-copy>p:not(.eyebrow){max-width:760px;color:#d7dde0;font-size:1.15rem}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.trust-panel{align-self:end;border-left:4px solid var(--accent);padding:1.2rem 0 1.2rem 1.5rem;color:#d7dde0}.trust-panel strong{display:block;color:#fff;font-size:1.2rem;margin-bottom:.4rem}.cap-strip{background:#0d1114;color:#fff}.cap-strip .container{display:grid;grid-template-columns:repeat(4,1fr)}.cap-strip div{padding:1.3rem;border-right:1px solid #30383e}.cap-strip strong{display:block;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.cap-strip span{color:#aeb8bf;font-size:.82rem}.section{padding:6rem 0}.section-tight{padding:3.5rem 0}.section-dark{background:var(--ink);color:#fff}.section-soft{background:var(--paper)}.section-head{display:grid;grid-template-columns:.65fr 1.35fr;gap:3rem;margin-bottom:2.5rem}.section-head h2,.content h2{margin:0;font-size:clamp(2rem,4vw,3.7rem);line-height:1.03;letter-spacing:-.04em}.section-head p{max-width:680px;margin:.2rem 0 0;color:var(--steel);font-size:1.05rem}.section-dark .section-head p{color:#b8c0c5}.grid{display:grid;gap:1.2rem}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.card{position:relative;padding:1.8rem;background:#fff;border:1px solid var(--line)}.card h3{margin:.2rem 0 .55rem;font-size:1.25rem;line-height:1.2}.card p{margin:.3rem 0;color:var(--steel)}.card-link{text-decoration:none}.card-link:after{content:"↗";position:absolute;right:1.3rem;top:1.3rem;color:var(--accent);font-weight:900}.card-link:hover{border-color:var(--accent);transform:translateY(-2px)}.number{color:var(--accent);font-size:.75rem;font-weight:900;letter-spacing:.12em}.service-list{list-style:none;margin:1.2rem 0 0;padding:0;columns:2;column-gap:2rem}.service-list li{break-inside:avoid;padding:.45rem 0 .45rem 1.15rem;border-bottom:1px solid var(--line);position:relative}.service-list li:before{content:"";position:absolute;left:0;top:1.05rem;width:6px;height:6px;background:var(--accent)}.section-dark .service-list li{border-color:#333d44}.process{display:grid;grid-template-columns:repeat(4,1fr);counter-reset:step}.process article{padding:1.6rem;border-top:3px solid #353e45}.process article:before{counter-increment:step;content:"0" counter(step);color:var(--accent);font-weight:900}.process h3{font-size:1.1rem}.cta-band{background:var(--accent);color:#fff}.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:3.3rem 0}.cta-inner h2{max-width:720px;margin:0;font-size:clamp(1.8rem,3.5vw,3.1rem);line-height:1}.page-hero{background:var(--charcoal);color:#fff;padding:5.5rem 0}.page-hero h1{font-size:clamp(2.6rem,5vw,4.8rem)}.page-hero p:not(.eyebrow){max-width:760px;color:#cbd2d7;font-size:1.12rem}.breadcrumbs{margin-bottom:2rem;color:#aeb7bd;font-size:.82rem}.breadcrumbs a{color:#fff}.split{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:5rem}.content h2{margin:2.8rem 0 1rem;font-size:clamp(1.8rem,3vw,2.7rem)}.content h2:first-child{margin-top:0}.content h3{margin-top:2rem}.sidebar{align-self:start;position:sticky;top:110px;padding:1.7rem;background:var(--paper);border-top:4px solid var(--accent)}.sidebar h2{font-size:1.35rem;margin:0 0 .6rem}.sidebar .button{width:100%;margin-top:1rem}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin:1.5rem 0}.detail-grid div{padding:1rem;background:var(--paper);border-left:3px solid var(--accent)}.project-placeholder{min-height:220px;display:grid;place-items:center;background:repeating-linear-gradient(135deg,#e7eaec,#e7eaec 12px,#f2f3f3 12px,#f2f3f3 24px);color:#69757c;text-align:center}.project-card{padding:0}.project-card .body{padding:1.4rem}.project-meta{font-size:.78rem;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.filters{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:2rem}.filters button{padding:.6rem .85rem;background:#fff;border:1px solid var(--line);font-weight:700;cursor:pointer}.filters button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.field{display:grid;gap:.35rem}.field-full{grid-column:1/-1}.field label,.field legend{font-weight:800;font-size:.88rem}.field input,.field select,.field textarea{width:100%;border:1px solid #aeb7bd;background:#fff;padding:.8rem;min-height:48px}.field textarea{min-height:150px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(198,32,46,.24);border-color:var(--accent)}.check{display:flex;align-items:flex-start;gap:.6rem}.check input{width:20px;height:20px;margin-top:.15rem}.honeypot{position:absolute;left:-9999px}.notice{padding:1rem;background:#fff1f2;border-left:4px solid var(--accent);font-size:.9rem}.success{padding:1.2rem;background:#edf7ef;border-left:4px solid #2c7b42;margin-top:1rem}.pending{display:inline-block;padding:.2rem .45rem;background:#fdebed;color:#8f1720;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.equipment-card{opacity:.76;border-style:dashed}.equipment-card .pending{margin-bottom:.7rem}.footer{background:#0d1114;color:#b8c0c5;padding:4rem 0 1.3rem}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:3rem}.footer h2,.footer h3{color:#fff}.footer h2{margin:0;font-size:1.4rem}.footer a{display:block;color:#d8dde1;text-decoration:none;margin:.38rem 0}.legal{margin-top:3rem;padding-top:1.2rem;border-top:1px solid #30383e;font-size:.78rem}.confirm-list{display:grid;gap:.75rem}.confirm-item{padding:1rem;background:#fff;border-left:4px solid var(--accent)}
@media(max-width:900px){.menu-button{display:block}.nav{display:none;position:absolute;left:0;right:0;top:100%;padding:1rem 20px 1.4rem;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow);align-items:stretch}.nav[data-open="true"]{display:grid}.nav-group>button{width:100%;text-align:left}.nav-menu,.nav-group:hover .nav-menu,.nav-group:focus-within .nav-menu{position:static;display:grid;width:auto;border:0;box-shadow:none;padding:.25rem 0 .25rem 1rem}.hero-inner,.split,.section-head{grid-template-columns:1fr;gap:2rem}.hero-inner{padding:5rem 0}.cap-strip .container,.grid-3,.process{grid-template-columns:repeat(2,1fr)}.sidebar{position:static}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:600px){.container{width:min(calc(100% - 28px),var(--max))}.topbar .container{display:block}.topbar span{display:none}.brand-logo{width:184px}.hero h1{font-size:2.65rem}.section{padding:4rem 0}.grid-3,.grid-2,.process,.cap-strip .container,.detail-grid,.form-grid,.footer-grid{grid-template-columns:1fr}.cap-strip div{border-right:0;border-bottom:1px solid #30383e}.service-list{columns:1}.cta-inner{display:block}.cta-inner .button{margin-top:1.2rem}.field-full{grid-column:auto}.footer-grid>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.field-help{margin:-.55rem 0 .25rem;color:var(--steel);font-size:.84rem}.availability,.form-status{padding:1rem;border-left:4px solid var(--accent);background:#fff1f2}.form-status{margin-top:1rem}.form-success{background:#edf7ef;border-left-color:#2c7b42}.form-error{background:#fff1f2;border-left-color:var(--accent)}button:disabled{cursor:not-allowed;opacity:.58}.contact-details{display:grid;gap:.35rem;margin:1rem 0}.contact-details a{display:block;width:max-content;max-width:100%;overflow-wrap:anywhere;text-decoration:none}.contact-details .contact-phone{white-space:nowrap}
.topbar-links{display:flex;align-items:center;gap:1.2rem}.topbar-links a:first-child{color:#fff;font-weight:800}@media(max-width:600px){.topbar-links{justify-content:space-between;gap:.7rem;font-size:.76rem}.topbar-links a{white-space:nowrap}}
.selected-work{padding-top:0}.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0 0 2.6rem}.project-gallery-home{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:0}.project-photo{position:relative;overflow:hidden;margin:0;background:var(--charcoal);aspect-ratio:4/3}.project-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,12,15,.1) 20%,rgba(8,12,15,.25) 58%,rgba(8,12,15,.88) 100%);pointer-events:none}.project-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.76) saturate(.82) contrast(1.08);transition:filter .35s ease,transform .35s ease}.project-photo:hover img{filter:brightness(.82) saturate(.88) contrast(1.08);transform:scale(1.025)}.project-photo figcaption{position:absolute;z-index:1;left:1.15rem;right:1.15rem;bottom:1rem;color:#fff;font-size:.8rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase;text-shadow:0 2px 10px rgba(0,0,0,.55)}.project-gallery-service .project-photo{aspect-ratio:4/3}.project-gallery-single .project-photo{aspect-ratio:16/9}.project-gallery-emphasis .project-photo:first-child{grid-column:1/-1;aspect-ratio:16/9}.focus-left img{object-position:left center}.focus-top img{object-position:center 25%}.focus-center img{object-position:center center}.focus-warehouse img{object-position:center 30%}.project-spotlight{background:var(--ink);color:#fff;padding:4rem 0}.spotlight-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:4rem;align-items:center}.spotlight-photo{aspect-ratio:4/3;box-shadow:0 24px 65px rgba(0,0,0,.35)}.spotlight-copy h2{margin:0 0 1rem;font-size:clamp(2.2rem,4.5vw,4.5rem);line-height:.98;letter-spacing:-.05em}.spotlight-copy p:not(.eyebrow){color:#c3cbd0;font-size:1.05rem}.spotlight-thumbs{grid-template-columns:1fr;gap:.75rem;margin:1.5rem 0 0}.spotlight-thumbs .project-photo{aspect-ratio:4/3}.spotlight-thumbs .project-photo figcaption{font-size:.7rem}
@media(max-width:900px){.project-gallery-home{grid-template-columns:repeat(2,minmax(0,1fr))}.project-gallery-home .project-photo:first-child{grid-column:1/-1;aspect-ratio:16/8}.spotlight-grid{grid-template-columns:1fr;gap:2rem}.spotlight-photo{aspect-ratio:16/10}.project-spotlight{padding:3rem 0}}
@media(max-width:600px){.project-gallery,.project-gallery-home{grid-template-columns:1fr}.project-gallery-home .project-photo:first-child{grid-column:auto;aspect-ratio:4/3}.project-gallery-single .project-photo{aspect-ratio:4/3}}

/* Contractor compliance platform badges */
.footer-grid{grid-template-columns:1.45fr .72fr .72fr 1.15fr;gap:2.5rem}
.footer h3{margin-top:0}
.compliance-block{padding-left:1.5rem;border-left:1px solid #30383e}
.compliance-block>p{margin:.25rem 0 1rem;font-size:.9rem}
.compliance-badges{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.compliance-badge{display:flex;align-items:center;justify-content:center;min-height:64px;padding:.65rem .8rem;background:#171d21;border:1px solid #30383e;transition:border-color .2s ease,background-color .2s ease}
.compliance-badge:hover,.compliance-badge:focus-visible{background:#20272c;border-color:#6a747b}
.compliance-badge img{display:block;max-width:100%;object-fit:contain}
.compliance-badge-isn img{width:118px;max-height:46px}
.compliance-badge-avetta img{width:128px;height:auto}
.compliance-badge-buildingconnected{grid-column:1/-1;background:#fff;border-color:#d5dadd}
.compliance-badge-buildingconnected:hover,.compliance-badge-buildingconnected:focus-visible{background:#f2f5f6;border-color:#9ca6ac}
.compliance-badge-buildingconnected img{width:210px;height:auto}
.compliance-note{color:#8f9aa1;font-size:.76rem!important;line-height:1.45}
.trademark-note{display:inline-block;margin-top:.35rem;color:#8f989e;font-size:.72rem}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}.compliance-block{padding-left:0;border-left:0}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}.compliance-badges{max-width:380px}}
