@font-face{font-family:Bricolage;src:url('/assets/bricolage-500.ttf') format('truetype');font-weight:500;font-display:swap}@font-face{font-family:DM;src:url('/assets/dm-sans-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:DM;src:url('/assets/dm-sans-600.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--paper:#f7f8f1;--ink:#001935;--muted:#56636e;--line:#cbd5dd;--accent:#0366be;--accent-light:#a9d8fb;--accent-quiet:#e7f0f8;--accent-deep:#004e91;--display:Bricolage,Georgia,serif;--body:DM,Arial,sans-serif;--space:24px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px;scrollbar-color:#8caac0 var(--paper)}::selection{background:var(--accent-deep);color:#f2f7fc}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;text-underline-offset:5px}a:hover{text-decoration-thickness:1px}button,input,select,textarea{font:inherit}button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #0366be;outline-offset:5px}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(48px,5.6vw,80px);margin-bottom:28px}h2{font-size:clamp(36px,3.8vw,54px);margin-bottom:26px}h3{font-size:27px;margin-bottom:16px}p{color:var(--muted);margin-bottom:22px;max-width:70ch}strong{font-weight:600}.wrap{width:min(1320px,calc(100% - 96px));margin-inline:auto}.section{padding-block:96px}.icon{display:inline-block;flex-shrink:0;vertical-align:middle}.site-header{position:sticky;top:0;z-index:20;background:var(--paper)}.nav-row{display:flex;align-items:center;gap:32px;min-height:104px;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--display);font-size:35px;font-weight:500;letter-spacing:-.04em;line-height:1;white-space:nowrap}.wordmark>span{color:#0366be}.wordmark small{display:block;font:400 11px/1 var(--body);letter-spacing:0;margin-top:9px}.nav-row nav{display:flex;gap:30px;margin-left:auto;font-size:13px}.nav-row nav a{padding-block:16px}.nav-row nav a:hover{text-decoration:underline}.nav-phone{font-size:13px;white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:27px;min-height:51px;padding:14px 23px;border:1px solid transparent;border-radius:5px;cursor:pointer;font-size:13px;font-weight:600;line-height:1.4;transition:background .18s ease-out,color .18s ease-out}.primary{background:var(--accent);color:var(--paper)}.primary:hover{background:#0054a1}.outline{border-color:#748b9e;color:var(--ink);background:transparent}.outline:hover{background:var(--accent-quiet)}.nav-quote{background:var(--accent);color:var(--paper);min-height:45px;padding:12px 18px;gap:24px}.nav-quote:hover{background:#0054a1}.menu-toggle{display:none}.skip{position:fixed;z-index:100;top:10px;left:10px;transform:translateY(-160%);padding:10px 20px;background:var(--ink);color:white}.skip:focus{transform:translateY(0)}
.hero-intro{padding-top:57px;padding-bottom:45px;display:grid;grid-template-columns:2.4fr 1fr;gap:70px;align-items:end}.hero-intro h1{font-size:clamp(48px,5.9vw,85px);line-height:1.04;letter-spacing:-.04em;margin:0}.hero-intro h1>span{color:#0366be}.hero-aside{padding:0 0 5px}.hero-aside p{font-size:15px;line-height:1.65;margin-bottom:21px}.hero-aside .primary{background:var(--accent);color:var(--paper);width:100%}.hero-aside .primary:hover{background:#0054a1}.hero-aside>.text-link{margin-top:15px;width:100%;font-size:12px;justify-content:space-between;border:0;padding-block:5px}.hero-photo{margin-top:0;margin-bottom:0}.hero-photo>img{width:100%;height:440px;object-position:center 54%}.hero-photo figcaption{display:flex;justify-content:space-between;gap:20px;padding:15px 0;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}.text-link{font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:24px;border-bottom:1px solid #7993a7;padding-bottom:5px}.text-link:hover{border-color:var(--ink)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:43px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:330px;font-size:14px;margin-bottom:4px}.service-directory{padding-top:83px}.featured-services{display:grid;grid-template-columns:1fr 1.23fr;gap:60px}.featured-services article:first-child{padding-top:0}.featured-services article:nth-child(2){padding-top:65px}.featured-services article>img{width:100%;height:340px;object-fit:cover}.featured-services article:nth-child(2)>img{object-fit:contain;background:#e7f0f8}.featured-services h3{font-size:31px;margin:25px 0 12px}.featured-services h3>a{display:flex;align-items:center;justify-content:space-between;gap:20px}.featured-services h3 .icon{width:25px;height:25px}.featured-services article p{font-size:14px;line-height:1.8;margin-bottom:18px}.featured-services article>.text-link{font-size:12px}.more-services{display:grid;grid-template-columns:1fr 2fr;gap:70px;padding-top:64px;margin-top:50px;border-top:1px solid var(--line)}.more-services h3{font-size:31px;margin:0}.service-links{display:grid;grid-template-columns:1fr 1fr;column-gap:35px}.service-links>a{display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid var(--line);padding:18px 0}.service-links strong{font:500 21px/1.2 var(--display);letter-spacing:-.025em}.service-links small{display:block;font-size:12px;font-weight:400;color:var(--muted);line-height:1.6;margin-top:8px}.service-links>a:hover strong{text-decoration:underline;text-underline-offset:5px}.commercial-link{border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;padding:34px 0;font-size:14px;margin-top:18px}.commercial-link>span{display:inline-flex;gap:24px;align-items:center;font-weight:600}.local-story{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--line);padding-block:76px}.local-story h2{margin:0;font-size:52px}.local-story p{font-size:15px;max-width:540px}.local-story p:last-of-type{margin-bottom:24px}.work-teaser{background:var(--accent-quiet)}.work-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:start}.work-grid figure{margin:0}.work-grid figure:nth-child(even){margin-top:100px}.work-grid img{width:100%;height:auto;object-fit:contain}.work-grid figcaption{padding:21px 0 0}.work-grid figcaption strong{display:block;font:500 27px/1.2 var(--display);letter-spacing:-.03em;margin-bottom:10px}.work-grid figcaption>a{font-size:12px;display:inline-flex;align-items:center;gap:18px}.work-grid figcaption>a:hover{text-decoration:underline}.review-layout{display:grid;grid-template-columns:.9fr 1.4fr;gap:80px}.review-layout h2{font-size:43px;margin-bottom:23px}.google-proof{display:inline-flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:12px}.google-proof .icon{margin-left:10px;width:17px;height:17px}.google-proof strong{font-weight:600}.review-layout figure{margin:0}.review-layout blockquote{font:500 clamp(29px,3.1vw,43px)/1.28 var(--display);letter-spacing:-.025em;margin:0 0 25px}.review-layout figcaption{font-size:13px}.review-layout figcaption>span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.source-note{font-size:11px!important;line-height:1.7;margin:24px 0 0;max-width:60ch}.source-note a{text-decoration:underline}.faq-section{border-top:1px solid var(--line)}.faq-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:85px}.faq-layout h2{font-size:44px}.faq-layout>div>p{font-size:13px}.questions{border-top:1px solid #afbecb}.questions details{border-bottom:1px solid var(--line)}.questions summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:15px;line-height:1.5;padding:23px 0;cursor:pointer}.questions summary::-webkit-details-marker{display:none}.plus-icon{flex-shrink:0;transition:transform .2s ease-out}.questions details[open] .plus-icon{transform:rotate(45deg)}.questions details>p{font-size:14px;line-height:1.8;padding:0 20px 20px 0;margin:0}.closing{background:var(--accent);color:var(--paper);padding-block:60px}.closing-inner{display:flex;justify-content:space-between;align-items:center;gap:40px}.closing h2{font-size:45px;margin-bottom:14px}.closing p{font-size:14px;margin:0}.closing-inner>div:last-child{display:flex;gap:12px;flex-wrap:wrap}.closing .outline{border-color:var(--accent-light);color:var(--paper)}.closing .outline:hover{background:#0054a1}footer{background:var(--ink);color:var(--paper);padding:65px 0 0}.footer-grid{display:grid;grid-template-columns:1.5fr .7fr 1fr 1.1fr;gap:40px}.footer-grid .wordmark{font-size:35px}.footer-grid .wordmark .brand-dot{color:var(--accent)}.footer-grid .wordmark small{font-size:11px;letter-spacing:.04em}.footer-grid h2{font:600 12px var(--body);letter-spacing:0;margin:0 0 22px}.footer-grid p{font-size:12px;line-height:1.8;color:#c5d2dc;margin:24px 0}.footer-grid>div>a:not(.wordmark){display:block;font-size:12px;line-height:2.5;color:#e1eaf1;overflow-wrap:anywhere}.footer-grid>div>a:hover{text-decoration:underline}.socials{display:flex;gap:18px;font-size:11px}.socials .icon{width:12px;height:12px}.footer-phone{font-size:21px!important;letter-spacing:-.02em}.footer-bottom{border-top:1px solid #526575;display:flex;gap:25px;font-size:11px;margin-top:50px;padding:24px 0;color:#c5d2dc}.footer-bottom>span{margin-right:auto}.footer-bottom .icon{width:12px;height:12px}.mobile-actions{display:none}.breadcrumbs{font-size:12px;display:flex;flex-wrap:wrap;gap:12px;padding-top:30px;color:var(--muted)}.breadcrumbs a{text-decoration:underline}.service-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;padding-top:50px;padding-bottom:80px;align-items:center}.service-hero h1{font-size:clamp(43px,4.8vw,67px)}.hero-description{font-size:17px;line-height:1.7;max-width:65ch}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.service-hero-photo{height:450px}.service-hero-photo img{width:100%;height:100%;object-fit:contain;background:var(--accent-quiet)}.detail-grid{display:grid;grid-template-columns:1fr;gap:0;margin-top:42px}.detail-grid article{display:grid;grid-template-columns:1fr 1.8fr;gap:70px;border-top:1px solid var(--line);padding:26px 0}.detail-grid h3{font-size:28px;margin:0}.detail-grid p{font-size:15px;line-height:1.8;margin:0;max-width:70ch}.service-area{background:var(--accent-quiet);padding-block:50px}.service-area h2{font-size:37px}.service-area p{font-size:15px;margin:0;max-width:75ch}.related{border-top:1px solid var(--line)}.related h2{font-size:40px}.related .service-links{grid-template-columns:repeat(3,1fr)}.page-intro{padding-top:70px;padding-bottom:45px}.page-intro p{font-size:17px}.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;margin-bottom:80px}.direct-contact{padding:0}.direct-contact h2{font-size:35px;margin-bottom:18px}.direct-contact>a{display:flex;align-items:center;gap:18px;font-size:20px;line-height:2.5;overflow-wrap:anywhere}.direct-contact p{font-size:14px;max-width:450px;margin-top:20px}.enquiry-card{padding:0}.enquiry-card h2{font-size:35px;margin-bottom:18px}.enquiry-card>p{font-size:14px;max-width:62ch}label{display:block;font-size:13px;margin-bottom:20px;font-weight:600}label>span{font-weight:400;color:var(--muted)}input,select,textarea{display:block;width:100%;padding:12px 13px;margin-top:8px;border:1px solid #788c9c;border-radius:3px;background:#fcfdfd;color:var(--ink);font-size:15px;line-height:1.5;caret-color:var(--accent-deep)}input:hover,select:hover,textarea:hover{border-color:#43677f}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#5a6a78;opacity:1}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-note,.form-status,#draft-fallback>p{font-size:12px;margin:16px 0 0}.form-note a,#draft-fallback a{text-decoration:underline}.form-status{color:var(--accent-deep)}.form-status:empty{display:none}#draft-fallback{margin-top:25px}#draft-fallback[hidden]{display:none}.gallery{padding-top:0}.gallery .work-grid{row-gap:65px}.gallery h2{font-size:32px;margin:12px 0}.gallery p{font-size:14px}.gallery figcaption>span{font-size:11px}.prose{max-width:850px;padding-top:0}.prose h2{font-size:32px;margin:40px 0 20px}.prose a{text-decoration:underline}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.nav-row{gap:24px}.nav-row nav{gap:23px}.nav-phone{display:none}.hero-intro{gap:40px;grid-template-columns:2.1fr 1fr}.hero-intro h1{font-size:66px}.hero-photo>img{height:390px}.hero-aside p{font-size:14px}.hero-aside .button{font-size:12px;padding-inline:17px;gap:15px}.hero-aside>.text-link{font-size:11px;gap:15px}.featured-services,.work-grid{gap:40px}.section{padding-block:78px}.footer-grid{gap:25px}.footer-grid>div>a:not(.wordmark){font-size:11px}.footer-phone{font-size:18px!important}.contact-layout{gap:45px}.review-layout,.faq-layout,.service-hero{gap:50px}.closing-inner>div:last-child{flex-direction:column}.service-links{column-gap:25px}}
@media(max-width:850px){.hero-intro{grid-template-columns:1.7fr 1fr;gap:30px}.hero-intro h1{font-size:54px}.hero-photo>img{height:360px}.hero-aside p{font-size:13px}.hero-aside .button{padding-inline:15px}.hero-aside>.text-link{font-size:11px}.featured-services article>img{height:300px}.featured-services{gap:35px}.more-services{gap:40px}.local-story{gap:50px}.local-story h2{font-size:44px}.review-layout{gap:45px}.review-layout h2{font-size:36px}.review-layout blockquote{font-size:33px}.footer-grid{grid-template-columns:1.3fr 1fr 1fr}.footer-grid>div:nth-child(2){display:none}.service-hero-photo{height:400px}.service-hero{gap:30px}.detail-grid article{gap:40px}.contact-layout{gap:30px}.closing h2{font-size:38px}.faq-layout{gap:40px}.faq-layout h2{font-size:37px}.work-grid{gap:35px}}
@media(max-width:700px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 40px)}.site-header{position:sticky}.nav-row{min-height:86px;flex-wrap:wrap;gap:14px}.wordmark{font-size:32px}.wordmark small{font-size:11px;margin-top:6px}.menu-toggle{display:flex;align-items:center;gap:12px;font-size:12px;margin-left:auto;border:0;padding:10px 0 10px 10px;background:none;color:var(--ink);cursor:pointer}.nav-quote{display:none}.nav-row nav{display:none;order:5;flex:1 0 100%;margin:0;border-top:1px solid var(--line);padding:10px 0 22px;font-size:16px}.nav-row nav.is-open{display:flex;flex-direction:column;gap:0}.nav-row nav a{padding:12px 0}.hero-intro{display:block;padding:37px 0 28px}.hero-intro h1{font-size:clamp(41px,8.8vw,62px);line-height:1.08;letter-spacing:-.04em;margin-bottom:25px}.hero-aside{padding:0}.hero-aside p{font-size:15px;max-width:36ch;margin-bottom:21px}.hero-aside .primary{width:auto;font-size:13px;min-height:49px;gap:38px;padding-inline:21px}.hero-aside>.text-link{width:auto;display:flex;justify-content:start;gap:20px;font-size:12px;margin-top:15px;padding-block:3px}.hero-photo>img{height:300px;object-position:35% center}.hero-photo figcaption{display:block;padding:13px 0;font-size:11px}.hero-photo figcaption>span+span{display:block;margin-top:3px;font-size:11px}.section{padding-block:56px}h2{font-size:37px}h3{font-size:27px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:37px}.section-heading>p{font-size:14px;margin:22px 0 0;max-width:36ch}.section-heading>.text-link{margin-top:22px}.featured-services{display:block}.featured-services article:nth-child(2){padding-top:40px}.featured-services article>img{height:310px}.featured-services article:nth-child(2)>img{height:auto;max-height:380px;aspect-ratio:1.1;object-fit:contain}.featured-services h3{font-size:29px;margin-top:23px}.featured-services article p{font-size:14px;line-height:1.75}.featured-services article>.text-link{font-size:12px}.more-services{display:block;padding-top:36px;margin-top:36px}.more-services h3{font-size:28px;margin-bottom:20px}.more-services h3 br{display:none}.service-links{grid-template-columns:1fr}.service-links>a{padding:18px 0;gap:30px}.service-links strong{font-size:23px}.service-links small{font-size:12px;margin-top:6px}.commercial-link{display:block;padding:28px 0;font-size:13px}.commercial-link>span{display:flex;font-size:13px;margin-top:10px;gap:20px}.local-story{display:block}.local-story h2{font-size:38px;margin-bottom:26px}.local-story p{font-size:15px}.work-grid{display:block}.work-grid figure:nth-child(even){margin-top:35px}.work-grid figcaption{padding-top:18px}.work-grid figcaption strong{font-size:25px}.work-grid figcaption>a{font-size:12px}.work-grid img{height:auto}.review-layout{display:block}.review-layout h2{font-size:36px;margin-bottom:22px}.google-proof{font-size:12px}.review-layout figure{margin-top:35px}.review-layout blockquote{font-size:32px;line-height:1.3;margin-bottom:25px}.review-layout figcaption{font-size:13px}.source-note{font-size:11px!important;margin-top:24px}.faq-layout{display:block}.faq-layout>div:first-child{margin-bottom:30px}.faq-layout h2{font-size:37px}.questions summary{font-size:14px;padding:21px 0;gap:15px}.questions details>p{font-size:14px;padding-right:5px}.closing{padding-block:43px}.closing-inner{display:block}.closing h2{font-size:37px}.closing p{font-size:14px}.closing-inner>div:last-child{margin-top:24px;display:flex;flex-direction:row;gap:15px}.closing .button{font-size:12px;padding:13px 17px;gap:24px}footer{padding:45px 0 65px}.footer-grid{grid-template-columns:1fr 1fr;gap:30px 20px}.footer-grid>div:first-child{grid-column:span 2}.footer-grid p{font-size:11px;margin-block:20px}.footer-grid h2{font-size:12px}.footer-grid>div>a:not(.wordmark){font-size:11px;line-height:2.7}.footer-grid .footer-phone{font-size:18px!important}.footer-grid>div:nth-child(4)>a{overflow-wrap:anywhere}.socials{font-size:11px;gap:24px}.footer-bottom{font-size:11px;display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:35px;padding:22px 0}.footer-bottom>span{flex-basis:100%}.mobile-actions{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:1fr 1fr;background:var(--ink);padding-bottom:env(safe-area-inset-bottom)}.mobile-actions a{padding:16px;text-align:center;font-size:12px;color:var(--paper)}.mobile-actions a:last-child{background:var(--accent);color:var(--paper);font-weight:600}.mobile-actions .icon{width:16px;height:16px;margin-left:7px}.breadcrumbs{padding-top:22px;font-size:11px;gap:9px}.service-hero{display:flex;flex-direction:column;align-items:stretch;padding-top:35px;padding-bottom:52px;gap:30px}.service-hero h1{font-size:45px}.hero-description{font-size:16px}.button-row{margin-top:25px}.button-row .button{font-size:12px;padding:13px 17px;gap:20px}.service-hero-photo{height:auto;aspect-ratio:1.15}.detail-grid{margin-top:25px}.detail-grid article{display:block;padding-block:24px}.detail-grid h3{font-size:26px;margin-bottom:15px}.detail-grid p{font-size:14px}.service-area{padding-block:40px}.service-area h2{font-size:33px}.service-area p{font-size:14px}.related h2{font-size:35px}.related .service-links{grid-template-columns:1fr}.page-intro{padding:45px 0 28px}.page-intro h1{font-size:48px}.page-intro p{font-size:15px}.contact-layout{display:block;margin-bottom:40px}.direct-contact{padding:0 0 30px}.direct-contact h2{font-size:27px}.direct-contact>a{font-size:17px;line-height:2.5;gap:10px;word-break:break-word}.direct-contact p{font-size:14px}.enquiry-card{padding-top:20px;border-top:1px solid var(--line)}.enquiry-card h2{font-size:33px}.enquiry-card>p{font-size:14px}.field-row{gap:15px}.enquiry-card .button{width:100%}.gallery .work-grid{display:block}.gallery figure+figure{margin-top:45px}.gallery h2{font-size:29px}.gallery p{font-size:14px}.prose h2{font-size:29px}.prose p{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}@media print{.site-header,.mobile-actions,.closing,footer{display:none}.wrap{width:100%}body{background:white}.section{padding:30px 0}h1{font-size:40px}}

body:has(#enquiry-form) .mobile-actions{display:none}
body:has(#enquiry-form) .site-header .menu-toggle{padding-block:16px}

.review-banner{display:block;background:var(--ink);color:var(--paper);font-size:13px;line-height:1.4}.review-banner-inner{display:flex;align-items:center;justify-content:center;gap:17px;min-height:43px;padding-block:9px}.review-source{font-weight:600}.review-stars{flex-shrink:0}.review-summary{display:inline-flex;align-items:center;gap:8px}.review-summary strong{color:var(--accent-light);font-weight:600}.review-banner-action{display:inline-flex;align-items:center;gap:12px;margin-left:12px;font-size:11px;color:#dce7ef}.review-banner-action .icon{width:15px;height:15px}.review-banner:hover .review-banner-action{text-decoration:underline}.review-banner:focus-visible{outline:3px solid #7aaed3;outline-offset:-3px}@media(max-width:700px){.review-banner-inner{width:calc(100% - 28px);min-height:42px;gap:10px;flex-wrap:wrap}.review-banner{font-size:12px}.review-stars{width:74px;height:15px}.review-summary{gap:6px}.review-banner-action{display:none}}@media print{.review-banner{display:none}}

.gallery-intro{font-size:14px;margin:20px 0 0}.photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 25px}.gallery-item{margin:0;min-width:0}.gallery-item>a{display:block;position:relative;aspect-ratio:1;overflow:hidden;cursor:zoom-in;background:var(--paper)}.gallery-item img{width:100%;height:100%;object-fit:contain;transition:opacity .18s ease-out}.gallery-item>a:hover img{opacity:.88}.gallery-item figcaption{padding-top:14px;font-family:var(--display);font-size:22px;letter-spacing:-.025em;line-height:1.25}.photo-view{position:absolute;bottom:12px;right:12px;padding:6px 11px;background:var(--paper);color:var(--ink);font-size:11px;opacity:0;transition:opacity .18s ease-out}.gallery-item>a:hover .photo-view,.gallery-item>a:focus-visible .photo-view{opacity:1}.photo-viewer{width:min(1120px,calc(100vw - 56px));max-height:calc(100dvh - 40px);padding:22px 28px;border:0;border-radius:0;background:var(--ink);color:var(--paper);overflow:auto}.photo-viewer::backdrop{background:rgb(17 28 39 / 88%)}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.viewer-count{font-size:13px;color:#cbdce9;margin:0}.photo-viewer button{background:transparent;border:1px solid #829caf;color:var(--paper);padding:10px 16px;min-height:44px;font-size:13px;cursor:pointer;border-radius:3px;line-height:1.4}.photo-viewer button:hover{background:#0054a1}.photo-viewer button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.viewer-figure{margin:0;text-align:center}.viewer-image{display:block;width:100%;height:min(65dvh,720px);object-fit:contain;background:#001329}.viewer-figure figcaption{margin-top:18px}.viewer-caption{font:500 26px/1.15 var(--display);letter-spacing:-.025em}.viewer-description{font-size:13px;color:#cbdce9;max-width:70ch;margin:10px auto 0}.viewer-navigation{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px}.viewer-navigation>p{font-size:11px;color:#cbdce9;margin:0}.button{justify-content:center}.service-links>a{justify-content:start}.review-banner-action{margin-left:12px}@media(max-width:700px){.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 15px}.gallery-item figcaption{font-size:19px;padding-top:12px}.photo-view{display:none}.gallery-intro{font-size:13px;margin-top:18px}.photo-viewer{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:16px}.viewer-image{height:58dvh}.viewer-caption{font-size:24px}.viewer-description{font-size:12px}.viewer-navigation{gap:12px;margin-top:20px}.viewer-navigation>p{display:none}.viewer-navigation button{font-size:12px;padding:11px 13px}.viewer-count{font-size:12px}}@media print{.photo-viewer{display:none}}

/* Location pages extend the service layout and retain the full work photos. */
.location-photo{height:auto;margin:0}.location-photo img{height:360px}.location-photo figcaption{padding-top:12px;color:var(--muted);font-size:12px;line-height:1.6}.location-photo figcaption a,.location-story a,.local-story p a,.detail-grid h3 a{text-decoration:underline;text-underline-offset:5px}.location-story{display:grid;grid-template-columns:1fr 1.25fr;gap:85px;border-top:1px solid var(--line)}.location-story h2{font-size:44px}.location-story p{font-size:15px;line-height:1.8}.location-story p:last-child{margin-bottom:0}.area-directory-link{margin-top:22px}.area-index{padding-top:0}.area-index .more-services{margin-top:0;padding-top:25px;border-top:0}.area-index h2{font-size:37px}.area-index p{font-size:14px}.service-area .detail-grid{margin-bottom:28px}.location-hero h1{font-size:clamp(43px,4.5vw,65px)}
@media(max-width:850px){.location-story{gap:40px}.location-story h2{font-size:37px}}
@media(max-width:700px){.location-story{display:block}.location-story h2{margin-bottom:26px}.location-hero h1{font-size:42px}.location-photo img{height:auto;max-height:380px}.area-index .more-services{padding-top:12px}.area-index h2{font-size:33px}}

.footer-areas a{text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:3px}.footer-areas a:hover{color:var(--accent-light)}

.terms-copy{padding-bottom:80px}.terms-copy>p{margin-top:28px}.terms-copy section{margin-top:42px}.terms-copy section h2{font-size:30px;scroll-margin-top:120px}.terms-copy section h3{font-size:22px;margin:28px 0 14px}.terms-copy ul{padding-left:22px;color:var(--muted);max-width:70ch}.terms-copy li{margin-bottom:9px}.terms-review-note{padding:22px 25px;background:var(--accent-quiet)}.terms-review-note p{font-size:13px;margin:0;max-width:75ch}.terms-contents{margin-top:35px;padding:25px 0;border-block:1px solid var(--line)}.terms-contents h2{font-size:25px;margin:0 0 20px}.terms-contents ol{display:grid;grid-template-columns:1fr 1fr;gap:8px 35px;padding-left:22px;margin:0;color:var(--muted);font-size:14px}.terms-contents li{padding-left:3px;margin:0}.terms-contents a{line-height:1.7}
@media(max-width:700px){.terms-copy{padding-bottom:50px}.terms-copy section h2{font-size:27px;scroll-margin-top:105px}.terms-copy section h3{font-size:21px}.terms-contents ol{grid-template-columns:1fr}.terms-review-note{padding:20px}.terms-copy p,.terms-copy li{font-size:15px}.terms-review-note p{font-size:13px}}

.terms-intro{max-width:850px;padding-bottom:20px}.terms-intro>p{margin-bottom:0}.terms-copy>p:first-child{margin-top:0}

.privacy-copy>section:first-child{margin-top:0}.privacy-copy .privacy-updated{font-size:12px;margin-top:42px}

.closing p{color:var(--paper)}

.closing .primary{background:var(--paper);color:var(--ink)}.closing .primary:hover{background:var(--accent-quiet)}.closing a:focus-visible{outline-color:var(--paper)}

/* Contact: heading and form share the opening row; mobile keeps the form next. */
.contact-main{padding-top:70px;grid-template-rows:auto 1fr;row-gap:32px;align-items:start}.contact-intro{grid-column:1;grid-row:1}.contact-intro h1{font-size:clamp(48px,5.4vw,68px);margin:0 0 26px}.contact-intro p{font-size:17px;margin:0;max-width:40ch}.contact-main>.enquiry-card{grid-column:2;grid-row:1 / span 2}.contact-main>.direct-contact{grid-column:1;grid-row:2;padding:0}.contact-main .direct-contact h2{font-size:28px}
@media(max-width:700px){.contact-main{display:flex;flex-direction:column;gap:32px;padding-top:40px}.contact-intro h1{font-size:48px;margin-bottom:24px}.contact-intro p{font-size:15px}.contact-main>.enquiry-card,.contact-main>.direct-contact{width:100%}.contact-main>.direct-contact{padding-top:24px;border-top:1px solid var(--line)}.contact-main .direct-contact h2{font-size:27px}}
