:root{--brand-blue:#4381cf;--link:#0d6efd;--ink:#212529;--dkgrey:#414042;--ltgrey:#e7e7e7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.5;background:#fff url('assets/background.png') no-repeat center -400px;background-size:100%;background-attachment:fixed}button,input,textarea,select{font:inherit}a{color:var(--link);text-decoration:underline}a:hover{color:#0a58ca}a,button,input,textarea{outline-offset:4px}h1,h2,h3,h5{font-weight:500;line-height:1.2;margin:0 0 8px;letter-spacing:normal}h1{font-size:40px}h2{font-size:32px}h3{font-size:28px}h5{font-size:20px}p{font-size:18px;margin:0 0 16px;line-height:1.5}.wrapper{width:100%;max-width:1920px;padding-left:60px;padding-right:60px;margin:auto}header{display:flex;justify-content:space-between;align-items:flex-start;width:100%;max-width:1920px;padding:0 60px;margin:auto;position:relative;min-height:140px;z-index:5}.brand{display:block;padding-top:20px;flex-shrink:0;line-height:0}.company-logo{width:200px;height:auto;display:block;overflow:visible}nav{display:flex;align-items:center;padding-top:50px;gap:0}nav a{padding:4px 10px;text-decoration:none;color:var(--dkgrey);font-size:16px;line-height:24px}nav a:hover,nav a:first-child{color:var(--brand-blue)}.menu{display:none}.banner{padding:0 60px;height:480px;width:100%;max-width:1920px;margin:auto}.banner-image{height:100%;position:relative;background:url('assets/home.jpg') center left/100% no-repeat;clip-path:polygon(0% 100%,0 270px,250px 0,100% 0,100% 100%)}.banner-content{position:absolute;right:8%;top:50%;transform:translateY(-50%);width:300px}.grey-box{padding:10px 15px;margin-bottom:20px;background:#0006;color:white}.grey-box h2{font-size:32px}.grey-box h3{font-size:20px}.blue-box{display:block;padding:20px 15px;background:#4381cf99;color:white;font-size:20px;line-height:24px;text-align:center}.blue-box:hover{color:white;background:#4381cfe6}.welcome{max-width:1200px;text-align:center;padding-top:40px;padding-bottom:40px}.welcome h1{margin-bottom:40px}.welcome p{margin:0}.purpose{display:grid;grid-template-columns:1fr 1fr;margin:10px auto 40px}.purpose-image{background:url('assets/purpose.jpg') center/cover no-repeat;min-height:460px}.purpose-copy{padding:30px;background:#fff}.purpose-copy article{margin-bottom:30px}.purpose-copy article:last-child{margin:0}.purpose h3{margin-bottom:10px}.enquiry-banner{background:var(--brand-blue);padding:40px 120px;margin:40px auto;max-width:1920px;text-align:center}.enquiry-banner a{text-decoration:none;color:#fff}.enquiry-banner h3{margin-bottom:25px}.enquiry-banner h3:last-child{margin-bottom:0}.about{max-width:1200px;padding-top:40px;padding-bottom:40px;text-align:center}.about h1{margin-bottom:40px}.services{background:var(--ltgrey);padding:50px 0}.services>.wrapper>h2{text-align:center;margin-bottom:35px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;text-align:center}.service-grid h2{margin-bottom:24px}.service-grid a{font-size:18px}.area{padding-top:50px;padding-bottom:35px;text-align:center}.area h2{margin-bottom:22px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:20px;padding-bottom:50px}.map-panel{min-height:450px}.map-panel iframe{display:block;width:100%;height:100%;min-height:450px;border:0}form{margin:0;padding:0;background:transparent;border:0;min-width:0}form h2{margin-bottom:8px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:16px;font-weight:400;margin:0 0 16px}input,textarea{display:block;width:100%;padding:6px 12px;line-height:24px;font-size:16px;font-weight:400;color:var(--ink);background:#fff;border:1px solid #dee2e6;border-radius:6px;margin-top:8px}input{height:38px}textarea{height:134px;resize:vertical}input:focus,textarea:focus{border-color:#86b7fe;box-shadow:0 0 0 4px #0d6efd40;outline:none}.button{display:inline-block;font-size:16px;line-height:24px;padding:6px 12px;border:1px solid var(--link);border-radius:6px;background:var(--link);color:#fff;text-align:center;text-decoration:none;font-weight:400;cursor:pointer}.button:hover{color:#fff;background:#0b5ed7;border-color:#0a58ca}.submit{display:block;width:100%}.honey{display:none}.form-small{font-size:12px;margin-top:12px;margin-bottom:0;color:#596168}.company-footer{border-top:3px solid var(--dkgrey);background:#fff;padding:40px 60px 25px}.footer-columns{max-width:1800px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:60px}.company-footer h2{text-align:center;margin-bottom:20px}.footer-contact,.footer-links{text-align:center}.contact-item{display:flex;flex-direction:column;gap:16px;align-items:center;margin-bottom:40px}.contact-item a{font-size:18px}.contact-icon{font-size:32px;line-height:1.2;color:var(--dkgrey)}.instagram-icon{width:32px;height:32px;fill:none;stroke:var(--dkgrey);stroke-width:2}.footer-links>a{display:block;font-size:16px;margin-bottom:16px}.footer-hours table{width:100%;max-width:300px;margin:auto;border-collapse:collapse;font-size:16px}.footer-hours th{font-weight:400;text-align:left}.footer-hours td{text-align:right;white-space:nowrap}.footer-hours td,.footer-hours th{padding:2px 0}.footer-hours .button{display:block;width:max-content;margin:40px auto 0}.footer-bottom{text-align:center;padding-top:40px}.footer-bottom p{font-size:16px;font-weight:500;line-height:1.3;margin:0 0 4px}.footer-bottom>a{display:inline-block;font-size:14px;margin-top:18px}dialog{max-width:580px;width:90%;border:1px solid #ced4da;border-radius:6px;padding:30px;color:var(--ink);background:#fff}dialog::backdrop{background:#0007}dialog p{font-size:16px}.close{float:right;font-size:26px;border:0;background:none;cursor:pointer}@media(min-width:1920px){.banner{height:600px}}@media(max-width:1199px){h1{font-size:calc(1.375rem + 1.5vw)}h2{font-size:calc(1.325rem + .9vw)}h3{font-size:calc(1.3rem + .6vw)}.service-grid{gap:30px}.contact{gap:40px}.footer-columns{gap:30px}}@media(max-width:991px){body{background-size:120%}.wrapper{padding-left:40px;padding-right:40px}header{padding:0 40px;min-height:130px}.company-logo{width:185px}nav{display:none;position:absolute;right:40px;top:100px;padding:20px;background:var(--ltgrey);box-shadow:0 8px 20px #0003}nav.open{display:flex;flex-direction:column;align-items:flex-start}.menu{display:block;margin-top:35px;background:none;border:0;font-size:36px;color:var(--dkgrey);cursor:pointer}.banner{padding:0 40px}.banner-content{right:5%}.enquiry-banner{padding:40px}.company-footer{padding:40px 40px 25px}}@media(max-width:767px){body{background-position-y:-100px}.wrapper{padding-left:20px;padding-right:20px}header{padding:0 20px;min-height:115px}.company-logo{width:165px}.menu{margin-top:25px}.banner{height:350px;padding:0 10px}.banner-image{background-size:cover;clip-path:polygon(0 100%,0 150px,150px 0,100% 0,100% 100%)}.banner-content{width:240px;right:20px}.grey-box h2{font-size:25px}.grey-box h3{font-size:18px}.blue-box{font-size:18px;padding:14px}.welcome{padding-top:30px;padding-bottom:30px}.welcome h1,.about h1{margin-bottom:25px}p{font-size:14px}.purpose{grid-template-columns:1fr}.purpose-image{min-height:300px}.purpose-copy{padding:25px 15px}.purpose h5{font-size:18px}.enquiry-banner{padding:30px 20px}.enquiry-banner h3{font-size:22px}.about{padding-top:20px;padding-bottom:30px}.services{padding:35px 0}.service-grid{grid-template-columns:1fr;gap:30px}.service-grid h2{margin-bottom:12px}.service-grid a{font-size:16px}.contact{grid-template-columns:1fr;gap:40px;padding-top:10px;padding-bottom:40px}.map-panel,.map-panel iframe{min-height:340px;height:340px}.form-row{gap:20px}label,input,textarea{font-size:16px}.company-footer{padding:35px 20px 25px}.footer-columns{grid-template-columns:1fr;gap:35px}.company-footer h2{font-size:28px}.contact-item{margin-bottom:25px}.footer-hours{max-width:340px;width:100%;margin:auto}.footer-hours .button{margin-top:25px}.footer-bottom{padding-top:35px}.footer-bottom p{font-size:14px}}@media(max-width:380px){.form-row{grid-template-columns:1fr;gap:0}.banner-content{right:10px;width:220px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Compact sizing and the original site's tick-box treatment. */
body{font-size:16px}h1{font-size:32px}h2{font-size:26px}h3{font-size:22px}h5{font-size:15px}p{font-size:16px;line-height:1.5}header{min-height:125px}.company-logo{width:180px}nav{padding-top:42px}.banner{height:400px}.banner-content{width:280px}.grey-box h2{font-size:26px}.grey-box h3,.blue-box{font-size:18px}.welcome{padding-top:30px;padding-bottom:30px}.welcome h1,.about h1{margin-bottom:25px}.purpose{margin-top:0;margin-bottom:30px;align-items:stretch}.purpose-image{min-height:360px}.purpose-copy{padding:30px;min-width:0}.list-big-tick{list-style:none;margin:0;padding:0 0 0 64px}.list-big-tick li{position:relative;margin-bottom:30px}.list-big-tick li:last-child{margin-bottom:0}.list-big-tick li:before{content:"";position:absolute;width:40px;height:40px;left:-64px;top:0;background:url('assets/tick-box.svg') center/contain no-repeat}.purpose h3{font-size:22px;line-height:1.35;margin-bottom:10px}.purpose .list-big-tick p{font-size:15px;font-weight:400;line-height:1.5;margin:0;overflow-wrap:break-word}.enquiry-banner{padding:30px 90px;margin:30px auto}.enquiry-banner h3{font-size:22px;margin-bottom:16px}.about{padding-top:30px;padding-bottom:30px}.services{padding:35px 0}.service-grid h2{margin-bottom:16px}.service-grid a{font-size:16px}.area{padding-top:35px;padding-bottom:25px}.company-footer h2{font-size:26px}.contact-item a{font-size:16px}.footer-bottom{padding-top:30px}@media(min-width:1920px){.banner{height:480px}}@media(max-width:767px){h1{font-size:28px}h2{font-size:25px}h3{font-size:21px}p{font-size:14px}header{min-height:110px}.company-logo{width:160px}.banner{height:320px}.banner-content{width:230px}.grey-box h2{font-size:23px}.grey-box h3,.blue-box{font-size:16px}.purpose-image{min-height:250px}.purpose-copy{padding:25px 15px}.list-big-tick{padding-left:50px}.list-big-tick li:before{width:32px;height:32px;left:-50px}.purpose h3{font-size:21px}.purpose .list-big-tick p{font-size:14px}.enquiry-banner{padding:25px 20px}.enquiry-banner h3{font-size:20px}.company-footer h2{font-size:25px}} 

.terms-page{padding-top:40px;padding-bottom:40px}.terms-page h1{text-align:center;margin-bottom:44px}.terms-page h3{margin:24px 0 10px}.terms-page p{margin-bottom:16px}.terms-page+#contact{padding-top:35px}@media(max-width:767px){.terms-page{padding-top:30px;padding-bottom:25px}.terms-page h1{margin-bottom:30px}}

.service-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;margin:0 0 20px}.image-note{text-align:center;font-size:12px;color:#666;margin:28px 0 0}.area p{max-width:1100px;margin:0 auto 16px}

/* Project photographs supplied by ULC. */
.projects{padding-top:40px;padding-bottom:35px;text-align:center;background:#fff}.projects h2{margin-bottom:16px}.projects-intro{margin:0 auto 28px;max-width:800px}.project-gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:28px}.project-gallery figure{flex:0 1 calc((100% - 56px)/3);min-width:0;margin:0}.project-gallery a{display:block}.project-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.project-gallery figcaption{padding-top:10px;font-size:16px;color:var(--ink)}.project-gallery a:hover img{opacity:.9}.service-photo{height:auto;aspect-ratio:3/2;object-fit:cover}@media(max-width:991px){.project-gallery figure{flex-basis:calc((100% - 28px)/2)}}@media(max-width:575px){.projects{padding-top:30px;padding-bottom:25px}.project-gallery{gap:24px}.project-gallery figure{flex-basis:100%}.project-gallery figcaption{font-size:14px}}

.content-page{max-width:1200px;padding-top:40px;padding-bottom:45px}.content-page>h1{text-align:center;margin-bottom:35px}.content-page h2{margin:30px 0 16px;font-size:24px}.content-page p,.content-page li{font-size:16px;line-height:1.6}.content-page li{margin-bottom:8px}.content-page ul{margin-top:0;margin-bottom:20px}.policy-summary{padding:20px 25px;background:#f4f4f4;border-left:4px solid var(--brand-blue);margin:30px 0}.policy-summary h2{margin-top:0}.about-panel{background:white;padding:30px;border:15px solid var(--ltgrey)}.about-lead{font-size:20px!important;line-height:1.5!important;margin-bottom:30px}.about-principles li{margin-bottom:26px;min-height:40px}.about-accordions{margin-top:35px}.about-accordions details{border:1px solid #d4d7db;border-radius:5px;margin-bottom:12px;overflow:hidden}.about-accordions summary{padding:14px 18px;font-size:20px;font-weight:500;cursor:pointer;background:#f3f3f3}.about-accordions details[open]>summary{background:var(--brand-blue);color:white}.about-accordions details>div{padding:20px}.about-accordions details>div>:last-child{margin-bottom:0}.sitemap-list{padding-left:24px}.sitemap-list>li{margin-bottom:15px}.sitemap-list ul{padding-top:12px}.sitemap-page{min-height:500px}@media(max-width:767px){.content-page{padding-top:30px;padding-bottom:30px}.content-page p,.content-page li{font-size:14px}.content-page h2{font-size:21px}.policy-summary{padding:16px}.about-panel{padding:20px 15px;border-width:8px}.about-lead{font-size:18px!important}.about-accordions summary{font-size:18px}.about-accordions details>div{padding:16px}}

/* Opening banner entrance; keep the final layout unchanged. */
@keyframes banner-slide-in{from{opacity:0;transform:translateX(110%)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:no-preference){.banner-content .grey-box{animation:banner-slide-in .85s cubic-bezier(.22,1,.36,1) both}.banner-content .blue-box{animation:banner-slide-in .85s cubic-bezier(.22,1,.36,1) .15s both}}
.projects-page h1{margin-bottom:20px}.projects-enquiry{margin:32px 0 0}
nav a[aria-current="page"]{color:var(--brand-blue)}

.form-status{font-size:14px;margin-top:12px}.spam-check{margin:12px 0}.submit:disabled{opacity:.6;cursor:wait}
