:root{--paper:#ffffff;--ink:#30351f;--accent:#4e5e28;--panel:#e4e8cf;--on-accent:#ffffff}@font-face{font-family:Display;src:url("fonts/display.ttf") format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Body;src:url("fonts/body.ttf") format("truetype");font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--accent) var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 Body,sans-serif}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-underline-offset:.22em;min-height:24px;display:inline-flex;align-items:center}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3{font-family:Display,serif;line-height:1.08;text-wrap:balance;font-weight:600}h1{font-size:clamp(2.6rem,5vw,5rem);max-width:16ch;margin:0 0 1.5rem;letter-spacing:-.025em}h2{font-size:clamp(1.8rem,3vw,2.8rem);margin:0 0 1rem}h3{font-size:1.5rem}p{max-width:70ch;margin:.6rem 0 1rem}main{max-width:1180px;margin:auto;padding:0 2rem 3rem}img{max-width:100%;height:auto;display:block}figure{margin:0}figcaption{font-size:.9rem;padding:.7rem 0}address{font-style:normal;line-height:1.8}.j103-mast{max-width:1280px;margin:auto;padding:1.4rem 3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--ink)}.j103-mast nav{display:flex;flex-wrap:wrap;gap:.3rem 1.3rem}.j103-brand{font:1.8rem/1.2 Display,serif;text-decoration:none}.j103-mast p{font-size:.9rem;margin:.4rem 0 0}.j103-mast [aria-current=page]{font-weight:bold;text-decoration-thickness:3px}.j103-header-phone{margin-top:.5rem}.j103-skip{position:absolute;left:1rem;top:-6rem;background:var(--paper);padding:.7rem 1rem;z-index:10}.j103-skip:focus{top:1rem}.j103-action{display:inline-flex;padding:.85rem 1.4rem;min-height:48px;background:var(--accent);color:var(--on-accent);font-weight:bold;text-decoration:none;align-self:start}.j103-action:hover{color:var(--on-accent);text-decoration:underline}.j103-owner{display:grid;grid-template-columns:.7fr 1.3fr;gap:3rem;align-items:center;padding:3rem 0;margin-top:3rem;border-top:1px solid}.j103-owner img{max-height:20rem;object-fit:cover;width:100%}.j103-credentials{padding:2rem;background:var(--panel);margin:3rem 0;overflow-wrap:anywhere}.j103-credentials p{margin:.6rem 0}.j103-reviews{padding:3rem 0}.j103-reviews article{border-top:1px solid;border-bottom:1px solid;padding:1.5rem 0;margin:1.4rem 0}.j103-reviews a{margin-top:.6rem}.j103-work{margin:3rem 0}.j103-work img{width:100%;max-height:25rem;object-fit:cover}.j103-service-directory{padding:3rem 0}.j103-service-directory dl{margin:0}.j103-service-directory dl div{display:grid;grid-template-columns:1fr 1.4fr;gap:2rem;padding:1.4rem 0;border-bottom:1px solid}.j103-service-directory dt{font:1.5rem Display,serif}.j103-service-directory dd{margin:0}.j103-service-directory a{display:flex}.j103-trade-notes{padding:2rem 0;border-top:1px solid}.j103-site-foot{display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;padding:3rem max(2rem,calc((100vw - 1116px)/2));background:var(--panel);border-top:1px solid}.j103-site-foot>div{display:flex;flex-direction:column;align-items:start;gap:.65rem}.j103-inside{padding-top:3rem}.j103-contact-options{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0}.j103-contact-options a{padding:.8rem 1rem;border:1px solid}.j103-questions{max-width:54rem;margin:3rem 0}.j103-questions details{border-top:1px solid;padding:1rem 0}.j103-questions summary{cursor:pointer;min-height:44px;display:flex;justify-content:space-between;gap:1.5rem;align-items:center;font-weight:bold}.j103-questions summary::after{content:'+';font-size:1.6rem}.j103-questions details[open] summary::after{content:'−'}.j103-questions details p{padding:1rem 0;margin:0}.j103-closing{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem;background:var(--panel);margin:3rem 0}.j103-opening{animation:arrive .5s ease-out}@keyframes arrive{from{filter:blur(1px)}to{filter:blur(0)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.j103-opening{animation:none}}.j103-vent-booking{display:flex;gap:4rem;align-items:end;justify-content:space-between;padding:3rem 0}.j103-vent-booking h1{max-width:13ch}.j103-access-ticket{max-width:52rem;margin-left:auto;padding:2rem;border:2px solid var(--ink)}.j103-access-ticket dl{display:flex;gap:1rem}.j103-access-ticket dl div{flex:1;background:var(--panel);padding:1.4rem}dt{font:1.8rem Display,serif}dd{margin:1rem 0}@media(max-width:760px){main{padding:0 1.2rem 2rem}.j103-mast{padding:1.2rem;display:block}.j103-mast nav{gap:.15rem 1rem;margin-top:.8rem}.j103-mast nav a{min-height:44px}.j103-mast p{max-width:100%}a{min-height:44px;overflow-wrap:anywhere}.j103-brand{min-height:44px}h1{font-size:2.7rem;max-width:18ch}h2{font-size:1.9rem}.j103-opening{padding:0}.j103-opening>*{width:100%;max-width:100%;margin-left:0;margin-right:0;float:none}.j103-opening section,.j103-opening header,.j103-opening article,.j103-opening aside,.j103-opening div{grid-template-columns:minmax(0,1fr);gap:1rem}.j103-opening>section,.j103-opening>header,.j103-opening>div{padding:2rem 0;margin-top:0;margin-bottom:0}.j103-opening .j103-action{width:auto;padding:.8rem 1.2rem}.j103-opening dl,.j103-opening ol{display:block}.j103-opening dl div,.j103-opening ol li{margin:.7rem 0;padding:1.1rem}.j103-opening div div{grid-column:auto;grid-row:auto}.j103-opening section>h2,.j103-opening section>a,.j103-opening dl div{grid-column:auto}.j103-opening table{font-size:.9rem}.j103-opening th,.j103-opening td{padding:.7rem}.j103-opening aside{border-radius:0;padding:1.2rem}.j103-opening p{max-width:100%}.j103-opening strong{font-size:1.6rem}.j103-owner,.j103-site-foot{display:block}.j103-owner{gap:0}.j103-owner>div{padding-top:2rem}.j103-site-foot>div{margin-top:2rem;gap:.2rem}.j103-service-directory dl div{display:block}.j103-service-directory dd{margin:.5rem 0}.j103-credentials{padding:1.2rem}.j103-closing{display:block;padding:1.2rem}.j103-closing a{margin-top:1rem}.j103-contact-options{display:grid;grid-template-columns:1fr 1fr}.j103-opening .j103-material-title,.j103-opening .j103-booking,.j103-opening .j103-surface-head,.j103-opening .j103-counter-title,.j103-opening .j103-vent-booking,.j103-opening .j103-handover-call,.j103-opening .j103-inspection-evidence aside,.j103-opening .j103-sweep-report footer{display:block}.j103-opening .j103-tall-mirror{min-height:12rem;border-radius:5rem 5rem 0 0}.j103-opening .j103-room-plan{padding:1rem}.j103-opening .j103-room-plan a{min-height:8rem;padding:1.2rem}.j103-opening .j103-stoop a{width:100%;font-size:1.5rem;padding:1rem;display:block}.j103-opening .j103-care-tags dl,.j103-opening .j103-airflow ol,.j103-opening .j103-handover dl,.j103-opening .j103-access-ticket dl,.j103-opening .j103-inspection-evidence ol{display:block}.j103-opening .j103-vent-route>div{flex-direction:column;align-items:stretch}.j103-opening .j103-sweep-report>div{display:block}.j103-opening .j103-cut-sheet,.j103-opening .j103-gutter-ledger,.j103-opening .j103-fence-options{width:100%;padding:1rem}.j103-opening .j103-boundary .j103-yard{display:block}.j103-opening .j103-yard>a{display:block;padding:1rem}.j103-opening .j103-bond{display:block}.j103-opening .j103-bond p{margin:.7rem 0}.j103-opening .j103-downpipe{margin-left:35%;width:65%;padding:1rem}.j103-opening .j103-gate{gap:1.5rem}.j103-opening .j103-cable-path{display:flex;flex-direction:column}.j103-opening .j103-cable-path>article{order:-1}.j103-opening .j103-room-list{padding:1rem}.j103-opening .j103-room-list a{grid-column:auto;min-height:6rem}.j103-opening .j103-flue{margin:0;padding:1.3rem}.j103-opening .j103-flue-copy{width:100%;padding:2rem 0}.j103-opening .j103-view{padding:1rem}.j103-opening .j103-response-order{padding:1.2rem}.j103-opening .j103-moisture-map{padding:1rem}.j103-opening .j103-room-search{padding:1rem}.j103-opening .j103-airflow,.j103-opening .j103-wash-zones,.j103-opening .j103-method-board,.j103-opening .j103-joint-notes,.j103-opening .j103-flue,.j103-opening .j103-sweep-report,.j103-opening .j103-coverage-plan,.j103-opening .j103-handover,.j103-opening .j103-cut-sheet,.j103-opening .j103-measure-counter,.j103-opening .j103-dry-record,.j103-opening .j103-vent-route,.j103-opening .j103-access-ticket,.j103-opening .j103-inspection-evidence,.j103-opening .j103-room-search,.j103-opening .j103-response-order{padding:1.2rem}.j103-opening .j103-stoop span{display:block}.j103-opening .j103-pour{padding:0}.j103-opening .j103-pour .j103-pour-call,.j103-opening .j103-pour article{padding:1.5rem}.j103-opening .j103-team-pair{padding:1rem}.j103-opening .j103-dry-record{padding:1rem}}
