@font-face{font-family:Barlow;src:url('/assets/site/barlow-condensed-800.woff2') format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:DM Sans;src:url('/assets/site/dm-sans-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:DM Sans;src:url('/assets/site/dm-sans-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--navy:#061b30;--blue:#0086e6;--gold:#ffcc69;--paper:#f6f5f0;--ink:#102738;--muted:#55636c;--line:#d8dddc;--gutter:clamp(24px,5.5vw,100px);--bar:54px;--header:96px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{margin:0;font:400 16px/1.6 'DM Sans',sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,summary,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #c68c26;outline-offset:6px}
button{color:inherit}
img{display:block;max-width:100%;height:auto}
svg{flex-shrink:0;vertical-align:middle}
p,h1,h2,h3{margin:0}
button,summary{touch-action:manipulation}
::selection{background:var(--gold);color:var(--navy)}
.skip-link{position:fixed;left:20px;top:-100px;background:var(--gold);padding:12px 20px;z-index:100}
.skip-link:focus{top:12px}
.concept-bar{height:var(--bar);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 28px;background:#eeede7;border-bottom:1px solid #d9d9d1;position:sticky;top:0;z-index:30;color:#38423f;font-size:11px}
.concept-heading{font-size:10px;letter-spacing:.12em;display:flex;gap:9px;align-items:center;white-space:nowrap}
.concept-dot{width:6px;height:6px;border-radius:50%;background:#758777}
.concept-options{display:flex;gap:8px;height:100%;align-items:center}
.concept-options a{padding:8px 12px;white-space:nowrap;border-radius:4px;transition:background .2s,color .2s}
.concept-options a>span:first-child{margin-right:4px;font-size:10px}
.concept-options a[aria-current]{background:var(--navy);color:white}
.concept-options a:hover:not([aria-current]){background:#e0e1d9}
.preview-info{border:0;background:none;display:flex;gap:6px;align-items:center;padding:10px 0;font-size:11px}
.site-shell{position:relative;overflow:clip}
.site-header{height:var(--header);padding:0 var(--gutter);display:flex;align-items:center;gap:35px;position:relative;z-index:10;background:#fff}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.brand-icon{width:56px;height:60px;display:flex;align-items:center}
.brand-icon img{width:100%;height:auto;object-fit:contain;border-radius:3px}
.brand-name{font:800 31px/.95 Barlow,sans-serif;letter-spacing:-.02em}
.brand-name>span{display:block;font:600 8px/1.5 'DM Sans',sans-serif;letter-spacing:.22em;margin-top:7px}
.desktop-nav{display:flex;gap:32px;margin-left:auto;font-size:13px}
.desktop-nav a,.site-footer>a:last-child{position:relative}
.desktop-nav a::after,.site-footer>a:last-child::after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .22s}
.desktop-nav a:hover::after,.site-footer>a:last-child:hover::after{transform:scaleX(1)}
.header-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:13px;border:1px solid #cbd0d1;padding:12px 18px;transition:background .2s}
.header-cta:hover{background:var(--paper)}
.mobile-menu{display:none}
.hero{min-height:650px;height:calc(100svh - var(--bar) - var(--header));max-height:850px;position:relative;isolation:isolate;background:var(--navy);color:white;overflow:hidden}
.hero-inner{height:100%;min-height:inherit;position:relative;padding:58px var(--gutter) 92px;display:flex;align-items:center}
.hero-copy{position:relative;z-index:3;width:56%;max-width:700px}
.eyebrow{font-size:10px;line-height:1.5;font-weight:600;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:9px}
.hero .eyebrow{color:#a4d4f4;margin-bottom:20px}
.hero-brand{display:block;font:800 clamp(100px,10vw,164px)/.85 Barlow,sans-serif;letter-spacing:-.025em;margin-left:-4px;white-space:nowrap}
.brand-stop{color:var(--gold)}
.hero-tagline{display:block;font-size:clamp(28px,3vw,46px);font-weight:400;letter-spacing:-.045em;line-height:1.14;margin-top:26px}
.hero-description{font-size:14px;line-height:1.8;color:#b6c7d4;margin-top:23px}
.hero-actions{display:flex;align-items:center;gap:27px;margin-top:31px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:16px 24px;min-height:56px;font-size:13px;font-weight:600;border:0;position:relative;transition:transform .25s,background .25s,color .25s}
.button-primary{background:var(--gold);color:var(--navy)}
.button-primary:hover{background:#ffdd94;transform:translateY(-3px)}
.button svg,.text-link svg,.header-cta svg,.review-footer svg{transition:transform .25s}
.button:hover svg,.text-link:hover svg,.header-cta:hover svg,.review-footer a:hover svg{transform:translateX(4px)}
.text-link{display:inline-flex;align-items:center;gap:15px;font-size:12px;font-weight:600;line-height:1.5;padding:10px 0;border-bottom:1px solid currentColor}
.hero .text-link{border-color:#526378;color:#e1ebf2}
.mascot-scene{position:absolute;width:51%;max-width:810px;aspect-ratio:1;right:0;top:50%;margin-top:-28%;display:flex;align-items:center;justify-content:center;will-change:transform}
.mascot-scene::before{content:'';position:absolute;inset:5%;border-radius:50%;background:radial-gradient(ellipse,#0577b95c,transparent 70%)}
.hero-mascot{width:100%;position:relative;z-index:2;mask-image:linear-gradient(to right,transparent,#000 5%,#000 94%,transparent),linear-gradient(to bottom,#000 88%,transparent 99%);mask-composite:intersect;animation:mascot-in 1.2s cubic-bezier(.16,1,.3,1) both}
.orbit{position:absolute;border-radius:50%;border:1px solid #3873a645;inset:4%;transform:rotate(-25deg)}
.orbit-one::before{content:'';width:7px;height:7px;background:var(--gold);position:absolute;top:14.2%;left:14.2%;border-radius:50%;box-shadow:0 0 22px #ffd17055}
.orbit-two{inset:-2%;border-style:dashed;opacity:.5;animation:orbit 100s linear infinite}
.scene-label{position:absolute;right:8%;top:16%;font-size:8px;color:#98b8cd;letter-spacing:.18em;line-height:1.7;text-align:right;transform:rotate(90deg);transform-origin:right}
.scene-caption{position:absolute;bottom:5%;right:18%;font-size:8px;letter-spacing:.19em;display:flex;gap:15px;align-items:center;color:#a0bbce}
.hero-bottom{position:absolute;bottom:24px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;color:#9bafc2;font-size:10px}
.hero-bottom a{font-size:8px;letter-spacing:.15em;display:flex;gap:17px;align-items:center;padding:8px 0}
.hero-bottom a span{font-size:22px}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;will-change:transform}
.hero-shade{position:absolute;inset:0;z-index:-1}
.service-strip{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:23px var(--gutter);background:var(--blue);color:white;white-space:nowrap;overflow:hidden}
.service-strip>span{font:800 clamp(17px,1.5vw,23px)/1 Barlow,sans-serif;letter-spacing:.035em}
.service-strip i{font-size:20px;font-style:normal;color:#87ceff}
.section-pad{padding:105px var(--gutter)}
h2{font:800 clamp(44px,4.5vw,68px)/1.02 Barlow,sans-serif;letter-spacing:-.018em}
.section-pad .eyebrow,.approach .eyebrow{margin-bottom:23px;color:#4c6575;font-size:9px}
.services{display:grid;grid-template-columns:1fr 1.28fr;gap:8%;background:var(--paper)}
.section-intro>p:not(.eyebrow){margin:24px 0 18px;max-width:335px;font-size:14px;color:var(--muted)}
.section-intro>.text-link{font-size:11px;color:var(--ink)}
.service-list{border-top:1px solid var(--line)}
.service-item{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
.service-item summary{display:flex;gap:20px;padding:27px 0;position:relative;align-items:center}
.service-item summary:hover .service-icon{transform:translateY(-3px);color:var(--blue)}
.service-icon{color:#177fc3;transition:transform .25s,color .25s;width:40px}
.service-text{flex:1}
.service-number{font-size:8px;letter-spacing:.1em;display:none}
.service-text h3{font-size:20px;line-height:1.25;font-weight:600;letter-spacing:-.04em}
.service-summary{font-size:11px;color:var(--muted);display:block;margin-top:8px}
.toggle-mark{width:20px;height:20px;position:relative;flex-shrink:0;margin-left:15px}
.toggle-mark::before,.toggle-mark::after{content:'';position:absolute;left:3px;top:9px;background:currentColor;height:1px;width:14px;transition:transform .25s}
.toggle-mark::after{transform:rotate(90deg)}
details[open]>summary .toggle-mark::after{transform:rotate(0)}
.service-detail{padding:0 35px 27px 60px;font-size:13px;color:var(--muted);animation:detail-in .25s ease-out}
.service-detail a{font-size:11px;display:inline-flex;align-items:center;gap:15px;margin-top:17px;color:var(--ink);text-decoration:underline;text-underline-offset:5px}
.approach{display:grid;grid-template-columns:1fr 1fr;background:#e9eef0}
.approach-image{position:relative;min-height:580px;overflow:hidden}
.approach-image::after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#041b2890)}
.approach-image img{width:100%;height:100%;object-fit:cover;object-position:70% center;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.approach-image:hover img{transform:scale(1.025)}
.approach-image>span{position:absolute;left:40px;bottom:35px;z-index:1;color:white;display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.15em}
.approach-copy{padding:80px clamp(35px,6vw,100px)}
.approach-copy>p:not(.eyebrow){max-width:400px;color:var(--muted);font-size:13px;margin-top:24px}
.steps{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:21px}
.steps li{display:flex;gap:20px;align-items:flex-start}
.steps li>span{color:#35647f;font-size:10px;padding-top:4px}
.steps h3{font-size:13px;font-weight:600}
.steps p{font-size:11px;color:var(--muted);margin-top:4px}
.local{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;border-bottom:1px solid var(--line);background:#fff}
.local-copy>p{font-size:14px;color:var(--muted);max-width:470px}
.local-copy p.towns{font-size:12px;line-height:2.4;color:var(--ink);margin:22px 0 14px}
.towns span{padding:0 8px;color:#99a5a9}
.faq{display:grid;grid-template-columns:1fr 1.28fr;gap:8%;background:#fff}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{padding:24px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px;font-weight:600}
.faq-list details>p{font-size:13px;color:var(--muted);padding:0 30px 25px 0;animation:detail-in .25s ease-out}
.contact{position:relative;background:var(--navy);color:white;min-height:510px;overflow:hidden;isolation:isolate}
.contact::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 85% 100%,#006abe35,transparent 60%)}
.contact .eyebrow{color:#95c5e2}
.contact h2{font-size:clamp(65px,7vw,100px)}
.contact-main{position:relative;z-index:2}
.contact-main>p:not(.eyebrow){margin:20px 0 26px;color:#b9cbd7;font-size:13px}
.contact-mascot{position:absolute;width:450px;right:9%;bottom:-95px;transform:rotate(-7deg);mask-image:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 88%,transparent);mask-composite:intersect}
.contact-email{display:block;font-size:11px;margin-top:15px;color:#c6d8e4;width:fit-content}
.contact-email:hover{text-decoration:underline}
.site-footer{padding:33px var(--gutter);background:#031422;color:#cad7df;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:10px}
.site-footer .brand-icon{width:42px;height:45px}
.site-footer .brand-name{font-size:25px;color:white}
.site-footer .brand-name>span{font-size:6px}
.review-footer{padding:45px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:25px;background:#eeede7;color:#3b4541}
.review-footer>div>span{font-size:9px;letter-spacing:.17em;display:block;margin-bottom:4px}
.review-footer strong{font-size:23px;font-weight:400;letter-spacing:-.04em}
.review-footer p{font-size:11px;color:#626c66;margin-top:4px}
.review-footer>a{display:flex;align-items:center;gap:30px;font-size:13px;border-bottom:1px solid #a4aaa1;padding:12px 0}
.concept-notes{width:640px;max-width:calc(100% - 32px);max-height:calc(100svh - 48px);padding:45px;background:var(--paper);color:var(--ink);border:0;box-shadow:0 20px 100px #0004;overscroll-behavior:contain}
.concept-notes::backdrop{background:#061b30bb;backdrop-filter:blur(6px)}
.concept-notes>button:first-child{position:absolute;top:12px;right:14px;border:0;background:none;width:44px;height:44px;font-size:28px}
.concept-notes h2{font-size:42px;margin:18px 0 24px}
.concept-notes>p:not(.eyebrow){font-size:13px;color:var(--muted);margin-bottom:20px}
.concept-notes dt{font-size:13px;font-weight:600;margin-top:15px}
.concept-notes dd{font-size:12px;color:var(--muted);margin:3px 0 0}
.concept-notes dl{margin-bottom:25px}
.concept-notes>p.notes-small{font-size:11px}
.dialog-open{overflow:hidden}
.entrance{animation:rise-in .9s cubic-bezier(.16,1,.3,1) both}
.entrance:nth-child(2){animation-delay:.08s}.entrance:nth-child(3){animation-delay:.18s}.entrance:nth-child(4){animation-delay:.28s}
.will-reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.will-reveal.is-visible{opacity:1;transform:translateY(0)}
@keyframes rise-in{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}
@keyframes mascot-in{from{opacity:0;transform:translate(60px,20px) rotate(5deg) scale(.96)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}
@keyframes orbit{to{transform:rotate(335deg)}}
@keyframes detail-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}

/* Cumbrian Calm: editorial photography, softer scale, warmer materials. */
.theme-calm{--gold:#e5bd76;--navy:#19342f;--ink:#21372e;--paper:#f7f5ed;--blue:#536d5c;--muted:#5c655c;--line:#daddd3}
.theme-calm .site-header{position:absolute;top:0;left:0;right:0;background:transparent;color:white;border-bottom:1px solid #ffffff30}
.theme-calm .header-cta{border-color:#ffffff50}
.theme-calm .header-cta:hover{background:#ffffff15}
.theme-calm .hero{height:calc(100svh - var(--bar));max-height:950px;min-height:750px}
.theme-calm .hero-inner{padding-top:calc(var(--header) + 65px);padding-bottom:110px}
.theme-calm .hero-photo{object-position:center 60%;transform:scale(1.04)}
.theme-calm .hero-shade{background:linear-gradient(90deg,#081e20b8 0%,#081e2070 38%,#061b3010 75%),linear-gradient(0deg,#061b3070,transparent 45%,#061b3040)}
.theme-calm .hero-copy{width:70%;max-width:800px}
.theme-calm .hero .eyebrow{color:#e9dcc3}
.theme-calm .hero-brand{font-size:clamp(100px,10vw,158px)}
.theme-calm .hero-tagline{font-size:clamp(30px,3.4vw,52px);line-height:1.17;font-weight:400}
.theme-calm .hero-description{color:#e1e6df}
.theme-calm .hero-bottom{color:#e0e4dc}
.theme-calm .hero-actions .text-link{color:#fff;border-color:#ffffff65}
.theme-calm .button-primary{background:#f4eee0;color:var(--navy)}
.theme-calm .button-primary:hover{background:#fff}
.theme-calm .service-strip{background:#eeeade;color:var(--ink);padding-block:25px}
.theme-calm .service-strip>span{font:600 11px/1.3 'DM Sans',sans-serif;letter-spacing:.1em}
.theme-calm .service-strip i{color:#b7a07c;font-size:17px}
.theme-calm h2{font:400 clamp(35px,3.6vw,53px)/1.13 'DM Sans',sans-serif;letter-spacing:-.06em}
.theme-calm .service-icon{color:#738568}
.theme-calm .steps li>span{color:#546846}
.theme-calm .approach{background:#e8e9df}
.theme-calm .approach-image img{object-position:78% center}
.theme-calm .local,.theme-calm .faq{background:var(--paper)}
.theme-calm .contact{background:#061b30}
.theme-calm .contact h2{font-size:clamp(55px,6vw,82px)}
.theme-calm .contact .eyebrow{color:#d4c29c}
.theme-calm .contact-main>p:not(.eyebrow){color:#d0dacd}
.theme-calm .contact-mascot{width:330px;right:15%;bottom:-25px;transform:rotate(-5deg)}
.theme-calm .site-footer{background:#172e25}

/* Blue & Bold: a graphic poster, electric blue, oversized condensed lettering. */
.theme-bold{--blue:#0063e5;--gold:#ffcf5d;--paper:#f7f8f8}
.theme-bold .site-header{background:var(--navy);color:white;border-bottom:1px solid #ffffff26}
.theme-bold .header-cta{color:var(--navy);background:var(--gold);border-color:var(--gold)}
.theme-bold .header-cta:hover{background:#ffdf96}
.theme-bold .hero{background:var(--blue)}
.theme-bold .hero-shade{background:none}
.theme-bold .hero-inner{padding-top:50px;padding-bottom:100px}
.theme-bold .hero-copy{width:60%}
.theme-bold .hero .eyebrow{color:#fff}
.theme-bold .hero-brand{font-size:clamp(110px,12.5vw,200px);letter-spacing:-.035em}
.theme-bold .hero-tagline{font:800 clamp(40px,4.3vw,68px)/.98 Barlow,sans-serif;letter-spacing:-.012em;margin-top:27px}
.theme-bold .hero-description{color:#e0edff;margin-top:22px}
.theme-bold .hero-actions .text-link{color:white;border-color:#ffffff80}
.theme-bold .mascot-scene{right:-5%;width:53%;margin-top:-24%}
.theme-bold .mascot-scene::before{display:none}
.theme-bold .hero-mascot{transform:rotate(-6deg)}
.theme-bold .orbit,.theme-bold .scene-label,.theme-bold .scene-caption{display:none}
.theme-bold .hero-bottom{color:#f1f6ff}
.theme-bold .service-strip{background:var(--gold);color:var(--navy);padding-block:24px;transform:rotate(-1.1deg) scale(1.02);position:relative;z-index:5;margin-top:-12px}
.theme-bold .service-strip i{color:#7e6217}
.theme-bold h2{text-transform:uppercase;font-size:clamp(49px,5vw,78px);line-height:.98}
.theme-bold .service-number{display:block;margin-bottom:5px;color:#536c7a}
.theme-bold .service-icon{display:none}
.theme-bold .service-text h3{font:800 35px/1 Barlow,sans-serif;text-transform:uppercase;letter-spacing:0}
.theme-bold .service-item summary{padding:23px 0}
.theme-bold .service-detail{padding-left:0}
.theme-bold .approach{background:var(--navy);color:white}
.theme-bold .approach .eyebrow{color:#8abce5}
.theme-bold .approach-copy>p:not(.eyebrow),.theme-bold .steps p{color:#adc1d2}
.theme-bold .steps li>span{color:var(--gold)}
.theme-bold .contact{background:var(--blue)}
.theme-bold .contact h2{font-size:clamp(80px,9vw,138px)}
.theme-bold .contact .eyebrow{color:#fff}
.theme-bold .contact-main>p:not(.eyebrow),.theme-bold .contact-email{color:white}

@media(min-width:1700px){.hero-copy{max-width:800px}.mascot-scene{right:4%;margin-top:-430px}.hero-inner{padding-block:70px 100px}}
@media(max-width:1150px){
  .concept-heading{font-size:8px;letter-spacing:.07em}.concept-bar{padding-inline:20px;gap:15px}.concept-options{gap:2px}.concept-options a{padding-inline:9px}.preview-info span{display:none}
  .site-header{gap:25px}.desktop-nav{gap:20px}.header-cta{gap:15px}.hero{min-height:630px}.hero-brand{font-size:clamp(85px,10vw,140px)}
  .hero-actions{gap:20px}.hero-actions .text-link{font-size:11px}.button{gap:20px;padding-inline:20px}.mascot-scene{width:53%;right:-4%;margin-top:-26%}.scene-label{display:none}
  .section-pad{padding-block:80px}.services,.faq{gap:6%}.approach-copy{padding:65px 40px}.contact-mascot{right:3%;width:390px}.theme-bold .hero-brand{font-size:13vw}.theme-bold .mascot-scene{right:-10%;width:57%}
}
@media(max-width:800px){
  :root{--header:80px;--bar:56px;--gutter:28px}
  .concept-heading{display:none}.concept-bar{justify-content:space-between;padding-inline:16px;gap:10px}.concept-options{flex:1;justify-content:center;gap:6px}.concept-options a{padding:9px 10px}.preview-info{font-size:17px;width:24px;justify-content:center}
  .desktop-nav{display:none}.site-header{gap:20px}.header-cta{margin-left:auto;font-size:11px;padding:10px 15px}.brand-icon{width:46px;height:50px}.brand-name{font-size:29px}.brand-name>span{font-size:7px}
  .mobile-menu{display:block}.mobile-menu summary{width:38px;height:44px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:9px}.mobile-menu summary span{height:1px;width:20px;background:currentColor;transition:transform .2s}
  .mobile-menu[open] summary span:first-child{transform:translateY(3.5px) rotate(45deg)}.mobile-menu[open] summary span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .mobile-menu nav{position:absolute;left:0;right:0;top:100%;display:grid;background:var(--paper);color:var(--ink);padding:16px var(--gutter) 25px;border-bottom:1px solid var(--line);box-shadow:0 20px 35px #061b3020}
  .mobile-menu nav a{padding:13px 0;border-bottom:1px solid var(--line);font-size:14px;display:flex;justify-content:space-between;align-items:center}
  .hero{min-height:650px;max-height:800px}.hero-copy{width:60%}.hero-brand{font-size:88px}.hero-tagline{font-size:30px}.hero .eyebrow{font-size:8px;letter-spacing:.14em}.hero-description{font-size:12px}
  .hero-actions{flex-wrap:wrap;gap:10px 22px}.hero-actions .text-link{font-size:10px}.mascot-scene{width:59%;right:-9%;margin-top:-30%}.hero-bottom{font-size:9px}.hero-bottom a{font-size:7px}
  .service-strip{gap:17px;padding-block:19px}.service-strip>span{font-size:16px}.service-strip>span:last-child,.service-strip>i:nth-last-child(2){display:none}
  .services,.faq{grid-template-columns:1fr;gap:40px}.section-intro>p:not(.eyebrow){max-width:450px}.service-item summary{padding:25px 0}.service-summary{font-size:12px}.service-detail{font-size:14px}
  .approach{grid-template-columns:1fr}.approach-image{height:390px;min-height:0}.approach-image img{object-position:center 65%}.approach-copy{padding:65px var(--gutter)}.approach-copy>p:not(.eyebrow){max-width:520px}
  .steps{gap:24px}.steps h3{font-size:14px}.steps p{font-size:12px}.local{grid-template-columns:1fr;gap:30px}.local-copy>p{max-width:530px}.contact-mascot{width:340px;right:-50px;bottom:-45px}.contact-main{max-width:70%}
  .site-footer{flex-wrap:wrap;padding-block:30px;gap:20px}.site-footer>.brand{width:45%}.site-footer>span{width:45%}.site-footer>a:last-child{margin-left:auto}
  .theme-calm .hero{min-height:700px}.theme-calm .hero-copy{width:90%}.theme-calm .hero-brand{font-size:110px}.theme-calm .hero-tagline{font-size:38px}.theme-calm .hero-shade{background:linear-gradient(90deg,#081e20ba,#081e2030),linear-gradient(0deg,#061b3090,transparent 70%)}.theme-calm .service-strip>span{font-size:9px}.theme-calm .contact-mascot{right:3%;width:260px}
  .theme-bold .hero-brand{font-size:115px}.theme-bold .hero-tagline{font-size:45px}.theme-bold .mascot-scene{width:61%;right:-13%;margin-top:-28%}.theme-bold .hero-copy{width:66%}.theme-bold .contact h2{font-size:85px}
}
@media(max-width:540px){
  :root{--gutter:24px;--header:76px;--bar:54px}
  body{font-size:14px}.concept-bar{padding-inline:8px;gap:4px}.concept-options{gap:0;justify-content:space-between}.concept-options a{font-size:9px;padding:9px 6px}.concept-options a>span:first-child{font-size:8px;margin-right:2px}.preview-info{width:25px;flex-shrink:0}
  .site-header{gap:12px}.brand-icon{width:39px;height:45px}.brand{gap:7px}.brand-name{font-size:26px}.brand-name>span{font-size:6px;letter-spacing:.18em;margin-top:5px}.header-cta{font-size:10px;gap:8px;padding:9px 10px}.header-cta svg{width:16px}.mobile-menu summary{width:25px;padding:4px}
  .hero{height:calc(100svh - var(--bar) - var(--header));min-height:670px;max-height:800px}.hero-inner{display:block;padding-top:32px;padding-bottom:50px}.hero-copy{width:100%;max-width:none}.hero .eyebrow{font-size:8px;margin-bottom:17px}.hero-brand{font-size:clamp(85px,22.5vw,116px);line-height:.86;margin-left:-2px}.hero-tagline{font-size:26px;line-height:1.13;margin-top:18px;letter-spacing:-.045em}.hero-description{font-size:11px;margin-top:15px;max-width:290px;line-height:1.65}.hero-actions{margin-top:20px;gap:19px;flex-wrap:nowrap;align-items:center}.button{font-size:11px;padding:13px 16px;min-height:48px;gap:19px}.button svg{width:18px}.hero-actions .text-link{font-size:9px;gap:9px;white-space:nowrap}.hero-actions .text-link svg{width:16px}
  .mascot-scene{width:290px;height:290px;top:auto;right:calc(50% - 158px);bottom:26px;margin-top:0}.hero-mascot{height:100%;object-fit:contain}.orbit{inset:8%}.orbit-two{inset:1%}.scene-caption{display:none}.hero-bottom{bottom:9px;font-size:7px;right:20px;left:24px}.hero-bottom a{font-size:6px;gap:9px}.hero-bottom a span{font-size:17px}
  .service-strip{padding:18px 20px;gap:10px}.service-strip>span{font-size:14px;letter-spacing:.01em}.service-strip i{font-size:14px}.section-pad{padding-block:60px}.section-pad .eyebrow,.approach .eyebrow{font-size:8px;margin-bottom:20px}h2{font-size:44px}.services,.faq{gap:35px}.section-intro>p:not(.eyebrow){font-size:13px;margin-top:20px;max-width:310px}.section-intro>.text-link{font-size:10px}.service-item summary{gap:15px;padding:22px 0}.service-icon{width:30px}.service-icon svg{width:27px}.service-text h3{font-size:18px}.service-summary{font-size:10px;max-width:230px;line-height:1.6;margin-top:5px}.service-detail{padding-left:45px;padding-right:10px;font-size:12px}.service-detail a{font-size:10px}.toggle-mark{margin-left:0}
  .approach-image{height:330px}.approach-image>span{left:24px;bottom:24px;font-size:8px}.approach-copy{padding-block:55px}.approach-copy>p:not(.eyebrow){font-size:12px}.steps h3{font-size:12px}.steps p{font-size:11px}.local-copy>p{font-size:12px}.local-copy p.towns{font-size:10px;line-height:2.6}.towns span{padding:0 5px}.faq-list summary{font-size:12px;gap:15px;padding-block:22px}.faq-list details>p{font-size:12px}
  .contact{min-height:530px}.contact-main{max-width:100%}.contact h2{font-size:69px}.contact-main>p:not(.eyebrow){font-size:12px}.contact-mascot{width:235px;right:-50px;bottom:-20px;z-index:1;opacity:.85}.contact-main .button{position:relative;z-index:2}.contact-email{font-size:10px}.site-footer{font-size:9px}.site-footer .brand-name{font-size:25px}.site-footer>.brand{width:50%}.site-footer>span{width:auto}.site-footer>span:first-of-type{max-width:100px;text-align:right;margin-left:auto}.site-footer>a:last-child{font-size:9px}
  .review-footer{padding-block:30px;display:block}.review-footer strong{font-size:22px}.review-footer>a{font-size:12px;width:fit-content;margin-top:16px}.concept-notes{padding:36px 24px 28px}.concept-notes h2{font-size:38px}.concept-notes>p:not(.eyebrow){font-size:12px}.concept-notes .eyebrow{font-size:9px}.concept-notes .button{margin-top:5px}
  .theme-calm .hero{height:calc(100svh - var(--bar));min-height:710px;max-height:900px}.theme-calm .hero-inner{display:flex;align-items:flex-end;padding-top:110px;padding-bottom:100px}.theme-calm .hero-copy{width:100%}.theme-calm .hero-brand{font-size:clamp(88px,24vw,120px)}.theme-calm .hero-tagline{font-size:32px;margin-top:23px}.theme-calm .hero-description{font-size:12px;margin-top:21px}.theme-calm .hero-actions{margin-top:26px}.theme-calm .hero-photo{object-position:64% center}.theme-calm .hero-shade{background:linear-gradient(0deg,#061e20e8 0%,#061e2070 60%,#061e2045 100%)}.theme-calm .hero-bottom{bottom:17px}.theme-calm .service-strip{padding:20px 15px;gap:8px}.theme-calm .service-strip>span{font-size:8px;letter-spacing:.02em}.theme-calm .service-strip i{font-size:12px}.theme-calm h2{font-size:37px}.theme-calm .contact h2{font-size:57px}.theme-calm .contact-mascot{width:210px;right:-28px;bottom:-15px}
  .theme-bold .hero{min-height:715px}.theme-bold .hero-inner{padding-top:32px;padding-bottom:60px}.theme-bold .hero-copy{width:100%}.theme-bold .hero-brand{font-size:clamp(85px,24vw,124px)}.theme-bold .hero-tagline{font-size:41px;margin-top:18px}.theme-bold .hero-description{margin-top:16px}.theme-bold .hero-actions{margin-top:20px}.theme-bold .mascot-scene{width:290px;height:290px;right:calc(50% - 155px);margin-top:0;bottom:30px}.theme-bold .hero-shade{background:linear-gradient(115deg,transparent 55%,#0060d2 55%)}.theme-bold .hero-bottom{bottom:14px}.theme-bold .hero-bottom>span{max-width:135px}.theme-bold .service-strip{margin-top:-7px;padding-inline:23px}.theme-bold h2{font-size:48px}.theme-bold .service-text h3{font-size:30px}.theme-bold .contact h2{font-size:82px}
}
@media(max-width:360px){
  :root{--gutter:20px}.concept-options a{font-size:8px;padding:9px 5px}.concept-options a>span:first-child{display:none}.brand-icon{width:32px}.brand-name{font-size:24px}.site-header{gap:10px}.header-cta{padding:9px;font-size:9px;gap:8px}.header-cta svg{display:none}.hero .eyebrow{font-size:7px}.hero-actions{gap:15px}.hero-actions .text-link{font-size:8px}.button{font-size:10px;gap:14px}.hero-tagline{font-size:24px}.service-strip>span{font-size:12px}.service-strip i{font-size:12px}.service-summary{font-size:9px}.service-item summary{gap:12px}.service-text h3{font-size:17px}.local-copy p.towns{font-size:9px}.towns span{padding:0 3px}.theme-calm .hero-tagline{font-size:29px}.theme-calm .service-strip>span{font-size:7px}.theme-bold .hero-tagline{font-size:39px}
}
.theme-defender .hero-mascot,.theme-defender .contact-mascot,.theme-calm .contact-mascot{mix-blend-mode:lighten}
.theme-defender .mascot-scene::before{display:none}
.theme-defender .service-strip{background:#0074ca}
.theme-bold .hero-shade{background:none}
@media(min-width:541px){
  .mascot-scene,.theme-bold .mascot-scene{height:calc(100% - 65px);width:auto;max-width:55%;margin-top:0;translate:0 -50%;right:-1%}
  .hero-mascot{max-height:100%;object-fit:contain}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.will-reveal{opacity:1;transform:none}.mascot-scene,.hero-photo{will-change:auto}
}

/* Real project photography: CSS crops preserve the supplied work exactly. */
.work{background:#fff}
.work-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:65px}
.work-heading>p{max-width:365px;font-size:14px;color:var(--muted);padding-bottom:6px}
.work-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:clamp(50px,9vw,140px);align-items:center}
.project-figure{margin:0;max-width:540px;width:100%}
.room-comparison{position:relative;aspect-ratio:3/4;overflow:hidden;background:#ccbfaa;--reveal:52%;isolation:isolate;clip-path:polygon(0 0,88% 0,100% 9%,100% 100%,0 100%)}
.comparison-layer{position:absolute;inset:0;overflow:hidden}
.boarding-photo img{width:100%;height:100%;object-fit:cover}
.finish-photo{clip-path:inset(0 calc(100% - var(--reveal)) 0 0)}
.finish-photo img{position:absolute;top:-31.27%;left:0;width:100%;height:162.54%;max-width:none}
.photo-stage{position:absolute;bottom:22px;padding:8px 12px;background:#061b30e8;color:#fff;font-size:8px;font-weight:600;letter-spacing:.12em;z-index:2;pointer-events:none}
.stage-boarding{right:17px}.stage-finish{left:17px;background:#fff3d6;color:#12283b}
.comparison-divider{position:absolute;left:var(--reveal);top:0;bottom:0;width:2px;background:#fff;z-index:2;pointer-events:none;box-shadow:0 0 15px #0002}
.comparison-divider>span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:53px;height:53px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:50%;background:var(--gold);color:#061b30;font-size:22px;box-shadow:0 4px 20px #0003}
.comparison-divider i{display:block;width:1px;height:18px;background:#061b3060}
.comparison-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:4;touch-action:pan-y}
.room-comparison:focus-within .comparison-divider>span{outline:3px solid var(--navy);outline-offset:4px}
.project-figure figcaption{display:flex;justify-content:space-between;gap:20px;font-size:9px;color:var(--muted);padding:18px 0;border-bottom:1px solid var(--line)}
.project-figure figcaption>span:first-child{letter-spacing:.1em;color:var(--ink)}
.project-figure figcaption>span:last-child span{font-size:15px;padding-left:7px}
.work-story h3,.ventilation-copy h3{font:800 clamp(40px,4vw,62px)/1.03 Barlow,sans-serif;letter-spacing:-.02em;margin-bottom:24px}
.work-story>p:not(.eyebrow),.ventilation-copy>p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:400px;margin-bottom:23px}
.work-detail{padding:22px 0;border-top:1px solid var(--line)}
.work-detail>span{font-size:9px;font-weight:600;letter-spacing:.12em}
.work-detail>p{font-size:12px;color:var(--muted);margin-top:9px}
.work-story>.text-link{margin-top:14px}
.work-story>p.photo-context{font-size:10px;margin-top:23px;line-height:1.6;max-width:320px}
.ventilation-story{margin-top:110px;display:grid;grid-template-columns:.8fr 1fr;gap:8%;align-items:center}
.ventilation-visual{position:relative;padding:0 12% 65px 0;min-width:0}
.ventilation-main{aspect-ratio:1.06;clip-path:polygon(11% 0,100% 0,100% 88%,89% 100%,0 100%,0 12%);overflow:hidden;background:var(--navy)}
.ventilation-main img{width:100%;height:100%;object-fit:cover;object-position:center 43%;transform:scale(1.16);transition:opacity .18s,transform .8s}
.ventilation-main:hover img{transform:scale(1.21)}
.diffuser-detail{position:absolute;right:0;bottom:80px;width:40%;padding:0;aspect-ratio:1;border:8px solid #fff;border-radius:50%;overflow:hidden;background:#e1d1ba;box-shadow:0 10px 25px #061b3015;transition:transform .25s}
.diffuser-detail:hover{transform:translateY(-5px)}
.diffuser-detail img{width:100%;height:100%;object-fit:cover;transform:scale(1.55);object-position:54% 29%}
.diffuser-detail>span{position:absolute;bottom:0;left:0;right:0;background:#061b30e6;color:#fff;padding:12px 7px 23px;font-size:7px;letter-spacing:.08em}
.diffuser-detail>span>span{padding-left:6px;font-size:13px}
.ventilation-controls{display:flex;gap:17px;align-items:center;margin-top:20px}
.ventilation-controls button{border:0;border-bottom:1px solid transparent;background:none;padding:10px 0;color:var(--muted);font-size:11px;min-height:44px}
.ventilation-controls button[aria-pressed=true]{border-color:var(--ink);color:var(--ink)}
.ventilation-controls .photo-expand{margin-left:auto;width:44px;font-size:22px}
.theme-calm .work{background:#f3f0e6}
.theme-calm .work-story h3,.theme-calm .ventilation-copy h3{font:400 clamp(35px,3.8vw,53px)/1.12 'DM Sans',sans-serif;letter-spacing:-.055em}
.theme-calm .diffuser-detail{border-color:#f3f0e6}
.theme-calm .room-comparison{clip-path:inset(0 round 140px 0 0 0)}
.theme-bold .work-story h3,.theme-bold .ventilation-copy h3{text-transform:uppercase}
.theme-bold .room-comparison{clip-path:polygon(0 0,100% 0,100% 94%,91% 100%,0 100%)}
/* Contact: a generous, quiet form balanced against the brand. */
.contact.contact-with-form{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:start;isolation:isolate;padding-block:95px}
.contact-intro{position:relative;min-width:0}
.contact-with-form h2{font-size:clamp(68px,7.3vw,105px);line-height:.95}
.contact-intro>p:not(.eyebrow){font-size:14px;line-height:1.8;color:#c3d1dc;max-width:335px;margin-top:27px}
.contact-person{display:flex;gap:13px;align-items:center;margin-top:35px}
.person-mark{width:43px;height:43px;border:1px solid #7595b05c;border-radius:50%;display:grid;place-items:center;background:#ffffff06;font:800 23px/1 Barlow,sans-serif;color:var(--gold)}
.contact-person strong{font-size:12px;font-weight:600;display:block}
.contact-person>div>span{display:block;font-size:10px;color:#afc3d1;margin-top:3px}
.direct-contact{margin-top:36px;padding-top:28px;border-top:1px solid #8199b02e;max-width:335px}
.direct-contact>span{display:block;color:#a8c4d9;font-size:8px;letter-spacing:.13em}
.contact-phone{display:flex;gap:28px;align-items:center;font:400 26px/1.5 'DM Sans',sans-serif;letter-spacing:-.03em;width:fit-content;margin-top:7px}
.contact-phone:hover{color:var(--gold)}
.contact-with-form .contact-email{font-size:12px;margin-top:8px}
.form-mascot{width:200px;margin:25px 0 -35px 20px;mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,#000 80%,transparent);mask-composite:intersect;mix-blend-mode:lighten}
.enquiry-panel{background:#faf9f5;color:#173247;padding:38px;box-shadow:0 15px 65px #00162622;position:relative;border-top:3px solid var(--gold);min-width:0}
.form-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}
.contact .form-heading .eyebrow{color:#5b6a71;font-size:8px;margin:0;letter-spacing:.12em}
.form-step{font-size:7px;letter-spacing:.1em;color:#65737c;white-space:nowrap}
.enquiry-panel>h3{font:400 34px/1.2 'DM Sans',sans-serif;letter-spacing:-.045em}
.form-subtitle{color:#61717a;font-size:12px;margin-top:8px;margin-bottom:30px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.form-field{margin-bottom:19px;min-width:0}
.form-field label{display:block;font-size:11px;font-weight:600;margin-bottom:8px}
.form-field label>span{font-size:9px;font-weight:400;color:#687882;margin-left:3px}
.form-field input,.form-field textarea,.form-field select{display:block;width:100%;min-height:49px;border:1px solid #d1d8d8;border-radius:0;background:#fff;color:#173247;padding:12px 13px;font:400 13px/1.5 'DM Sans',sans-serif;transition:border-color .2s,box-shadow .2s;outline:none;box-shadow:none}
.form-field input::placeholder,.form-field textarea::placeholder{color:#73828a;opacity:1}
.form-field input:hover,.form-field textarea:hover,.form-field select:hover{border-color:#96acb9}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:#1773ac;box-shadow:0 0 0 3px #1773ac20}
.form-field textarea{resize:vertical;min-height:115px;max-height:360px}
.form-field select{padding-right:30px}
.form-field [aria-invalid=true]{border-color:#b53a36;box-shadow:0 0 0 2px #b53a3615}
.field-error{color:#a72c2c;font-size:10px;line-height:1.5;display:block;margin-top:5px}
.field-error:empty{display:none}
.message-meta{display:flex;justify-content:space-between;font-size:9px;color:#63737d;margin-top:8px}
.website-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-privacy{font-size:10px;color:#5b6b75;line-height:1.7;margin-top:2px}
.form-privacy button{display:inline;background:none;padding:0;border:0;border-bottom:1px solid #a4b4bb;font-size:inherit;text-align:left;color:#284b61}
.form-submit{width:100%;margin-top:22px;min-height:54px;font-size:12px;background:#ffcc69!important;color:#061b30!important}
.form-submit:disabled{cursor:wait;opacity:.7;transform:none}
.form-security{display:flex;align-items:center;justify-content:center;gap:7px;color:#63747d;font-size:9px;margin-top:14px}
.form-status{font-size:11px;color:#4e6573;line-height:1.6;margin-top:10px}
.form-status:empty{display:none}
.form-error-summary{background:#fff0ec;border-left:3px solid #b33b30;padding:13px 15px;margin:0 0 22px;font-size:12px;color:#84332e}
.form-error-summary a{text-decoration:underline;display:block;margin-top:6px}
.form-success{padding:25px 0 45px;outline:none}
.success-mark{display:grid;place-items:center;border-radius:50%;width:64px;height:64px;background:#e4eddf;color:#2b573f;font-size:31px;margin-bottom:28px}
.contact .form-success .eyebrow{color:#526650;font-size:9px;margin-bottom:16px}
.form-success h3{font:800 53px/.98 Barlow,sans-serif;letter-spacing:-.01em;color:#163246}
.form-success>p:not(.eyebrow){font-size:14px;color:#5b6a73;margin:24px 0 15px}
.enquiry-reference{font-size:11px;display:block;color:#5b6a73;margin-bottom:25px}
.form-success button{border:0;border-bottom:1px solid #647881;background:none;color:#173247}
.form-noscript{font-size:14px;color:#536971}.form-noscript a{text-decoration:underline}
[hidden]{display:none!important}
.theme-calm .contact-with-form h2{font-size:clamp(58px,6vw,85px);line-height:1.07}
.theme-bold .contact-with-form h2{font-size:clamp(72px,7.3vw,105px)}
.theme-bold .contact-intro>p:not(.eyebrow),.theme-bold .contact-person>div>span,.theme-bold .direct-contact>span{color:#f0f5ff}
.theme-bold .form-mascot{mix-blend-mode:normal}
.photo-dialog,.privacy-dialog{border:0;background:var(--paper);color:var(--ink);max-width:calc(100vw - 32px);max-height:calc(100svh - 32px);overscroll-behavior:contain;padding:30px;box-shadow:0 30px 100px #0004}
.photo-dialog{width:780px}
.photo-dialog::backdrop,.privacy-dialog::backdrop{background:#061b30c9;backdrop-filter:blur(7px)}
.dialog-close{position:absolute;right:12px;top:10px;width:44px;height:44px;border:0;background:var(--paper);font-size:28px;z-index:2}
.photo-dialog h2{font:600 18px/1.4 'DM Sans',sans-serif;letter-spacing:-.025em;margin:0 35px 20px 0}
.photo-dialog img{width:100%;height:auto;max-height:calc(100svh - 190px);object-fit:contain;background:#061b30}
.photo-dialog>p{font-size:11px;color:var(--muted);margin-top:15px}
.privacy-dialog{width:650px;padding:45px}
.privacy-dialog .eyebrow{font-size:9px;color:#546775;margin-bottom:17px}
.privacy-dialog h2{font-size:45px;margin-bottom:25px}
.privacy-dialog h3{font-size:14px;font-weight:600;margin:25px 0 10px}
.privacy-dialog p{font-size:12px;line-height:1.8;color:#4f626f}
.privacy-dialog a{text-decoration:underline;text-underline-offset:3px;color:#1d5378}
@media(max-width:1050px){.contact.contact-with-form{gap:5%;grid-template-columns:.8fr 1.2fr}.enquiry-panel{padding:30px}.form-grid{gap:0 14px}.form-step{display:none}.work-grid{gap:7%}.work-story h3,.ventilation-copy h3{font-size:45px}.work-story>p:not(.eyebrow),.ventilation-copy>p:not(.eyebrow){font-size:12px}.form-mascot{width:160px}}
@media(max-width:800px){.work-heading{gap:30px;margin-bottom:40px}.work-heading>p{max-width:280px;font-size:12px}.work-grid{grid-template-columns:1fr 1fr;gap:6%;align-items:start}.work-story{padding-top:10px}.work-story h3,.ventilation-copy h3{font-size:37px}.work-story>p:not(.eyebrow){font-size:11px}.work-detail{padding:16px 0}.work-detail>p{font-size:11px}.work-story>p.photo-context{font-size:9px}.ventilation-story{gap:5%;margin-top:80px}.ventilation-visual{padding-bottom:45px}.diffuser-detail{width:44%;border-width:5px}.diffuser-detail>span{font-size:5px;padding:10px 5px 17px}.ventilation-controls{gap:12px}.ventilation-controls button{font-size:9px}.contact.contact-with-form{grid-template-columns:1fr;gap:40px;padding-block:65px}.contact-intro{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.contact-intro>.eyebrow,.contact-intro>h2,.contact-intro>p{grid-column:1}.contact-intro>.eyebrow{font-size:8px}.contact-with-form h2{font-size:74px}.contact-person{grid-column:2;grid-row:2;align-self:end;margin-top:0}.direct-contact{grid-column:2;grid-row:3;margin-top:15px;align-self:end}.form-mascot{display:none}.enquiry-panel{padding:35px}.form-grid{gap:0 24px}.form-field input,.form-field textarea,.form-field select{font-size:16px}.form-field label{font-size:12px}.form-subtitle{font-size:13px}.form-step{display:block}.form-privacy{font-size:11px}.form-submit{font-size:13px}}
@media(max-width:540px){.work-heading{display:block;margin-bottom:32px}.work-heading>p{margin-top:22px;max-width:310px}.work-grid{display:flex;flex-direction:column;gap:33px}.project-figure{max-width:none}.room-comparison{clip-path:polygon(0 0,88% 0,100% 9%,100% 100%,0 100%)}.project-figure figcaption{font-size:7px;gap:10px;padding-block:13px}.photo-stage{font-size:7px;padding:7px 9px;bottom:15px}.stage-finish{left:12px}.stage-boarding{right:12px}.comparison-divider>span{width:47px;height:47px;font-size:22px;gap:8px}.work-story{padding:0}.work-story h3,.ventilation-copy h3{font-size:43px}.work-story>p:not(.eyebrow),.ventilation-copy>p:not(.eyebrow){font-size:13px;line-height:1.8}.work-detail>p{font-size:12px}.work-story>p.photo-context{font-size:10px}.ventilation-story{display:flex;flex-direction:column-reverse;gap:27px;margin-top:55px}.ventilation-visual{width:100%;padding:0 9% 25px 0}.ventilation-main{aspect-ratio:1.04}.diffuser-detail{bottom:77px;width:43%;border-width:6px}.diffuser-detail>span{font-size:6px;padding-bottom:18px}.ventilation-controls{gap:17px}.ventilation-controls button{font-size:10px}.theme-calm .work-story h3,.theme-calm .ventilation-copy h3{font-size:36px}.contact.contact-with-form{padding:55px 18px;gap:30px}.contact-intro{display:block;padding-inline:6px}.contact-with-form h2{font-size:72px}.contact-intro>p:not(.eyebrow){font-size:13px;max-width:290px;margin-top:22px}.contact-person{margin-top:24px}.direct-contact{margin-top:26px;padding-top:23px;max-width:none}.contact-phone{font-size:28px}.enquiry-panel{padding:27px 22px}.enquiry-panel>h3{font-size:30px}.form-heading{margin-bottom:16px}.form-step{display:none}.form-subtitle{font-size:11px;margin-bottom:26px}.form-grid{grid-template-columns:1fr;gap:0}.form-field{margin-bottom:18px}.form-field input,.form-field select{min-height:52px}.form-field textarea{min-height:140px}.form-field label{font-size:12px}.message-meta{font-size:9px}.form-privacy{font-size:10px}.form-security{font-size:9px}.theme-calm .contact-with-form h2{font-size:62px}.theme-bold .contact-with-form h2{font-size:74px}.photo-dialog{padding:22px 15px}.photo-dialog h2{font-size:16px}.privacy-dialog{padding:38px 24px 28px}.privacy-dialog h2{font-size:38px}.privacy-dialog p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.ventilation-main img,.diffuser-detail{transition:none}.ventilation-main:hover img{transform:scale(1.16)}}

/* Blue & Bold: local craft, expressive typography and authentic project stories. */
.live-site{--bar:0px;--header:88px;--gutter:clamp(24px,5.5vw,100px)}
html{scroll-padding-top:110px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.live-site .site-header{position:sticky;top:0;z-index:30;transition:box-shadow .2s}
.site-header.is-scrolled{box-shadow:0 8px 25px #02122225}
.live-site .hero{height:calc(100svh - var(--header) - 62px);min-height:570px;max-height:820px}
.live-site .hero-inner{padding-top:36px;padding-bottom:82px}
.live-site .hero-brand{font-size:clamp(105px,12.2vw,195px)}
.live-site .hero-tagline{font-size:clamp(42px,4.5vw,68px)}
.hero-tagline-line{display:block}
.live-site .mascot-scene{height:calc(100% - 12px);max-width:57%;right:-2%;pointer-events:none}
.live-site .hero-mascot{width:100%;height:100%;object-fit:contain}
.live-site .hero-description{font-size:14px}
.live-site .hero-bottom{bottom:27px}
.live-site .service-strip{padding-block:20px}
.live-site .section-pad{padding-block:100px}
.live-site h2{font-size:clamp(48px,5.1vw,78px);letter-spacing:-.02em}
.live-site .eyebrow{line-height:1.6}
.service-choice{display:grid;grid-template-columns:24px 1fr 24px;gap:20px;padding:29px 0;border-bottom:1px solid var(--line);align-items:center;transition:padding .25s,color .25s}
.service-choice:first-child{border-top:1px solid var(--line)}
.service-choice h3{font:800 clamp(26px,2.6vw,40px)/1.08 Barlow,sans-serif;text-transform:uppercase}
.service-choice p{font-size:13px;color:var(--muted);margin-top:10px;max-width:370px}
.choice-number{font-size:10px;align-self:start;padding-top:6px;color:var(--muted)}
.service-choice>svg{transition:transform .25s}
.service-choice:hover{color:var(--blue);padding-left:8px}
.service-choice:hover>svg{transform:rotate(-35deg)}
.pete-section{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);color:#fff}
.pete-visual{position:relative;min-height:660px;overflow:hidden}
.pete-visual>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:51% center;transition:transform 1.2s}
.pete-visual:hover>img{transform:scale(1.035)}
.experience-stamp{position:absolute;left:var(--gutter);bottom:42px;display:flex;align-items:center;gap:20px;background:var(--gold);color:var(--navy);padding:16px 24px;rotate:-3deg}
.experience-stamp strong{font:800 92px/.9 Barlow,sans-serif}.experience-stamp span{font:600 10px/1.6 'DM Sans',sans-serif;letter-spacing:.09em}
.pete-copy{padding:90px clamp(30px,5.5vw,95px)}
.pete-copy .eyebrow{color:#9acbf5;margin-bottom:24px;font-size:9px}
.pete-copy h2{font-size:clamp(48px,4.8vw,72px)}
.pete-copy>p:not(.eyebrow):not(.pete-signature){margin-top:22px;color:#c8d6e2;font-size:14px;line-height:1.85;max-width:480px}
.pete-copy>p.pete-lead{font-size:19px!important;color:white!important}
.pete-values{display:flex;flex-wrap:wrap;gap:6px 20px;border-top:1px solid #ffffff30;margin-top:26px;padding-top:22px;font-size:11px;color:var(--gold)}
.pete-copy>.text-link{margin-top:22px}
.pete-signature{font:800 48px/1 Barlow,sans-serif;margin-top:35px;display:flex;align-items:center;gap:17px;letter-spacing:-.04em}
.pete-signature span{font:600 8px/1.5 'DM Sans',sans-serif;letter-spacing:.14em;color:#a9bfce}
.fireplace-section{background:#f3f1e9}
.fireplace-section .work-heading h2{font-size:clamp(45px,4.8vw,72px)}
.fireplace-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(40px,7vw,110px);align-items:center}
.fireplace-stage{min-width:0;background:var(--navy);scroll-margin-top:0}
.fireplace-expand{display:block;position:relative;width:100%;padding:0;border:0;background:#061b30;overflow:hidden;aspect-ratio:1/1.04;color:white;touch-action:pan-y}
.fireplace-expand>img{height:100%;width:100%;object-fit:cover;object-position:50% 55%;transition:transform .8s,opacity .2s}
.fireplace-expand>img.is-reference{object-fit:contain}
.fireplace-expand:hover>img:not(.is-reference){transform:scale(1.035)}
.fireplace-expand>img.is-changing{opacity:.25}
.image-enlarge{position:absolute;right:20px;bottom:20px;background:#061b30e8;padding:12px 17px;font-size:9px;letter-spacing:.09em;border:1px solid #ffffff50}
.project-navigation{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:14px 18px;color:#fff}
.project-navigation button{width:44px;height:44px;background:transparent;border:1px solid #627483;font-size:22px;flex-shrink:0;transition:background .2s,color .2s}
.project-navigation button:hover{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.project-navigation p{font-size:12px;text-align:center;line-height:1.5}
.project-navigation p span{display:block;font-size:8px;letter-spacing:.15em;color:#b5c6d4;margin-top:4px}
.project-story>.eyebrow{margin-bottom:22px}

.project-navigation button:disabled{opacity:.28;cursor:default;background:none;color:inherit;border-color:#627483}











.project-fallback{font-size:12px;margin-top:30px;line-height:2}.project-fallback a{text-decoration:underline}
.project-story h3{font:800 clamp(34px,3.7vw,55px)/1.04 Barlow,sans-serif}
.project-story>p:not(.eyebrow){font-size:14px;line-height:1.8;color:var(--muted);margin-top:22px;max-width:360px}








.project-thumbnails{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:32px 0 22px}
.project-thumbnails button{padding:0;border:0;background:var(--navy);aspect-ratio:3/4;position:relative;transition:opacity .2s,transform .2s}
.project-thumbnails button img{width:100%;height:100%;object-fit:cover;opacity:.72;transition:opacity .2s}
.project-thumbnails button[data-project-image="0"] img{object-fit:contain}
.project-thumbnails button span{position:absolute;bottom:0;left:0;background:#061b30db;color:#fff;padding:3px 7px;font-size:9px}
.project-thumbnails button[aria-pressed=true]{outline:3px solid var(--blue);outline-offset:3px}
.project-thumbnails button[aria-pressed=true] img,.project-thumbnails button:hover img{opacity:1}
.project-thumbnails button:hover{transform:translateY(-3px)}
.project-story>p.photo-context{font-size:10px;margin-top:25px;max-width:300px}
.project-dialog{border:0;background:var(--navy);color:#fff;padding:26px;max-width:calc(100vw - 28px);max-height:calc(100svh - 28px);width:1000px;overscroll-behavior:contain}
.project-dialog::backdrop{background:#001322db;backdrop-filter:blur(8px)}
.project-dialog h2{font:600 15px/1.5 'DM Sans',sans-serif;margin:0 40px 18px 0;text-transform:none}
.project-dialog .dialog-close{background:var(--navy);color:white}
.project-dialog>img{width:100%;height:calc(100svh - 170px);max-height:900px;object-fit:contain}
.project-dialog>p{font-size:12px;color:#c4d6e4;margin-top:14px}
.live-site .work{padding-top:85px}.live-site .work-grid{grid-template-columns:1fr .85fr;gap:9%}
.live-site .project-figure{max-width:540px}.live-site .work-story h3{font-size:clamp(40px,4.8vw,68px)}
.piv-explainer{background:var(--navy);color:#fff;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5%;margin-top:65px;padding:55px clamp(28px,4.5vw,75px)}
.air-illustration svg{width:100%;height:auto;display:block}.air-illustration>span{display:block;text-align:center;font-size:8px;letter-spacing:.12em;color:#a9c4dc;margin-top:25px}
.airflow{animation:air-travel 2.4s linear infinite}
@keyframes air-travel{to{stroke-dashoffset:-34}}
.piv-how>.eyebrow{font-size:8px;color:#a9d8ff;margin-bottom:18px}
.piv-how h3{font:800 clamp(32px,3.1vw,48px)/1.05 Barlow,sans-serif}
.piv-how ol{padding:0;list-style:none;margin:24px 0;display:grid;gap:20px}
.piv-how li{display:flex;gap:18px}.piv-how li>span{font-size:10px;color:var(--gold);padding-top:2px}.piv-how strong{font-size:13px;font-weight:600}
.piv-how li p{font-size:12px;color:#c7d7e4;margin-top:5px;line-height:1.7}
.piv-how .piv-note{font-size:11px;color:#b9cad9;line-height:1.8;border-top:1px solid #ffffff30;padding-top:18px}
.piv-how>.text-link{margin-top:16px;font-size:11px;color:var(--gold)}
.area-section{position:relative;isolation:isolate;min-height:600px;display:flex;align-items:center;color:#fff;padding:95px var(--gutter);overflow:hidden}
.area-section>img,.area-shade{position:absolute;inset:0;height:100%;width:100%;z-index:-1;object-fit:cover;object-position:center 62%}
.area-shade{background:linear-gradient(90deg,#03182ceb 0%,#03182cad 48%,#03182c1a 100%)}
.area-content{max-width:660px}.area-content>.eyebrow{font-size:9px;color:#b9d9f2;margin-bottom:23px}
.area-content h2{font-size:clamp(48px,5.5vw,82px)}
.area-content>p:not(.eyebrow){font-size:14px;color:#d4e2ee;max-width:440px;margin-top:26px}
.town-list{font-size:12px;line-height:2.4;margin:22px 0 26px}.town-list span{padding-inline:10px;color:var(--gold)}
.area-content>p.area-note{font-size:10px;margin-top:20px}
.live-site .contact-with-form h2{font-size:clamp(63px,6.2vw,94px)}
.live-site .contact-intro>p:not(.eyebrow){max-width:365px}
.live-site .form-mascot{max-width:240px;width:70%;margin-left:0}
.live-site .enquiry-panel{border-top-width:5px}
.live-site .form-field label{font-size:12px}
.live-footer{background:#031422;color:#d0dce5;padding:55px var(--gutter) 30px}
.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:35px;padding-bottom:40px}
.footer-top>p{font:800 37px/.98 Barlow,sans-serif;text-align:center;color:#fff}
.footer-top>div{display:grid;justify-content:end;gap:6px}.footer-top>div>a:first-child{font-size:22px;color:#fff}.footer-top>div>a:last-child{font-size:12px}
.footer-top a:hover,.footer-services a:hover,.footer-bottom a:hover{color:var(--gold)}
.footer-services{display:flex;justify-content:space-between;gap:18px;border-block:1px solid #ffffff25;padding-block:24px;font-size:11px}
.footer-bottom{display:flex;align-items:center;gap:24px;font-size:9px;color:#a8bbcb;padding-top:25px}.footer-bottom>span{margin-right:auto}
.mobile-contact{display:none}
/* Dedicated service pages answer a distinct customer need, without town-page duplication. */
.service-hero{display:grid;grid-template-columns:1.1fr 1fr;background:var(--blue);color:#fff;min-height:620px}
.service-hero-copy{padding:34px 7% 65px var(--gutter);align-self:center}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;font-size:10px;line-height:1.8;margin-bottom:38px}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}
.service-hero .eyebrow{font-size:9px;margin-bottom:20px}
.service-hero h1{font:800 clamp(55px,6vw,94px)/.96 Barlow,sans-serif;letter-spacing:-.015em;text-transform:uppercase}
.service-lead{font-size:15px;line-height:1.8;max-width:460px;margin-top:28px;color:#f0f6ff}
.service-hero .button{margin-top:29px}.service-reassurance{font-size:10px;margin-top:24px;color:#fff}
.service-hero-image{position:relative;overflow:hidden;clip-path:polygon(9% 0,100% 0,100% 100%,0 100%)}
.service-hero-image>img{width:100%;height:100%;position:absolute;object-fit:cover}
.service-damp .service-hero-image>img{object-position:70% center}.service-mould .service-hero-image>img{object-position:40% center}
.service-detail-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:9%}
.detail-intro>p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted);max-width:410px;margin-top:27px}
.detail-rows article{display:flex;gap:24px;border-top:1px solid var(--line);padding:27px 0}
.detail-rows article>span{font-size:10px;color:var(--blue);padding-top:8px}
.detail-rows h3{font:800 32px/1.1 Barlow,sans-serif;text-transform:uppercase}
.detail-rows p{font-size:14px;color:var(--muted);line-height:1.85;margin-top:15px}
.reading-notes{font-size:11px;line-height:1.8;border-block:1px solid var(--line);margin-top:12px}
.reading-notes summary{padding:18px 0;display:flex;gap:20px;justify-content:space-between;cursor:pointer;font-weight:600}
.reading-notes ul{padding-left:17px;margin:0 0 22px}.reading-notes li+li{margin-top:10px}.reading-notes a{text-decoration:underline;text-underline-offset:4px}
.service-piv{background:#e9eef1}.service-piv .piv-explainer{margin-top:30px}
.piv-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:30px}.piv-photo-pair figure{margin:0;position:relative}.piv-photo-pair img{aspect-ratio:1.6;object-fit:cover;width:100%;object-position:center 42%}.piv-photo-pair figure:last-child img{object-position:center 31%}
.piv-photo-pair figcaption{position:absolute;bottom:20px;left:20px;color:#fff;background:#061b30db;font-size:9px;letter-spacing:.1em;padding:10px 15px}
.survey-process{background:var(--navy);color:#fff}.survey-process>.eyebrow{color:#bddaf0}
.survey-process ol{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:6%;padding:0;margin:50px 0 0}
.survey-process li{border-top:1px solid #ffffff40;padding-top:24px}.survey-process li>span{font:800 44px/1 Barlow,sans-serif;color:var(--gold)}
.survey-process h3{font-size:16px;margin-top:20px}.survey-process li>p{font-size:13px;line-height:1.8;color:#c8d8e3;margin-top:12px;max-width:290px}
.related-services{padding-block:55px!important;border-top:1px solid var(--line)}
.related-services nav{display:flex;gap:35px;justify-content:space-between;flex-wrap:wrap}.related-services nav a{display:flex;justify-content:space-between;align-items:center;gap:30px;font:800 28px/1.2 Barlow,sans-serif;text-transform:uppercase}.related-services nav a:hover{color:var(--blue)}
.privacy-page{max-width:1050px;margin:auto}.privacy-content h1,.not-found h1{font:800 clamp(50px,7vw,92px)/1 Barlow,sans-serif;letter-spacing:-.02em;margin-bottom:30px}.privacy-content>p{color:var(--muted);font-size:15px;line-height:1.9}.privacy-content h3{font-size:18px;margin:30px 0 12px}.privacy-content a{text-decoration:underline;text-underline-offset:3px}.privacy-page>.text-link{margin-top:35px}
.privacy-content>.eyebrow{margin-bottom:20px}
.not-found{background:var(--blue);color:#fff;min-height:100svh;padding:12vh var(--gutter);display:flex;flex-direction:column;align-items:flex-start}.not-found .eyebrow{margin-bottom:30px}.not-found .button{margin:35px 0 22px}
@media(min-width:1700px){.live-site .mascot-scene{right:3%;max-width:51%}.live-site .hero-copy{max-width:900px}}
@media(max-width:1100px){.live-site .hero-actions{flex-wrap:wrap;gap:12px 25px}.live-site .hero-copy{width:59%}.live-site .hero-brand{font-size:13vw}.live-site .mascot-scene{max-width:55%;right:-3%}.pete-copy{padding:65px 35px}.pete-copy h2{font-size:53px}.pete-visual{min-height:650px}.project-story h3{font-size:40px}.fireplace-layout{gap:6%}.live-site .contact-with-form h2{font-size:68px}.footer-top{grid-template-columns:1fr .7fr 1fr}.footer-top>p{font-size:32px}.service-hero h1{font-size:66px}}
@media(max-width:800px){
 .project-thumbnails{gap:10px;margin-block:24px}

 .live-site{--header:80px;--gutter:28px}.live-site .site-header{gap:20px}.live-site .section-pad{padding-block:70px}
 .live-site .hero{min-height:540px}.live-site .hero-brand{font-size:14vw}.live-site .hero-tagline{font-size:43px}.live-site .hero-description{font-size:12px}.live-site .hero-description br{display:none}.live-site .mascot-scene{right:-7%;max-width:60%;height:90%}
 .pete-section{grid-template-columns:1fr}.pete-visual{min-height:420px}.pete-visual>img{object-position:center 63%}.pete-copy{padding:65px var(--gutter)}.pete-copy h2{font-size:60px}.pete-copy>p:not(.eyebrow):not(.pete-signature){max-width:600px}.experience-stamp{bottom:30px;left:32px}
 .fireplace-section .work-heading{display:block}.fireplace-section .work-heading>p{max-width:490px;margin-top:25px}.fireplace-section .work-heading h2{font-size:56px}.fireplace-layout{grid-template-columns:1fr 1fr;gap:30px}.fireplace-expand{aspect-ratio:3/4}.project-story h3{font-size:34px}.project-story>p:not(.eyebrow){font-size:12px}.project-story .text-link{font-size:10px}.project-navigation{padding:10px;gap:8px}.project-navigation p{font-size:10px}
 .live-site .work-grid{gap:6%;grid-template-columns:1fr 1fr}.live-site .work-story h3{font-size:42px}
 .piv-explainer{padding:40px 28px;gap:6%;margin-top:35px}.piv-how h3{font-size:33px}.piv-how strong{font-size:12px}.piv-how li p{font-size:11px}.piv-how li{gap:13px}.piv-how .piv-note{font-size:10px}.air-illustration>span{font-size:7px}
 .live-site .contact-with-form h2{font-size:62px}.contact-intro{column-gap:30px}.contact-phone{font-size:23px}.live-site .form-mascot{display:none}
 .area-section{min-height:570px;padding:75px var(--gutter)}.area-shade{background:linear-gradient(90deg,#03182ce6,#03182c45)}.area-content h2{font-size:60px}
 .footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-top>p{display:none}.footer-services{flex-wrap:wrap;justify-content:flex-start;gap:14px 30px}.footer-bottom{flex-wrap:wrap;gap:18px}.footer-bottom>span{width:100%}
 .service-hero{min-height:590px;grid-template-columns:1.2fr 1fr}.service-hero h1{font-size:59px}.service-hero-copy{padding-block:25px 45px}.service-lead{font-size:13px}.service-reassurance{font-size:9px}.service-detail-section{grid-template-columns:1fr;gap:40px}.detail-intro>p:not(.eyebrow){max-width:620px}.detail-rows h3{font-size:31px}.survey-process ol{gap:4%}.survey-process h3{font-size:14px}.survey-process li>p{font-size:12px}
}
@media(max-width:540px){
 .project-thumbnails{gap:12px;margin-block:27px}.project-thumbnails button{aspect-ratio:1}

 .live-site{--header:72px;--gutter:24px}.live-site .site-header{gap:12px}.live-site .header-cta{min-height:40px}.live-site .mobile-menu summary{width:36px;height:44px;padding:8px}
 .live-site .hero{height:calc(100svh - 72px);min-height:615px;max-height:775px}.live-site .hero-inner{padding:28px var(--gutter) 45px}.live-site .hero-copy{width:100%}.live-site .hero .eyebrow{font-size:7px;letter-spacing:.1em;margin-bottom:19px;white-space:nowrap}.live-site .hero-brand{font-size:clamp(88px,25vw,132px)}.live-site .hero-tagline{font-size:40px;line-height:.98;margin-top:20px}.live-site .hero-description{font-size:11px;line-height:1.75;margin-top:17px;max-width:320px}.live-site .hero-description br{display:block}.live-site .hero-actions{margin-top:20px;gap:19px;flex-wrap:nowrap}.live-site .hero-actions .button{padding:14px 14px;font-size:10px;gap:12px}.live-site .hero-actions .text-link{font-size:9px}.live-site .mascot-scene{height:clamp(280px,39svh,350px);width:auto;max-width:100%;aspect-ratio:1;right:calc(50% - 175px);bottom:23px;top:auto;translate:0;opacity:1}.live-site .hero-mascot{transform:rotate(-6deg)}.live-site .hero-bottom{bottom:10px;font-size:6px;left:24px;right:24px}.live-site .hero-bottom a{font-size:6px}.live-site .hero-bottom>span{max-width:125px}.live-site .service-strip{padding-block:19px;gap:13px;margin-top:-5px}.live-site .service-strip>span{font-size:13px}.live-site .service-strip i{font-size:12px}
 .live-site .section-pad{padding-block:60px}.live-site h2{font-size:48px}.live-site .section-pad .eyebrow{font-size:8px}.live-site .services{gap:32px}
 .service-choice{grid-template-columns:20px 1fr 22px;gap:10px;padding:25px 0}.service-choice h3{font-size:29px}.service-choice p{font-size:12px;margin-top:8px}.choice-number{font-size:9px;padding-top:4px}
 .pete-visual{min-height:330px}.pete-copy{padding:55px 24px}.pete-copy h2{font-size:49px}.pete-copy .eyebrow{font-size:7px}.pete-copy>p:not(.eyebrow):not(.pete-signature){font-size:13px}.pete-values{gap:8px 16px;font-size:10px}.experience-stamp{padding:12px 19px;gap:15px;bottom:28px;left:28px}.experience-stamp strong{font-size:76px}.experience-stamp span{font-size:8px}.pete-signature{font-size:43px}
 .fireplace-section .work-heading h2{font-size:45px}.fireplace-section .work-heading>p{font-size:13px}.fireplace-layout{grid-template-columns:1fr;gap:33px}.fireplace-expand{aspect-ratio:3/3.4}.project-story h3{font-size:42px}.project-story>p:not(.eyebrow){font-size:13px;max-width:none}.project-story .text-link{font-size:12px}.project-navigation{padding:12px}.project-navigation p{font-size:12px}.image-enlarge{bottom:15px;right:15px;font-size:8px;padding:10px 12px}.project-story>p.photo-context{font-size:10px}.project-dialog{padding:20px 14px}.project-dialog h2{font-size:13px}.project-dialog>p{font-size:11px}
 .live-site .work-grid{display:flex;gap:30px}.live-site .work-story h3{font-size:45px}.piv-explainer{grid-template-columns:1fr;padding:30px 24px 35px;gap:30px;margin-top:30px}.air-illustration{max-width:340px;margin:auto;width:100%}.air-illustration>span{font-size:6px;margin-top:10px}.piv-how h3{font-size:38px}.piv-how strong{font-size:13px}.piv-how li p{font-size:12px}.piv-how .piv-note{font-size:11px}.piv-how>.text-link{font-size:11px}.piv-how ol{gap:22px}
 .area-section{padding:65px 24px;min-height:580px}.area-section>img{object-position:65% center}.area-shade{background:#03182cb8}.area-content h2{font-size:50px}.area-content>.eyebrow{font-size:7px}.area-content>p:not(.eyebrow){font-size:13px}.town-list{font-size:10px;line-height:2.6}.town-list span{padding-inline:6px}.area-content>p.area-note{font-size:10px;max-width:270px}
 .live-site .contact-with-form{padding:55px 18px}.live-site .contact-with-form h2{font-size:65px}.live-site .contact-intro>p:not(.eyebrow){max-width:315px}.live-site .form-heading .eyebrow{font-size:7px}.live-site .enquiry-panel{padding:28px 20px}.live-site .enquiry-panel>h3{font-size:29px}.live-site .form-subtitle{font-size:12px;line-height:1.7}.live-site .contact-phone{font-size:28px}
 .live-footer{padding:40px 24px 95px}.footer-top{grid-template-columns:1fr;gap:28px}.footer-top>div{justify-content:start}.footer-top>div>a:first-child{font-size:24px}.footer-services{display:grid;gap:15px;font-size:12px}.footer-bottom{font-size:9px;gap:20px}.footer-bottom>span{line-height:1.8;max-width:290px}
 .mobile-contact{display:flex;position:fixed;z-index:25;bottom:0;left:0;right:0;padding-bottom:env(safe-area-inset-bottom);background:var(--navy);box-shadow:0 -5px 20px #061b3020;transition:transform .25s,visibility .25s}.mobile-contact>a{width:50%;display:flex;align-items:center;justify-content:space-between;padding:17px 24px;font-size:12px;font-weight:600;color:white}.mobile-contact>a:last-child{background:var(--gold);color:var(--navy)}.mobile-contact svg{width:18px}.mobile-contact.is-hidden{transform:translateY(110%);visibility:hidden}
 .service-hero{grid-template-columns:1fr;min-height:0}.service-hero-copy{padding:23px 24px 45px}.service-hero h1{font-size:65px;max-width:370px}.service-hero .breadcrumbs{margin-bottom:33px;font-size:9px}.service-hero .eyebrow{font-size:8px}.service-lead{font-size:14px;line-height:1.8;margin-top:23px}.service-hero .button{margin-top:26px;font-size:12px}.service-reassurance{font-size:10px}.service-hero-image{min-height:300px;clip-path:polygon(0 0,100% 0,100% 100%,0 94%)}
 .detail-intro>p:not(.eyebrow),.detail-rows p{font-size:13px}.detail-rows article{gap:17px;padding-block:25px}.detail-rows h3{font-size:30px}.reading-notes{font-size:11px}.piv-photo-pair{grid-template-columns:1fr;gap:20px}.piv-photo-pair figcaption{font-size:8px;bottom:14px;left:14px}.piv-photo-pair img{aspect-ratio:1.3}.service-piv .piv-explainer{margin-top:20px}.survey-process ol{grid-template-columns:1fr;gap:30px;margin-top:35px}.survey-process li{position:relative;padding-left:52px}.survey-process li>span{position:absolute;left:0;font-size:38px}.survey-process h3{font-size:15px;margin-top:0}.survey-process li>p{font-size:13px;max-width:320px}.related-services nav{display:grid;gap:24px}.related-services nav a{font-size:28px}.privacy-content h1{font-size:56px}.privacy-content>p{font-size:14px}
}
@media(max-width:360px){.live-site{--gutter:20px}.live-site .site-header{padding-inline:18px;gap:9px}.live-site .header-cta{font-size:9px}.live-site .hero .eyebrow{font-size:6px}.live-site .hero-tagline{font-size:36px}.live-site .hero-actions{gap:12px}.live-site .hero-actions .button{font-size:9px;padding-inline:11px;gap:8px}.live-site .hero-actions .text-link{font-size:8px}.live-site .hero-description{font-size:10px}.live-site .mascot-scene{height:240px;right:calc(50% - 128px)}.live-site .hero{min-height:595px}.live-site .service-strip>span{font-size:11px}.live-site .service-strip{gap:9px}.live-site h2,.pete-copy h2{font-size:43px}.fireplace-section .work-heading h2{font-size:40px}.live-site .contact-with-form h2{font-size:57px}.service-choice h3{font-size:26px}.area-content h2{font-size:43px}.service-hero h1{font-size:57px}}
@media(prefers-reduced-motion:reduce){.live-site .mascot-scene{will-change:auto}.fireplace-expand:hover>img,.pete-visual:hover>img{transform:none}.airflow{animation:none}}

/* Keep content within its column: clipping the page shell is not a reflow fix. */
.live-site :is(.hero-copy,.service-hero-copy,.service-hero-image,.detail-intro,.detail-rows,.section-intro,.service-list,.work-story,.project-story,.piv-how,.area-content,.faq-list,.contact-intro){min-width:0}
.live-site :is(h1,h2,h3,p,.eyebrow,.text-link,.related-services a){overflow-wrap:anywhere}
.live-site .service-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.live-site .service-strip{white-space:normal}
.live-site .header-cta{white-space:nowrap;flex-shrink:0;min-height:44px}
.live-site .mobile-menu{flex-shrink:0}
.live-site .mobile-menu summary{width:44px;height:44px;padding:12px}
.live-site .mobile-menu nav{max-height:calc(100svh - var(--header));overflow-y:auto;overscroll-behavior:contain}
.live-site .text-link{min-height:44px}
.live-site .not-found{overflow-wrap:anywhere}

@media(min-width:701px) and (max-width:1100px){
 .live-site .hero{height:auto;min-height:0;max-height:none}
 .live-site .hero-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:20px;min-height:590px;padding-block:55px 90px}
 .live-site .hero-copy{width:100%}
 .live-site .hero-brand{font-size:clamp(88px,12vw,132px)}
 .live-site .hero-tagline{font-size:clamp(36px,4.5vw,49px)}
 .live-site .mascot-scene{position:relative;inset:auto;translate:none;margin:0;width:100%;height:auto;max-width:100%;aspect-ratio:1}
 .live-site .hero-description{font-size:14px}
 .live-site .hero-description br{display:none}
}
@media(max-width:900px){
 .live-site .service-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
 .live-site .service-hero h1{font-size:clamp(48px,6.5vw,59px)}
 .live-site .service-hero .eyebrow{font-size:9px;letter-spacing:.12em}
 .live-site .service-strip{transform:none;margin-top:0}
}
@media(max-width:700px){
 .live-site{--gutter:clamp(20px,5.5vw,32px)}
 .live-site .hero{height:auto;min-height:0;max-height:none}
 .live-site .hero-inner{display:block;height:auto;min-height:0;padding:26px var(--gutter) 18px}
 .live-site .hero-copy{width:100%;max-width:none;margin:0}
 .live-site .hero .eyebrow{font-size:8px;letter-spacing:.1em;white-space:normal;margin-bottom:20px}
 /* Reserve the artwork within the headline area, with a cap for wider phones. */
 .live-site .hero h1{min-height:min(calc(96vw - 34px),470px)}
 .live-site .hero-brand{font-size:clamp(72px,23.5vw,145px);margin-left:0;position:relative;z-index:3}
 .live-site .hero-tagline{font-size:clamp(30px,9vw,54px);line-height:.98;margin-top:30px;position:relative;z-index:3;width:48%}
 .live-site .hero-tagline-line>span{display:block}
 .live-site .hero-tagline-line+.hero-tagline-line{margin-top:14px;color:var(--gold)}
 .live-site .hero-experience{display:none}
 .live-site .hero-description{font-size:14px;line-height:1.7;margin-top:18px;max-width:none;text-wrap:balance}
 .live-site .hero-description br{display:none}
 .live-site .hero-actions{display:block;margin-top:20px}
 .live-site .hero-actions .button{width:100%;font-size:13px;padding:17px 20px;gap:20px;min-height:54px}
 .live-site .hero-actions .text-link{display:none}
 .live-site .mascot-scene{position:absolute;inset:clamp(92px,calc(22px + 22vw),141px) auto auto max(25%,calc(100% - 430px));translate:none;width:min(84vw,440px);height:min(84vw,440px);aspect-ratio:1;max-width:none;margin:0;transform:none!important;will-change:auto;z-index:2}
 .live-site .hero-mascot{transform:none;mask-image:linear-gradient(90deg,transparent,#000 17%),linear-gradient(0deg,transparent,#000 15%);mask-composite:intersect}
 .live-site .hero-bottom{position:static;justify-content:center;margin-top:8px;line-height:1.6}
 .live-site .hero-bottom>span{display:none}
 .live-site .hero-bottom a{font-size:9px;gap:12px;min-height:44px}
 .live-site .service-hero{grid-template-columns:minmax(0,1fr);min-height:0}
 .live-site .service-hero-copy{padding:26px var(--gutter) 38px}
 .live-site .service-hero h1{font-size:clamp(43px,10.5vw,68px);max-width:560px}
 .live-site .service-hero .eyebrow{font-size:9px;line-height:1.8;letter-spacing:.1em}
 .live-site .service-hero .breadcrumbs{font-size:11px;gap:10px;margin-bottom:28px}
 .live-site .service-lead{font-size:15px;line-height:1.8;max-width:42ch}
 .live-site .service-reassurance{font-size:11px;line-height:1.8}
 .live-site .service-hero-image{min-height:0;height:clamp(240px,68vw,390px);clip-path:polygon(0 0,100% 0,100% 100%,0 94%)}
 .live-site .fireplace-layout,.live-site .work-grid,.live-site .piv-explainer{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
 .live-site .project-figure{max-width:none}
 .live-site .fireplace-expand{aspect-ratio:3/3.4}
 .live-site .project-thumbnails button{aspect-ratio:1}
 .live-site .project-story>p:not(.eyebrow){max-width:480px}
 .live-site .contact-intro{display:block;padding-inline:0}
 .live-site .contact-person{margin-top:26px}
 .live-site .direct-contact{margin-top:26px;max-width:none}
 .live-site .contact-with-form{padding-inline:var(--gutter)}
 .live-site .contact-with-form h2{font-size:clamp(49px,12vw,72px)}
 .live-site .contact-intro>p:not(.eyebrow){max-width:42ch;font-size:14px}
 .live-site .enquiry-panel{padding:28px clamp(18px,4vw,28px)}
 .live-site .form-grid{grid-template-columns:minmax(0,1fr);gap:0}
 .live-site .form-heading .eyebrow{font-size:9px}
 .live-site .form-step{display:none}
 .live-site .form-subtitle{font-size:13px}
 .live-site .form-privacy,.live-site .form-security,.live-site .form-status,.live-site .field-error{font-size:12px}
 .live-site .form-security{flex-wrap:wrap;text-align:center}
 .live-site .message-meta{font-size:10px;gap:12px;flex-wrap:wrap}
 .live-site .form-field label>span{font-size:11px}
 .live-site .related-services nav{display:grid;gap:8px}
 .live-site .related-services nav a{min-height:56px;font-size:26px;gap:16px}
 .live-site .footer-services a,.live-site .footer-bottom a{display:flex;align-items:center;min-height:44px}
 .live-site .footer-services,.live-site .footer-bottom{gap:4px 24px}
}
@media(max-width:540px){
 .live-site .site-header{gap:8px}
 .live-site .brand-name>span{letter-spacing:.12em}
 .live-site .section-pad{padding-block:56px}
 .live-site :is(.section-intro>p:not(.eyebrow),.service-choice p,.pete-copy>p:not(.eyebrow):not(.pete-signature),.project-story>p:not(.eyebrow),.work-heading>p,.work-story>p:not(.eyebrow),.detail-intro>p:not(.eyebrow),.detail-rows p,.faq-list details>p,.survey-process li>p,.area-content>p:not(.eyebrow)){font-size:14px;line-height:1.8}
 .live-site :is(.section-pad .eyebrow,.pete-copy .eyebrow,.area-content>.eyebrow){font-size:9px;line-height:1.8;letter-spacing:.12em}
 .live-site .section-intro>.text-link,.live-site .faq-list summary{font-size:14px}
 .live-site .service-choice{grid-template-columns:18px minmax(0,1fr) 22px;gap:12px}
 .live-site .service-choice h3{font-size:clamp(25px,7.2vw,34px)}
 .live-site .pete-copy{padding-inline:var(--gutter)}
 .live-site .piv-how li p{font-size:13px}
 .live-site .piv-how .piv-note{font-size:12px}
 .live-site .area-section{padding-inline:var(--gutter)}
 .live-site .town-list{font-size:12px;line-height:2.3}
 .live-site .town-list span{padding-inline:4px}
 .live-site .live-footer{padding-inline:var(--gutter);padding-bottom:calc(90px + env(safe-area-inset-bottom))}
 .live-site .mobile-contact>a{padding-inline:var(--gutter);min-height:54px}
}
@media(max-width:360px){
 .live-site .site-header{padding-inline:16px;gap:6px}
 .live-site .brand{gap:6px}
 .live-site .brand-name>span{font-size:5.5px}
 .live-site .header-cta{padding-inline:9px}
 .live-site .piv-explainer{padding-inline:20px}
}

@media(max-width:540px) and (max-height:700px){
 .live-site .hero-bottom{display:none}
}

/* One continuous ribbon; the duplicated group makes the loop seamless. */
.live-site .service-strip{display:block;padding:0}
.confidence-window{width:100%}
.confidence-track{width:100%}
.confidence-group{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px var(--gutter)}
.confidence-group>span{flex-shrink:0;font:800 clamp(17px,1.5vw,23px)/1.3 Barlow,sans-serif;letter-spacing:.035em;white-space:nowrap}
.confidence-group>i{font-style:normal;font-size:18px;color:#7e6217}
.confidence-group>i:last-child,.confidence-copy,.confidence-toggle,.confidence-play{display:none}
@keyframes confidence-scroll{to{transform:translateX(-50%)}}
@media(max-width:900px){
 .live-site .service-strip{position:relative;overflow:hidden}
 .confidence-window{width:calc(100% - 48px);overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 12px,#000 calc(100% - 12px),transparent)}
 .confidence-track{display:flex;width:max-content;animation:confidence-scroll 32s linear infinite}
 .confidence-group{justify-content:flex-start;flex-shrink:0;gap:28px;padding:23px 14px}
 .confidence-group>span{font-size:17px;letter-spacing:.045em}
 .confidence-group>i{font-size:15px}
 .confidence-group>i:last-child{display:block}
 .confidence-copy{display:flex}
 .confidence-toggle{position:absolute;right:0;top:50%;translate:0 -50%;display:grid;place-items:center;width:48px;height:48px;border:0;background:none;color:var(--navy);border-left:1px solid #061b3020}
 .confidence-toggle:hover{background:#ffffff25}
 .confidence-toggle:focus-visible,.confidence-window:focus-visible{outline:2px solid var(--navy);outline-offset:-4px}
 .service-strip.is-paused .confidence-track,.confidence-window:focus-within .confidence-track{animation-play-state:paused}
 .service-strip.is-paused .confidence-pause{display:none}
 .service-strip.is-paused .confidence-play{display:block}
}
@media(max-width:900px) and (hover:hover){.confidence-window:hover .confidence-track{animation-play-state:paused}}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .confidence-window{width:100%;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#061b3050 transparent;mask-image:none}
 .confidence-track{animation:none;transform:none}
 .confidence-group{padding-inline:var(--gutter)}
 .confidence-copy,.confidence-toggle{display:none}
}

/* Full-screen navigation shares the site's bold type, shield and gold actions. */
.navigation-open{overflow:hidden}
.mobile-menu-toggle{display:none;flex-shrink:0;border:0;background:none;color:inherit;width:44px;height:44px;padding:11px}
.mobile-menu-toggle>span{display:block;width:22px;height:2px;background:currentColor;margin:5px 0}
.live-site .mobile-nav{position:fixed;inset:0;margin:0;width:100%;height:100dvh;max-width:none;max-height:none;padding:0;border:0;background:var(--navy);color:#fff;overflow:hidden;overscroll-behavior:none}
.live-site .mobile-nav:not([open]){display:none}
.live-site .mobile-nav[open]{display:flex;flex-direction:column}
.mobile-nav::backdrop{background:var(--navy)}
.mobile-nav-header{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-shrink:0;padding:calc(14px + env(safe-area-inset-top)) var(--gutter) 14px;border-bottom:1px solid #ffffff20}
.mobile-nav-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:0;background:var(--gold);color:var(--navy);transition:background .2s,transform .2s}
.mobile-nav-close:hover{background:#ffdf8c;transform:rotate(90deg)}
.mobile-nav-close:focus-visible{outline:2px solid var(--navy);outline-offset:-6px}
.mobile-nav-body{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:0;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:30px var(--gutter) max(24px,env(safe-area-inset-bottom));scrollbar-width:thin;scrollbar-color:#ffffff50 transparent}
.mobile-nav-body::before{content:'';position:absolute;z-index:-1;pointer-events:none;top:330px;right:-70px;width:350px;height:350px;background:url('/assets/site/damp-guy-mascot.webp') center/contain no-repeat;mask-image:radial-gradient(ellipse,#000 45%,transparent 72%);opacity:.12}
.mobile-nav-body>.eyebrow{font-size:9px;letter-spacing:.16em;color:var(--gold);margin-bottom:22px}
.mobile-nav-services{border-top:1px solid #ffffff25}
.mobile-nav-services>a{display:grid;grid-template-columns:20px minmax(0,1fr) 22px;align-items:center;gap:12px;min-height:73px;padding:15px 0;border-bottom:1px solid #ffffff25;transition:color .2s,padding .2s;animation:menu-link-in .35s both}
.mobile-nav-services>a:nth-child(2){animation-delay:.04s}.mobile-nav-services>a:nth-child(3){animation-delay:.08s}.mobile-nav-services>a:nth-child(4){animation-delay:.12s}
.mobile-nav-services>a>span:nth-child(2){font:800 clamp(30px,8vw,48px)/1 Barlow,sans-serif;letter-spacing:-.01em;text-transform:uppercase;overflow-wrap:anywhere}
.mobile-nav-services>a>.mobile-nav-number{font-size:10px;color:#a7bbce;align-self:start;padding-top:9px}
.mobile-nav-services>a>svg{color:var(--gold);width:21px}
.mobile-nav-services>a:hover,.mobile-nav-services>a[aria-current=page]{color:var(--gold)}
.mobile-nav-services>a:hover{padding-left:6px}
.mobile-nav-about{display:flex;flex-wrap:wrap;gap:8px 30px;padding:16px 0 24px}
.mobile-nav-about>a{display:flex;align-items:center;min-height:44px;font-size:13px;color:#d2dee8}
.mobile-nav-about>a:hover{color:var(--gold)}
.mobile-nav-contact{margin-top:auto;padding-top:12px}
.mobile-nav-contact>p{font:800 clamp(32px,8.2vw,45px)/.98 Barlow,sans-serif;letter-spacing:-.015em;margin-bottom:24px}
.mobile-nav-contact>p>span{color:var(--gold)}
.mobile-nav-contact>.button{width:100%;font-size:13px;min-height:56px}
.mobile-nav-phone{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;font-size:11px;color:#c1d2e0;margin-top:6px}
.mobile-nav-phone>span{display:flex;align-items:center;gap:14px;color:#fff;font-size:16px}
.mobile-nav-phone svg{width:18px}
@keyframes menu-link-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.live-site .desktop-nav{display:none}.mobile-menu-toggle{display:block}.live-site .header-cta{margin-left:auto}}
@media(max-width:360px){.mobile-nav-body{padding-top:24px}.mobile-nav-services>a{gap:10px;min-height:66px}.mobile-nav-services>a>span:nth-child(2){font-size:29px}.mobile-nav-about{gap:8px 24px}.mobile-nav-contact>p{font-size:31px}}
@media(max-height:650px){.mobile-nav-contact{padding-top:6px}.mobile-nav-contact>p{font-size:29px;margin-bottom:18px}.mobile-nav-about{padding-bottom:14px}}
