:root{--navy:#000548;--blue:#2c7cf2;--ink:#121938;--muted:#5c667c;--paper:#f4f7fc;--line:#dbe3ef;--shadow:0 24px 65px #00054829}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font:400 16px/1.65 'DM Sans',sans-serif}
a{color:inherit;text-decoration:none}
.wrap{width:min(1180px,calc(100% - 48px));margin:auto}
.topbar{height:38px;background:var(--navy);color:#dce6ff;font-size:12px}
.topbar-inner{height:100%;display:flex;align-items:center;justify-content:space-between}
.topbar a{font-weight:700;color:#fff}
.site-header{height:84px;position:sticky;top:0;z-index:20;background:#fff;box-shadow:0 1px 0 #0005481a}
.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;width:220px;height:64px;align-items:center}
.logo img{display:block;width:100%;height:auto}
.logo-dark{width:220px;height:63px}
.logo-dark img{filter:brightness(0) invert(1)}
.site-header nav{display:flex;align-items:center;gap:25px;font-size:14px;font-weight:600}
.site-header nav a:not(.button):hover,.site-header nav .active{color:var(--blue)}
.button{display:inline-flex;justify-content:center;align-items:center;background:var(--blue);color:#fff!important;padding:15px 22px;border:0;border-radius:3px;font:700 14px 'DM Sans';cursor:pointer;box-shadow:0 9px 25px #2c7cf240}
.button:hover{background:#1768dd}
.button.small{padding:12px 17px}
.button.white{background:#fff;color:var(--navy)!important}
.menu{display:none}
.hero{min-height:690px;position:relative;display:flex;align-items:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,#000548f7 0%,#000548d9 43%,#0005484a 78%),url('assets/roofing-vans.png') center/cover}
.hero-copy{position:relative;padding:80px 0}
.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.18em;font:700 12px 'DM Sans';color:var(--blue)}
.eyebrow{color:#d7e7ff}
.eyebrow:before{content:"";display:inline-block;width:34px;height:2px;background:var(--blue);margin:0 12px 3px 0}
h1,h2,h3{font-family:'Manrope',sans-serif;margin:0;letter-spacing:-.035em}
h1{font-size:clamp(50px,6vw,78px);line-height:1.02;margin:18px 0 25px}
h1 em{font-style:normal;color:#69a9ff}
.hero p,.page-hero p{max-width:610px;color:#e0e8fa;font-size:19px;margin:0 0 31px}
.actions{display:flex;align-items:center;gap:34px}
.call{font:700 16px 'Manrope'}
.call small{display:block;font:500 11px 'DM Sans';color:#c7d5f0}
.trust{display:flex;gap:32px;margin-top:58px;padding-top:22px;border-top:1px solid #ffffff33;max-width:680px;font-size:13px;color:#d5def1}
.trust span{display:flex;align-items:center;gap:8px}
.trust b{font:800 19px 'Manrope';color:#fff}
.section{padding:105px 0}
.section-head{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end;margin-bottom:50px}
.section-head h2,.about h2,.supporting h2,.contracted h2,.areas h2,.quote h2,.page-intro h2,.process h2{font-size:clamp(38px,4.2vw,57px);line-height:1.08;color:var(--navy);margin-top:13px}
.section-head p,.page-intro>p{color:var(--muted);font-size:17px}
.core{background:var(--paper)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.service{min-height:555px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;color:#fff;padding:40px;background:linear-gradient(0deg,#000548fa,#00054894),url('assets/hero.jpg') 66% 48%/cover;box-shadow:var(--shadow)}
.service.scaff{background:linear-gradient(145deg,#2c7cf2,#000548)}
.service.scaff:before{content:"";position:absolute;right:90px;top:-80px;width:260px;height:700px;border-left:12px solid #ffffff20;border-right:12px solid #ffffff20;transform:skew(-9deg)}
.service>*{position:relative}
.service>span{color:#a9ceff;font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.service h3{font-size:35px;line-height:1.12;margin:12px 0}
.service p{color:#dce5f8}
.service ul{list-style:none;padding:0;margin:20px 0 28px}
.service li{padding:8px 0;border-top:1px solid #ffffff2e;font-size:14px}
.service>a{width:max-content;font-weight:700;border-bottom:2px solid var(--blue);padding-bottom:6px}
.about-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:100px;align-items:center}
.about-img{height:520px;background:url('assets/hero.jpg') 13% 47%/cover;position:relative;border-left:4px solid var(--blue)}
.about-img div{position:absolute;right:-35px;bottom:35px;width:190px;padding:25px;background:var(--navy);color:#fff;box-shadow:var(--shadow)}
.about-img strong{display:block;color:var(--blue);font:800 48px/1 'Manrope'}
.about-grid>div>p,.supporting-grid>div>p,.areas-grid>div>p{color:var(--muted);font-size:17px}
.ticks{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:28px 0}
.underlink{font-weight:700;border-bottom:2px solid var(--blue);padding-bottom:7px}
.supporting{background:#fff}
.supporting-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:center}
.minis{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}
.minis article{padding:35px}
.minis article+article{border-left:1px solid var(--line)}
.minis b{color:var(--blue)}
.minis h3{font-size:25px;color:var(--navy);margin:35px 0 8px}
.minis p{color:var(--muted);font-size:14px}
.contracted,.process{background:linear-gradient(130deg,var(--navy),#122e87);color:#fff}
.contract-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:100px}
.contracted h2,.process h2{color:#fff}
.contracted p{color:#d6e1f6;font-size:17px;max-width:660px}
.light{color:#9ac7ff}
.stats{border-left:1px solid #ffffff33;padding-left:50px}
.stats div{padding:18px 0;border-bottom:1px solid #ffffff2b}
.stats strong{display:block;font:700 22px 'Manrope'}
.stats span{font-size:13px;color:#c3d1ed}
.areas{background:#eff4fb}
.areas-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:center}
.area-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #cad5e6}
.area-list span{padding:17px 5px;border-bottom:1px solid #cad5e6}
.area-list span:nth-child(odd){border-right:1px solid #cad5e6}
.quote{background:var(--blue);color:#fff}
.quote-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}
.quote h2{color:#fff}
.quote-grid>div>p{color:#e8f1ff}
.contacts{display:flex;flex-direction:column;margin-top:30px;font:700 18px 'Manrope'}
.quote form{background:#fff;color:var(--ink);padding:38px;box-shadow:var(--shadow)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font-size:12px;font-weight:700;margin-bottom:16px}
input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #cbd6e7;padding:12px;font:400 15px 'DM Sans'}
form .button{width:100%}
form .button:disabled{cursor:wait;opacity:.7}
.form-trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}
.consent{display:flex;align-items:flex-start;gap:10px;font-weight:500;line-height:1.45}
.consent input{width:18px;height:18px;margin:2px 0 0;flex:0 0 18px}
.consent a{text-decoration:underline;color:var(--blue)}
.form-message{padding:12px;font-size:13px}
.success{background:#e8f3ff;color:#124c99}
.error{background:#fff0f0;color:#9e2020}
.instagram{padding:85px 0;background:#fff}
.instagram-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}
.instagram-head h2{font-size:clamp(36px,4vw,54px);line-height:1.08;color:var(--navy);margin-top:12px}
.insta-link{font-weight:700;color:var(--blue);border-bottom:2px solid var(--blue);padding-bottom:6px}
.instagram-feed{min-height:220px;border:1px solid var(--line);background:linear-gradient(135deg,#f7f9fd,#eaf2ff);display:grid;place-items:center}
.instagram-ready{display:flex;align-items:center;gap:20px;max-width:520px;padding:30px}
.insta-mark{width:58px;height:58px;border-radius:18px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:35px}
.instagram-ready strong{font:700 20px Manrope}
.instagram-ready p{margin:4px 0 0;color:var(--muted)}
footer{background:#00032c;color:#c3cee5;padding:65px 0 23px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:55px}
.footer-grid>div:not(:first-child){display:flex;flex-direction:column}
.footer-grid h3{font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:#fff}
.footer-grid a{font-size:13px;margin:4px 0}
.legal{border-top:1px solid #1d2554;margin-top:45px;padding-top:19px;font-size:11px}
.page-hero{min-height:600px;display:flex;align-items:center;color:#fff;background:linear-gradient(120deg,#000548f8,#2c7cf2b8),url('assets/hero.jpg') center/cover}
.roofing-hero{background:linear-gradient(90deg,#000548ef 0%,#000548cc 48%,#00054855 100%),url('assets/roofing-vans.png') center/cover}
.scaffolding-hero{background:linear-gradient(90deg,#000548ed 0%,#000548c7 48%,#00054866 100%),url('assets/scaffolding-hero.png') center 48%/cover}
.guttering-hero{background:linear-gradient(90deg,#000548f2 0%,#000548d3 48%,#00054870 100%),url('assets/guttering-before-after.webp') center 43%/cover}
.page-hero .wrap{padding:90px 0}
.page-intro{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:end;margin-bottom:50px}
.cards{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}
.cards article{padding:40px;min-height:250px;border-bottom:1px solid var(--line)}
.cards article:nth-child(odd){border-right:1px solid var(--line)}
.cards b{color:var(--blue)}
.cards h3{font-size:25px;color:var(--navy);margin:32px 0 8px}
.cards p{color:var(--muted)}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:45px}
.process-grid div{padding:25px;border-left:1px solid #ffffff33}
.process-grid strong{font:800 35px 'Manrope';color:#73adff}
.process-grid h3{font-size:18px;margin:15px 0 8px}
.process-grid p{font-size:14px;color:#c5d2ed}
.compact{min-height:calc(100vh - 150px);display:flex;align-items:center;background:linear-gradient(120deg,#f8faff,#e7efff);padding:100px 0}
.compact p{max-width:680px;color:var(--muted);font-size:18px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

@media(max-width:950px){.site-header nav{position:absolute;display:none;top:84px;left:0;right:0;background:#fff;padding:25px;flex-direction:column;align-items:stretch}
.site-header nav.open{display:flex}
.menu{display:flex;width:42px;height:42px;border:0;background:none;flex-direction:column;justify-content:center;gap:5px}
.menu span{width:26px;height:2px;background:var(--navy)}
.duo{grid-template-columns:1fr}
.about-grid{gap:55px}
.supporting-grid,.contract-grid,.areas-grid,.quote-grid{gap:55px}
.footer-grid{grid-template-columns:1.5fr 1fr 1fr}
.process-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:700px){.wrap{width:min(100% - 32px,1180px)}
.topbar span:nth-child(2){display:none}
.site-header{height:72px}
.site-header nav{top:72px}
.logo{width:170px;height:49px}
.hero{min-height:720px;align-items:flex-end}
.hero-bg{background:linear-gradient(0deg,#000548fc,#00054875),url('assets/hero.jpg') 35%/cover}
.hero-copy{padding:110px 0 55px}
.actions{align-items:flex-start;flex-direction:column}
.trust{gap:12px;flex-wrap:wrap}
.trust span{width:46%}
.section{padding:75px 0}
.section-head,.about-grid,.supporting-grid,.contract-grid,.areas-grid,.quote-grid,.page-intro{grid-template-columns:1fr;gap:35px}
.service{min-height:510px;padding:28px}
.about-img{height:390px;margin-right:10px}
.about-img div{right:-10px}
.ticks,.minis,.cards{grid-template-columns:1fr}
.minis article+article,.cards article:nth-child(odd){border-left:0;border-right:0}
.cards article+article{border-top:1px solid var(--line)}
.stats{border-left:0;border-top:1px solid #ffffff33;padding:25px 0 0}
.area-list{grid-template-columns:1fr}
.area-list span:nth-child(odd){border-right:0}
.two{grid-template-columns:1fr;gap:0}
.quote form{padding:25px}
.process-grid{grid-template-columns:1fr}
.instagram-head{align-items:flex-start;flex-direction:column;gap:18px}
.instagram-ready{align-items:flex-start;flex-direction:column}
.footer-grid{grid-template-columns:1fr 1fr}
.footer-grid>div:first-child{grid-column:1/3}
}
