@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');:root{--ink:#202724;--paper:#f7f6f2;--copper:#b8734d;--muted:#646c66;--line:#d7dcd5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:17px;line-height:1.7}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif;line-height:1.08;font-weight:500;letter-spacing:-.05em}h1{font-size:clamp(52px,7vw,108px)}h2{font-size:clamp(38px,4.2vw,66px)}h3{font-size:28px}p{margin:20px 0;color:var(--muted)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--copper)}img{display:block;max-width:100%}header{height:106px;padding:20px 4.5%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:relative;z-index:10;border-bottom:1px solid var(--line)}.brand{width:195px}.brand img{width:100%;height:auto}nav{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:600}nav>a:not(.button):hover,.text-link:hover,footer a:hover{color:var(--copper)}.menu{display:none}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;background:var(--ink);color:white;padding:17px 23px;border:1px solid var(--ink);font-weight:600;font-size:15px;cursor:pointer}.button:hover{background:#935632;border-color:#935632;color:white}.button span{font-size:22px;line-height:1}.button.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.button.light:hover{background:#e8d2c2;border-color:#e8d2c2}.button.small{padding:11px 17px;gap:22px}.eyebrow{display:block;font-size:11px;letter-spacing:.16em;font-weight:700;line-height:1.5;margin-bottom:25px}.hero{height:740px;min-height:620px;max-height:900px;position:relative;color:white;overflow:hidden}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 55%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,24,21,.85),rgba(10,24,21,.28) 80%),linear-gradient(0deg,rgba(10,24,21,.7),transparent 30%)}.hero-content{position:relative;z-index:1;padding:85px 6.5%}.hero h1{font-size:clamp(70px,8vw,122px);font-weight:500;line-height:.98}.hero h1 em{font-style:normal;color:var(--copper)}.hero p{color:#e8ebe7;font-size:20px;line-height:1.5;margin:28px 0 30px}.hero .eyebrow{color:#dce3dc}.hero-bottom{position:absolute;bottom:24px;left:6.5%;right:6.5%;z-index:1;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff50;padding-top:20px;font-size:10px;letter-spacing:.12em}.hero-bottom a{font-size:13px;letter-spacing:0}.section{padding:95px 6.5%}.intro{display:grid;grid-template-columns:1fr 1fr;gap:10%;border-bottom:1px solid var(--line)}.intro .lead{margin-top:0}.lead{font-size:24px;line-height:1.5;color:var(--ink)}.text-link{display:inline-block;font-weight:700;border-bottom:1px solid var(--copper);font-size:14px;padding:5px 0}.section-top{display:flex;justify-content:space-between;align-items:end;gap:80px;margin-bottom:55px}.section-top>p{max-width:360px;font-size:16px}.services{background:#edf0e9}.service-row{display:grid;grid-template-columns:65px 1fr 40px;gap:25px;align-items:start;border-top:1px solid #bcc5ba;padding:28px 5px}.service-row:last-child{border-bottom:1px solid #bcc5ba}.service-row h3{font-size:30px;letter-spacing:-.035em}.service-row p{font-size:14px;line-height:1.6;max-width:650px;margin:12px 0 0}.number{color:var(--copper);font-size:12px;letter-spacing:.06em;line-height:2}.arrow{font-size:30px;line-height:1}.service-row:hover h3{color:#965b38}.service-row:hover .arrow{transform:translate(3px,-3px)}.feature{display:grid;grid-template-columns:1fr 1fr;background:#252e28;color:white}.feature>img{width:100%;height:100%;min-height:620px;object-fit:cover}.feature>div{padding:85px 13%;align-self:center}.feature p{color:#d2d8d0;font-size:16px}.feature .text-link{color:#f1d0b8}.feature .eyebrow{color:#d3a989}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:38px 26px}.gallery figure{margin:0}.gallery img{width:100%;height:340px;object-fit:cover;transition:transform .3s}.gallery .photo{border:0;padding:0;background:#e5e8e1;width:100%;overflow:hidden;position:relative;cursor:zoom-in}.photo:hover img{transform:scale(1.025)}.photo span{position:absolute;bottom:16px;right:16px;background:var(--paper);padding:6px 13px;font-size:12px}.gallery figcaption{font-size:15px;padding-top:12px;font-weight:600}.alliance{background:#e6ddd1;display:grid;grid-template-columns:1fr 1fr;gap:10px 10%}.alliance>.eyebrow{grid-column:1/-1}.alliance .lead{margin-top:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.steps article{border-top:1px solid var(--line);padding-top:20px}.steps span{font-size:11px;letter-spacing:.12em;color:#94613e}.steps h3{font-size:25px;margin-top:26px}.steps p{font-size:15px}.closing{background:#b8734d;color:#fff;padding:75px 6.5%;display:flex;align-items:center;justify-content:space-between;gap:35px}.closing p{color:#fff0e7;font-size:16px}.closing .eyebrow{color:#fff0e7}footer{padding:65px 6.5% 25px;background:#1c241f;color:#d5dcd3;display:grid;grid-template-columns:2fr 1fr 1.6fr 1fr;gap:40px;font-size:13px}footer h3{font-size:12px;letter-spacing:.08em;font-family:inherit;font-weight:600;margin-bottom:20px;color:#c0a58e}footer a{display:block;margin:9px 0}footer p{color:#b4bfb3;font-size:12px}.footer-name{font-size:29px;font-weight:800;letter-spacing:-.06em;color:#e8b48e}.footer-name span{font-size:10px;display:block;letter-spacing:.37em;line-height:1}.fine{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #ffffff20;padding-top:20px;font-size:11px;color:#a5afa4}.page-head{padding-top:90px;padding-bottom:70px}.page-head h1{font-size:clamp(48px,6.3vw,92px)}.page-head .lead{max-width:680px;margin-top:32px}.service-hero{display:grid;grid-template-columns:1.08fr 1fr}.service-hero>div{padding:50px 10% 75px 12%}.breadcrumb{font-size:12px;display:block;margin-bottom:50px;color:var(--muted)}.service-hero h1{font-size:clamp(45px,5vw,75px)}.service-hero .eyebrow{color:#945a38}.service-intro{font-size:26px;color:var(--ink);line-height:1.35}.service-hero>div>p:not(.service-intro){font-size:16px;margin-bottom:30px}.service-hero>img{width:100%;height:100%;max-height:800px;object-fit:cover}.service-body{display:grid;grid-template-columns:1fr 2fr;gap:12%;border-top:1px solid var(--line)}.service-body aside h3{font-size:30px}.service-body aside p{font-size:14px}.topics article{display:grid;grid-template-columns:30px 1fr;gap:20px;margin-bottom:40px;padding-bottom:25px;border-bottom:1px solid var(--line)}.topics h2{font-size:30px;letter-spacing:-.035em}.topics p{font-size:16px}.faq{display:grid;grid-template-columns:1fr 1.6fr;gap:10%;background:#edf0e9}.faq h2{font-size:45px}details{border-bottom:1px solid #bdc6ba}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:23px 0;font-weight:600;font-size:17px;line-height:1.5}summary::-webkit-details-marker{display:none}details[open] summary span{transform:rotate(45deg)}details p{font-size:15px;margin-top:0;padding-right:25px}.related>div{display:grid;grid-template-columns:1fr 1fr;gap:10px 40px}.related a{padding:15px 0;border-bottom:1px solid var(--line);font-size:16px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-top:25px}.contact-card .eyebrow{margin-top:30px;margin-bottom:10px}.big-contact{font-size:35px;letter-spacing:-.04em}.email-contact{font-size:24px;word-break:break-word}.contact-card p{font-size:16px}.enquiry{background:#edf0e9;padding:40px}.enquiry h2{font-size:32px}.enquiry>p{font-size:14px}label{display:block;font-size:13px;font-weight:600;margin-top:18px}input,select,textarea{display:block;width:100%;padding:12px;border:1px solid #bac3b8;background:#fff;color:var(--ink);border-radius:0;margin-top:6px;font-size:16px}textarea{resize:vertical}form .button{margin-top:25px;width:100%}#form-status{font-size:13px}.skip{position:absolute;top:-100px;z-index:100;background:white;padding:15px}.skip:focus{top:10px}.lightbox{border:0;background:var(--paper);padding:15px;max-width:90vw;max-height:90vh}.lightbox::backdrop{background:#0b130de8}.lightbox img{max-height:72vh;width:auto;object-fit:contain;margin:auto}.lightbox button{display:block;margin:0 0 10px auto;background:none;border:0;cursor:pointer}.lightbox p{margin:10px 0 0;font-size:14px}@media(min-width:1600px){header,.section,.closing,footer{padding-left:max(6.5%,calc((100vw - 1400px)/2));padding-right:max(6.5%,calc((100vw - 1400px)/2))}}@media(max-width:1000px){nav{gap:18px}.brand{width:160px}.button.small{display:none}.section{padding:70px 6%}.feature>div{padding:55px 10%}.feature>img{min-height:500px}.hero{height:700px}.service-hero>div{padding:40px 10% 55px}.service-body{gap:7%}footer{grid-template-columns:1.5fr 1fr 1.5fr}.contact-grid{gap:6%}.enquiry{padding:28px}.gallery img{height:270px}}@media(max-width:680px){body{font-size:16px}header{height:82px;padding:15px 6%}.brand{width:155px}.menu{display:block;background:none;border:1px solid #abb2a8;padding:7px 12px;font-size:13px}nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--paper);padding:25px 6%;box-shadow:0 10px 20px #0002}nav.open{display:flex;flex-direction:column;align-items:start;gap:20px}.hero{height:690px;min-height:0}.hero-content{padding:82px 6%}.hero h1{font-size:73px}.hero p{font-size:18px}.hero .eyebrow{max-width:260px}.hero>img{object-position:65% center}.hero-bottom{left:6%;right:6%;font-size:8px;gap:10px}.hero-bottom>a{font-size:11px}.section{padding:60px 6%}.intro,.service-body,.faq,.contact-grid{grid-template-columns:1fr;gap:35px}.section-top{display:block;margin-bottom:35px}.section-top>p{margin-top:25px}.lead{font-size:21px}.service-row{grid-template-columns:25px 1fr 23px;gap:12px;padding:25px 0}.service-row h3{font-size:24px}.service-row p{font-size:13px}.arrow{font-size:25px}.feature{grid-template-columns:1fr}.feature>img{height:380px;min-height:0}.feature>div{padding:50px 6%}.gallery{gap:25px 14px}.gallery img{height:210px}.photo span{display:none}.gallery figcaption{font-size:12px}.alliance{grid-template-columns:1fr;gap:12px}.alliance h2{margin-bottom:15px}.steps{grid-template-columns:1fr;gap:20px}.steps h3{margin-top:15px}.closing{padding:55px 6%;display:block}.closing .button{margin-top:15px}.closing h2{font-size:45px}footer{grid-template-columns:1fr 1fr;padding:50px 6% 25px;gap:30px 15px}footer>div:first-child{grid-column:1/-1}.fine{gap:15px;font-size:10px}.service-hero{grid-template-columns:1fr}.service-hero>div{padding:30px 6% 50px}.service-hero>img{height:330px}.service-hero h1{font-size:52px}.breadcrumb{margin-bottom:35px}.service-intro{font-size:23px}.service-body aside{border-bottom:1px solid var(--line);padding-bottom:30px}.topics article{gap:10px;grid-template-columns:20px 1fr}.topics h2{font-size:27px}.faq h2{font-size:38px}.related>div{grid-template-columns:1fr}.page-head{padding-top:60px}.contact-grid{padding-top:0}.big-contact{font-size:31px}.enquiry{padding:27px 20px}.desktop{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* October 16: simpler navigation, original branding and full project gallery. */
.brand img,.footer-brand img{height:auto;background:transparent}
.footer-brand{width:230px;max-width:100%;display:block}
.footer-brand img{width:100%}
.connection-link{display:inline-flex;align-items:center;gap:28px;font-size:20px;font-weight:600;padding:14px 0;color:white}
.connection-link span{font-size:32px;line-height:1}
.connection-link:hover{color:#202724}
.social-links{display:flex;gap:20px;align-items:center}
.social-links a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0;color:#e5b28e}
.social-links svg{width:27px;height:27px;display:block}
.social-links a:hover{color:white}
.gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:24px}
.gallery-controls p{margin:0;font-size:14px}
.gallery-arrows{display:flex;gap:10px;flex-shrink:0}
.gallery-arrows button{width:46px;height:46px;border:1px solid #aeb6ab;background:transparent;color:var(--ink);font-size:25px;cursor:pointer}
.gallery-arrows button:hover:not(:disabled){background:var(--ink);color:white}
.gallery-arrows button:disabled{opacity:.3;cursor:default}
.gallery{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;padding:0 0 20px;overscroll-behavior-x:contain}
.gallery .project-card{flex:0 0 calc((100% - 48px)/3);min-width:0;margin:0;scroll-snap-align:start}
.gallery .photo{display:block;height:350px;background:#e7e8e1}
.gallery .photo img{width:100%;height:100%;object-fit:contain}
.gallery figcaption{display:flex;justify-content:space-between;gap:12px;line-height:1.5;font-size:14px;padding-top:14px}
.gallery figcaption span{font-size:11px;font-weight:400;color:var(--muted);padding-top:2px}
.lightbox{width:min(1100px,94vw);max-width:94vw;max-height:94dvh}
.lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}
.lightbox .lightbox-title{font-size:17px;margin:0;color:var(--ink)}
.lightbox .lightbox-close{margin:0;white-space:nowrap;padding:8px}
.lightbox img{max-width:100%;max-height:70dvh}
.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:15px}
.lightbox-controls button{display:inline-block;margin:0;border:1px solid var(--line);padding:8px 16px;font-size:20px}
.lightbox-controls p{margin:0;min-width:65px;text-align:center}
@media(max-width:1000px){.gallery .project-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:680px){.gallery{gap:16px}.gallery .project-card{flex-basis:86%}.gallery .photo{height:320px}.gallery-controls{gap:15px}.gallery-controls p{font-size:12px}.gallery-arrows button{width:40px;height:40px}.connection-link{margin-top:12px;font-size:18px}.footer-brand{width:220px}.social-links{gap:14px}.lightbox img{max-height:65dvh}}
@media(prefers-reduced-motion:reduce){.gallery{scroll-behavior:auto}}

