@charset "UTF-8";
:root{--ink:#17283b;--ink-soft:#465361;--gold:#b39962;--gold-light:#dec999;--paper:#f8f6f0;--white:#fffefa;--line:#deded5;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;--gutter:clamp(22px,5vw,72px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-underline-offset:4px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.1;font-weight:400}h1,h2{font-family:var(--serif)}h1{font-size:clamp(42px,4.4vw,69px);letter-spacing:-.055em;max-width:700px}h1 em{font-weight:400;color:#876e3e}h2{font-size:clamp(32px,3.4vw,49px);letter-spacing:-.035em}h3{font-size:21px;letter-spacing:-.025em}p{color:var(--ink-soft)}:focus-visible{outline:3px solid #9e701f;outline-offset:5px}::selection{background:#dbc797;color:#17283b}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.skip-link{position:fixed;top:-70px;left:15px;background:#fff;color:#17283b;padding:12px;z-index:100}.skip-link:focus{top:12px}.section{max-width:1360px;margin-inline:auto;padding:88px var(--gutter)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.19em;line-height:1.5;text-transform:uppercase;color:#78613b;margin-bottom:16px}.site-header{background:var(--paper);position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line)}.header-inner{max-width:1360px;margin:auto;padding:19px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:87px}.brand{text-decoration:none}.wordmark{display:block;font-size:29px;font-weight:800;letter-spacing:.03em;line-height:1}.wordmark>span{color:#967d4b}.wordmark small{display:block;font-size:7px;letter-spacing:.13em;margin-top:7px}.brand img{width:130px;height:79px;object-fit:contain;mix-blend-mode:multiply}.service-accent .header-inner{padding-block:8px}.site-header nav{display:flex;gap:30px;align-items:center}.site-header nav a{text-decoration:none;font-size:13px;font-weight:600}.site-header nav a:hover{color:#876e3e}.site-header .nav-cta{border-bottom:1px solid var(--gold);padding:10px 0}.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:8px 12px;color:var(--ink)}
.hero{display:grid;grid-template-columns:1fr 1.04fr;gap:clamp(30px,5vw,76px);align-items:center;padding-block:54px 60px}.location-label{font-size:12px;margin:0 0 23px;color:var(--ink-soft)}.location-label span{margin-right:7px;color:#8b7040}.hero h1{margin-bottom:25px}.hero-deck{font-size:17px;line-height:1.65;max-width:400px}.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:50px;padding:13px 23px;font-size:13px;font-weight:700;text-decoration:none;border:1px solid transparent;border-radius:0;transition:background .18s,color .18s}.btn.gold{background:var(--ink);color:white}.btn.gold:hover{background:#31485d}.btn:disabled{opacity:.6;cursor:wait}.hero-phone{font-size:13px;text-decoration:none;white-space:nowrap}.hero-signature{display:flex;align-items:center;gap:16px;margin-top:38px}.hero-signature p{font-size:11px;line-height:1.5}.signature-line{width:40px;height:1px;background:var(--gold)}.trust-line{border-block:1px solid var(--line);padding:16px var(--gutter);display:flex;gap:25px;justify-content:center;flex-wrap:wrap;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.trust-line span+span:before{content:'·';margin-right:25px;color:var(--gold)}
.city-map{--map-bg:#182d3d;--map-text:#f7f4e9;--map-muted:#c0cbd0;--map-accent:#dfc68a;--map-town:#314a55;background:var(--map-bg);color:var(--map-text);box-shadow:0 16px 44px #17283b0d;min-width:0;isolation:isolate}.map-heading{padding:24px 25px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}.map-heading .eyebrow{color:var(--map-accent);margin-bottom:6px;font-size:8px}.map-heading h2{font-family:var(--sans);font-size:24px;letter-spacing:-.04em}.map-play{color:var(--map-text);font-size:10px;border:1px solid #ffffff38;background:transparent;min-width:84px;min-height:40px;padding:7px 10px}.map-play span{margin-left:5px}.map-stage{overflow:hidden;color:var(--map-text)}.map-stage svg{width:100%;height:255px;display:block;overflow:hidden}.neighbor-towns{fill:#213746;stroke:#ffffff24;stroke-width:1}.town-fill{fill:var(--map-town)}.town-outline{fill:none;stroke:var(--map-accent);stroke-width:1.8;stroke-dasharray:100;stroke-dashoffset:0;animation:trace-town 2.6s ease-out both}.town-name{fill:var(--map-muted);font-size:10px;letter-spacing:2px;font-weight:600}.map-small{fill:var(--map-muted);font-size:7px;letter-spacing:1.8px}.compass{fill:var(--map-accent);font-size:8px}.landmark{cursor:pointer}.pin-hit{fill:transparent}.pin-dot{fill:#1b3040;stroke:var(--map-accent);stroke-width:1.5;transition:fill .3s}.landmark text{fill:var(--map-accent);font-family:var(--sans);font-size:10px;font-weight:bold;pointer-events:none}.pin-ring{fill:none;stroke:var(--map-accent);stroke-width:1;opacity:.25}.landmark.active .pin-dot{fill:var(--map-accent)}.landmark.active text{fill:#182d3d}.landmark.active .pin-ring{animation:pin-pulse 2.5s ease-out infinite}.landmark:focus{outline:none}.landmark:focus-visible .pin-ring{stroke-width:3;opacity:1}.city-map.paused .pin-ring{animation:none;opacity:.65}.city-map.paused .town-outline{animation:none}.place-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid #ffffff24}.place-tab{display:flex;gap:7px;align-items:center;padding:12px 10px;min-height:52px;font-size:10px;line-height:1.3;text-align:left;border:0;background:transparent;color:var(--map-muted);position:relative}.place-tab+button{border-left:1px solid #ffffff24}.place-tab span{font-size:9px;opacity:.7}.place-tab.active{color:var(--map-accent);background:#ffffff08}.place-tab.active:after{content:'';position:absolute;bottom:-1px;height:2px;background:var(--map-accent);left:10px;right:10px}.map-stories{padding:21px 25px 5px;min-height:232px}.map-story{animation:story-in .45s ease both}.map-story .map-kicker{font-size:8px;letter-spacing:.14em;color:var(--map-accent);margin-bottom:9px}.map-story h3{font-family:var(--serif);font-size:25px;margin-bottom:10px}.map-story>p:not(.map-kicker){font-size:12px;line-height:1.6;color:var(--map-muted)}.map-story .design-note{margin-top:12px;padding-top:10px;border-top:1px solid #ffffff24}.design-note strong{display:block;color:var(--map-text);font-size:9px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.map-story>a{display:inline-block;font-size:9px;color:var(--map-accent);margin-top:10px}.map-foot{margin:12px 25px 0;padding-bottom:16px;font-size:8px;line-height:1.4;color:var(--map-muted)}.city-map a:focus-visible,.city-map button:focus-visible{outline-color:var(--map-accent)}
@keyframes trace-town{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}@keyframes pin-pulse{0%{r:13;opacity:.65}80%,100%{r:24;opacity:0}}@keyframes story-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.section-heading{display:flex;justify-content:space-between;gap:45px;align-items:flex-end;margin-bottom:34px}.section-heading>p{font-size:14px;max-width:350px}.project-photo{min-width:0}.project-photo img{width:100%;height:100%;max-height:520px;object-fit:cover;aspect-ratio:3/2}.project-photo figcaption{font-size:10px;color:var(--ink-soft);padding-top:10px;line-height:1.5}.painting-gallery{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}.painting-gallery img{height:330px}.painting-gallery .wide img{object-position:center}.carpentry-gallery{display:grid;grid-template-columns:1.1fr 1fr .65fr;gap:24px}.carpentry-gallery img{height:310px}.detail-quote{border-left:1px solid var(--line);padding-left:28px;align-self:stretch}.detail-quote>span{font-size:10px;color:#967d4b}.detail-quote h3{font-family:var(--serif);font-size:38px;line-height:1.15;margin:26px 0 22px}.detail-quote p{font-size:13px;margin-bottom:18px}.text-link{font-size:12px;display:inline-block;font-weight:600}.details-section{display:grid;grid-template-columns:1fr 1fr;gap:95px;border-top:1px solid var(--line)}.details-intro p:not(.eyebrow){font-size:15px;max-width:440px;margin-top:24px}.details-intro .text-link{margin-top:25px}.service-list article{display:flex;gap:22px;border-top:1px solid var(--line);padding:23px 0}.service-list article:last-child{border-bottom:1px solid var(--line)}.item-number{font-size:10px;color:#8d7343;letter-spacing:.1em}.service-list h3{margin-bottom:12px}.service-list p{font-size:13px;max-width:380px}.process-section{background:#edece5}.process-list{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.process-list li{border-top:1px solid #b9beb8;padding-top:16px}.process-list span{font-size:11px;color:#7c6741}.process-list h3{margin:25px 0 16px}.process-list p{font-size:14px}.proof-strip{display:grid;grid-template-columns:1fr 1fr;gap:28px}.proof-strip img{height:270px}.style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.style-card img{aspect-ratio:4/5;height:auto;max-height:none}.style-card .item-number{display:block;margin-top:28px}.style-card h3{font-family:var(--serif);font-size:29px;margin:10px 0 14px}.style-card>p{font-size:13px;margin-bottom:20px}.styles-section{border-top:1px solid var(--line)}
.local-section{display:grid;grid-template-columns:1.25fr 1fr;gap:80px;align-items:center;border-bottom:1px solid var(--line)}.local-section h2{font-size:36px;max-width:480px}.local-section>div>p:not(.eyebrow){margin-top:20px;font-size:14px;max-width:530px}.local-section .micro{font-size:10px!important;margin-top:16px!important}.local-section .text-link{margin-top:22px}.sources{border:1px solid var(--line);padding:20px 23px;font-size:12px}.sources p{margin-top:18px}.sources summary{font-weight:600;cursor:pointer;padding:5px 0}.sources ul{padding-left:18px}.sources li{margin-block:10px}.faq-section{display:grid;grid-template-columns:1fr 1fr;gap:70px}.faq-section h2{max-width:360px}.faq-section details{border-top:1px solid var(--line);padding:18px 0}.faq-section details:last-child{border-bottom:1px solid var(--line)}.faq-section summary{font-size:14px;cursor:pointer;line-height:1.6;padding-right:10px}.faq-section details p{font-size:13px;margin-top:16px}.contact-section{background:#192b3b;display:grid;grid-template-columns:.9fr 1.1fr;gap:85px;color:#f8f6f0}.contact-copy{padding-top:26px}.contact-copy .eyebrow{color:var(--gold-light)}.contact-copy h2{font-size:clamp(33px,3.3vw,48px);margin-bottom:25px}.contact-copy>p{color:#c3cbd0;font-size:14px;max-width:370px}.contact-person{margin:32px 0}.contact-person strong{display:block;font-size:15px}.contact-person span{font-size:11px;color:#bdc7cc}.contact-phone{display:block;font-size:25px;font-family:var(--serif);text-decoration:none}.contact-email{display:inline-block;font-size:12px;margin-top:8px;margin-bottom:30px}.contact-copy .micro{font-size:10px}.formbox{background:#f8f6f0;color:var(--ink);padding:29px;min-width:0}.formbox h3{font-family:var(--serif);font-size:29px;margin-bottom:10px}.micro{font-size:10px;line-height:1.6}.honey{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;margin:16px 0 0;gap:6px;min-width:0}.field label{font-size:11px;font-weight:600}.field input,.field textarea,.field select{width:100%;max-width:100%;border:1px solid #c6c9c7;border-radius:0;background:#fffefa;padding:10px 12px;min-height:43px;color:var(--ink);font-size:14px}.field textarea{resize:vertical}.field input[type=file]{padding:8px;font-size:11px}.field input[type=file]::file-selector-button{border:0;background:#e9e7de;padding:8px;cursor:pointer;margin-right:8px}.consent{display:flex;align-items:flex-start;gap:10px;font-size:10px;margin:22px 0;color:var(--ink-soft)}.consent input{flex-shrink:0;margin-top:3px;width:16px;height:16px;accent-color:var(--ink)}.status{font-size:12px;margin-top:15px}.status[data-state=error]{color:#a32b26}.status[data-state=success]{color:#235f3b}.site-footer{max-width:1360px;margin:auto;padding:35px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-brand{font-size:19px;font-weight:800;text-decoration:none;white-space:nowrap}.site-footer p{font-size:10px}.site-footer>div{display:flex;gap:18px;font-size:10px}.mobile-cta{display:none}
/* Painting — an editorial Greenwich composition and a softer New Canaan studio. */
.service-painting.city-new-canaan{--paper:#f4f5ef;--line:#d7ddd4;--ink-soft:#48584f}.service-painting.city-new-canaan h1 em{color:#65785b;font-style:normal}.service-painting.city-new-canaan .city-map{--map-bg:#e6ebdf;--map-text:#233a30;--map-muted:#4b5f52;--map-accent:#5b704a;--map-town:#d4dec9;box-shadow:none;border:1px solid #bfcab8}.service-painting.city-new-canaan .neighbor-towns{fill:#e0e6da;stroke:#6b805c3b}.service-painting.city-new-canaan .pin-dot{fill:#e6ebdf}.service-painting.city-new-canaan .landmark.active text{fill:white}.service-painting.city-new-canaan .map-play,.service-painting.city-new-canaan .place-tabs,.service-painting.city-new-canaan .place-tab+button,.service-painting.city-new-canaan .design-note{border-color:#778b6a48}.service-painting.city-new-canaan .painting-gallery{grid-template-columns:1fr 1.45fr}.service-painting.city-new-canaan .painting-gallery .wide{order:2}.service-painting.city-new-canaan .painting-gallery figure:first-child{margin-top:40px}.service-painting.city-new-canaan .process-section{background:#e5eadf}.service-painting.city-new-canaan .section-heading{align-items:flex-start}.service-painting.city-new-canaan .details-section{grid-template-columns:1.1fr 1fr}.service-painting.city-new-canaan .details-intro{order:2}
/* Carpentry — dark architectural drawings in Greenwich; an open light plan in New Canaan. */
.service-carpentry.city-greenwich .hero{max-width:none;padding-inline:max(var(--gutter),calc((100vw - 1216px)/2));background:#17283b;color:white;gap:55px}.service-carpentry.city-greenwich .hero h1 em{color:#d5bc87;font-style:normal}.service-carpentry.city-greenwich .hero p{color:#bdc9d2}.service-carpentry.city-greenwich .hero .eyebrow{color:#dcc591}.service-carpentry.city-greenwich .hero .btn.gold{background:#dbc38e;color:#17283b}.service-carpentry.city-greenwich .city-map{border:1px solid #ffffff25;box-shadow:none;--map-bg:#17283b;--map-town:#263d4c}.service-carpentry.city-greenwich .hero .map-kicker{color:#dfc68a}.service-carpentry .service-list article{padding-block:28px}.service-carpentry.city-new-canaan .hero{grid-template-columns:1.1fr .9fr}.service-carpentry.city-new-canaan .hero-copy{order:2}.service-carpentry.city-new-canaan h1{font-size:clamp(46px,4.4vw,65px)}.service-carpentry.city-new-canaan h1 em{font-style:normal;color:#947a4c}.service-carpentry.city-new-canaan .city-map{--map-bg:#eee8da;--map-text:#293842;--map-muted:#52606a;--map-accent:#876d40;--map-town:#dbd3bf;border:1px solid #cfc5ac;box-shadow:none}.service-carpentry.city-new-canaan .neighbor-towns{fill:#e4dfd2;stroke:#89775033}.service-carpentry.city-new-canaan .pin-dot{fill:#eee8da}.service-carpentry.city-new-canaan .landmark.active text{fill:white}.service-carpentry.city-new-canaan .map-play,.service-carpentry.city-new-canaan .place-tabs,.service-carpentry.city-new-canaan .place-tab+button,.service-carpentry.city-new-canaan .design-note{border-color:#927c4c48}.service-carpentry.city-new-canaan .carpentry-gallery{grid-template-columns:.8fr 1fr 1fr}.service-carpentry.city-new-canaan .detail-quote{order:-1;border-left:0;padding-left:0}.service-carpentry.city-new-canaan .carpentry-gallery figure:nth-child(2){margin-top:55px}.service-carpentry.city-new-canaan .process-list{display:block;max-width:760px;margin-left:auto}.service-carpentry.city-new-canaan .process-list li{display:grid;grid-template-columns:35px 1fr 1.25fr;gap:20px;align-items:start;padding:24px 0}.service-carpentry.city-new-canaan .process-list h3{margin:0}.service-carpentry.city-new-canaan .process-list p{font-size:13px}
/* The Accent Wall — generous classic type / a bolder contemporary grid. */
.service-accent.city-greenwich h1{font-size:clamp(45px,4.7vw,70px)}.service-accent.city-greenwich h1 em{font-weight:400}.service-accent.city-greenwich .hero-copy{border-left:2px solid var(--gold);padding-left:27px}.service-accent.city-greenwich .city-map{--map-bg:#2a302e;--map-town:#414c43}.service-accent.city-greenwich .neighbor-towns{fill:#303a33}.service-accent.city-greenwich .style-card:nth-child(2){padding-top:45px}.service-accent.city-new-canaan{--paper:#f0ede6;--line:#d2ccc0}.service-accent.city-new-canaan h1{font-family:var(--sans);font-weight:700;letter-spacing:-.065em;font-size:clamp(42px,4.5vw,64px)}.service-accent.city-new-canaan h1 em{font-style:normal;color:#8b754b;font-weight:400}.service-accent.city-new-canaan .hero{gap:35px;grid-template-columns:1fr 1.1fr}.service-accent.city-new-canaan .city-map{--map-bg:#252b2b;--map-town:#3d4843;--map-accent:#d6c391}.service-accent.city-new-canaan .neighbor-towns{fill:#2d3632}.service-accent.city-new-canaan .hero-signature{margin-top:32px}.service-accent.city-new-canaan .style-grid{display:block}.service-accent.city-new-canaan .style-card{display:grid;grid-template-columns:1.1fr 45px 1fr;gap:0 30px;border-top:1px solid var(--line);padding-block:30px}.service-accent.city-new-canaan .style-card figure{grid-row:1/5}.service-accent.city-new-canaan .style-card .item-number{grid-column:2;grid-row:1/5;margin-top:0}.service-accent.city-new-canaan .style-card h3{margin-top:0;align-self:end;font-size:40px}.service-accent.city-new-canaan .style-card>p{grid-column:3;align-self:start;max-width:310px;margin-top:12px}.service-accent.city-new-canaan .style-card>a{grid-column:3;align-self:start;justify-self:start}.service-accent.city-new-canaan .style-card img{aspect-ratio:16/10}.service-accent.city-new-canaan .style-card:nth-child(2){grid-template-columns:1fr 45px 1.1fr}.service-accent.city-new-canaan .style-card:nth-child(2) figure{grid-column:3}.service-accent.city-new-canaan .style-card:nth-child(2) h3,.service-accent.city-new-canaan .style-card:nth-child(2)>p,.service-accent.city-new-canaan .style-card:nth-child(2)>a{grid-column:1}.service-accent.city-new-canaan .style-card:nth-child(2) h3{grid-row:1}.service-accent.city-new-canaan .style-card:nth-child(2)>p{grid-row:2}.service-accent.city-new-canaan .style-card:nth-child(2)>a{grid-row:3}
@media(min-width:1500px){.hero{gap:85px}.map-stage svg{height:275px}}
@media(max-width:1050px){.section{padding-block:65px}.hero{gap:30px;padding-block:38px}.hero h1{font-size:46px}.hero-actions{gap:15px}.map-heading{padding:20px 18px 0}.map-heading h2{font-size:22px}.map-stories{padding-inline:18px;min-height:248px}.map-stage svg{height:230px}.map-foot{margin-inline:18px}.place-tab{font-size:9px;padding-inline:7px}.section-heading{gap:30px}.details-section,.local-section,.faq-section,.contact-section{gap:40px}.carpentry-gallery{grid-template-columns:1fr 1fr}.detail-quote{display:none}.carpentry-gallery img{height:300px}.service-carpentry.city-new-canaan .carpentry-gallery{grid-template-columns:1fr 1fr}.painting-gallery img{height:270px}.service-carpentry.city-greenwich .hero{gap:30px}.style-card h3{font-size:24px}.service-accent.city-new-canaan .style-card h3{font-size:33px}.service-accent.city-greenwich .hero-copy{padding-left:20px}.site-footer{flex-wrap:wrap}.formbox{padding:24px}}
@media(max-width:760px){:root{--gutter:22px}html{scroll-padding-top:85px}.header-inner{min-height:72px;padding-block:17px}.wordmark{font-size:25px}.menu-toggle{display:block;font-size:12px;min-height:40px}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:20px 22px;box-shadow:0 15px 20px #17283b0c;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.site-header nav a{padding:5px 0}.brand img{width:106px;height:64px}.service-accent .header-inner{padding-block:5px}.section{padding:53px var(--gutter)}.hero,.service-carpentry.city-new-canaan .hero,.service-accent.city-new-canaan .hero{grid-template-columns:1fr;gap:31px;padding-block:35px}.hero h1,.service-accent.city-greenwich h1,.service-carpentry.city-new-canaan h1,.service-accent.city-new-canaan h1{font-size:clamp(41px,8.2vw,60px);max-width:620px;letter-spacing:-.05em}.hero h1 br{display:initial}.hero-copy{max-width:620px}.hero .eyebrow{margin-bottom:13px}.location-label{margin-bottom:18px;font-size:11px}.hero-deck{font-size:15px;max-width:470px}.hero-actions{margin-top:23px;gap:18px}.hero-signature{display:none}.city-map{width:100%;max-width:600px;justify-self:center}.map-stage svg{height:260px}.map-heading{padding:19px 20px 0}.map-heading h2{font-size:23px}.map-stories{min-height:226px;padding:20px 20px 5px}.map-story h3{font-size:25px}.map-story>p:not(.map-kicker){font-size:12px}.map-play{min-height:44px}.place-tab{font-size:10px;min-height:55px;padding:11px 10px}.map-foot{margin-inline:20px}.trust-line{justify-content:flex-start;gap:9px 20px;font-size:8px;padding-block:14px}.trust-line span+span:before{display:none}.section-heading{display:block;margin-bottom:27px}.section-heading>p{margin-top:20px;max-width:500px;font-size:13px}h2{font-size:36px}.painting-gallery{grid-template-columns:1fr;gap:25px}.painting-gallery img{height:auto;aspect-ratio:3/2}.carpentry-gallery{gap:15px}.carpentry-gallery img{height:220px}.project-photo figcaption{font-size:9px}.details-section,.faq-section,.contact-section,.local-section{grid-template-columns:1fr;gap:34px}.details-intro p:not(.eyebrow){font-size:14px}.service-list article{padding-block:21px}.process-list{grid-template-columns:1fr;gap:25px;margin-top:28px}.process-list li{display:grid;grid-template-columns:35px 1fr;gap:12px 10px;padding-top:20px}.process-list h3{margin:0}.process-list p{grid-column:2;font-size:13px}.local-section h2{font-size:32px}.sources{padding:16px}.faq-section h2{max-width:none}.contact-copy{padding-top:0}.contact-copy h2{font-size:39px}.contact-person{margin:23px 0}.contact-email{margin-bottom:15px}.formbox{padding:24px 18px}.fields{gap:12px}.field input,.field textarea,.field select{font-size:16px;min-height:46px}.field label{font-size:10px}.formbox h3{font-size:27px}.site-footer{padding-block:27px 90px;gap:14px}.site-footer p{width:100%;order:2}.mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:25;background:var(--paper);border-top:1px solid var(--line);padding:9px 14px calc(9px + env(safe-area-inset-bottom));gap:10px}.mobile-cta a{text-decoration:none;font-size:11px;min-height:42px;display:flex;align-items:center;justify-content:center;width:42%;border:1px solid var(--ink)}.mobile-cta a:last-child{width:58%;background:var(--ink);color:white}.proof-strip{gap:15px}.proof-strip img{height:180px}.style-grid{grid-template-columns:1fr;gap:35px}.style-card img{aspect-ratio:4/3}.style-card .item-number{margin-top:18px}.style-card h3{font-size:29px}.style-card>p{max-width:480px}.service-painting.city-new-canaan .painting-gallery{grid-template-columns:1fr}.service-painting.city-new-canaan .painting-gallery .wide{order:2}.service-painting.city-new-canaan .painting-gallery figure:first-child{margin-top:0}.service-painting.city-new-canaan .details-section{grid-template-columns:1fr}.service-painting.city-new-canaan .details-intro{order:0}.service-carpentry.city-greenwich .hero{padding-inline:22px}.service-carpentry.city-new-canaan .hero-copy{order:0}.service-carpentry.city-new-canaan .city-map{order:1}.service-carpentry.city-new-canaan .carpentry-gallery figure:nth-child(2){margin-top:25px}.service-carpentry.city-new-canaan .process-list li{grid-template-columns:35px 1fr;gap:12px}.service-accent.city-greenwich .hero-copy{padding-left:19px}.service-accent.city-greenwich .style-card:nth-child(2){padding-top:0}.service-accent.city-new-canaan .style-card,.service-accent.city-new-canaan .style-card:nth-child(2){display:block}.service-accent.city-new-canaan .style-card h3{margin-top:12px}.service-accent.city-new-canaan .style-card .item-number{margin-top:20px}.service-accent.city-new-canaan .style-card>p{max-width:450px}.service-accent.city-new-canaan .style-card img{aspect-ratio:4/3}}
@media(max-width:390px){.hero h1,.service-accent.city-greenwich h1,.service-accent.city-new-canaan h1,.service-carpentry.city-new-canaan h1{font-size:39px}.hero-actions{gap:14px}.hero-phone{font-size:12px}.btn{padding:12px 18px;font-size:12px}.place-tab{font-size:9px;gap:5px;padding:10px 7px}.map-stories{min-height:250px}.map-stage svg{height:230px}.fields{grid-template-columns:1fr;gap:0}.carpentry-gallery,.proof-strip{grid-template-columns:1fr}.carpentry-gallery img,.proof-strip img{height:auto;aspect-ratio:3/2}.service-carpentry.city-new-canaan .carpentry-gallery{grid-template-columns:1fr}.service-carpentry.city-new-canaan .carpentry-gallery figure:nth-child(2){margin-top:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.town-outline{stroke-dashoffset:0}.pin-ring{opacity:.6}}
