@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap');
:root{--blue:#123b70;--deep:#102f55;--ink:#1d3041;--muted:#52606a;--paper:#f8f7f3;--line:#d8dcd9;--gold:#bd8c53;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #bd8c53;outline-offset:6px}a:hover{color:#946431}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif)}.skip{position:fixed;top:-100px;left:20px;z-index:20;background:white;padding:15px}.skip:focus{top:10px}.topline{padding:10px 4.5%;background:var(--blue);color:white;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.1em}.topline span:last-child{letter-spacing:.02em}.header{max-width:1600px;margin:auto;min-height:124px;padding:23px 4.5%;display:flex;align-items:center;gap:36px;justify-content:space-between}.brand{width:250px;flex-shrink:0}.brand img{mix-blend-mode:multiply;height:auto}.header nav{display:flex;gap:34px;font-size:14px}.header nav a{padding:10px 0}.header-phone{display:flex;gap:12px;align-items:center;font-size:17px;font-weight:650}.header-phone svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6}.hero{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;padding:20px 4.5% 55px;gap:5%}.hero-copy{padding:29px 0 0}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:600;line-height:1.6;color:var(--blue)}.hero-copy .eyebrow{display:flex;align-items:center;gap:11px;font-size:11px;letter-spacing:.1em}.eyebrow span{width:24px;height:1px;background:var(--gold)}h1{font-size:clamp(65px,7.1vw,110px);line-height:.98;letter-spacing:-.045em;margin:29px 0 28px}h1 em,h2 em{font-weight:400;color:var(--blue)}.intro{color:var(--muted);font-size:16px;line-height:1.8}.button{display:inline-flex;justify-content:center;align-items:center;gap:25px;padding:17px 22px;font-size:14px;font-weight:550;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--blue);color:white;margin-top:29px}.primary:hover{background:var(--deep);color:white}.primary span{font-size:21px;line-height:1}.text-link{display:block;margin-top:17px;font-size:13px;width:fit-content}.text-link span{margin-left:16px}.hero-proof{display:flex;align-items:center;gap:22px;margin-top:36px;padding-top:21px;border-top:1px solid var(--line);max-width:380px}.hero-proof strong{font-family:var(--serif);font-size:57px;font-weight:400;line-height:1}.hero-proof strong span{font-size:34px;color:var(--gold)}.hero-proof p{font-size:12px;color:var(--muted);line-height:1.8}.hero-proof b{font-weight:500;color:var(--ink)}.hero-image{position:relative;min-height:625px;background:#684e37;overflow:hidden}.hero-image>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:52% center}.hero-image:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(10,21,30,.8));pointer-events:none}.photo-label{position:absolute;bottom:62px;left:37px;z-index:1;color:white}.photo-label>span{font-size:10px;letter-spacing:.15em}.photo-label strong{display:block;font-family:var(--serif);font-size:40px;font-weight:400;line-height:1.08;margin-top:14px}.hero-image figcaption{position:absolute;bottom:16px;left:37px;right:20px;z-index:1;font-size:12px;color:#ede6df;line-height:1.4}.specialties{display:flex;justify-content:space-evenly;align-items:center;gap:20px;padding:25px 4.5%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.12em;color:var(--blue)}.specialties i{font-size:24px;color:var(--gold);font-style:normal}.section{padding:95px max(4.5%,calc((100vw - 1456px)/2));scroll-margin-top:12px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:50px}h2{font-size:clamp(45px,4.2vw,65px);letter-spacing:-.035em;line-height:1.04;margin-top:17px}.section-heading>p{max-width:365px;color:var(--muted);font-size:15px;line-height:1.8;padding-bottom:5px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service{padding:28px 30px 25px 0;display:flex;flex-direction:column}.service+.service{border-left:1px solid var(--line);padding-left:32px}.service-top{display:flex;justify-content:space-between;align-items:center;color:var(--gold);font-size:13px;min-height:28px}.tag{font-size:10px;letter-spacing:.08em;border:1px solid #bbc7d3;padding:4px 8px;color:var(--blue)}.service h3{font-family:var(--serif);font-size:39px;line-height:1.04;letter-spacing:-.02em;margin:26px 0 20px}.service>p{font-size:15px;line-height:1.8;color:var(--muted);max-width:310px}.service ul{list-style:none;padding:0;margin:24px 0 27px;font-size:14px;line-height:2.15}.service li:before{content:'—';margin-right:10px;color:var(--gold)}.service>a{font-size:13px;font-weight:600;margin-top:auto;display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:18px}.service-note{text-align:center;color:var(--muted);font-size:14px;margin-top:29px}.service-note a,.towns a{text-decoration:underline;text-underline-offset:4px;color:var(--blue)}.approach{background:#eaf0f3;display:grid;grid-template-columns:1fr 1.1fr;gap:10%;padding-top:80px;padding-bottom:80px}.experience{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px solid #b6c8d5;padding:47px 20px;color:var(--blue);position:relative}.experience:before{content:'';position:absolute;inset:8px;border:1px solid #ced9df;pointer-events:none}.experience .eyebrow{font-size:10px}.big-number{font-family:var(--serif);font-size:clamp(130px,17vw,240px);line-height:1.05;letter-spacing:-.06em;padding-top:24px}.big-number sup{font-size:.35em;vertical-align:super;letter-spacing:0;color:var(--gold)}.experience>p{font-family:var(--serif);font-size:33px;line-height:1.15}.experience-rule{width:44px;height:1px;background:var(--gold);margin:37px 0 25px}.small-caps{font-size:10px;letter-spacing:.13em}.approach-intro{font-size:15px;color:var(--muted);line-height:1.85;margin-top:23px;margin-bottom:25px}.principle{display:flex;gap:21px;border-top:1px solid #cbd7dd;padding:20px 0}.principle>span{color:var(--gold);font-size:12px;margin-top:4px}.principle h3{font-size:16px;font-weight:550;margin-bottom:4px}.principle p{color:var(--muted);font-size:14px;line-height:1.7}.area{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;align-items:center}.area>div>p:not(.eyebrow){margin-top:24px;font-size:15px;color:var(--muted)}.towns>span{display:flex;justify-content:space-between;align-items:center;font-family:var(--serif);font-size:30px;padding:12px 0;border-bottom:1px solid var(--line)}.towns .home-town{color:var(--blue)}.towns small{font-family:var(--sans);font-size:10px;letter-spacing:.1em;border:1px solid var(--line);padding:4px 9px}.towns p{font-size:14px}.contact{background:var(--blue);text-align:center;color:white;padding-top:75px;padding-bottom:75px;position:relative}.contact .eyebrow{color:#d3be9c;font-size:11px}.contact h2{font-size:clamp(56px,6.7vw,94px);margin-top:24px}.contact h2 em{color:#e6ccb0}.contact>p:not(.eyebrow){font-size:15px;line-height:1.8;margin-top:24px;color:#d7e1ef}.contact-number{display:block;width:fit-content;margin:23px auto;font-family:var(--serif);font-size:clamp(34px,3.4vw,49px);letter-spacing:.01em}.contact-number span{font-family:var(--sans);font-size:25px;margin-left:10px}.contact-number:hover{color:#e6ccb0}.contact-actions{display:flex;justify-content:center;gap:12px}.light{background:var(--paper);color:var(--blue)}.outline{border:1px solid #7790af;color:white}.outline:hover{background:#ffffff12;color:white}.contact .contact-hint{font-size:12px!important;margin-top:20px!important}footer{padding:40px 4.5%;display:flex;align-items:center;justify-content:space-between;gap:30px}footer p,footer>a:last-child{font-size:12px;color:var(--muted)}.footer-brand{font-family:Georgia,serif;font-size:28px;color:var(--blue);white-space:nowrap}.footer-brand em{font-size:19px}.footer-brand span{font-family:var(--sans);font-size:9px;margin-left:7px}.mobile-contact{display:none}
@media(min-width:1600px){.section{padding-left:calc((100vw - 1456px)/2);padding-right:calc((100vw - 1456px)/2)}}
@media(max-width:1050px){.header{gap:20px}.brand{width:220px}.header nav{gap:20px;font-size:13px}.header-phone{font-size:15px}.hero{gap:4%}.hero-image{min-height:605px}.hero-copy .eyebrow{font-size:10px}.hero-copy .eyebrow span{display:none}.intro{font-size:15px}.desktop-break{display:none}.service{padding-right:22px}.service+.service{padding-left:22px}.service h3{font-size:33px}.service ul{font-size:12px}.tag{font-size:8px}.approach{gap:7%}.section{padding-top:75px;padding-bottom:75px}footer{flex-wrap:wrap}.photo-label{left:25px}.hero-image figcaption{left:25px}}
@media(max-width:760px){.topline{justify-content:center;padding:9px 16px;font-size:9px}.topline span:last-child{display:none}.header{padding:20px 6%;min-height:100px;flex-wrap:wrap;gap:16px}.brand{width:195px}.header-phone{font-size:13px;gap:5px}.header-phone svg{display:none}.header nav{order:3;width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;gap:12px;font-size:12px}.hero{grid-template-columns:1fr;padding:0 6% 35px;gap:32px}.hero-copy{padding-top:20px}.hero-copy .eyebrow{font-size:9px;letter-spacing:.11em}h1{font-size:clamp(68px,13.8vw,100px);margin-top:22px;margin-bottom:24px}.intro{font-size:16px;line-height:1.7}.primary{margin-top:24px;font-size:14px}.hero-proof{margin-top:28px;max-width:none;padding-top:19px}.hero-proof strong{font-size:49px}.hero-image{min-height:0;aspect-ratio:1.1}.photo-label{bottom:53px}.photo-label strong{font-size:35px}.photo-label>span{font-size:9px}.hero-image figcaption{font-size:10px}.specialties{padding:18px 6%;gap:12px;justify-content:space-between;font-size:8px;letter-spacing:.04em}.specialties i{font-size:15px}.section{padding:59px 6%}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:23px;max-width:none;font-size:15px}h2{font-size:47px}.eyebrow{font-size:10px}.service-grid{grid-template-columns:1fr}.service,.service+.service{padding:25px 0;border-left:0}.service+.service{border-top:1px solid var(--line)}.service h3{font-size:37px;margin-top:17px}.service h3 br{display:none}.service>p{max-width:none}.service ul{font-size:14px;margin-top:15px;margin-bottom:22px}.tag{font-size:9px}.service-note{font-size:13px;text-align:left}.approach{grid-template-columns:1fr;gap:39px}.experience{padding:32px 20px}.big-number{font-size:170px;padding-top:0}.experience>p{font-size:30px}.experience-rule{margin:23px 0 18px}.approach-copy h2{font-size:45px}.area{grid-template-columns:1fr;gap:30px}.area h2{font-size:45px}.towns>span{font-size:28px}.contact h2{font-size:57px}.contact-actions{flex-direction:column;max-width:360px;margin:auto}.contact-number{font-size:37px;margin:25px auto}.contact>p:not(.eyebrow){font-size:14px}.contact .contact-hint{font-size:11px!important}footer{padding:33px 6% 100px;display:grid;grid-template-columns:1fr 1fr;gap:24px}.footer-brand{grid-column:1/-1;font-size:30px}footer p{font-size:11px}footer>a:last-child{grid-column:1/-1}.mobile-contact{display:flex;position:fixed;z-index:10;bottom:0;left:0;right:0;background:var(--paper);border-top:1px solid #d0d7df;box-shadow:0 -3px 16px #102f5510;padding:10px 6% max(10px,env(safe-area-inset-bottom));gap:10px}.mobile-contact a{background:var(--blue);color:white;text-align:center;padding:11px 10px;font-size:13px;flex:2}.mobile-contact a:last-child{background:transparent;border:1px solid var(--blue);color:var(--blue);flex:1}}
.brand{display:block}.brand img{width:100%;height:auto}.intro{max-width:440px}
.eyebrow,.hero-copy .eyebrow,.experience .eyebrow,.small-caps,.photo-label>span,.contact .eyebrow{font-size:12px}.tag{font-size:12px}.service-top{gap:8px;flex-wrap:wrap}.hero-proof p,.header nav,.text-link,.service>a,.towns p,footer p,footer>a:last-child{font-size:14px}.service>p,.section-heading>p,.approach-intro,.area>div>p:not(.eyebrow){font-size:16px}.service ul{font-size:14px}.photo-label>span{letter-spacing:.08em}.hero-image figcaption{font-size:12px}.towns small{font-size:12px}.contact .contact-hint{font-size:12px!important}
@media(max-width:760px){.topline{font-size:10px}.hero-copy .eyebrow{font-size:11px}.specialties{font-size:11px;letter-spacing:0;flex-wrap:wrap;justify-content:center;gap:9px 14px}.specialties i{font-size:13px}.specialties i:last-of-type{display:none}.specialties span:last-child{flex-basis:100%;text-align:center}.tag{font-size:11px}.small-caps{font-size:11px}.header nav{font-size:14px}.hero-proof p{font-size:13px}.photo-label>span{font-size:10px}.service h3 br{display:initial}.contact .contact-hint{font-size:12px!important}footer p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}@media(min-width:761px) and (max-width:900px){.header nav{gap:13px}.brand{width:180px}.hero-image{min-height:640px}.service-top{flex-wrap:wrap;gap:5px}.service h3{font-size:29px}}

@media(min-width:761px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service:nth-child(odd){border-left:0;padding-left:0}.service:nth-child(n+3){border-top:1px solid var(--line)}.service>p{max-width:440px}}
.service .service-detail-link{margin-top:15px;border-top:0;padding-top:0;color:var(--blue)}
.detail-hero{padding-top:35px;padding-bottom:70px;border-bottom:1px solid var(--line)}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:45px}.breadcrumb a{text-decoration:underline}.detail-hero h1{font-size:clamp(48px,6.5vw,92px);max-width:1100px}.detail-deck{font-family:var(--serif);font-size:32px;margin-bottom:20px}.detail-hero .intro{max-width:750px}.detail-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px}.detail-columns h2{font-size:36px;margin:18px 0}.detail-columns p,.detail-area>p:not(.eyebrow){color:var(--muted);line-height:1.9}.detail-faq{background:#eaf0f3}.detail-faq h2{margin-bottom:35px}.detail-faq details{border-top:1px solid #bbcbd5;padding:22px 0;max-width:900px}.detail-faq summary{cursor:pointer;font-size:18px;font-weight:550}.detail-faq details p{margin-top:16px;max-width:760px;color:var(--muted)}.detail-area>p:not(.eyebrow){max-width:680px;margin-top:25px}.related-services{padding-top:45px;padding-bottom:45px}.related-services>a{display:flex;justify-content:space-between;max-width:750px;border-bottom:1px solid var(--line);padding:16px 0;font-size:18px}.related-services .eyebrow{margin-bottom:12px}
@media(max-width:760px){.detail-columns{grid-template-columns:1fr;gap:36px}.detail-hero h1{font-size:49px;overflow-wrap:break-word}.detail-deck{font-size:28px}.breadcrumb{margin-bottom:30px}.detail-columns h2{font-size:34px}.detail-faq summary{font-size:17px}.related-services>a{font-size:16px}.detail-hero{padding-top:20px}}
.resource-links{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;padding:24px 6%;border-bottom:1px solid var(--line);font-size:15px}.resource-links a{text-decoration:underline;text-underline-offset:5px}.planner-intro{max-width:700px;margin:25px 0;color:var(--muted)}.project-planner,.project-result{max-width:760px}.project-planner{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project-planner label{display:block;font-weight:550}.project-planner label span{font-weight:400;color:var(--muted)}.project-planner label:last-of-type{grid-column:1/-1}.project-planner input,.project-planner select,.project-planner textarea,.project-result textarea{display:block;width:100%;padding:14px;border:1px solid #a4b5c0;border-radius:0;background:var(--paper);color:var(--ink);font:inherit;margin-top:8px}.project-planner textarea,.project-result textarea{resize:vertical}.project-planner button{margin-top:0;justify-self:start}.project-planner button,.project-result button{border:0;cursor:pointer;font-family:var(--sans)}.project-result{margin-top:36px;padding-top:28px;border-top:1px solid #bbcbd5}.project-result>p{font-size:14px;margin-top:14px;max-width:650px}.planner-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.project-planner :focus-visible,.project-result :focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:760px){.project-planner{grid-template-columns:1fr}.resource-links{gap:20px}.project-result textarea{font-size:16px}.planner-actions{gap:12px}}
