@font-face{font-family:DM Sans;src:url(/fonts/dm-sans.woff2)format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}@font-face{font-family:DM Serif Display;src:url(/fonts/dm-serif-display.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--paper:#f6f3ed;--paper-light:#fcfaf6;--sand:#eae3d7;--ink:#242720;--muted:#64665c;--red:#b72d22;--red-dark:#912219;--line:#d9d7cc;--white:#fffdf9;--font-body:"DM Sans",Arial,sans-serif;--font-heading:"DM Serif Display",Georgia,serif;--text-body:1rem;--text-caption:.875rem;--text-label:.75rem;--text-eyebrow:.75rem;--text-control:.875rem;--content:1280px;--gutter:clamp(22px,4.5vw,72px);--section:clamp(76px,8.5vw,128px);--ease:cubic-bezier(.22,1,.36,1);--speed:.32s;--header-height:102px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 20px);-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}body:has(dialog[open]){overflow:hidden}::selection{background:var(--red);color:var(--white)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit}button:not(:disabled){cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}picture{display:block}button{border:0}figure,p,h1,h2,h3{margin:0}h1,h2{font-family:var(--font-heading);letter-spacing:-.035em;text-wrap:balance;font-weight:400;line-height:1.08}h2{font-size:clamp(36px,3.8vw,56px)}h3{letter-spacing:-.025em;font-size:20px;font-weight:650;line-height:1.3}svg{flex-shrink:0}:focus-visible{outline:3px solid var(--red);outline-offset:5px}.contact-copy :focus-visible{outline-color:var(--white)}.quote-form :focus-visible{outline-color:var(--red)}[hidden]{display:none!important}.container{width:min(var(--content),calc(100% - var(--gutter)*2));margin-inline:auto}.section-pad{padding-block:var(--section)}.eyebrow{letter-spacing:.15em;text-transform:uppercase;font-size:12px;font-weight:700;line-height:1.5}.red-rule{background:var(--red);flex-shrink:0;width:30px;height:2px;display:inline-block}.section-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:40px;display:flex}.section-heading .eyebrow:not(.heading-aside){color:var(--red);margin-bottom:16px}.section-intro{color:var(--muted);margin-top:16px;font-size:18px}.heading-aside{color:var(--muted);flex-shrink:0;padding-bottom:5px;font-size:14px;line-height:1.7}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:1000;background:var(--ink);color:var(--white);padding:12px 22px;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.button{isolation:isolate;background:var(--red);min-height:56px;color:var(--white);border:1px solid var(--red);transition:transform .18s var(--ease),border-color var(--speed),box-shadow var(--speed);border-radius:2px;justify-content:center;align-items:center;gap:26px;padding:16px 25px;font-size:14px;font-weight:650;line-height:1.2;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";z-index:-1;background:var(--red-dark);transition:transform .4s var(--ease);position:absolute;inset:0;transform:translateY(101%)}.button svg{width:19px;height:19px;transition:transform var(--speed) var(--ease)}.button:hover:before{transform:translateY(0)}.button:hover svg{transform:translate(2px,-2px)}.button:active{transform:scale(.97)}.button-small{gap:20px;min-height:48px;padding:13px 20px}.button-outline{color:var(--ink);background:0 0;border-color:#a9a79c}.button-outline:before{background:var(--ink)}.button-outline:hover{color:var(--white);border-color:var(--ink)}.button-outline:hover svg{transform:translate(4px)}.text-link,.text-button{align-items:center;gap:13px;font-size:14px;font-weight:700;line-height:1.4;display:inline-flex}.text-link{color:var(--red);min-height:44px}.text-link svg,.text-button svg{width:20px;height:20px;transition:transform .35s var(--ease)}.text-link:hover svg{transform:translate(5px)}.text-link:hover{text-underline-offset:5px;text-decoration:underline}.text-button{border-bottom:1px solid var(--line);transition:color var(--speed),border-color var(--speed);background:0 0;padding:10px 0}.text-button:hover,.text-button[aria-pressed=true]{color:var(--red);border-color:var(--red)}.site-header{height:var(--header-height);z-index:50;background:#f6f3edf5;border-bottom:1px solid #d9d7cca6;position:sticky;top:0}@supports (backdrop-filter:blur(12px)){.site-header{backdrop-filter:blur(12px)}}.header-inner{justify-content:space-between;align-items:center;gap:40px;height:100%;display:flex}.brand{width:194px;transition:transform var(--speed) var(--ease);flex-shrink:0}.brand:hover{transform:rotate(-2deg)}.desktop-nav{align-items:center;gap:30px;margin-left:auto;display:flex}.desktop-nav a{padding:12px 0;font-size:14px;font-weight:550;position:relative}.desktop-nav a:after{content:"";background:var(--red);transform-origin:100%;width:100%;height:1px;transition:transform .3s var(--ease);position:absolute;bottom:5px;left:0;transform:scaleX(0)}.desktop-nav a:hover:after,.desktop-nav a[aria-current=location]:after{transform-origin:0;transform:scaleX(1)}.header-actions{align-items:center;gap:26px;display:flex}.desktop-nav a[aria-current=location]{color:var(--red)}.mobile-nav>a[aria-current=location]{color:var(--red);border-bottom-color:var(--red)}.phone-link{white-space:nowrap;align-items:center;gap:10px;font-size:14px;font-weight:650;display:flex}.phone-link svg{color:var(--red);width:18px;height:18px}.phone-link:hover{color:var(--red)}.menu-toggle{background:0 0;width:44px;height:44px;display:none;position:relative}.menu-toggle span{background:var(--ink);width:23px;height:1.5px;transition:transform var(--speed) var(--ease);position:absolute;top:17px;left:11px}.menu-toggle span+span{top:25px}.menu-toggle[aria-expanded=true] span{transform:translateY(4px)rotate(45deg)}.menu-toggle[aria-expanded=true] span+span{transform:translateY(-4px)rotate(-45deg)}.mobile-nav{max-height:calc(100dvh - var(--header-height));overscroll-behavior:contain;padding:24px var(--gutter) 32px;background:var(--paper);border-bottom:1px solid var(--line);transform-origin:top;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 20px 24px #2427200d}.mobile-nav>a{border-bottom:1px solid var(--line);font-size:26px;font-family:var(--font-heading);justify-content:space-between;align-items:center;padding:15px 0;display:flex}.mobile-nav>a:last-child{color:var(--red);font-family:var(--font-body);border:0;justify-content:flex-start;gap:14px;margin-top:12px;font-size:18px}.reading-progress{background:var(--red);transform-origin:0;width:100%;height:2px;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){.reading-progress{animation:linear reading scroll(root)}}@keyframes reading{to{transform:scaleX(1)}}.hero{isolation:isolate;align-items:center;min-height:650px;display:flex;position:relative;overflow:hidden}.hero-photo{z-index:-3;position:absolute;inset:0 0 0 23%}.hero-photo img{object-fit:cover;object-position:58% 50%;width:100%;height:100%}.hero-wash{z-index:-2;background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 27%,#f6f3edf5 32%,#f6f3edc7 39%,#f6f3ed24 51%,transparent 60%);position:absolute;inset:0}.hero-content{padding-block:70px 55px}.hero-intro{letter-spacing:.13em;align-items:center;gap:12px;margin-bottom:24px;font-size:11px;display:flex}.hero h1{letter-spacing:-.045em;max-width:530px;font-size:clamp(64px,5.7vw,86px);line-height:.99}.hero h1 span{animation:hero-in .9s var(--ease) both;display:block}.hero h1 span:nth-child(2){animation-delay:85ms}.hero h1 span:nth-child(3){animation-delay:.16s}@keyframes hero-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hero-description{max-width:370px;margin-top:26px;font-size:16px;line-height:1.65}.hero-buttons{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hero-towns{max-width:540px;color:var(--muted);flex-wrap:wrap;gap:5px 16px;margin:30px 0 0;padding:0;font-size:12px;font-weight:500;list-style:none;display:flex}.hero-towns li{white-space:nowrap;position:relative}.hero-towns li:not(:last-child):after{content:"·";position:absolute;right:-10px}.hero-caption{background:var(--paper);min-width:290px;padding:24px 68px 26px 30px;position:absolute;bottom:0;right:0}.caption-index{letter-spacing:.13em;color:var(--muted);margin-bottom:8px;font-size:9px;font-weight:700;display:block}.hero-caption p{font-family:var(--font-heading);letter-spacing:-.025em;font-size:28px;line-height:1.08}.hero-caption>a{color:var(--red);transition:transform var(--speed) var(--ease);padding:8px;position:absolute;bottom:27px;right:22px}.hero-caption>a:hover{transform:translate(3px,-3px)}.transformation{padding-bottom:0}.comparison{grid-template-columns:1fr 1fr;gap:24px;display:grid;position:relative}.comparison figure{aspect-ratio:1.46;margin:0;position:relative}.comparison-link{height:100%;display:block;position:relative;overflow:hidden}.comparison picture,.comparison img{object-fit:cover;width:100%;height:100%}.comparison img{transition:transform .65s var(--ease)}.comparison-link:hover img{transform:scale(1.035)}.comparison figcaption{background:var(--paper);pointer-events:none;align-items:center;gap:10px;padding:9px 18px;font-size:13px;font-weight:650;display:inline-flex;position:absolute;bottom:20px;left:20px;box-shadow:0 2px 8px #2427200a}.comparison .project-open{bottom:20px;right:20px}.comparison-link:hover .project-open,.comparison-link:focus-visible .project-open{background:var(--red);color:var(--white);transform:translate(0)}.status-mark{background:var(--muted);border-radius:50%;width:6px;height:6px}.comparison-after .status-mark{background:var(--red)}.project-footnote{color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:20px 0;font-size:12px;display:flex}.project-footnote span:first-child{color:var(--ink);font-weight:650}.services{padding-top:clamp(100px,10vw,150px)}.services .section-heading{margin-bottom:46px}.service{border-top:1px solid var(--line);grid-template-columns:55px minmax(0,1fr) 340px;align-items:start;gap:24px;padding:32px 0;display:grid}.service:last-child{border-bottom:1px solid var(--line)}.service-number{color:var(--red);margin:0;font-size:20px;font-weight:550;line-height:1.3}.service-copy h3{font-size:22px}.service-scope{max-width:470px;margin-top:11px;font-size:15px;font-weight:500;line-height:1.6}.service-detail{max-width:470px;color:var(--muted);margin-top:18px;font-size:15px;line-height:1.7}.service-image{aspect-ratio:4/3;height:auto;display:block;position:relative;overflow:hidden}.service-image-caption{background:var(--paper);color:var(--muted);letter-spacing:.02em;padding:4px 8px;font-size:9px;position:absolute;bottom:0;left:0}.service-image picture,.service-image img{object-fit:cover;width:100%;height:100%}.service-image[data-photo=white-garage]{aspect-ratio:1}.service-image[data-photo=white-garage] img{object-position:50% 50%}.service-media>.text-link{margin-top:12px}.about-section{background:var(--sand);grid-template-columns:1fr 1fr;align-items:center;display:grid}.about-media{min-width:0;padding-bottom:38px;position:relative}.about-image{aspect-ratio:945/582;overflow:hidden}.about-image picture,.about-image img{object-fit:cover;object-position:50% 50%;width:100%;height:100%}.about-portrait{aspect-ratio:1;border:7px solid var(--paper);background:var(--paper);width:clamp(150px,14vw,215px);position:absolute;bottom:0;right:26px;box-shadow:0 10px 28px #24272026}.about-portrait picture,.about-portrait img{object-fit:cover;width:100%;height:100%}.about-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:72px clamp(35px,5.5vw,88px);display:flex}.about-copy .eyebrow{color:var(--red);margin-bottom:24px}.about-copy h2{font-size:clamp(36px,3.7vw,55px)}.about-copy>.red-rule{margin-block:25px}.about-copy>p:not(.eyebrow){color:#55594e;max-width:435px;font-size:16px;line-height:1.65}.about-copy>p+p{margin-top:16px}.about-copy>.text-link{margin-top:20px}.project-card:nth-child(2){--reveal-delay:60ms}.project-card:nth-child(3){--reveal-delay:.12s}.project-card:nth-child(4){--reveal-delay:.18s}.project-card:nth-child(5){--reveal-delay:.24s}.project-card:nth-child(6){--reveal-delay:.3s}.project-grid{grid-template-columns:repeat(3,1fr);gap:48px 24px;display:grid}.project-image{aspect-ratio:3/2;background:var(--sand);display:block;position:relative;overflow:hidden}.project-image picture,.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .75s var(--ease),filter .75s var(--ease)}.project-image [data-photo=roof] img{object-position:25% 50%}.gallery-thumbnail [data-photo=fence-entry] img{object-position:50% 0%}.gallery-thumbnail [data-photo=fence-gate] img{object-position:100% 50%}.project-image:after{content:"";opacity:0;background:linear-gradient(#0000 65%,#0003);transition:opacity .5s;position:absolute;inset:0}.project-open{background:var(--paper);width:42px;height:42px;color:var(--red);z-index:1;transition:background var(--speed),color var(--speed),transform .4s var(--ease);place-items:center;display:grid;position:absolute;bottom:16px;right:16px}.project-open svg{width:21px;height:21px;transition:transform .4s var(--ease)}.project-number{color:var(--white);opacity:0;transition:opacity .4s,transform .4s var(--ease);z-index:1;font-size:12px;position:absolute;bottom:26px;left:17px;transform:translateY(5px)}.project-image:hover img{transform:scale(1.055)}.project-image:hover:after,.project-image:hover .project-number{opacity:1;transform:translateY(0)}.project-image:hover .project-open{background:var(--red);color:var(--white)}.project-image:hover .project-open svg{transform:rotate(45deg)}.project-image:active .project-open{transform:scale(.92)}.project-count{background:var(--paper);padding:6px 10px;font-size:11px;font-weight:650;line-height:1.3;position:absolute;bottom:18px;left:18px}.project-thumbnails{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:20px;display:grid}.gallery-thumbnail{aspect-ratio:1.15;background:var(--sand);position:relative;overflow:hidden}.gallery-thumbnail picture,.gallery-thumbnail img{object-fit:cover;width:100%;height:100%}.gallery-thumbnail img{transition:transform .5s var(--ease),filter .25s}.gallery-thumbnail:hover img{filter:brightness(1.06);transform:scale(1.08)}.gallery-thumbnail:active{transform:scale(.97)}.project-category{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:21px 0 8px;font-size:11px;font-weight:600}.project-card h3{font-size:23px;font-weight:550}.project-description{max-width:38ch;color:var(--muted);margin-top:10px;font-size:14px;line-height:1.6}.local-section{isolation:isolate;color:var(--white);background:#373e2d;position:relative;overflow:hidden}.local-photo{z-index:-2;position:absolute;inset:0}.local-photo img{object-fit:cover;object-position:50% 55%;width:100%;height:100%}.local-section:before{content:"";z-index:-1;background:linear-gradient(90deg,#172119d9,#17211999 38%,#1721190a 75%),linear-gradient(#0000 55%,#172119d4);position:absolute;inset:0}.local-inner{flex-direction:column;justify-content:space-between;gap:55px;min-height:520px;padding-block:75px 38px;display:flex}.local-copy{max-width:560px}.local-copy .eyebrow{color:#f0e8cf;align-items:center;gap:9px;margin-bottom:25px;font-size:11px;display:flex}.local-copy .eyebrow svg{width:16px;height:16px}.local-copy h2{letter-spacing:-.035em;font-size:clamp(45px,4.8vw,68px);line-height:1.05}.local-copy h2+p{color:#f5f0e6;max-width:395px;margin-top:24px;font-size:16px;line-height:1.65}.local-bottom{border-top:1px solid #ffffff40;justify-content:space-between;align-items:flex-end;gap:35px;padding-top:24px;display:flex}.town-list{flex-wrap:wrap;gap:10px 24px;margin:0;padding:0;font-size:13px;font-weight:550;list-style:none;display:flex}.local-signature{font-family:var(--font-body);letter-spacing:-.01em;flex-shrink:0;font-size:17px;font-weight:600;line-height:1.45}.local-signature span{color:#eee8d9;font-weight:400}.contact-section{background:var(--red);color:var(--white)}.contact-grid{grid-template-columns:.9fr 1.1fr;align-items:start;gap:90px;display:grid}.contact-copy{padding-top:12px}.contact-copy .eyebrow{color:#f8d7cc;margin-bottom:28px}.contact-copy h2{font-size:clamp(40px,4.2vw,62px)}.contact-copy h2+p{color:#ffede6;margin-top:24px;font-size:19px}.contact-links{margin-top:42px;display:grid}.contact-links a{border-bottom:1px solid #ffffff40;align-items:center;gap:16px;padding:18px 0;display:flex}.contact-links a>span:nth-child(2){overflow-wrap:anywhere;min-width:0;font-size:clamp(14px,1.5vw,20px);font-weight:550}.contact-links a:first-child>span:nth-child(2){font-size:25px}.contact-links a>svg:last-child{width:18px;height:18px;transition:transform .3s var(--ease);margin-left:auto}.contact-links a:hover>svg:last-child{transform:translate(3px,-3px)}.contact-icon{width:42px;height:42px;transition:background var(--speed),color var(--speed);border:1px solid #ffffff60;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.contact-icon svg{width:19px;height:19px}.contact-links a:hover .contact-icon{background:var(--white);color:var(--red)}.contact-links small{letter-spacing:.12em;text-transform:uppercase;color:#ffdfd6;margin-bottom:4px;font-size:11px;font-weight:500;display:block}.contact-note{color:#ffded4;margin-top:35px;line-height:1.7;font-size:14px!important}.quote-form{background:var(--paper);color:var(--ink);border-radius:2px;padding:36px}.quote-form fieldset{border:0;min-width:0;margin:0;padding:0}.form-heading{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.form-heading h3{font-family:var(--font-heading);letter-spacing:-.02em;font-size:28px;font-weight:400}.form-heading>svg{width:26px;height:26px;color:var(--red)}.form-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}.quote-form label{margin-bottom:20px;font-size:12px;font-weight:600;display:block}.quote-form input,.quote-form select,.quote-form textarea{background:var(--paper-light);width:100%;color:var(--ink);border:1px solid #d5d1c7;border-radius:1px;margin-top:9px;padding:12px 13px;font-size:14px;line-height:1.4;transition:border-color .2s,box-shadow .2s,background .2s;display:block}.quote-form input,.quote-form select{height:48px}.quote-form textarea{resize:vertical;min-height:110px}.quote-form input::placeholder,.quote-form textarea::placeholder{color:#717367;font-weight:400}.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--red);background:#fffdf9;outline:0;box-shadow:0 0 0 3px #b72d2212}.quote-form :user-invalid{border-color:var(--red)}.quote-form select{text-overflow:ellipsis;padding-right:25px}.form-submit{justify-content:space-between;width:100%}.form-note{color:var(--muted);margin-top:15px;font-size:12px;line-height:1.6}.form-note a{text-decoration:underline}.form-feedback{border-top:1px solid var(--line);align-items:flex-start;gap:12px;margin-top:24px;padding-top:22px;font-size:14px;display:flex}.form-feedback>svg{color:var(--red)}.form-feedback p{color:var(--muted);margin-top:5px}.draft-actions{flex-wrap:wrap;gap:20px;margin-top:10px;display:flex}.draft-actions .text-link,.draft-actions .text-button{font-size:12px}.copy-fallback{font-size:12px!important}.site-footer{padding-top:65px}.footer-top{grid-template-columns:1.6fr .8fr 1fr;gap:60px;padding-bottom:55px;display:grid}.footer-brand img{width:205px}.footer-brand p{color:var(--muted);margin-top:24px;font-size:14px;line-height:1.6}.footer-top nav{flex-direction:column;align-items:flex-start;gap:12px;font-size:14px;display:flex}.footer-contact{flex-direction:column;align-items:flex-start;gap:18px;font-size:13px;display:flex}.footer-contact a{overflow-wrap:anywhere;align-items:center;gap:12px;display:flex}.footer-contact svg{width:16px;height:16px;color:var(--red)}.footer-top a:hover:not(:has(img)){color:var(--red)}.footer-review{border-top:1px solid var(--line);grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:30px;padding-block:32px;display:grid}.review-badge{width:110px;height:110px;display:block}.footer-review h2{letter-spacing:-.025em;font-size:32px}.footer-review p{color:var(--muted);margin-top:9px;font-size:14px}.footer-review>.text-link{white-space:nowrap}.footer-bottom{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:25px;padding-block:23px;font-size:11px;display:flex}.footer-bottom a{align-items:center;gap:20px;min-height:30px;display:flex}.footer-bottom a svg{width:20px;height:20px;color:var(--red);transition:transform var(--speed)}.footer-bottom a:hover svg{transform:translateY(-4px)}.project-dialog{background:var(--paper);width:min(1760px,100% - 32px);max-width:none;max-height:calc(100dvh - 24px);color:var(--ink);opacity:0;transition:opacity .25s,transform .35s var(--ease),display .35s allow-discrete,overlay .35s allow-discrete;border:0;margin:auto;padding:0;overflow:auto;transform:translateY(14px)scale(.98);box-shadow:0 20px 100px #0005}.project-dialog[open]{opacity:1;transform:translateY(0)scale(1)}.project-dialog::backdrop{opacity:0;transition:opacity .3s,display .35s allow-discrete,overlay .35s allow-discrete;background:#181c16c9}.project-dialog[open]::backdrop{opacity:1}@starting-style{.project-dialog[open]{opacity:0;transform:translateY(20px)scale(.97)}.project-dialog[open]::backdrop{opacity:0}}.dialog-close{background:var(--paper);z-index:1;width:44px;height:44px;transition:background var(--speed),color var(--speed);place-items:center;display:grid;position:absolute;top:14px;right:14px}.dialog-close:hover{background:var(--red);color:var(--white)}.dialog-media{background:var(--sand);position:relative}.dialog-media img{object-fit:contain;width:100%;height:min(78dvh,1200px)}.gallery-controls{pointer-events:none;position:absolute;inset:0}.gallery-controls button{background:var(--paper);width:52px;height:52px;color:var(--ink);border:1px solid var(--line);pointer-events:auto;place-items:center;transition:background .2s,color .2s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-controls button:hover{background:var(--red);color:var(--white);border-color:var(--red)}.gallery-controls button:active{transform:translateY(-50%)scale(.95)}[data-gallery-prev]{left:18px}[data-gallery-next]{right:18px}[data-gallery-prev] svg{transform:rotate(180deg)}#dialog-counter{background:var(--paper);font-variant-numeric:tabular-nums;border:1px solid var(--line);padding:5px 13px;font-size:12px;font-weight:650;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.dialog-caption{justify-content:space-between;align-items:center;gap:24px;padding:18px 28px;display:flex}.dialog-caption h2{margin:6px 0 8px;font-size:32px}.dialog-caption .eyebrow{color:var(--red);font-size:10px}.dialog-caption p:not(.eyebrow){color:var(--muted);max-width:530px;font-size:14px}.dialog-caption>a{white-space:nowrap;font-size:13px}[data-reveal].will-reveal{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--reveal-delay,0s);transform:translateY(20px)}[data-reveal].will-reveal.is-visible{opacity:1;transform:translateY(0)}@media (width>=1600px){.hero{min-height:740px}.hero-photo{left:27%}.hero-wash{background:linear-gradient(90deg,var(--paper) 30%,#f6f3edeb 36%,#f6f3ed14 53%,transparent 63%)}}@media (width<=1180px){.header-inner{gap:22px}.desktop-nav,.header-actions{gap:20px}.brand{width:170px}.phone-link span{display:none}.phone-link{padding:12px}.hero h1{font-size:76px}.hero-photo{left:23%}.hero-description{max-width:340px}.hero-caption{min-width:250px;padding-right:60px}.service{grid-template-columns:40px minmax(0,1fr) 290px;gap:18px}.service-copy h3{font-size:20px}.contact-grid{gap:45px}.quote-form{padding:28px}.footer-top{gap:30px}.project-grid{column-gap:18px}}@media (width<=900px){:root{--header-height:86px}.header-actions>.button{display:none}.desktop-nav{gap:24px}.header-actions{gap:4px}.brand{width:165px}.hero{min-height:630px}.hero h1{font-size:70px}.hero-wash{background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 28%,#f6f3edd9 44%,#f6f3ed25 67%,transparent 80%)}.hero-photo{left:12%}.hero-intro{font-size:10px}.hero-description{max-width:330px}.hero-caption{min-width:225px;padding:18px 55px 18px 20px}.hero-caption p{font-size:24px}.caption-index{font-size:8px}.section-heading{gap:24px}.service{grid-template-columns:35px minmax(0,1fr) 240px;gap:16px}.service-copy h3{font-size:19px}.service-scope,.service-detail{font-size:14px}.about-copy{padding:45px 30px}.about-copy h2{font-size:38px}.about-copy>p:not(.eyebrow){font-size:14px}.project-grid{grid-template-columns:repeat(2,1fr);gap:36px 24px}.project-image{aspect-ratio:3/2}.project-category{margin-top:16px}.local-inner{min-height:500px}.contact-grid{grid-template-columns:1fr 1.12fr;gap:30px}.contact-copy h2{font-size:40px}.contact-links a>span:nth-child(2){font-size:14px}.contact-icon{display:none}.form-row{grid-template-columns:1fr;gap:0}.quote-form{padding:26px}.form-heading h3{font-size:25px}.contact-copy h2+p{font-size:17px}.contact-links{margin-top:25px}.contact-note{font-size:13px!important}.footer-top{grid-template-columns:1.1fr .6fr 1fr;gap:25px}.footer-brand img{width:170px}.footer-brand p,.footer-contact{font-size:12px}}@media (width<=700px){:root{--header-height:78px;--section:76px;--text-body:1.0625rem;--text-caption:.9375rem;--text-label:.875rem;--text-control:.9375rem}.header-inner{gap:15px}.brand{width:158px}.header-actions{gap:3px}.phone-link svg{width:20px;height:20px}.js .menu-toggle{display:block}.js .desktop-nav{display:none}.desktop-nav{flex-wrap:wrap;gap:12px}.desktop-nav a{font-size:var(--text-control)}.header-inner:has(.desktop-nav){flex-wrap:nowrap}.hero{min-height:0;padding-bottom:0;display:block}.hero-content{padding-top:40px;padding-bottom:0;position:relative}.hero h1{max-width:580px;font-size:clamp(50px,8.7vw,64px);line-height:1.02}.hero-intro{font-size:var(--text-eyebrow);letter-spacing:.11em;gap:8px;margin-bottom:23px}.hero-intro .red-rule{width:20px}.hero-description{max-width:420px;font-size:var(--text-body);margin-top:23px}.hero-buttons{gap:10px;margin-top:24px}.hero-buttons .button{font-size:var(--text-control);gap:10px;min-height:52px;padding:15px 12px}.hero-towns{font-size:var(--text-caption);max-width:420px;margin-top:23px;line-height:1.6}.hero-photo{z-index:-3;aspect-ratio:1.55;margin-top:25px;position:relative;inset:auto}.hero-photo img{object-position:center}.hero{flex-direction:column;display:flex}.hero-content{order:-1}.hero-photo{width:100%}.hero-wash{height:80px;display:none;top:auto;bottom:auto}.hero-caption{min-width:210px;padding:14px 52px 16px 20px;bottom:0}.hero-caption p{font-size:24px}.caption-index{font-size:var(--text-eyebrow);margin-bottom:5px}.hero-caption>a{bottom:19px;right:12px}h2{font-size:37px}.section-heading{margin-bottom:27px;display:block}.section-heading .eyebrow:not(.heading-aside){margin-bottom:12px}.section-intro{font-size:var(--text-body);margin-top:14px}.comparison{grid-template-columns:1fr;gap:18px}.comparison figure{aspect-ratio:1.46}.comparison img{object-position:50% 50%}.comparison figcaption{font-size:var(--text-caption);gap:6px;padding:6px 10px;bottom:10px;left:10px}.project-footnote{font-size:var(--text-label);align-items:start;gap:20px;padding:15px 0}.project-footnote span:last-child{text-align:right;max-width:190px}.services{padding-top:85px}.services .section-heading{margin-bottom:30px}.heading-aside{font-size:var(--text-caption);margin-top:20px}.services .heading-aside br{display:none}.service{grid-template-columns:28px minmax(0,1fr);gap:20px 13px;padding:28px 0}.service-number{font-size:19px}.service-copy h3{font-size:21px;line-height:1.3}.service-scope{font-size:var(--text-body);margin-top:10px;line-height:1.6}.service-detail{font-size:var(--text-body);margin-top:14px}.service-media{grid-column:2}.service-media>.text-link{font-size:var(--text-control);margin-top:10px}.about-section{grid-template-columns:1fr}.about-media{padding-bottom:38px}.about-portrait{right:var(--gutter);border-width:6px;width:clamp(140px,40vw,190px)}.about-copy{padding:36px var(--gutter) 48px}.about-copy h2{font-size:42px}.about-copy h2 br{display:none}.about-copy .eyebrow{font-size:var(--text-eyebrow);margin-bottom:20px}.about-copy>p:not(.eyebrow){font-size:var(--text-body)}.about-copy>.red-rule{margin-block:22px}.work .heading-aside{display:none}.project-grid{grid-template-columns:1fr;gap:38px}.project-image{aspect-ratio:3/2}.project-open{width:34px;height:34px;bottom:10px;right:10px}.project-open svg{width:17px;height:17px}.project-card h3{font-size:23px}.project-category{font-size:var(--text-eyebrow);letter-spacing:.06em;margin-top:14px;line-height:1.5}.project-number{display:none}.project-description{font-size:var(--text-caption);line-height:1.6}.local-inner{gap:85px;min-height:560px;padding-block:48px 30px}.local-photo img{object-position:65% 50%}.local-section:before{background:linear-gradient(#172119cc,#1721197a 50%,#172119d9),linear-gradient(90deg,#17211955,#0000)}.local-copy .eyebrow{font-size:var(--text-eyebrow);margin-bottom:22px}.local-copy h2{max-width:360px;font-size:47px}.local-copy h2+p{font-size:var(--text-body);max-width:310px;margin-top:22px}.local-bottom{padding-top:21px;display:block}.town-list{font-size:var(--text-caption);gap:9px 20px}.local-signature{font-size:var(--text-body);margin-top:25px}.contact-grid{grid-template-columns:1fr;gap:40px}.contact-copy{padding-top:0}.contact-copy .eyebrow{margin-bottom:23px}.contact-copy h2{font-size:47px}.contact-copy h2+p{margin-top:20px;font-size:18px}.contact-links{margin-top:26px}.contact-links a{padding:15px 0}.contact-icon{display:grid}.contact-links a>span:nth-child(2){font-size:17px}.contact-links a:first-child>span:nth-child(2){font-size:25px}.contact-note{margin-top:24px}.quote-form{padding:26px 22px}.form-heading h3{font-size:27px}.quote-form input,.quote-form select,.quote-form textarea{font-size:16px}.quote-form label{font-size:var(--text-label)}.form-heading{margin-bottom:25px}.form-note{font-size:var(--text-caption)}.site-footer{padding-top:45px}.footer-top{grid-template-columns:1fr;gap:32px 20px;padding-bottom:35px}.footer-brand{grid-column:1/-1}.footer-brand img{width:155px}.footer-brand p{font-size:var(--text-caption);max-width:32ch;margin:20px 0 0}.footer-top nav{font-size:var(--text-control);grid-template-columns:1fr 1fr;gap:13px;display:grid}.footer-contact{font-size:var(--text-caption);gap:17px;min-width:0}.footer-contact a{gap:8px}.footer-contact svg{width:14px;height:14px}.footer-bottom{font-size:var(--text-label);flex-direction:column;align-items:flex-start;gap:12px}.footer-bottom a{white-space:nowrap;gap:12px;min-height:44px}.footer-review{grid-template-columns:82px minmax(0,1fr);gap:15px 20px;padding-block:28px}.review-badge{grid-row:1/3;align-self:start;width:82px;height:82px}.footer-review h2{font-size:27px}.footer-review p{font-size:var(--text-caption)}.footer-review>.text-link{font-size:var(--text-control);grid-column:2}.dialog-caption{padding:20px;display:block}.dialog-caption>a{margin-top:15px}.dialog-caption h2{font-size:30px}.dialog-media img{height:auto;max-height:74dvh}.project-dialog{width:calc(100% - 16px)}.gallery-controls button{width:44px;height:44px}[data-gallery-prev]{left:10px}[data-gallery-next]{right:10px}.button,.text-link,.text-button{font-size:var(--text-control)}.service-image-caption{font-size:var(--text-label);padding:6px 10px}.project-count,#dialog-counter{font-size:var(--text-label)}.contact-links small{font-size:var(--text-eyebrow)}.contact-note{font-size:var(--text-caption)!important}.form-feedback{font-size:var(--text-caption)}.draft-actions .text-link,.draft-actions .text-button{font-size:var(--text-control)}.copy-fallback{font-size:var(--text-label)!important}.dialog-caption .eyebrow{font-size:var(--text-eyebrow)}.dialog-caption p:not(.eyebrow){font-size:var(--text-caption);line-height:1.6}.dialog-caption>a{font-size:var(--text-control);white-space:normal}}@media (width<=380px){.hero h1{font-size:46px}.hero-buttons .button{justify-content:space-between;gap:17px;width:100%;padding:15px 18px}.contact-links a>span:nth-child(2){font-size:16px}.footer-brand{display:block}.footer-brand p{max-width:none;margin-top:20px}.local-copy h2{font-size:42px}.contact-copy h2{font-size:41px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.will-reveal{opacity:1!important;transform:none!important}}@media print{.site-header,.hero-buttons,.quote-form,.project-dialog,.reading-progress{display:none}.hero{min-height:450px}.section-pad{padding-block:40px}.contact-section{color:#000;background:#fff}.will-reveal{opacity:1!important;transform:none!important}a{text-decoration:underline}}.form-trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form-feedback a{text-decoration:underline}.form-submit:disabled,.quote-form fieldset:disabled .form-submit{opacity:.65;cursor:wait}.optional{font-weight:400}