.contact-icons{display:flex;gap:18px;align-items:center;margin-bottom:16px}.contact-icons a{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;margin:0;color:#e5b28e}.contact-icons svg{display:block;width:27px;height:27px}.contact-icons a:hover{color:#fff}

.contact-card address{font-style:normal;font-size:20px;line-height:1.6;margin:14px 0}

.link-icon{display:inline-block;width:27px;height:27px;flex-shrink:0;vertical-align:middle;margin-left:10px}.text-link .link-icon{margin-top:-3px}.connection-link{flex-shrink:0;white-space:nowrap;gap:20px}.connection-link .link-icon{width:38px;height:38px;margin:0}.service-plus{font-size:32px;line-height:1;font-weight:400}.service-row:hover .service-plus{color:var(--copper)}

.solid-icon{stroke:none;fill:currentColor}.handshake-icon{width:34px;height:27px}.connection-link .plug-icon{width:43px;height:43px}

/* Service pages share the homepage's full photographic banner treatment. */
.service-banner{position:relative;display:block;min-height:620px;overflow:hidden;background:#202724;color:#fff}
.service-banner>img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center}
.service-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,25,19,.94),rgba(12,25,19,.75) 45%,rgba(12,25,19,.15))}
.service-banner>div{position:relative;z-index:1;padding:45px 6.5% 70px;max-width:820px}
.service-banner .breadcrumb{color:#d4dcd3;margin-bottom:60px}
.service-banner .eyebrow{color:#e5b28e}
.service-banner h1{font-size:clamp(50px,5.7vw,86px);line-height:1.04}
.service-banner .service-intro{color:#efc4a5;font-size:26px;max-width:580px;margin-top:28px}
.service-banner>div>p:not(.service-intro){color:#f0f2ed;font-size:18px;max-width:570px;margin-bottom:0}
.service-directory{background:linear-gradient(90deg,rgba(12,25,19,.95),rgba(12,25,19,.6)),url('/assets/service-generic-commercial.jpg') center/cover;color:#fff;padding-top:85px;padding-bottom:85px}
.service-directory .eyebrow{color:#e5b28e}.service-directory .lead{color:#e8ede6}
@media(max-width:680px){.service-banner{min-height:590px}.service-banner>div{padding:30px 6% 55px}.service-banner .breadcrumb{margin-bottom:45px}.service-banner h1{font-size:50px}.service-banner .service-intro{font-size:23px}.service-banner>div>p:not(.service-intro){font-size:16px}.service-banner>img{height:100%;object-position:65% center}.service-banner:after{background:linear-gradient(90deg,rgba(12,25,19,.93),rgba(12,25,19,.65))}.service-directory{padding:65px 6%}}

.uploaded-icon{object-fit:contain;width:64px;height:auto;max-height:none;vertical-align:middle}.text-link .handshake-upload{width:70px;height:auto}.connection-link .plug-upload{width:64px;height:auto;margin:0}

.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}form .button:disabled{opacity:.6;cursor:default}

.reviews{padding:85px 0;background:#f1f3f3;border-top:1px solid #d8dcdf}.reviews .section-top{align-items:center;margin-bottom:30px}.reviews h2{font-size:clamp(34px,4vw,52px)}.review-meta{text-align:right}.review-meta strong{font-size:25px}.review-meta p{font-size:14px;color:#62676b;margin:8px 0 0}.review-stars{color:#9c7200;letter-spacing:3px;font-size:18px}.review-track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#a8b0b4 transparent;padding:5px 0 20px}.review-card{flex:0 0 43%;min-width:0;background:#fff;border:1px solid #d8dcdf;padding:30px;scroll-snap-align:start;display:flex;flex-direction:column;gap:23px}.review-card blockquote{font-size:23px;line-height:1.45;letter-spacing:-.025em;margin:0;flex:1}.review-author{display:flex;justify-content:space-between;gap:18px;align-items:end}.review-author strong{font-size:16px}.review-author span{display:block;font-size:14px;color:#62676b;margin-top:6px}.review-source{font-size:14px;text-decoration:underline;color:#62676b}.review-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:17px}.review-buttons{display:flex;gap:10px}.review-buttons button{background:#fff;border:1px solid #b9bfc2;padding:11px 15px;font-size:14px;cursor:pointer}.review-buttons button:hover{background:#111315;color:#fff}.all-reviews{font-size:14px;font-weight:bold;text-decoration:underline;text-underline-offset:5px}.review-note{font-size:12px;line-height:1.5;color:#62676b;margin:24px 0 0}@media(max-width:600px){.reviews{padding:65px 0}.review-meta{text-align:left;margin-top:22px}.review-card{flex-basis:90%;padding:25px}.review-card blockquote{font-size:22px}.review-controls{align-items:flex-start;flex-direction:column}.review-buttons{flex-wrap:wrap}}
.review-track{align-items:flex-start}.review-card{min-height:350px}.review-body{flex:1}.review-card .review-text{font-size:18px;line-height:1.65;letter-spacing:0;white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}.review-card.expanded .review-text{display:block;overflow:visible}.review-more{display:block;border:0;background:none;padding:0;margin:15px 0 0;text-decoration:underline;text-underline-offset:4px;font-size:14px;font-weight:700;cursor:pointer;color:#111315}.review-more[hidden]{display:none}@media(max-width:600px){.review-card .review-text{font-size:17px}.review-card{min-height:350px}}
.reviews{background:#edf0e9;padding:85px 6.5%}.reviews .review-meta{flex-shrink:0}.review-card{border-color:var(--line)}.review-stars{color:#986138}.review-buttons button{color:var(--ink)}@media(max-width:680px){.reviews{padding:65px 6%}.review-meta{text-align:left;margin-top:25px}.review-card{flex-basis:90%}.reviews .section-top{margin-bottom:30px}}
