@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('assets/dm-sans.ttf') format('truetype')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fraunces.ttf') format('truetype')}
:root{--ink:#1a1a1a;--aqua:#81d8d0;--cream:#ffffff;--muted:#58636b;--line:#dce5e8;--dark:#1a1a1a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #087c79;outline-offset:5px}img{max-width:100%;display:block}.topline{background:var(--aqua);text-align:center;padding:8px 20px;font-size:12px;letter-spacing:.06em}header{background:var(--dark);color:white;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:12px 5%;position:relative;z-index:2}.logo{display:block;width:220px;flex-shrink:0}.logo img{width:220px;height:64px;object-fit:cover;object-position:50% 48%}nav{display:flex;gap:30px;font-size:13px}nav a:hover,.header-call:hover{color:var(--aqua)}.header-call{font-size:14px;white-space:nowrap}.header-call span{color:var(--aqua);margin-left:12px}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:660px}.hero-copy{padding:75px 9% 40px 10%}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:700;margin:0 0 22px}.dot{display:inline-block;width:7px;height:7px;background:#089b97;border-radius:50%;margin-right:7px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Fraunces',Georgia,serif;font-weight:500;letter-spacing:-.055em;line-height:1.05}h1{font-size:clamp(64px,6.4vw,104px);margin-bottom:26px}h1 em,h2 em{font-weight:500;color:#087c79}h2{font-size:clamp(42px,4.4vw,67px);margin-bottom:24px}h3{font-size:22px;font-weight:500;line-height:1.25;letter-spacing:-.025em}.hero-description{max-width:410px;font-size:17px;color:var(--muted);line-height:1.75}.actions{display:flex;align-items:flex-start;gap:20px;flex-direction:column;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--ink);color:white;padding:17px 24px;font-size:14px;font-weight:600;border:1px solid var(--ink);cursor:pointer;border-radius:3px;transition:background .2s,transform .2s}.button:hover{background:#343e45;transform:translateY(-2px)}.text-link{display:inline-flex;gap:24px;border-bottom:1px solid #85adaa;padding-bottom:4px;font-size:13px}.hero-foot{display:flex;align-items:center;gap:18px;margin-top:40px}.hero-foot p{font-size:12px;line-height:1.6;margin:0;color:var(--muted)}.spark{font-size:45px;line-height:1;color:#089b97}.hero-image{position:relative;min-height:580px;overflow:hidden}.hero-image>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;object-position:58% 50%}.hero-image:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#1a1a1a70);pointer-events:none}.image-note{position:absolute;right:30px;top:30px;z-index:1;background:var(--cream);border-radius:2px;padding:12px 20px;font-size:14px}.image-note span{margin-right:12px;color:#087c79;font-size:22px}.image-caption{position:absolute;z-index:1;bottom:32px;left:35px;color:white;font-size:14px}.service-strip{display:flex;align-items:center;justify-content:center;gap:44px;background:#eaf8f7;padding:23px 20px;font-size:12px;letter-spacing:.035em}.service-strip b{color:#087c79;font-size:17px}.section{padding:100px max(6%,calc((100vw - 1280px)/2));scroll-margin-top:20px}.section-heading{display:grid;grid-template-columns:1.25fr 1fr;gap:80px;align-items:end;margin-bottom:44px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:400px;color:var(--muted);font-size:15px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{border:1px solid var(--line);padding:30px 28px 28px;background:#ffffff;display:flex;flex-direction:column}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}.service-icon{font-size:40px;line-height:1;color:#087c79}.number{font-size:12px;color:#74818a}.service-card h3{font-family:'Fraunces',Georgia,serif;font-size:27px;margin-bottom:12px}.service-type{font-size:10px;letter-spacing:.13em;font-weight:700}.service-card>p:not(.service-type){font-size:14px;color:var(--muted)}.service-card ul{padding:0;list-style:none;margin:8px 0 30px;font-size:12px}.service-card li{border-bottom:1px solid var(--line);padding:10px 0}.service-card li:before{content:'✓';margin-right:10px;color:#087c79}.service-card>a{font-size:12px;font-weight:600;display:flex;justify-content:space-between;gap:8px;margin-top:auto}.featured{background:#eaf8f7;border-color:#a8deda}.scope-note{font-size:11px;color:var(--muted);margin:24px 0 0;max-width:800px}.approach{display:grid;grid-template-columns:1fr 1fr;gap:100px;background:#f1f5f7}.approach-intro{font-size:14px;max-width:410px;color:#58636b}.steps{padding:0;margin:0;list-style:none;align-self:center}.steps li{display:flex;gap:28px;border-top:1px solid #d2dde2;padding:28px 0}.steps li>span{font-size:12px;color:#647781;padding-top:5px}.steps h3{margin-bottom:12px}.steps p{font-size:14px;color:#58636b;margin:0;max-width:365px}.areas{display:grid;grid-template-columns:1fr 1fr;gap:100px}.areas>div>p:last-child{max-width:410px;color:var(--muted);font-size:14px}.towns{align-self:center}.towns>div{display:flex;align-items:center;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.towns h3{font-family:'Fraunces',Georgia,serif;font-size:38px;margin:0;flex:1}.towns span{font-size:12px;color:#586f7b}.towns span:last-child{font-size:26px}.faq{padding-top:0}.faq h2{font-size:48px}.faq-list{max-width:850px}details{border-bottom:1px solid var(--line)}summary{padding:22px 30px 22px 0;cursor:pointer;font-size:16px;font-weight:500;list-style:none;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:4px;font-size:22px;top:17px}details[open] summary:after{content:'−'}details p{font-size:14px;max-width:720px;color:var(--muted);padding-bottom:12px}.quote{background:var(--ink);color:#ffffff;display:grid;grid-template-columns:1fr 1.1fr;gap:85px}.quote-copy{padding-top:16px}.quote h2 em{color:var(--aqua)}.quote-copy>p:not(.eyebrow){color:#d5e0e5;max-width:365px;font-size:14px}.big-phone{display:block;font-size:26px;letter-spacing:-.04em;margin-top:38px}.big-phone span{color:var(--aqua);margin-left:16px}.email-link{font-size:13px;display:block;margin:10px 0}.quote-copy>.contact-note{font-size:11px!important;margin-top:20px}form{background:var(--cream);color:var(--ink);padding:34px;border-radius:4px}form>h3{font-family:'Fraunces',Georgia,serif;font-size:27px;margin-bottom:25px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}label{display:flex;flex-direction:column;font-size:12px;gap:6px;font-weight:500}label span{font-size:10px;font-weight:400;display:contents}input,textarea,select{width:100%;border:1px solid #cddce1;background:#ffffff;border-radius:2px;color:var(--ink);padding:12px 10px;font-size:13px;min-height:46px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#6b7981}form .button{margin-top:24px;width:100%}.form-note{font-size:10px;line-height:1.6;color:var(--muted);margin:14px 0 0}#form-status{font-size:12px;margin:16px 0 0;color:#086d6a}footer{padding:35px 6% 23px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px}footer>p{font-size:12px;color:#d5e0e5;margin:0}.footer-bottom{width:100%;border-top:1px solid #41494e;display:flex;justify-content:space-between;gap:20px;padding-top:22px;color:#c5d0d5;font-size:10px}.footer-bottom button{background:none;border:0;color:inherit;font-size:10px;padding:0;text-decoration:underline;cursor:pointer}dialog{max-width:580px;width:calc(100% - 32px);padding:30px;border:1px solid var(--line);background:var(--cream);color:var(--ink);border-radius:6px}dialog::backdrop{background:#1a1a1ac4}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-heading h2{font-size:32px;margin:0}.dialog-heading button{font-size:30px;background:none;border:0;cursor:pointer;color:var(--ink)}dialog p{font-size:13px;margin-top:20px}.skip{position:absolute;top:-100px;left:20px;background:white;padding:12px;z-index:20}.skip:focus{top:12px}
@media(min-width:1500px){.hero-copy{padding-left:max(10%,calc((100vw - 1280px)/2));padding-right:10%}}@media(max-width:1050px){header{gap:20px}nav{gap:16px}.hero-copy{padding:55px 8%}.hero{min-height:600px}h1{font-size:70px}.section{padding:75px 5%}.section-heading,.areas,.approach,.quote{gap:45px}.service-card{padding:25px 20px}.service-card h3{font-size:23px}.service-strip{gap:24px}.faq{padding-top:0}}@media(max-width:760px){html{scroll-padding-top:10px}header{padding:12px 5%}.logo,.logo img{width:170px}.logo img{height:49px}nav{display:none}.header-call{font-size:12px}.header-call span{display:none}.topline{font-size:10px}.hero{grid-template-columns:1fr}.hero-copy{padding:45px 6% 35px}h1{font-size:52px}.hero-description{font-size:16px;max-width:430px}.hero-foot{margin-top:28px}.actions{gap:22px}.hero-image{min-height:380px}.image-note{right:20px;top:20px}.image-caption{left:22px;bottom:24px}.service-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;text-align:center;font-size:11px}.service-strip b{display:none}.section{padding:60px 6%}.section-heading,.areas,.approach,.quote{grid-template-columns:1fr;gap:32px}.section-heading{margin-bottom:28px}.section-heading>p{margin-bottom:0;max-width:480px}.service-grid{grid-template-columns:1fr}.service-card{padding:26px}.card-top{margin-bottom:24px}.service-card h3{font-size:29px}.service-card ul{margin-bottom:24px}.approach h2 br:nth-of-type(2){display:none}.approach-intro{max-width:100%}.steps li{padding:24px 0}.areas{gap:20px}.areas h2{font-size:48px}.towns h3{font-size:34px}.faq{padding-top:0}.faq h2{font-size:40px}.quote{gap:35px}.quote h2{font-size:62px}form{padding:24px}.big-phone{margin-top:25px}.fields{gap:16px;grid-template-columns:1fr}.full{grid-column:auto}footer{padding:25px 6%}.footer-bottom{flex-direction:column;gap:8px}.footer-bottom button{align-self:flex-start}.scope-note{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Homepage inquiry form */
.hero{grid-template-columns:1fr 1fr;align-items:center;background:#f1f5f7;min-height:650px}.hero-copy{padding-top:50px;padding-bottom:50px}.hero-inquiry{padding:38px 9% 38px 3%;scroll-margin-top:20px}.hero-inquiry form{border:1px solid #cddce1;box-shadow:0 12px 40px #1a1a1a0a;padding:30px}.hero-inquiry form>h3{margin-bottom:10px;font-size:31px}.form-intro{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:22px}.hero-inquiry .fields{gap:13px 16px}.hero-inquiry form .button{background:#81d8d0;border-color:#81d8d0;color:#1a1a1a;margin-top:18px}.hero-inquiry form .button:hover{background:#a4e4de}.quote{grid-template-columns:1fr}.quote-copy{max-width:700px}.quote h2 br{display:none}.quote h2 br:after{content:' '}
@media(max-width:760px){.hero{grid-template-columns:1fr}.hero-copy{padding:36px 6% 24px}.hero-copy .hero-foot{display:none}.hero-description{margin-bottom:0}.actions{margin-top:18px}.hero-inquiry{padding:0 6% 36px}.hero-inquiry form{padding:23px}.hero-inquiry form>h3{font-size:28px}.hero-inquiry .fields{grid-template-columns:1fr 1fr}.hero-inquiry label{font-size:11px}.hero-inquiry input{min-width:0}.hero-inquiry .full{grid-column:1/-1}.hero-inquiry input,.hero-inquiry select,.hero-inquiry textarea{font-size:16px}.hero-inquiry .fields label:first-child{grid-column:1/-1}}

/* Compact page spacing */
.section{padding-top:56px;padding-bottom:56px}.hero{min-height:0}.hero-copy{padding-top:32px;padding-bottom:32px}.hero-inquiry{padding-top:24px;padding-bottom:24px}.hero-foot{margin-top:24px}.hero-inquiry form{padding:24px}.hero-inquiry .fields{gap:10px 14px}.form-intro{margin-bottom:16px}.section-heading{margin-bottom:28px}.card-top{margin-bottom:22px}.service-card{padding:24px}.service-card ul{margin-bottom:20px}.steps li{padding:18px 0}.towns>div{padding:14px 0}.faq{padding-top:12px}.quote h2{font-size:42px}.quote h2 br{display:inline}.quote-copy{max-width:100%}.quote-copy>p:not(.eyebrow){max-width:650px}.big-phone{margin-top:20px}
@media(max-width:760px){.section{padding-top:38px;padding-bottom:38px}.hero-copy{padding-top:24px;padding-bottom:18px}.hero-copy h1{font-size:44px;margin-bottom:16px}.hero-copy .eyebrow{margin-bottom:14px}.hero-description{font-size:15px}.hero-inquiry{padding-bottom:26px}.hero-inquiry form{padding:20px}.section-heading,.areas,.approach,.quote{gap:22px}.service-card{padding:22px}.faq{padding-top:8px}.quote h2{font-size:38px}}

/* Section background swap */
.approach{background:#ffffff}.areas{background:#f1f5f7}

/* Brand teal for the hero accent */
h1 em{color:#089b97}
