:root{--blue:#064b89;--navy:#102739;--ink:#172d3e;--muted:#5b6d79;--paper:#f5f6f4;--line:#d7dfe4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:white}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #df9a24;outline-offset:5px}.topbar{background:var(--navy);color:#fff;display:flex;justify-content:space-between;padding:11px 6%;font-size:11px;letter-spacing:1.3px}header{padding:20px 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:block;width:170px;height:83px;overflow:hidden}.brand img{width:145px;height:100px;object-fit:contain;object-position:top}nav{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:600}.navcta{background:var(--blue);color:white;padding:15px 24px}.hero{padding:65px 6% 70px;display:grid;grid-template-columns:1.15fr 1fr;gap:55px;align-items:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--blue);margin:0 0 25px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,5.8vw,87px);letter-spacing:-4px;line-height:1.01;margin-bottom:25px;font-weight:600}em{font-family:Georgia,serif;font-weight:400;color:var(--blue)}.intro{font-size:16px;line-height:1.7;max-width:445px;color:var(--muted)}.actions{display:flex;align-items:flex-start;flex-direction:column;gap:17px;margin-top:28px}.button{background:var(--blue);color:#fff;display:inline-flex;justify-content:space-between;align-items:center;gap:30px;padding:19px 24px;font-size:13px;font-weight:600}.button:hover,.navcta:hover{background:#08345b}.button span{font-size:20px}.textlink{font-size:13px;font-weight:600;display:inline-block}.secondarylink{font-size:12px;color:var(--muted);display:inline-block;margin-top:31px}.heroart{background:#edf2f5;min-height:485px;padding:25px;display:flex;flex-direction:column;justify-content:space-between;position:relative;border-radius:2px}.heroart:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#064b8909 1px,transparent 1px),linear-gradient(90deg,#064b8909 1px,transparent 1px);background-size:30px 30px;pointer-events:none}.arttop,.artbottom{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.6px;line-height:1.6;position:relative}.arttop span:last-child{text-align:right}.heroart img{width:86%;margin:30px auto;position:relative}.artbottom{align-items:end}.water{font-size:50px;line-height:.9;color:var(--blue)}.truststrip{display:flex;justify-content:space-between;margin:0 6%;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.truststrip span:before{content:'✓';color:var(--blue);margin-right:10px}.section{padding:85px 6%}.sectionhead{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:40px}h2{font-size:clamp(37px,4.2vw,59px);font-weight:500;line-height:1.08;letter-spacing:-2px;margin-bottom:0}.sectionhead p:not(.eyebrow),.buildcopy>p:not(.eyebrow),.familystory p{font-size:15px;line-height:1.8;color:var(--muted);max-width:460px}.sectionhead .textlink{color:var(--blue)}.servicegrid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.servicegrid article{padding:27px 22px 22px;border-right:1px solid var(--line)}.servicegrid article:first-child{padding-left:0}.servicegrid article:last-child{border-right:0}.serviceicon{font-size:12px;color:var(--blue);display:block;margin-bottom:35px}h3{font-size:19px;font-weight:500;letter-spacing:-.4px}.servicegrid p{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:0}.smallnote{font-size:11px;color:var(--muted);line-height:1.7;margin:18px 0 0}.construction{background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.buildgraphic{background:var(--navy);padding:45px;min-height:425px;display:flex;flex-direction:column;justify-content:center;color:#c1d4de}.plan{position:relative;border:2px solid #a8c6d0;height:285px;margin:0 12px;transform:skewY(-4deg)}.room{position:absolute;border:1px solid #87a4b2}.r1{top:0;left:0;width:40%;height:60%}.r2{right:0;top:0;width:60%;height:40%}.r3{left:0;bottom:0;width:65%;height:40%}.r4{right:0;bottom:0;width:35%;height:60%}.plan span{position:absolute;top:44%;left:45%;font-size:9px;line-height:1.8;letter-spacing:1px;background:var(--navy);padding:8px}.buildgraphic>p{font-size:9px;letter-spacing:2px;margin:35px 0 0}.buildcopy h2{margin-bottom:25px}.buildcopy ul{list-style:none;padding:0;margin:24px 0 30px}.buildcopy li{border-bottom:1px solid var(--line);padding:13px 0;font-size:13px}.buildcopy li:before{content:'';color:var(--blue);margin-right:15px}.buildcopy>.textlink{display:block;margin-top:19px}.familystory{display:grid;grid-template-columns:1fr 1fr;gap:60px}.familystory .familyintro{font-size:22px;line-height:1.5;color:var(--ink)}.people{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px;padding-top:25px;border-top:1px solid var(--line)}.people strong,.people span,.people a{display:block}.people strong{font-size:17px}.people span{color:var(--muted);font-size:12px;margin:8px 0 15px}.people a{font-size:13px;color:var(--blue)}.inquiries{background:#edf2f5}.formpanel{background:white}.tabs{display:flex;border-bottom:1px solid var(--line)}.tabs button{background:none;border:0;cursor:pointer;flex:1;padding:22px 15px;font-size:14px;border-bottom:3px solid transparent;color:var(--muted)}.tabs button[aria-selected=true]{border-bottom-color:var(--blue);color:var(--blue);font-weight:700;background:#f8fafb}#questionnaire{padding:35px 40px}.formheading h3{font-size:26px;margin-bottom:10px}.formheading p{font-size:14px;color:var(--muted)}.previewnotice{background:#f7f3e9;padding:14px 17px;font-size:12px;line-height:1.6;color:#69572e;margin:25px 0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.full{grid-column:1/-1}label{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:600}input,select,textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);min-width:0;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:2px}small{color:var(--muted);font-size:11px;font-weight:400}textarea{resize:vertical}.formfooter{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--line);padding-top:25px;margin-top:30px;font-size:11px;color:var(--muted)}.formfooter button{padding:16px 20px;border:0;background:#e5eaee;color:#596974;font-size:12px;cursor:not-allowed}.directcontact{display:flex;gap:25px;flex-wrap:wrap;margin-top:25px;font-size:12px}.directcontact a{color:var(--blue);font-weight:600}footer{background:var(--navy);color:white;padding:55px 6% 25px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:35px}footer strong{font-size:35px;letter-spacing:7px}footer p,footer a,footer span{font-size:12px;line-height:1.8;color:#b9c8d2}footer a{display:block;margin-bottom:8px}footer>div:first-child p{font-size:10px;letter-spacing:1px;margin-bottom:15px}.footerbottom{grid-column:1/-1;border-top:1px solid #ffffff26;padding-top:25px;display:flex;gap:5px;font-size:10px;color:#b9c8d2}.footerbottom span{font-size:10px}.footerbottom span:last-child{margin-left:auto}.mobilecall{display:none}@media(min-width:1500px){header,.topbar,.hero,.section,footer{padding-left:max(6%,calc((100vw - 1320px)/2));padding-right:max(6%,calc((100vw - 1320px)/2))}}@media(max-width:850px){nav{gap:16px}nav a:not(.navcta){font-size:11px}.hero{gap:25px}h1{letter-spacing:-2.5px}.heroart{min-height:400px;padding:18px}.servicegrid{grid-template-columns:1fr 1fr}.servicegrid article:nth-child(2){border-right:0}.servicegrid article:nth-child(3){padding-left:0;border-top:1px solid var(--line)}.servicegrid article:nth-child(4){border-top:1px solid var(--line)}.construction{gap:35px}.buildgraphic{padding:22px;min-height:360px}footer{grid-template-columns:1fr 1fr}footer>div:first-child{grid-column:1/-1}}@media(max-width:600px){.topbar{font-size:9px;padding:10px 5%}header{padding:14px 5%}.brand{width:120px;height:66px}.brand img{width:110px;height:76px}nav a:not(.navcta){display:none}.navcta{padding:13px 20px;font-size:12px}.hero{grid-template-columns:1fr;padding:40px 5%;gap:35px}h1{font-size:58px;letter-spacing:-3px}.eyebrow{font-size:9px;letter-spacing:1.6px;margin-bottom:20px}.intro{font-size:15px}.heroart{min-height:300px}.heroart img{width:63%;margin:20px auto}.truststrip{margin:0 5%;gap:14px;flex-wrap:wrap;justify-content:flex-start;font-size:10px;padding:20px 0}.section{padding:55px 5%}.sectionhead,.familystory,.construction{grid-template-columns:1fr;gap:27px}.sectionhead{margin-bottom:30px}h2{font-size:42px}.sectionhead p:not(.eyebrow){margin-bottom:12px}.servicegrid article{padding:22px 14px}.servicegrid h3{font-size:17px}.servicegrid p{font-size:12px}.serviceicon{margin-bottom:25px}.buildgraphic{min-height:310px;order:2}.plan{height:220px;margin:10px 30px}.familyintro{font-size:20px!important}.people{gap:12px}.people a{font-size:12px}.tabs button{font-size:12px;line-height:1.5;padding:17px 12px}#questionnaire{padding:24px 20px}.fields{grid-template-columns:1fr;gap:20px}.formheading h3{font-size:23px}.formfooter{align-items:flex-start;flex-direction:column}.formfooter button{width:100%}.directcontact{gap:16px}footer{padding:40px 5% 85px;gap:25px}.footerbottom{flex-wrap:wrap}.footerbottom span:last-child{margin-left:0;width:100%}.mobilecall{display:block;position:fixed;bottom:0;left:0;right:0;background:var(--blue);color:white;text-align:center;padding:18px 8px;font-size:13px;font-weight:600;z-index:10;box-shadow:0 -2px 15px #0002}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
#request-frame{display:block;width:100%;height:680px;border:0;background:#f8fafb}.formfallback{font-size:12px;color:var(--muted);line-height:1.7;margin:20px 0}.formfallback a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}#questionnaire{padding:30px}.directcontact{border-top:1px solid var(--line);padding-top:25px}.heroart img{mix-blend-mode:multiply}@media(max-width:600px){#questionnaire{padding:20px 8px}.formheading,.formfallback,.directcontact{margin-left:12px;margin-right:12px}.hero h1{font-size:55px}.heroart{min-height:280px}}
.brand{width:140px;height:96px;overflow:visible}.brand img{width:140px;height:96px;object-fit:contain}@media(max-width:600px){.brand{width:110px;height:76px}.brand img{width:110px;height:76px}}
.buildcopy li:before{content:none}.reviews{display:grid;grid-template-columns:1fr 1.15fr;gap:7%;align-items:start;background:var(--paper)}.reviewintro>p:last-child{font-size:15px;line-height:1.8;color:var(--muted);max-width:400px;margin:25px 0 0}.reviewform{background:#fff;padding:32px;border:1px solid var(--line)}.reviewrating{border:0;padding:0;margin:0;min-width:0}.reviewrating legend{font-size:12px;font-weight:600;margin-bottom:12px}.ratingchoices{display:flex;gap:10px}.ratingchoices label{position:relative;flex:1;cursor:pointer}.ratingchoices input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.ratingchoices span{display:block;text-align:center;padding:15px 8px;border:1px solid var(--line);font-size:18px;background:white}.ratingchoices input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}.ratingchoices input:focus-visible+span{outline:3px solid #df9a24;outline-offset:3px}.ratingscale{display:flex;justify-content:space-between;margin-top:9px;font-size:10px;color:var(--muted)}.reviewpermission{flex-direction:row;align-items:flex-start;font-weight:400;font-size:12px;line-height:1.6}.reviewpermission input{width:17px;height:17px;margin:2px 4px 0 0;flex-shrink:0;accent-color:var(--blue)}.reviewform .button{border:0;cursor:pointer;margin-top:25px}.reviewnote,#review-status{font-size:12px;line-height:1.7;color:var(--muted);margin:17px 0 0}#review-status:empty{display:none}@media(max-width:850px){nav{gap:17px}}@media(max-width:600px){.reviews{grid-template-columns:1fr;gap:30px}.reviewform{padding:24px 20px}.ratingchoices{gap:7px}}
.projects{border-bottom:1px solid var(--line)}.galleryhint{font-size:12px!important}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px}.project{margin:0;min-width:0}.project-photo{display:block;position:relative;width:100%;border:0;padding:0;background:#edf2f5;cursor:zoom-in;overflow:hidden;aspect-ratio:3/4}.project-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.project-photo:hover img{transform:scale(1.025)}.photo-open{position:absolute;bottom:14px;right:14px;background:#fff;color:var(--ink);padding:9px 13px;font-size:11px;box-shadow:0 2px 10px #0001}.project figcaption{font-size:12px;color:var(--muted);line-height:1.6;padding-top:12px}.project-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:35px;padding-top:27px}.project-cta p{font-size:17px;margin:0}.project-inline-link{display:block;font-size:13px;color:var(--blue);text-decoration:underline;text-underline-offset:4px;margin-top:20px}.photo-viewer{padding:20px;border:0;background:#102739;color:#fff;width:min(1000px,94vw);max-width:94vw;max-height:94dvh;overflow:auto}.photo-viewer::backdrop{background:#08131de8}.viewer-bar,.viewer-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px}.photo-viewer button{background:transparent;color:#fff;border:1px solid #647a8b;cursor:pointer;padding:11px 18px;font-size:12px}.photo-viewer figure{margin:17px 0}.photo-viewer img{display:block;max-height:68dvh;max-width:100%;width:auto;height:auto;margin:auto;object-fit:contain}.photo-viewer figcaption{font-size:13px;line-height:1.6;color:#d1dce4;text-align:center;margin-top:14px}.photo-viewer-open{overflow:hidden}@media(max-width:850px){nav{gap:13px}.project-grid{gap:24px 16px}}@media(max-width:600px){.project-grid{grid-template-columns:1fr 1fr;gap:23px 14px}.project figcaption{font-size:11px}.photo-open{bottom:8px;right:8px;padding:7px 10px;font-size:10px}.project-cta{align-items:flex-start;flex-direction:column}.photo-viewer{padding:14px}.photo-viewer img{max-height:66dvh}.photo-viewer button{padding:11px 13px}}@media(prefers-reduced-motion:reduce){.project-photo img{transition:none}.project-photo:hover img{transform:none}}
.pipe-projects{padding-top:20px}.pipe-grid .project-photo{aspect-ratio:4/3}.pipe-grid .project-photo img{object-position:center 55%}.service-areas{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;background:#edf2f5}.service-areas>div>p:last-child{font-size:15px;line-height:1.8;max-width:440px;margin:24px 0 0;color:var(--muted)}.area-list{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.area-list span{display:block;padding:19px 0;border-bottom:1px solid #c8d4de;font-size:17px}.area-list span:last-child{grid-column:1/-1}@media(max-width:600px){.service-areas{grid-template-columns:1fr;gap:20px}.area-list span{font-size:15px;padding:16px 0}.pipe-grid{grid-template-columns:1fr}.pipe-grid .project-photo{aspect-ratio:4/3}.pipe-projects{padding-top:10px}}
.testimonials{background:#edf2f5}.testimonial-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.testimonial-card{margin:0;padding:35px;background:white;border:1px solid var(--line);display:flex;flex-direction:column}.testimonial-stars{display:flex;gap:4px;fill:#a87519;margin-bottom:23px}.testimonial-card blockquote{margin:0 0 27px}.testimonial-card blockquote p{font-size:17px;line-height:1.85;margin:0;color:var(--ink)}.testimonial-card figcaption{margin-top:auto;padding-top:21px;border-top:1px solid var(--line)}.testimonial-card strong{display:block;font-size:14px}.testimonial-card figcaption span{display:block;font-size:11px;color:var(--muted);margin-top:7px}.testimonial-cta{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:30px}.testimonial-cta p{margin:0;font-size:14px;color:var(--muted)}@media(max-width:600px){.testimonial-grid{grid-template-columns:1fr;gap:20px}.testimonial-card{padding:25px}.testimonial-card blockquote p{font-size:15px}.testimonial-cta{align-items:flex-start;flex-direction:column;gap:18px}}
