@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--ink:#14232c;--paper:#f7f6f2;--mist:#e9eeea;--copper:#a35d36;--line:#cbd5ce;--header:86px;--footer:64px;--gutter:clamp(24px,6vw,100px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header);scroll-snap-type:y proximity}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,main:focus-visible{outline:3px solid #cf956b;outline-offset:5px}h1,h2,h3,p,figure,blockquote{margin:0}img{max-width:100%}button{color:inherit}header{height:var(--header);position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;gap:35px;padding:0 var(--gutter);background:var(--ink);color:white}.brand{display:flex;gap:13px;align-items:center}.brand svg{width:40px;fill:none;stroke:#d6a17c;stroke-width:1.6}.brand>span{font-size:29px;line-height:1;font-weight:800;letter-spacing:1px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:7px;font-weight:600}.desktop{margin-left:auto;display:flex;gap:27px;font-size:12px}.desktop a:hover{color:#e2b18e}.header-call{font-size:12px;display:flex;gap:26px;border:1px solid #78878c;padding:13px 17px}.menu-toggle{display:none}.skip{position:fixed;top:-90px;left:20px;z-index:50;background:white;padding:15px}.skip:focus{top:10px}[hidden]{display:none!important}
.screen{min-height:100svh;padding:calc(var(--header) + 42px) var(--gutter) calc(var(--footer) + 42px);position:relative;display:flex;scroll-snap-align:start;scroll-margin-top:calc(-1 * var(--header))}.inner{max-width:1440px;width:100%;margin:auto}.split{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.eyebrow{font-size:12px;font-weight:700;color:var(--copper);margin-bottom:24px}h1{font-size:clamp(60px,6.5vw,100px);font-weight:800;line-height:1.03;letter-spacing:-.06em}h2{font-size:clamp(35px,4vw,61px);font-weight:800;letter-spacing:-.052em;line-height:1.12}h3{font-size:23px;letter-spacing:-.035em}.body-copy{font-size:15px;line-height:1.85;color:#53676c;max-width:510px;margin:26px 0 30px}.button{background:var(--copper);color:white;padding:18px 24px;display:inline-flex;align-items:center;gap:35px;font-size:12px;font-weight:700}.button:hover{background:#874b2c}.text-link{display:inline-flex;gap:28px;align-items:center;border-bottom:1px solid;padding-bottom:9px;font-size:12px;font-weight:700}.text-link:hover{color:var(--copper)}.hero{background:var(--ink);color:white}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-photo{object-position:center}.hero-shade{background:linear-gradient(90deg,rgba(10,27,36,.93),rgba(10,27,36,.64) 41%,rgba(10,27,36,.08) 78%)}.hero-content{position:relative}.hero .eyebrow{color:#d6e0d9}.hero-description{font-size:15px;line-height:1.8;max-width:430px;margin:26px 0 28px;color:#e0e6e3}.hero-meta{margin-top:32px;font-size:11px;color:#d1dcd6}.photo-note{position:absolute;right:var(--gutter);bottom:calc(var(--footer) + 22px);font-size:9px;color:#f1f1ed}.tonal{background:var(--mist)}.service-list{border-top:1px solid var(--line)}.service-list a{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px 0;border-bottom:1px solid var(--line)}.service-list strong{font-size:19px;letter-spacing:-.035em;display:block}.service-list small{display:block;font-size:12px;color:#53676c;margin-top:8px}.service-list a>span:last-child{color:var(--copper);font-size:23px}.service-list a:hover strong{color:var(--copper)}.service-image{height:clamp(350px,61vh,650px);position:relative;overflow:hidden}.service-image img{width:100%;height:100%;object-fit:cover}.service-image:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#14232ce6)}.service-image figcaption{position:absolute;z-index:1;bottom:24px;left:25px;right:20px;color:white;font-size:13px}.service-image small{display:block;font-size:9px;color:#e2e7e3;margin-top:8px}.room-notes{margin:-6px 0 27px}.room-notes p{padding:10px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.7;color:#53676c}.room-notes strong{display:inline-block;width:92px;color:var(--ink);font-size:12px}.tags{list-style:none;padding:0;margin:0 0 35px;display:flex;gap:15px;flex-wrap:wrap}.tags li{border-bottom:1px solid var(--line);padding-bottom:7px;font-size:11px}.dark{background:var(--ink);color:white}.dark .eyebrow{color:#e0a77d}.dark .body-copy{color:#c4d2d1}.addition-art{min-height:350px;position:relative;display:flex;align-items:center;justify-content:center;padding-bottom:55px}.plan-existing{width:60%;height:240px;border:3px solid #8ca39d;position:relative;display:grid;place-items:center}.plan-existing span,.plan-new span{font-size:12px}.plan-existing i{position:absolute;border-bottom:3px solid #8ca39d;width:35%;left:0;top:36%}.plan-existing b{position:absolute;border-left:3px solid #8ca39d;height:25%;bottom:0;left:40%}.plan-new{border:2px dashed #d6a17c;width:36%;height:170px;margin-left:-3px;background:#d6a17c12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#e6b18b}.plan-new svg{width:30px;fill:none;stroke:currentColor;stroke-width:1}.addition-art>p{position:absolute;bottom:0;font-size:17px}.addition-art small{display:block;text-align:center;font-size:9px;color:#a4b6b3;margin-top:12px}.review{padding:38px 0 38px 35px;border-left:1px solid #bac9c2}.stars{font-size:19px;letter-spacing:5px;color:#a35d36;margin-bottom:25px}blockquote{font-size:clamp(23px,2.6vw,38px);line-height:1.45;letter-spacing:-.04em}.review-author{font-size:13px;font-weight:700;margin:27px 0}.review-author span{display:block;color:#596e70;font-size:11px;font-weight:400;margin-top:8px}.steps{margin:0;padding:0;list-style:none}.steps li{display:flex;gap:30px;padding:28px 0;border-top:1px solid var(--line)}.steps li:last-child{border-bottom:1px solid var(--line)}.steps li>span{font-size:12px;color:var(--copper);padding-top:6px}.steps p{font-size:13px;line-height:1.7;color:#53676c;margin-top:10px}.faqs details{border-bottom:1px solid #bdcbc3;padding:23px 0}.faqs details:first-child{border-top:1px solid #bdcbc3}.faqs summary{font-size:15px;font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}.faqs summary::-webkit-details-marker{display:none}.faqs summary:after{content:'+';font-weight:400;color:var(--copper)}.faqs details[open] summary:after{content:'−'}.faqs p{font-size:13px;color:#53676c;line-height:1.8;margin:15px 24px 0 0}.contact{background:#a15f3d;color:white}.contact .eyebrow{color:#f6ddc9}.contact .body-copy{color:#fff1e7}.contact-signoff{font-size:12px;line-height:1.9;margin-top:35px}.contact-card{background:var(--paper);color:var(--ink);padding:40px}.contact-card>p{font-size:13px;line-height:1.7;color:#53676c;margin:16px 0 25px}.phone{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:20px 0;font-size:clamp(22px,2.3vw,34px);font-weight:600;letter-spacing:-.04em}.address{margin:25px 0}.address>span{font-size:10px;color:#63777b}.address address{font-size:14px;font-style:normal;line-height:1.8;margin-top:8px}.contact-card>small{display:block;font-size:10px;color:#596d70;margin-top:25px}.copyright{position:absolute;bottom:calc(var(--footer) + 17px);font-size:9px;color:#f2d9c6}.controls{position:fixed;z-index:20;inset:auto 0 0;height:var(--footer);display:flex;align-items:center;gap:36px;padding:0 var(--gutter);border-top:1px solid var(--line);background:var(--paper)}.chapter{display:flex;gap:24px;min-width:260px;font-size:11px}.chapter>span:first-child{font-weight:700;font-variant-numeric:tabular-nums}.chapter>span:first-child span{font-weight:400;color:#657873}.chapter>span:last-child{color:#53676c}.progress{height:2px;background:#d5ddd7;flex:1}.progress span{display:block;background:var(--copper);height:100%;width:11.11%;transition:width .25s}.page-buttons{display:flex;gap:9px}.page-buttons button{border:1px solid #b6c4bd;background:transparent;height:35px;padding:0 13px;font-size:12px}.page-buttons button:last-child{display:flex;gap:20px;align-items:center}.page-buttons button:disabled{opacity:.35;cursor:default}.page-buttons button:hover:not(:disabled){background:#e3e8e2}
@media(min-width:1600px){.hero-content{padding-left:0}}@media(max-width:1000px){.desktop{gap:17px}.header-call{display:none}.split{gap:5%}.contact-card{padding:28px}.service-list strong{font-size:17px}}
@media(max-width:760px){:root{--header:72px;--footer:56px;--gutter:24px}html{scroll-snap-type:none}header{gap:15px}.brand svg{width:32px}.brand>span{font-size:25px}.brand small{font-size:7px}.desktop{display:none}.menu-toggle{display:flex;margin-left:auto;gap:15px;align-items:center;background:none;border:1px solid #73838a;color:white;padding:10px 13px;font-size:11px}#mobile-menu{position:absolute;top:var(--header);left:0;right:0;padding:12px var(--gutter) 25px;background:var(--ink);box-shadow:0 12px 18px #14232c22}#mobile-menu a{display:block;padding:14px 0;border-bottom:1px solid #ffffff25;font-size:14px}.screen{padding-top:calc(var(--header) + 30px);padding-bottom:calc(var(--footer) + 38px)}.split{grid-template-columns:1fr;gap:30px}.eyebrow{font-size:10px;margin-bottom:18px}h1{font-size:clamp(56px,12.5vw,86px)}h2{font-size:clamp(34px,8vw,49px)}.body-copy{font-size:13px;margin:20px 0 23px;line-height:1.8}.hero-description{font-size:13px;max-width:330px}.hero-shade{background:linear-gradient(90deg,#10232dea,#10232da3 62%,#10232d45)}.hero-photo{object-position:60% center}.hero-meta{font-size:10px;max-width:260px;line-height:1.7;margin-top:25px}.photo-note{font-size:8px;bottom:calc(var(--footer) + 14px)}.button{font-size:11px;padding:16px 20px;gap:27px}.service-list a{padding:17px 0}.service-list strong{font-size:16px}.service-list small{font-size:11px}.service-image{height:300px}.room-notes p{font-size:11px}.review{padding:0 0 0 23px}.review blockquote{font-size:24px}.review .eyebrow{margin-bottom:15px}.stars{margin-bottom:17px}.review-author{margin:20px 0}.addition-art{min-height:280px}.plan-existing{height:180px}.plan-new{height:140px}.plan-existing span,.plan-new span{font-size:10px}.addition-art>p{font-size:15px}.steps li{padding:20px 0;gap:22px}.steps h3{font-size:20px}.steps p{font-size:12px}.faqs details{padding:20px 0}.faqs summary{font-size:13px}.faqs p{font-size:12px}.contact-card{padding:26px}.contact-card h3{font-size:22px}.contact-signoff{margin-top:20px}.copyright{font-size:8px}.controls{gap:16px}.chapter{min-width:0;flex:1;gap:12px;font-size:10px}.progress{display:none}.page-buttons{gap:6px}.page-buttons button{padding:0 10px}.page-buttons button:last-child{gap:12px}.chapter>span:last-child{max-width:132px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.progress span{transition:none}}
/* Individual service chapters on the single-page website. */
.service-notes{margin:0 0 28px}.service-notes p{border-top:1px solid var(--line);padding:12px 0;font-size:12px;line-height:1.7}.service-notes strong{display:block;margin-bottom:3px}.service-notes span{color:#53676c}.individual-service h2{font-size:clamp(35px,3.8vw,58px)}.individual-service.dark .text-link{color:#f3d4bb}
@media(max-width:760px){.individual-service h2{font-size:clamp(32px,8vw,45px)}.service-notes{margin-bottom:22px}.service-notes p{font-size:11px;padding:10px 0}}
/* One gesture, one viewport chapter. Without JS, the document still scrolls normally. */
html.paged,html.paged body{height:100%;overflow:hidden;scroll-behavior:auto;scroll-snap-type:none;overscroll-behavior:none}
.paged main{position:fixed;inset:0;height:100dvh;overflow:hidden;scroll-behavior:auto;scroll-padding:0}
.paged .screen{height:100%;min-height:0;max-height:100%;scroll-margin:0;scroll-snap-align:none;overflow:hidden}
.paged .screen>.inner{max-height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a7b5ad transparent;padding:4px}
.paged .screen>.split{align-items:center}.paged .service-image{height:clamp(230px,55dvh,600px)}
.paged #mobile-menu{max-height:calc(100dvh - var(--header) - var(--footer));overflow:auto;overscroll-behavior:contain}
@media(max-width:760px){
 .paged .screen{padding-top:calc(var(--header) + 18px);padding-bottom:calc(var(--footer) + 22px)}
 .paged .split{gap:18px}.paged .eyebrow{margin-bottom:12px}.paged .body-copy{margin:14px 0 18px;line-height:1.65}
 .paged .individual-service h2,.paged .screen h2{font-size:clamp(28px,7.5vw,40px)}
 .paged .service-notes{margin-bottom:15px}.paged .service-notes p{padding:7px 0}.paged .service-image{height:clamp(125px,20dvh,210px)}
 .paged .service-image figcaption{bottom:12px;left:15px;font-size:11px}.paged .service-image small{font-size:8px;margin-top:4px}
 .paged .service-list a{padding:11px 0}.paged .service-list strong{font-size:15px}.paged .service-list small{margin-top:4px}
 .paged .review{padding-left:18px}.paged .review blockquote{font-size:22px}.paged .review-author{margin:15px 0}
 .paged .stars{margin-bottom:12px}.paged .steps li{padding:13px 0}.paged .steps p{margin-top:6px}
 .paged .faqs details{padding:14px 0}.paged .faqs p{margin-top:10px}
 .paged .contact-card{padding:20px}.paged .contact-card>p{margin:10px 0 15px}.paged .phone{padding:13px 0}
 .paged .address{margin:15px 0}.paged .contact-card>small{margin-top:14px}.paged .contact-signoff{margin-top:12px}
 .paged .addition-art{min-height:220px}.paged .plan-existing{height:145px}.paged .plan-new{height:110px}
}
@media(min-width:761px) and (max-height:820px){.paged .hero h1{font-size:clamp(54px,9dvh,78px)}.paged .hero-description{margin:20px 0}.paged .hero-meta{margin-top:22px}}
