@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{--navy:#020042;--navy-2:#070858;--ink:#101127;--muted:#6b6d7e;--paper:#f6f6f4;--white:#fff;--line:#dedfe5;--accent:#c9c9cf;--serif:Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif;--display:'Manrope','DM Sans',Arial,sans-serif;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;color:var(--ink);font-family:var(--sans);background:var(--white);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.skip-link{position:absolute;left:-999px;top:8px;z-index:100;background:white;padding:10px}.skip-link:focus{left:8px}.topline{height:36px;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;gap:22px;font-size:10px;letter-spacing:.16em;font-weight:600}.topline a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}.topline-location{color:#5f6174}.site-header{height:112px;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.18);padding:0 max(calc((100vw - var(--max))/2),5vw);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:10}.brand{display:flex;align-items:center;width:190px;height:100px}.brand img{display:block;width:100%;height:94px;object-fit:contain}.primary-nav{display:flex;gap:38px;align-items:center;font-size:13px;font-weight:600}.primary-nav>a:not(.nav-call){color:#fff;transition:color .2s}.primary-nav>a:not(.nav-call):hover{color:#777997}.nav-call{background:#fff;color:var(--navy);padding:13px 20px;letter-spacing:.02em}.nav-call span{padding-left:12px}.menu-toggle{display:none}.hero{min-height:680px;height:min(760px,calc(100vh - 124px));position:relative;display:flex;align-items:center;background:var(--navy) url('assets/hero-roof.png') center 48%/cover no-repeat;color:#fff;overflow:hidden}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,8,62,.94) 0%,rgba(7,8,62,.84) 31%,rgba(7,8,62,.38) 60%,rgba(7,8,62,.02) 100%)}.hero-content{position:relative;width:min(650px,90%);margin-left:max(calc((100vw - var(--max))/2),8vw);padding:35px 0 74px}.eyebrow,.section-label{font-size:10px;letter-spacing:.17em;font-weight:700}.eyebrow{display:flex;align-items:center;gap:12px;color:#e0e0e5}.eyebrow-line{width:30px;height:1px;background:#bfc0ca}.hero h1{font:800 clamp(47px,6.7vw,88px)/1.02 var(--display);letter-spacing:-.065em;margin:30px 0 22px}.hero h1 em,.contact h2 em{font-family:var(--serif);font-weight:400;letter-spacing:-.045em}.hero-copy{font-size:16px;max-width:430px;color:#e2e2eb;line-height:1.8;margin:0 0 30px}.hero-actions{display:flex;gap:12px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:15px 20px;border:1px solid transparent;font-size:12px;letter-spacing:.04em;font-weight:700;min-height:52px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-light{background:#fff;color:var(--navy)}.button-light:hover{background:#e9e9ef}.button-ghost{border-color:rgba(255,255,255,.45);color:#fff}.button-ghost:hover{background:rgba(255,255,255,.12)}.button-icon{font-size:17px}.hero-note{margin-top:42px;color:#d5d6df;font-size:11px;letter-spacing:.04em}.check-mark{display:inline-flex;border:1px solid #777890;width:18px;height:18px;align-items:center;justify-content:center;margin-right:8px;color:#fff}.hero-caption{position:absolute;right:5vw;bottom:32px;display:flex;gap:14px;align-items:center;color:#f0f0f4;font-size:9px;letter-spacing:.16em}.hero-caption span+span{color:#cbccd5}.scroll-cue{position:absolute;bottom:30px;left:max(calc((100vw - var(--max))/2),5vw);display:flex;align-items:center;gap:11px;font-size:9px;letter-spacing:.18em}.scroll-cue span{height:34px;width:1px;background:rgba(255,255,255,.55)}.section-wrap{max-width:var(--max);margin:auto;padding-left:32px;padding-right:32px}.intro{padding-top:105px;padding-bottom:115px}.section-label{display:flex;gap:15px;align-items:center;color:#77798a}.section-label>span{color:#9698a4;font-size:10px}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:35px;align-items:start}.intro h2,.services h2,.approach h2,.faq h2,.area-card h2,.contact h2{font:700 clamp(34px,4.4vw,58px)/1.13 var(--display);letter-spacing:-.06em;margin:0}.intro h2 span{font-family:var(--serif);font-weight:400;color:#77798a;letter-spacing:-.045em}.intro-text{max-width:450px;padding-top:8px}.intro-text p{color:#666878;margin:0 0 18px;font-size:15px;line-height:1.85}.text-link{display:inline-flex;gap:25px;align-items:center;border-bottom:1px solid var(--navy);padding:9px 0;font-size:12px;font-weight:700;letter-spacing:.04em;margin-top:8px}.text-link span{font-size:17px}.services{max-width:none;background:var(--navy);position:relative;overflow:hidden;color:#fff;padding-top:89px;padding-bottom:100px}.services:after{content:"";position:absolute;width:74%;height:260px;right:-22%;top:-115px;border:1px solid rgba(220,221,228,.18);border-radius:50%;transform:rotate(-11deg);pointer-events:none}.services>.section-label,.services-heading,.service-layout{position:relative;z-index:1;max-width:var(--max);margin-left:auto;margin-right:auto}.section-label-light{color:#c9cad4}.section-label-light>span{color:#a5a7b7}.services-heading{display:flex;justify-content:space-between;align-items:end;margin-top:31px;margin-bottom:47px;gap:40px}.services-heading h2{font-size:clamp(34px,4.4vw,55px)}.services-heading>p{max-width:385px;color:#c8c9d2;font-size:14px;line-height:1.8;margin:0 0 5px}.service-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:stretch}.service-feature{position:relative;min-height:500px;overflow:hidden;background:#28294e}.service-feature img{height:100%;width:100%;object-fit:cover;position:absolute;inset:0;filter:brightness(.8)}.image-badge{position:absolute;left:25px;top:25px;background:var(--navy);padding:13px 16px;color:white;display:flex;flex-direction:column;font:700 11px var(--display);letter-spacing:.08em}.image-badge small{font:500 7px var(--sans);letter-spacing:.15em;margin-top:4px;color:#c8cad6}.feature-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:19px 22px;background:linear-gradient(transparent,rgba(0,0,0,.45));font-size:9px;letter-spacing:.14em}.service-list{display:flex;flex-direction:column}.service-item{display:grid;grid-template-columns:36px 1fr 20px;gap:15px;align-items:start;padding:18px 0 21px;border-bottom:1px solid rgba(255,255,255,.19)}.service-number{font-size:10px;color:#9b9daf;padding-top:5px}.service-item h3{font:600 18px var(--display);letter-spacing:-.03em;margin:0 0 5px}.service-item p{font-size:12px;color:#c2c3ce;line-height:1.65;margin:0;max-width:370px}.service-arrow{font-size:15px;color:#b6b7c5}.service-cta{display:flex;justify-content:space-between;align-items:center;padding:19px 0;margin-top:auto;font-size:11px;font-weight:600;letter-spacing:.04em;color:#fff}.service-cta span{font-size:17px}.approach{display:grid;grid-template-columns:1fr 1fr;min-height:680px;background:var(--paper)}.approach-photo{background:var(--navy) url('assets/roof-maintenance.png') center/cover no-repeat;min-height:600px}.approach-copy{padding:92px clamp(35px,8vw,130px) 76px max(6vw,50px);max-width:720px}.approach h2{margin-top:31px;font-size:clamp(34px,4vw,51px)}.approach-copy>p{color:#686a79;font-size:14px;line-height:1.8;max-width:430px;margin:20px 0 27px}.steps{list-style:none;padding:0;margin:0 0 28px}.steps li{display:grid;grid-template-columns:35px 1fr;gap:13px;padding:13px 0;border-top:1px solid #d8d9de}.steps li>span{font-size:10px;color:#9294a0;padding-top:4px}.steps strong{font:700 13px var(--display)}.steps p{margin:4px 0 0;color:#777987;font-size:11px}.button-navy{background:var(--navy);color:#fff}.button-navy:hover{background:#20225e}.service-area{padding-top:100px;padding-bottom:100px}.area-card{background:#f1f1ef;display:grid;grid-template-columns:1fr 1fr;min-height:410px;overflow:hidden}.area-copy{padding:60px 30px 55px 60px}.area-card h2{font-size:clamp(34px,4vw,52px);margin:26px 0 15px}.area-card h2 em,.faq h2 em{font:400 1em var(--serif);color:#77798a;letter-spacing:-.04em}.area-copy>p{font-size:13px;color:#696b78;max-width:400px;line-height:1.8;margin:0 0 13px}.area-graphic{position:relative;overflow:hidden;background-color:#111344;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:34px 34px}.coastline{position:absolute;border:1px solid rgba(255,255,255,.3);border-radius:48% 52% 40% 60%;transform:rotate(-18deg)}.coastline-one{width:390px;height:520px;left:4%;top:-20%}.coastline-two{width:250px;height:420px;left:25%;top:-10%;border-color:rgba(255,255,255,.14)}.map-lines{position:absolute;width:140%;height:1px;top:57%;left:-15%;background:rgba(255,255,255,.25);transform:rotate(-24deg);box-shadow:0 28px 0 rgba(255,255,255,.12),0 -35px 0 rgba(255,255,255,.12)}.map-dot{position:absolute;top:46%;left:49%;display:flex;flex-direction:column;color:#fff;z-index:1;font:700 9px var(--sans);letter-spacing:.15em}.map-dot>span{width:12px;height:12px;border:3px solid #fff;border-radius:50%;margin-bottom:12px;box-shadow:0 0 0 8px rgba(255,255,255,.14)}.map-dot small{font-size:7px;letter-spacing:.2em;color:#b6b8ca;margin-top:3px}.map-stamp{position:absolute;right:25px;bottom:22px;border:1px solid rgba(255,255,255,.4);height:63px;width:63px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font:700 14px var(--display)}.map-stamp span{position:absolute;font:500 5px var(--sans);letter-spacing:.08em;top:44px}.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:12%;padding-top:30px;padding-bottom:120px}.faq h2{margin:26px 0 18px}.faq-heading>p{font-size:13px;color:#6b6d7a;max-width:300px;line-height:1.8}.faq-list{padding-top:24px}.faq-list details{border-top:1px solid var(--line);padding:20px 0}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font:600 15px var(--display)}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:20px;color:#77798a;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{max-width:550px;font-size:13px;color:#686a79;line-height:1.8;margin:13px 30px 0 0}.contact{position:relative;overflow:hidden;background:var(--navy);color:#fff;padding:90px 32px 100px}.contact-inner{position:relative;z-index:1;max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr .85fr;gap:13%;align-items:center}.contact h2{font-size:clamp(44px,5.8vw,72px);margin:30px 0 20px}.contact-copy>p{max-width:410px;color:#c6c7d1;font-size:14px;line-height:1.85}.contact-phone{display:inline-flex;align-items:center;gap:16px;margin-top:23px}.phone-symbol{width:42px;height:42px;border:1px solid rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;font-size:20px}.contact-phone small,.contact-phone strong{display:block}.contact-phone small{font-size:8px;color:#aaaebe;letter-spacing:.16em}.contact-phone strong{font:700 24px var(--display);letter-spacing:.01em}.contact-location{font-size:11px;color:#c6c7d1;margin-top:20px}.contact-location span{font-size:17px;margin-right:8px}.enquiry-form{padding:31px 32px;background:#11134d;border:1px solid rgba(255,255,255,.18)}.form-heading{display:flex;justify-content:space-between;color:#a7a9b9;font-size:9px;letter-spacing:.15em;margin-bottom:24px}.enquiry-form label{display:block;font-size:10px;color:#d2d3dc;letter-spacing:.03em;margin:15px 0 6px}.enquiry-form input,.enquiry-form textarea{width:100%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.05);color:#fff;padding:12px 13px;font-size:12px;outline:none;border-radius:0}.enquiry-form input:focus,.enquiry-form textarea:focus{border-color:#fff}.enquiry-form input::placeholder,.enquiry-form textarea::placeholder{color:#9294a8}.enquiry-form textarea{resize:vertical;min-height:90px}.form-submit{width:100%;margin-top:20px;border:0;cursor:pointer}.form-note{font-size:9px;color:#a7a9b9;line-height:1.6;margin:11px 0 0}.contact:before{content:"";position:absolute;left:-260px;bottom:-245px;width:580px;height:350px;border:1px solid rgba(255,255,255,.1);border-radius:50%;transform:rotate(-15deg);pointer-events:none}.contact-pattern{position:absolute;right:-170px;top:-140px;width:590px;height:590px;border:1px solid rgba(255,255,255,.07);border-radius:50%}.contact-pattern:before,.contact-pattern:after{content:"";position:absolute;inset:55px;border:1px solid rgba(255,255,255,.05);border-radius:50%}.contact-pattern:after{inset:115px}.site-footer{min-height:108px;padding:22px max(calc((100vw - var(--max))/2),5vw);display:flex;align-items:center;justify-content:space-between;gap:20px;background:#05062f;color:#d1d1da;font-size:9px;letter-spacing:.1em}.footer-brand{width:100px}.footer-brand img{width:100%;height:45px;object-fit:contain}.site-footer>a:not(.footer-brand){color:#fff;font-size:11px;font-weight:700}.copyright{color:#9c9eaf;letter-spacing:0}.mobile-call{display:none}
@media(max-width:900px){.service-layout{gap:35px}.service-feature{min-height:450px}.approach-copy{padding:70px 40px}.contact-inner{gap:7%}.site-footer{flex-wrap:wrap}.faq{gap:7%}}
@media(max-width:680px){html{scroll-padding-top:74px}.topline{height:32px;font-size:8px;gap:11px}.topline-location{display:none}.site-header{height:104px;padding:0 22px}.brand{width:174px;height:96px}.brand img{height:88px}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:0;padding:12px;cursor:pointer}.menu-toggle span{width:22px;height:1px;background:#fff}.primary-nav{display:none;position:absolute;top:104px;left:0;right:0;background:var(--navy);padding:16px 22px 24px;box-shadow:0 14px 22px rgba(7,8,62,.12);flex-direction:column;align-items:stretch;gap:0}.primary-nav.is-open{display:flex}.primary-nav>a:not(.nav-call){padding:13px 0;border-bottom:1px solid rgba(255,255,255,.18)}.nav-call{text-align:center;margin-top:14px}.hero{height:auto;min-height:680px;background-position:62% center}.hero-shade{background:linear-gradient(90deg,rgba(7,8,62,.91),rgba(7,8,62,.68) 61%,rgba(7,8,62,.25)),linear-gradient(0deg,rgba(7,8,62,.55),transparent 50%)}.hero-content{margin-left:26px;width:calc(100% - 52px);padding:64px 0 105px}.hero h1{font-size:clamp(48px,13vw,72px);margin-top:24px}.hero-copy{font-size:14px;max-width:360px}.hero-actions{align-items:stretch;flex-direction:column;max-width:270px}.button{min-height:50px}.hero-note{margin-top:25px;font-size:10px}.hero-caption{bottom:27px;left:26px;right:auto;font-size:8px}.scroll-cue{display:none}.section-wrap{padding-left:24px;padding-right:24px}.intro{padding-top:71px;padding-bottom:76px}.section-label{font-size:8px;letter-spacing:.14em}.intro-grid{grid-template-columns:1fr;gap:20px;margin-top:28px}.intro h2{font-size:40px}.intro-text p{font-size:13px}.services{padding-top:67px;padding-bottom:68px}.services-heading{display:block;margin-top:26px;margin-bottom:30px}.services-heading h2{font-size:39px}.services-heading>p{font-size:12px;margin-top:16px}.service-layout{display:flex;flex-direction:column;gap:23px}.service-feature{min-height:340px}.service-item{grid-template-columns:28px 1fr 18px;padding:16px 0}.service-item h3{font-size:16px}.service-item p{font-size:11px}.service-cta{font-size:10px}.approach{grid-template-columns:1fr}.approach-photo{min-height:330px;background-position:center 55%}.approach-copy{padding:58px 24px 65px}.approach h2{font-size:39px;margin-top:23px}.approach-copy>p{font-size:12px}.steps strong{font-size:12px}.steps p{font-size:10px}.service-area{padding-top:66px;padding-bottom:65px}.area-card{grid-template-columns:1fr}.area-copy{padding:40px 25px}.area-card h2{font-size:40px;margin:21px 0 12px}.area-copy>p{font-size:12px}.area-graphic{min-height:270px}.faq{grid-template-columns:1fr;gap:14px;padding-top:6px;padding-bottom:75px}.faq h2{font-size:40px;margin:20px 0 13px}.faq-heading>p{font-size:12px}.faq-list{padding-top:2px}.faq-list summary{font-size:13px}.faq-list details{padding:17px 0}.faq-list details p{font-size:11px}.contact{padding:68px 24px 78px}.contact-inner{grid-template-columns:1fr;gap:34px}.contact h2{font-size:54px;margin:22px 0 15px}.contact-copy>p{font-size:12px}.contact-phone strong{font-size:22px}.enquiry-form{padding:23px 20px}.site-footer{padding:22px 24px 74px;justify-content:flex-start;gap:12px 24px;font-size:8px}.footer-brand{width:90px;flex-basis:100%}.site-footer>span:nth-of-type(1){display:none}.copyright{margin-left:auto}.mobile-call{display:flex;position:fixed;z-index:20;left:14px;right:14px;bottom:12px;min-height:52px;background:#fff;color:var(--navy);box-shadow:0 5px 25px rgba(0,0,0,.2);align-items:center;justify-content:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.03em}.mobile-call span{font-size:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
