:root{--forest:#203e35;--ink:#192e23;--green:#296e41;--cream:#f6eee4;--light:#f6eee4;--line:#d5dacb;--muted:#526357;--white:#fff;--orange:#f7a349;--lime:#f7a349;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--white);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0}a{color:inherit}a:focus-visible{outline:3px solid #9cbf48;outline-offset:6px}button,a{-webkit-tap-highlight-color:transparent}p{font-size:1.0625rem;line-height:1.7;margin:0 0 1.2rem}h1,h2,h3{margin:0;font-weight:400}h1,h2{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.045em;line-height:1.08}h1{font-size:clamp(3.2rem,5.8vw,5.8rem)}h2{font-size:clamp(2.4rem,3.6vw,3.7rem)}h3{font-size:1.45rem;line-height:1.3;letter-spacing:-.025em}em{font-weight:400;color:var(--green)}.skip-link{position:absolute;left:1rem;top:-8rem;padding:1rem;background:white;z-index:3}.skip-link:focus{top:1rem}.site-header{max-width:1440px;padding:1.75rem 4.5%;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{text-decoration:none;display:flex;align-items:center;gap:.8rem;font-size:1.65rem;font-family:Georgia,serif;line-height:1.1;white-space:nowrap}.brand-sub{display:block;font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.18em;margin-top:.35rem}.brand-mark{height:3.2rem;width:3.2rem;background:var(--forest);border-radius:50%;color:#fff;font-size:2.25rem;display:flex;align-items:center;justify-content:center;position:relative}.brand-mark>span{font-size:1.5rem;color:var(--lime);margin-top:1.1rem;margin-left:-.13rem}nav{display:flex;align-items:center;gap:2rem;font-size:.95rem}nav a{text-decoration:none}nav a:hover{text-decoration:underline;text-underline-offset:5px}.nav-phone{border-left:1px solid var(--line);padding-left:2rem;font-weight:600}.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:3%;padding:2rem 4.5% 4.5rem;align-items:center}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.16em;line-height:1.5;margin-bottom:1.6rem}.hero-description{max-width:29rem;margin-top:1.7rem;color:var(--muted);font-size:1.1rem}.hero-copy{padding:1.75rem 0}.actions{display:flex;align-items:center;gap:1.6rem;margin-top:2rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2.5rem;font-size:1rem;font-weight:600;min-height:3.5rem;padding:1rem 1.4rem;border-radius:3px;text-decoration:none;transition:background .18s ease}.button-green{color:#fff;background:var(--forest)}.button-green:hover{background:#245638}.button-light{color:var(--forest);background:var(--lime)}.button-light:hover{background:#e9f7c8}.button span{font-size:1.3rem;font-weight:400}.text-link{text-underline-offset:5px;font-size:1rem}.hero-note{font-size:.875rem;line-height:1.6;margin:1.6rem 0 0;color:var(--muted);max-width:28rem}.hero-image{margin:0;position:relative;align-self:stretch;min-height:490px;border-radius:120px 4px 4px 4px;overflow:hidden;background:var(--forest)}.hero-image img{display:block;position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 65%}.hero-image:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(8,32,16,.62))}.hero-image figcaption{position:absolute;z-index:1;bottom:1.8rem;left:2rem;right:2rem;color:#fff;font-size:1.1rem;line-height:1.4;font-family:Georgia,serif;letter-spacing:.015em}.section-wrap{max-width:1440px;margin:auto;padding:5rem 4.5%}.services{border-top:1px solid var(--line)}.section-intro{display:grid;grid-template-columns:1.3fr 1fr;gap:1rem 5rem;margin-bottom:3.25rem}.section-intro .eyebrow{grid-column:1/-1;margin:0}.section-intro p:last-child{max-width:27rem;color:var(--muted);margin:0}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2.2rem}.service{border-top:1px solid var(--line);padding-top:1.5rem}.service-number{display:block;font-size:.875rem;color:var(--green);margin-bottom:1.5rem}.service h3{margin-bottom:1rem}.service>p{color:var(--muted);font-size:1rem}.service .service-detail{margin:1.5rem 0 0;font-size:.875rem;line-height:1.6;color:var(--ink)}.approach{display:grid;grid-template-columns:1fr 2fr;background:var(--light);gap:4rem}.approach>div{display:grid;grid-template-columns:1fr 1fr;gap:1rem 3.5rem}.approach h2{grid-column:1/-1;margin-bottom:1rem}.approach p:not(.eyebrow){color:var(--muted);margin:0}.area{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5rem}.area .eyebrow{margin-bottom:1rem}.area>div:last-child{padding-top:2rem;max-width:31rem}.muted{color:var(--muted)}.contact{margin:1rem auto 0;max-width:1440px;background:var(--forest);color:#fff;padding:5rem 7%;display:grid;grid-template-columns:1.3fr 1fr;gap:5rem;align-items:center}.contact .eyebrow{color:var(--lime)}.contact h2{font-size:clamp(2.7rem,4.5vw,4.5rem)}.contact-action{max-width:26rem}.contact-action>p{color:#e0e9df}.contact-action .button{margin-top:.7rem}.contact-phone{display:block;margin-top:1.6rem;text-decoration:none;font-size:1rem}.contact-phone:hover{text-decoration:underline}.contact-action .form-note{font-size:.875rem;color:#c4d3c8;margin:1rem 0 0}.site-footer{max-width:1440px;margin:auto;padding:2.4rem 4.5% 1.5rem}.footer-top,.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap}.footer-top{padding-bottom:2rem;font-size:.95rem}.footer-brand{font-size:1.3rem}.footer-top>a:last-child{text-decoration:none}.footer-bottom{border-top:1px solid var(--line);padding-top:1.25rem;font-size:.75rem;line-height:1.6;color:var(--muted)}.footer-bottom a{text-underline-offset:3px}
@media(min-width:1600px){.hero{padding-top:3rem}.hero-image{min-height:550px}}
@media(max-width:1020px){.site-header{padding:1.5rem 5%}nav{gap:1.3rem}.nav-phone{padding-left:1.3rem}.hero{padding:1.5rem 5% 3.5rem;gap:5%}.hero-image{min-height:460px;border-top-left-radius:90px}.hero-note{max-width:21rem}.section-wrap{padding:4rem 5%}.service-grid{grid-template-columns:1fr 1fr;gap:2.5rem}.section-intro{gap:1rem 2rem}.approach{grid-template-columns:1fr;gap:1rem}.approach>div{gap:1.5rem 3rem}.area{gap:2rem}.contact{padding:4rem 5%;gap:3rem}}
@media(max-width:700px){.site-header{gap:1rem;padding:1.2rem 6%}.brand{font-size:1.4rem}.brand-mark{height:2.7rem;width:2.7rem;font-size:1.9rem}.brand-sub{font-size:.68rem}nav a:not(.nav-phone){display:none}.nav-phone{font-size:.875rem;padding:0;border:0}nav{gap:0}.hero{grid-template-columns:1fr;padding:1rem 6% 3rem;gap:2rem}.hero-copy{padding:.8rem 0 0}.eyebrow{margin-bottom:1.15rem;letter-spacing:.14em}h1{font-size:clamp(3.25rem,11vw,4.5rem)}.hero-description{font-size:1.0625rem;margin-top:1.3rem;max-width:30rem}.hero-note{max-width:none}.actions{gap:1.5rem;margin-top:1.6rem}.hero-image{min-height:350px;border-radius:80px 4px 4px 4px}.hero-image figcaption{left:1.5rem;bottom:1.5rem}.section-wrap{padding:3.25rem 6%}.section-intro{grid-template-columns:1fr;gap:1rem;margin-bottom:2.25rem}.section-intro .eyebrow{grid-column:auto}.section-intro p:last-child{max-width:none}.service-grid{gap:2rem 1.5rem}.service h3{font-size:1.25rem}.service p{font-size:1rem}.service-number{margin-bottom:1rem}.service .service-detail{font-size:.875rem}.approach>div{grid-template-columns:1fr;gap:1rem}.approach h2{grid-column:auto}.area{grid-template-columns:1fr;gap:1rem}.area>div:last-child{padding-top:.7rem;max-width:none}.contact{grid-template-columns:1fr;gap:2rem;padding:3.25rem 6%;margin:0}.contact h2{font-size:3.2rem}.contact-action{max-width:none}.site-footer{padding:2rem 6% 1.5rem}.footer-top{align-items:flex-start;flex-direction:column;gap:1rem}.footer-bottom{flex-direction:column;align-items:flex-start;gap:.6rem}}
@media(max-width:390px){.brand-mark{display:none}.site-header{gap:.5rem}.nav-phone{font-size:.85rem}.service-grid{grid-template-columns:1fr}.hero-image{min-height:300px}.button{gap:1.5rem}.actions{gap:1.2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
.brand-logo{display:block;width:154px;height:auto}.site-header{padding-top:1.15rem;padding-bottom:1.15rem}.footer-brand .brand-logo{width:126px}.button-light:hover{background:#ffbe76}.hero{padding-top:.75rem}@media(max-width:700px){.brand-logo{width:120px}.site-header{padding-top:.9rem;padding-bottom:.9rem}.hero{padding-top:.25rem}}
.site-header,.hero,.site-footer{background:var(--cream)}.site-header{border-top:5px solid var(--orange)}.hero{border-bottom:1px solid #e4d7c6}.button-green{background:var(--green)}.button-green:hover{background:var(--forest)}a:focus-visible{outline-color:var(--forest);box-shadow:0 0 0 4px var(--orange)}.service-number{display:flex;align-items:center;gap:.75rem}.service-number:after{content:"";width:2rem;height:2px;background:var(--orange)}.contact{border-top:5px solid var(--orange)}.property-types{font-size:.9375rem;color:var(--forest);max-width:30rem;padding-left:1rem;border-left:3px solid var(--orange);margin-top:1.5rem}
.work{border-top:1px solid var(--line)}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 2rem}.work-grid figure{margin:0;min-width:0}.work-grid img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:4px}.work-grid figcaption{font-size:1rem;line-height:1.5;padding:.9rem 0 .2rem;color:var(--forest)}.approach{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(2rem,6vw,6rem)}.approach>.about-copy{display:block;max-width:38rem}.approach .about-copy h2{margin-bottom:1.75rem}.approach .about-copy p{margin-bottom:1.25rem}.approach .about-copy p:last-child{margin-bottom:0}.about-photo{margin:0;max-width:430px}.about-photo img{display:block;width:100%;height:auto;border-radius:80px 4px 4px 4px}.about-copy .eyebrow{color:var(--green)}
@media(max-width:700px){.work-grid{grid-template-columns:1fr;gap:1.8rem}.approach{grid-template-columns:1fr;gap:2rem}.about-photo{width:100%;max-width:430px}.approach>.about-copy{max-width:none}}
.area{display:block}.area>.section-intro{max-width:none;padding-top:0}.area>.area-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:3rem;max-width:none;padding-top:0;align-items:start}.area-map-wrap{margin:0;min-width:0}.service-map{height:480px;width:100%;background:#e8ece4;border:1px solid var(--line);border-radius:4px;z-index:0}.map-fallback{padding:2rem;color:var(--muted)}.area-map-wrap figcaption{font-size:.875rem;line-height:1.55;margin-top:.85rem;color:var(--muted)}.map-key{display:inline-block;width:1rem;height:.7rem;background:rgba(41,110,65,.15);border:1px dashed var(--green);margin-right:.35rem}.map-credit{font-size:.75rem;line-height:1.6;color:var(--muted);margin:.6rem 0 0}.map-credit a{text-underline-offset:2px}.map-status{font-size:.875rem;margin:.6rem 0 0}.map-status[hidden]{display:none}.area-suburbs section{margin:0 0 1.6rem}.area-suburbs h3{font-size:1.2rem;color:var(--forest);margin-bottom:.5rem}.area-suburbs section p{font-size:1rem;line-height:1.8;color:var(--muted);margin:0}.area-note{font-size:.9375rem;border-top:1px solid var(--line);padding-top:1.3rem;color:var(--muted);margin:0}.service-map .leaflet-control-attribution{font-size:12px;line-height:1.5;background:rgba(255,255,255,.95)}.service-map .leaflet-control-attribution a{color:#203e35}.service-map .leaflet-control-zoom a{color:var(--forest);background:#fff}.service-map .leaflet-tooltip{font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.4;color:var(--forest);background:rgba(255,255,255,.96);border-color:#d5dacb;box-shadow:0 1px 5px rgba(25,46,35,.12)}.service-pin{display:flex;align-items:center;justify-content:center;background:transparent;border:0}.service-pin span{width:9px;height:9px;border-radius:50%;background:var(--orange);border:2px solid var(--forest);box-shadow:0 0 0 2px #fff}.service-pin:focus-visible{outline:3px solid var(--forest);outline-offset:2px;border-radius:50%}.service-map .leaflet-popup-content{font-size:1rem;line-height:1.5;color:var(--forest)}
@media(max-width:1020px){.area>.area-layout{gap:2rem;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.service-map{height:460px}}
@media(max-width:700px){.area>.area-layout{grid-template-columns:1fr;gap:2rem}.service-map{height:360px}.area-suburbs section{margin-bottom:1.4rem}.area .section-intro{margin-bottom:2rem}}

/* Quiet, persistent contact options; above the map, with room for device safe areas. */
:root{--header-clearance:7rem;--contact-clearance:0px}
html{scroll-padding-top:calc(var(--header-clearance) + 1rem);scroll-padding-bottom:calc(var(--contact-clearance) + 1rem)}
.skip-link{z-index:40}
.site-header{position:sticky;top:0;z-index:20;gap:1.5rem;padding-top:.65rem;padding-bottom:.65rem;box-shadow:0 3px 14px rgba(25,46,35,.07)}
.site-header .brand-logo{width:108px}
.header-navigation{margin-left:auto;gap:1.4rem}
.header-contact{display:flex;align-items:center;gap:1.2rem;flex-shrink:0}
.header-contact .nav-phone{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;text-decoration:none;padding-left:1.2rem;white-space:nowrap}
.header-contact .nav-phone:hover{text-decoration:underline;text-underline-offset:5px}
.header-quote{min-height:44px;padding:.85rem 1.1rem;border-radius:7px;white-space:nowrap}
.mobile-contact,.mobile-contact[hidden]{display:none}
@media(max-width:56.25rem){
  :root{--header-clearance:0px}
  body{padding-bottom:var(--contact-clearance)}
  .site-header{position:relative;gap:1rem;box-shadow:none;padding-top:.9rem;padding-bottom:.9rem}
  .site-header .brand-logo{width:120px}
  .header-navigation,.header-quote{display:none}
  .header-contact .nav-phone{padding:0;border:0;font-size:.9375rem}
  .mobile-contact:not([hidden]){display:block;position:fixed;inset:auto 0 0;z-index:30;background:var(--cream);border-top:1px solid #e4d7c6;border-radius:12px 12px 0 0;box-shadow:0 -4px 18px rgba(25,46,35,.09);padding:.75rem max(.85rem,env(safe-area-inset-right)) calc(.75rem + env(safe-area-inset-bottom)) max(.85rem,env(safe-area-inset-left))}
  .mobile-contact-inner{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:.65rem;max-width:34rem;margin:auto}
  .mobile-contact .button{justify-content:center;min-height:48px;min-width:0;padding:.8rem .65rem;border-radius:7px;gap:0;font-size:1rem;line-height:1.4;text-align:center;overflow-wrap:break-word}
  .mobile-call{border:1px solid #b9c7b9;color:var(--forest);background:transparent}
  .mobile-call:hover{background:#e9e5d9}
  .mobile-contact a:focus-visible{outline-offset:2px;box-shadow:0 0 0 2px var(--orange)}
}
