:root{--ink:#253e32;--paper:#f7f5ee;--yellow:#f1c568;--muted:#647067}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #ac6b15;outline-offset:5px}header{display:flex;align-items:center;justify-content:space-between;padding:22px 5%;border-bottom:1px solid #253e3222;gap:24px}.brand{font-family:Georgia,serif;font-size:43px;font-weight:bold;letter-spacing:-2px;line-height:1}.brand span{display:block;font:9px/2 Arial,sans-serif;letter-spacing:2.4px;margin-top:7px}nav{display:flex;gap:30px;font-size:13px}.call{font-size:16px;font-weight:bold;border-bottom:1px solid;padding:8px 0}section{padding:88px 6%}.hero{padding:55px 5% 65px;display:grid;grid-template-columns:1.08fr 1fr;gap:55px;align-items:center}.eyebrow{display:block;font:11px/1.5 Arial,sans-serif;letter-spacing:2px;font-weight:bold;margin-bottom:24px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:normal;letter-spacing:-2px;line-height:1.08}h1{font-size:clamp(44px,5vw,76px);margin-bottom:26px}h2{font-size:clamp(35px,4vw,53px);margin-bottom:25px}h3{font:26px/1.2 Georgia,serif;letter-spacing:-.5px}em{font-weight:normal;color:#677b5a}p{color:var(--muted)}.hero-copy>p{max-width:440px;font-size:17px}.btn{display:inline-block;border:0;background:var(--ink);color:white;padding:17px 23px;font-size:13px;border-radius:4px;cursor:pointer;font-weight:bold}.btn:hover{background:#46634f}.textlink{display:block;font-size:12px;text-decoration:underline;margin-top:20px}.hero-note{font-size:11px;color:var(--muted);border-left:2px solid #e1b559;padding-left:14px;margin-top:32px}.hero figure{margin:0;position:relative;height:550px}.hero img{height:100%;width:100%;object-fit:cover;border-radius:110px 8px 8px 8px}.hero figcaption{position:absolute;bottom:14px;left:20px;color:white;font-size:11px;text-shadow:0 1px 6px black}.stamp{background:var(--yellow);position:absolute;right:-17px;bottom:60px;transform:rotate(8deg);padding:25px;border-radius:50%;font:italic 23px/1.1 Georgia,serif;width:150px;height:150px;display:flex;align-items:center;justify-content:center}.strip{background:var(--ink);color:white;padding:23px 6%;font-size:11px;letter-spacing:2px;display:flex;justify-content:space-between}.strip span{color:var(--yellow);letter-spacing:0;font-size:13px}.section-head{display:grid;grid-template-columns:1.4fr 1fr;gap:0 70px;align-items:end}.section-head .eyebrow{grid-column:1/-1}.section-head p{max-width:440px;font-size:14px}.services{display:grid;grid-template-columns:repeat(4,1fr);margin-top:35px;border-top:1px solid #253e3233}.service{padding:30px 24px 20px 0;border-right:1px solid #253e3222;margin-right:24px}.service:last-child{border:0}.num{display:block;color:#8b8e70;font-size:11px;margin-bottom:35px}.service p{font-size:13px}.service b{font-size:11px}.service:hover h3{text-decoration:underline}.how{background:#e9ecdf;display:grid;grid-template-columns:1fr 1.3fr;gap:0 60px}.how>.eyebrow{grid-column:1/-1}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.steps b{font:italic 30px Georgia;color:#8b9674}.steps h3{font-size:21px;margin:18px 0 12px}.steps p{font-size:12px}.search{display:block;max-width:520px;font-size:12px;margin:30px 0}input,select,textarea{border:1px solid #253e3233;border-radius:3px;background:#fffdf7;width:100%;padding:13px;color:var(--ink);margin:7px 0 12px}textarea{min-height:90px;resize:vertical}.zones{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.zone{border-top:1px solid #253e3244;padding:20px 0}summary{cursor:pointer;font-family:Georgia,serif;font-size:25px;list-style:none}summary::marker{display:none}.zone summary{display:flex;justify-content:space-between}.zone summary span{font:16px Arial}.towns{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.towns a{font-size:11px;border:1px solid #253e3233;padding:6px 10px;border-radius:30px}.towns a:hover{background:var(--ink);color:white}.all-zone{display:block;font-size:11px;text-decoration:underline;margin-top:18px}.faq{padding-top:10px}.faq details{border-bottom:1px solid #253e3222;padding:18px 0;max-width:900px}.faq summary{font:17px Arial}.faq p{margin:15px 0 0;font-size:14px}.contact{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact p{color:#c4cdbd;max-width:440px;font-size:14px}.contact .eyebrow{color:var(--yellow)}.phone{font:38px Georgia,serif;color:var(--yellow)}form label{display:block;font-size:12px}.contact .small{font-size:10px}.small a{text-decoration:underline}.contact .btn{background:var(--yellow);color:var(--ink);width:100%}footer{padding:55px 6% 100px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;font-size:12px}footer small{grid-column:1/-1;color:var(--muted)}.floating{position:fixed;bottom:18px;right:24px;background:#dce8c7;border:1px solid #253e32;color:var(--ink);padding:12px 18px;font-size:12px;border-radius:30px;box-shadow:0 3px 18px #0002;z-index:5}.inner{max-width:1150px}.inner>a:first-child{display:block;font-size:12px;margin-bottom:30px}.inner p{max-width:740px}.inner .btn{margin-top:18px}.local-content{padding-top:0;display:grid;grid-template-columns:1fr 1fr;gap:35px 65px}.local-content h2{font-size:33px}.note{background:#e9ecdf;padding:30px}.local-link{display:block;border-bottom:1px solid #253e3233;padding:18px 0;font:27px Georgia}.local-link span{float:right;font:12px Arial;padding-top:10px}.local-list{margin-top:40px}.inner h2{font-size:32px;margin-top:40px}[hidden]{display:none!important}@media(min-width:1500px){main,header,footer{max-width:1600px;margin:auto}}@media(max-width:1000px){nav{gap:16px}.hero{gap:25px}.hero figure{height:480px}.services{grid-template-columns:repeat(2,1fr)}.service{margin-bottom:24px}.how{display:block}.steps{margin-top:35px}.zones{grid-template-columns:repeat(2,1fr)}.contact{gap:40px}.stamp{right:-5px}h1{font-size:55px}}@media(max-width:650px){header{padding:18px 6%;flex-wrap:wrap;gap:14px}.brand{font-size:35px}nav{order:3;width:100%;justify-content:space-between;font-size:11px;border-top:1px solid #253e3222;padding-top:14px}.call{font-size:14px}.hero{display:flex;flex-direction:column;padding:38px 6% 40px;gap:32px;align-items:stretch}h1{font-size:48px;letter-spacing:-1.8px}.hero-copy>p{font-size:16px}.hero figure{height:325px;margin-right:10px}.hero img{border-radius:70px 5px 5px 5px}.stamp{width:115px;height:115px;font-size:19px;padding:15px;bottom:45px;right:-15px}.hero-note{margin-top:24px}.strip{display:block;font-size:9px;padding:20px 6%}.strip span{display:block;margin-top:6px}section{padding:55px 6%}.section-head{display:block}h2{font-size:39px;letter-spacing:-1.2px}.services{margin-top:25px;gap:20px}.service{padding:22px 0;margin:0;border-right:0;border-top:1px solid #253e3222}.num{margin-bottom:25px}.service h3{font-size:24px}.service p{font-size:12px}.steps{grid-template-columns:1fr;gap:10px}.steps article{padding-left:42px;position:relative}.steps b{position:absolute;left:0;top:13px;font-size:25px}.steps h3{margin-bottom:8px}.steps p{font-size:14px}.zones{grid-template-columns:1fr;gap:0}.faq summary{font-size:16px;line-height:1.4}.contact{display:block}.contact form{margin-top:35px}.phone{font-size:35px}footer{grid-template-columns:1fr 1fr;padding-bottom:105px}footer .brand{grid-column:1/-1}.floating{bottom:12px;right:12px;font-size:11px}.inner{padding-top:35px}.inner h1{font-size:42px}.local-content{grid-template-columns:1fr;gap:25px}.local-link{font-size:24px}.local-link span{float:none;display:block;margin-top:8px}.local-content h2{font-size:30px}}
/* Shared, semantic navigation and focused service pages. */
.skip{position:absolute;left:10px;top:-70px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;font:11px/1.6 Arial;margin-bottom:28px}.breadcrumbs a{text-decoration:underline}header nav{margin:0}.lead{font-size:18px;line-height:1.8}.inner{max-width:1250px}.hero figcaption{background:#12221977;padding:5px 8px;left:14px;right:14px;bottom:10px}.hero .stamp{bottom:70px}.split-story{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding-top:10px}.split-story figure{margin:0}.split-story img{width:100%;height:440px;object-fit:cover;border-radius:6px 70px 6px 6px}.province-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:35px}.province-card{border-top:1px solid #253e3255;padding:25px 15px 18px 0}.province-card>span{font-size:11px;color:#7a8169}.province-card h3{margin:14px 0}.province-card p{font-size:12px}.province-card:hover h3{text-decoration:underline}.town-results:empty{display:none}.town-results{padding:20px;background:#e9ecdf;border-radius:5px;margin:0 0 30px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.town-results>p{grid-column:1/-1;font-size:13px;margin:0}.town-results>a{display:flex;flex-direction:column;border:1px solid #253e3233;background:var(--paper);padding:12px;border-radius:3px;font-size:13px}.town-results>a span{font-size:11px;margin-top:5px}.directory{padding-top:0}.coverage-groups{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.coverage-group{padding:20px 0;border-top:1px solid #253e3244}.coverage-group summary{font-size:25px;line-height:1.3}.coverage-group summary>span{display:block;font:11px/1.6 Arial;color:var(--muted);margin-top:6px}.coverage-group summary:after{content:'−';float:right}.coverage-group:not([open]) summary:after{content:'+'}.municipality-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.municipality-links a{border:1px solid #253e322b;border-radius:4px;padding:7px 10px;font-size:12px}.municipality-links a:hover{background:var(--ink);color:white}.data-credit{font-size:10px;margin-top:30px}.local-focus{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;background:#e9ecdf}.local-focus aside{border-left:1px solid #253e3244;padding-left:40px;align-self:center}.local-focus h2{font-size:42px}.local-focus .small{font-size:12px}.town-coverage>p{max-width:760px}.nearby-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 24px}.nearby-list li{scroll-margin-top:25px;border-bottom:1px solid #253e3222}.nearby-list li:target{background:#f1c56866;outline:2px solid #b38c42}.nearby-list a{display:block;font-size:13px;padding:12px 6px}.nearby-list span{float:right;font-size:10px;color:var(--muted);margin-left:6px}.nearby-list a:hover{text-decoration:underline}.related{padding-top:40px;padding-bottom:40px}.related>div{display:flex;flex-wrap:wrap;gap:15px}.related>div a{font-size:13px;border-bottom:1px solid;padding:7px 0}.service-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.service-hero h1{font-size:60px}.service-hero h2{font-size:30px;letter-spacing:-.5px;color:#677b5a}.service-hero figure{margin:0}.service-hero img{width:100%;height:450px;object-fit:cover;border-radius:70px 5px 5px 5px}.service-hero figcaption{font-size:10px;color:var(--muted);margin-top:8px}.service-detail{padding-top:0;display:grid;grid-template-columns:1fr 1fr;gap:35px 70px}.service-detail h2{font-size:32px;letter-spacing:-.8px}.checklist{background:#e9ecdf;padding:30px}.checklist ul{padding-left:20px}.checklist li{margin-bottom:12px}.guide{max-width:960px}.guide article{margin-top:45px}.guide h1{font-size:56px}.guide h2{font-size:32px;letter-spacing:-.5px}.legal{max-width:960px}.legal h1{font-size:56px}.legal h2{font-size:30px}.faq summary:after{content:'+';float:right;padding-left:10px}.faq details[open] summary:after{content:'−'}.contact #form-status{font-size:12px}.contact #form-status a{text-decoration:underline}.contact input:focus,.contact textarea:focus,.contact select:focus{outline:3px solid var(--yellow)}.site-footer{display:block;background:#1d3027;color:#f7f5ee;padding:65px 6% 22px;max-width:none}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:50px}.footer-top h2{font-size:54px;color:#f7f5ee}.footer-top .eyebrow{color:#e8c878;font-size:10px}.footer-top p{color:#c2c9bb;font-size:13px;margin:0}.footer-phone{font:38px Georgia,serif;color:var(--yellow);white-space:nowrap}.footer-phone>span{display:block;font:10px/2 Arial;letter-spacing:.3px;color:#c2c9bb;margin-top:8px}.footer-roofs{margin:30px 0 45px;overflow:hidden;height:90px}.footer-roofs svg{width:100%;height:100%;stroke:#c4ae77;stroke-width:1;fill:none;opacity:.5}.footer-grid{display:grid;grid-template-columns:1.15fr 1.2fr .8fr 1fr;gap:40px}.footer-grid h3{font:12px/1.5 Arial;font-weight:bold;letter-spacing:.5px;margin:0 0 20px;color:#f7f5ee}.footer-grid>div>a:not(.brand){display:block;font:12px/1.7 Arial;color:#c2c9bb;margin-bottom:10px}.footer-grid .brand{font-size:40px;color:#f7f5ee;display:inline-block;margin-bottom:22px}.footer-grid p{font-size:12px;color:#aab8a7;line-height:1.8}.footer-grid a:hover,.footer-bottom a:hover{text-decoration:underline}.footer-grid .footer-wa{display:inline-block!important;border:1px solid #7c947a;padding:10px 13px;border-radius:4px;color:#d9e7c5!important;margin-top:20px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e9ecdf22;padding-top:20px;margin-top:48px;font-size:10px;color:#9fac99}.mobile-contact{display:none}img{max-width:100%}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b38c42;outline-offset:2px}@media(max-width:1000px){.service-hero{gap:30px}.service-hero h1{font-size:48px}.split-story{gap:35px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.footer-phone{font-size:32px}.footer-top h2{font-size:45px}.nearby-list{grid-template-columns:1fr 1fr}}@media(max-width:650px){.split-story{display:block;padding-top:5px}.split-story figure{margin-bottom:35px}.split-story img{height:280px}.province-cards{grid-template-columns:1fr 1fr;gap:15px}.province-card{padding-right:0}.province-card h3{font-size:25px}.province-card p{font-size:11px}.coverage-groups{grid-template-columns:1fr;gap:10px}.town-results{grid-template-columns:1fr}.local-focus{display:block}.local-focus h2{font-size:35px}.local-focus aside{padding-left:20px;margin-top:30px}.nearby-list{grid-template-columns:1fr}.nearby-list a{font-size:14px;padding:13px 6px}.service-hero{display:block}.service-hero h1{font-size:44px}.service-hero figure{margin-top:30px}.service-hero img{height:260px}.service-detail{grid-template-columns:1fr;gap:24px}.guide h1{font-size:42px}.legal h1{font-size:44px}.breadcrumbs{font-size:10px}.site-footer{padding-top:45px;padding-bottom:90px}.footer-top{display:block}.footer-top h2{font-size:43px}.footer-phone{display:block;font-size:36px;margin-top:30px}.footer-grid{gap:35px 20px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:last-child{grid-column:1/-1;border-top:1px solid #e9ecdf22;padding-top:25px}.footer-grid h3{font-size:12px}.footer-grid>div>a:not(.brand){font-size:12px;padding:3px 0}.footer-grid .footer-wa{padding:12px 16px!important}.footer-roofs{height:65px;margin:25px 0 35px}.footer-bottom{display:block;margin-top:30px}.footer-bottom span{display:block;margin-top:8px}.mobile-contact{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;background:#f7f5ee;padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px;z-index:15;border-top:1px solid #253e3233}.mobile-contact a{text-align:center;font-size:13px;font-weight:bold;border:1px solid var(--ink);padding:12px;border-radius:4px}.mobile-contact a:last-child{background:#dce8c7}.hero .stamp{bottom:55px}.floating{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.footer-grid address{font:12px/1.8 Arial,sans-serif;color:#aab8a7;margin-bottom:12px}

.home-towns{list-style:none;margin:18px 0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.home-towns li{max-width:100%}
.home-towns a{display:block;border:1px solid #253e3233;border-radius:4px;padding:7px 10px;font:12px/1.4 Arial,sans-serif;overflow-wrap:anywhere}
.home-towns a:hover{background:var(--ink);color:var(--paper)}
.province-card .all-zone{margin-top:18px;font-size:12px}
@media(max-width:650px){.province-cards{grid-template-columns:1fr}.home-towns a{font-size:12px;padding:9px 11px}.province-card{padding-bottom:25px}.home-towns{margin-top:15px}}

/* Photographs supplied by the business. */
.work-gallery{padding-top:60px;padding-bottom:65px;background:#efeee5}
.work-gallery .work-intro{max-width:690px;font-size:15px;margin-bottom:30px}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.work-photo{margin:0;min-width:0}
.work-photo>a{display:block;position:relative;overflow:hidden;border-radius:5px;background:#dce0d1}
.work-photo img{display:block;width:100%;height:365px;object-fit:cover;transition:transform .25s}
.work-photo>a:hover img{transform:scale(1.025)}
.photo-zoom{position:absolute;right:10px;bottom:10px;background:#f7f5eee8;padding:7px 12px;border-radius:3px;font-size:11px;color:var(--ink)}
.work-photo figcaption{padding:18px 0 0}
.work-photo figcaption h3{font-size:22px;margin-bottom:9px}
.work-photo figcaption p{font-size:12px;line-height:1.7;margin:0}
.gallery-more{margin-top:30px}
.works-heading{padding-bottom:25px}
.works-heading+.work-gallery{padding-top:35px}
.gallery-open{overflow:hidden}
.photo-dialog{border:1px solid #f7f5ee33;border-radius:8px;background:#18271f;color:#f7f5ee;width:min(1000px,94vw);max-width:94vw;max-height:94vh;padding:16px;overflow:auto;box-shadow:0 15px 80px #0008}
.photo-dialog::backdrop{background:#07130fe8}
.photo-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;padding-bottom:10px}
.photo-dialog button{border:1px solid #f7f5ee66;border-radius:4px;background:transparent;color:#f7f5ee;cursor:pointer;min-width:44px;min-height:44px;font:15px Arial;padding:10px}
.photo-dialog button:hover{background:#ffffff22}
.photo-stage{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:14px;align-items:center}
.photo-stage img{max-width:100%;max-height:68vh;width:auto;height:auto;margin:auto;display:block;object-fit:contain}
.photo-caption{font:14px/1.5 Arial;color:#e2e6da;margin:15px 0 8px;text-align:center}
.photo-original{display:block;text-align:center;font:11px/1.5 Arial;color:#e8c878;text-decoration:underline;padding:5px}
@media(max-width:850px){.work-photo img{height:300px}.work-grid{gap:18px}.work-photo figcaption h3{font-size:20px}}
@media(max-width:650px){header nav{flex-wrap:wrap;gap:8px 14px}.work-gallery{padding-top:45px;padding-bottom:45px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.work-photo img{height:240px}.work-photo figcaption h3{font-size:20px}.work-photo figcaption p{font-size:12px}.work-gallery.compact .work-photo:last-child{grid-column:1/-1}.work-gallery.compact .work-photo:last-child img{height:280px}.photo-stage{grid-template-columns:40px minmax(0,1fr) 40px;gap:5px}.photo-dialog{padding:10px;max-height:92vh}.photo-stage img{max-height:64vh}.photo-dialog button{min-width:40px;padding:7px}.photo-caption{font-size:12px}.contact .small{font-size:12px;line-height:1.7}}
@media(max-width:380px){.work-grid{grid-template-columns:1fr}.work-gallery.compact .work-photo:last-child{grid-column:auto}.work-photo img{height:300px}}
@media(prefers-reduced-motion:reduce){.work-photo img{transition:none}}

.local-content .roof-repairs{grid-column:1/-1;border-top:1px solid #253e3233;padding-top:30px}.roof-repairs p{max-width:860px}
