:root{--paper:#f5f3ee;--ink:#252525;--muted:#666666;--line:#d5d3cf;--olive:#353638;--accent:#cc0000;--sand:#e9e7e2;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{display:block;width:100%;object-fit:cover}p{margin:0 0 1.2em}h1,h2,h3,h4{font-weight:400;line-height:1.08;letter-spacing:-.045em;margin:0}h1{font-size:clamp(48px,6.4vw,96px)}h2{font-size:clamp(36px,4.1vw,64px)}h3{font-size:clamp(24px,2.5vw,36px)}small,.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:500;text-transform:uppercase}.eyebrow{display:block;margin-bottom:25px;color:var(--muted)}.concept{display:flex;justify-content:space-between;padding:8px 4.5%;background:var(--ink);color:#e5e6df;font-size:9px;letter-spacing:.13em}.concept a{letter-spacing:.04em}header{height:106px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;border-bottom:1px solid var(--line);background:var(--paper)}nav{display:flex;align-items:center;gap:32px;font-size:13px}nav a:hover,nav a.active{color:var(--accent)}.nav-cta{border-bottom:1px solid var(--ink);padding:10px 0;margin-left:15px}.nav-cta span{margin-left:25px}#menu{display:none}.wrap{width:91%;max-width:1280px;margin:auto}.hero{position:relative;height:660px;min-height:580px;max-height:78vh;color:white;background:var(--olive);overflow:hidden}.hero>img{height:100%;object-position:center 52%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,19,14,.65),rgba(15,19,14,.04) 80%),linear-gradient(0deg,rgba(15,19,14,.25),transparent 70%)}.hero-copy{position:absolute;z-index:1;bottom:70px;left:4.5%;width:min(720px,70%)}.hero .eyebrow{color:white;margin-bottom:20px}.hero h1{font-size:clamp(48px,5.8vw,84px);max-width:740px}.hero-copy p{max-width:440px;margin:25px 0 28px;font-size:15px;line-height:1.65;color:#f5f5ed}.hero-credit{position:absolute;z-index:1;right:4.5%;bottom:24px;font-size:10px;letter-spacing:.12em}.linkline{display:inline-flex;gap:40px;align-items:center;padding:10px 0;border-bottom:1px solid currentColor;font-size:12px}.linkline:hover{color:var(--accent)}.hero .linkline:hover{color:white;background:#ffffff15}.hero-links{display:flex;gap:35px}.strip{padding:22px 4.5%;display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.08em}.strip span:before{content:'+';color:var(--accent);margin-right:12px}.section{padding:72px 0}.intro{display:block}.intro h2{max-width:740px}.intro .body{max-width:570px;margin-top:30px;color:var(--muted)}.intro-label{padding-top:10px}.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}.sectionhead p{max-width:400px;color:var(--muted);margin:0}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 28px}.project-card img{aspect-ratio:1.35;transition:transform .6s}.project-card .frame{overflow:hidden;background:var(--sand)}.project-card:hover img{transform:scale(1.025)}.project-card:nth-child(even){padding-top:0}.project-card .caption{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.project-card h3{font-size:24px;letter-spacing:-.025em}.project-card small{display:block;letter-spacing:.08em;color:var(--muted);margin-top:7px;font-size:10px}.project-card .arrow{font-size:24px}.sand{background:var(--sand)}.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.service{border-top:1px solid var(--muted);padding-top:20px}.service .num{font-size:11px;letter-spacing:.1em;display:block;margin-bottom:35px}.service p{max-width:480px;color:var(--muted);margin-top:22px}.service img{aspect-ratio:1.65;margin-top:30px}.split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.split-image{min-height:520px;height:100%}.split-copy{padding:64px 10%;display:flex;flex-direction:column;justify-content:flex-start}.split-copy p{margin-top:25px;color:var(--muted)}.split-copy .linkline{align-self:flex-start}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:45px}.step{border-top:1px solid var(--line);padding-top:20px}.step small{color:var(--accent)}.step h3{font-size:23px;margin:25px 0 18px}.step p{font-size:14px;color:var(--muted)}.cta{background:var(--olive);color:white;padding:80px 4.5%;display:flex;justify-content:space-between;align-items:center;gap:40px}.cta h2{max-width:720px}.cta .eyebrow{color:#dbe0d3}.button{border:1px solid currentColor;display:inline-flex;justify-content:space-between;align-items:center;gap:50px;padding:17px 24px;background:transparent;color:inherit;font-size:13px}.button:hover{background:var(--ink);color:white}.button.solid{background:var(--ink);color:white;border-color:var(--ink)}.page-title{padding:90px 0 65px}.page-title h1{max-width:1050px}.page-title p{color:var(--muted);font-size:18px;max-width:650px;margin:30px 0 0}.page-photo{height:500px;width:100%}.twocol{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}.body-copy{max-width:650px;color:var(--muted)}.body-copy h3{color:var(--ink);margin-bottom:25px}.list{list-style:none;padding:0;margin:35px 0 0}.list li{padding:18px 0;border-top:1px solid var(--line);display:flex;gap:25px;align-items:start}.list li span{font-size:11px;color:var(--accent)}.list li p{font-size:14px;color:var(--muted);margin:10px 0 0}.list li h3{font-size:24px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}.filters button{border:1px solid var(--line);background:transparent;padding:9px 18px;font-size:12px;color:var(--ink)}.filters button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.empty{padding:50px;background:var(--sand);max-width:750px}.empty p{margin-top:20px}.project-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid var(--line);padding-top:25px;margin:45px 0}.project-meta small{display:block;color:var(--muted);margin-bottom:10px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-bottom:90px}.photo-grid button{border:0;padding:0;background:var(--sand)}.photo-grid img{height:460px}.photo-grid button:first-child{grid-column:1/-1}.photo-grid button:first-child img{height:auto;max-height:850px;object-fit:cover}dialog{padding:55px 20px 20px;background:var(--paper);border:0;max-width:94vw;max-height:94vh}dialog::backdrop{background:#161b17dd}dialog img{max-width:86vw;max-height:75vh;object-fit:contain}dialog button{position:absolute;right:20px;top:10px;border:0;background:none;font-size:14px}dialog p{font-size:12px;margin:12px 0 0}.faq{max-width:900px;margin:32px 0 0}details{border-top:1px solid var(--line);padding:23px 0}summary{cursor:pointer;font-size:18px}details p{padding:20px 25px 0 0;color:var(--muted);max-width:740px}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:10%;padding-bottom:100px}.contact-details h3{font-size:27px;margin-bottom:20px}.contact-details p{color:var(--muted);margin-bottom:35px}.contact-details a{display:block}form{display:grid;grid-template-columns:1fr 1fr;gap:25px}label{font-size:12px;display:flex;flex-direction:column;gap:8px}.full{grid-column:1/-1}input,textarea,select{border:0;border-bottom:1px solid #919888;border-radius:0;width:100%;padding:12px 0;color:var(--ink);background:transparent;min-height:48px}textarea{resize:vertical;min-height:100px}.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.material-grid article{border-top:1px solid var(--line);padding-top:25px}.material-grid p{color:var(--muted);margin-top:20px;font-size:15px}.review-intro{padding:35px;background:var(--sand);margin-bottom:50px}.review-table{width:100%;border-collapse:collapse;font-size:14px;margin:30px 0 55px}.review-table th{text-align:left;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.review-table td,.review-table th{border-bottom:1px solid var(--line);padding:20px 18px 20px 0;vertical-align:top}.review-table td:first-child{min-width:135px}.review-table td p{margin:0 0 10px}.review-section{margin:65px 0}.review-section h2{font-size:38px;margin-bottom:25px}.tag{display:inline-block;font-size:10px;letter-spacing:.08em;padding:5px 9px;background:var(--sand);margin-bottom:10px}.copy-example{padding:30px;border-left:2px solid var(--accent);background:#eeede5;margin-bottom:20px}.copy-example h3{margin-bottom:15px}.source-list{font-size:13px;display:flex;gap:20px;flex-wrap:wrap;text-decoration:underline}.review-checks{padding-left:20px;color:var(--muted)}.review-checks li{margin:14px 0}.muted{color:var(--muted)}footer{padding:65px 4.5% 20px}.footer-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:60px}.footer-top p{text-align:left;font-size:14px;color:var(--muted)}.footer-grid{display:grid;grid-template-columns:1.4fr 1.2fr 1fr 1.5fr;gap:40px;font-size:13px}.footer-grid small{display:block;margin-bottom:23px;color:var(--muted)}.footer-grid a{display:block;margin-bottom:8px}.footer-grid a:hover{text-decoration:underline}.footer-grid p{font-size:12px}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;margin-top:50px;color:var(--muted);font-size:10px}.skip{position:absolute;left:-1000px}.skip:focus{left:20px;top:20px;z-index:20;padding:10px;background:white}.print-btn{margin:25px 0}.narrow{max-width:1100px}.inline-note{font-size:12px;color:var(--muted);margin-top:20px}.workshop{object-position:center}.contact-details small{display:block;color:var(--muted);margin-bottom:10px}
@media(min-width:1600px){.hero{max-height:none;height:760px}}@media(max-width:1050px){nav{gap:20px}.nav-cta{margin-left:0}.hero{height:620px}.section{padding:75px 0}.split-copy{padding:55px 8%}.steps{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.intro{gap:6%}.contact-grid{gap:7%}}
@media(max-width:760px){.concept{font-size:8px;padding:7px 5%;gap:12px}.concept a{max-width:145px;text-align:right}header{height:82px;padding:0 5%}#menu{display:block;background:none;border:0;font-size:13px}nav{display:none;position:absolute;top:120px;left:0;right:0;z-index:10;background:var(--paper);padding:30px 5%;border-bottom:1px solid var(--line);gap:20px;flex-direction:column;align-items:start}nav.open{display:flex}.hero{height:650px;min-height:560px;max-height:none}.hero>img{object-position:60% center}.hero-copy{left:5%;bottom:65px;width:88%}.hero h1{font-size:54px}.hero-copy p{font-size:14px;max-width:330px}.hero:after{background:linear-gradient(0deg,#151c14b8,#151c1420)}.hero-credit{font-size:8px}.hero-links{gap:25px}.linkline{gap:25px}.strip{display:grid;grid-template-columns:1fr 1fr;font-size:9px;padding:20px 5%;gap:12px}.strip span:before{margin-right:6px}.wrap{width:90%}.section{padding:65px 0}.intro,.services-grid,.split,.twocol,.contact-grid{grid-template-columns:1fr;gap:35px}.intro-label{padding:0}.intro-label .eyebrow{margin:0}.intro h2{font-size:39px}.intro .body{margin-top:23px}.sectionhead{align-items:start;flex-direction:column;gap:23px;margin-bottom:28px}.sectionhead h2{font-size:39px}.project-grid{gap:35px;grid-template-columns:1fr}.project-card:nth-child(even){padding-top:0}.project-card img{aspect-ratio:1.3}.project-card h3{font-size:25px}.services-grid{gap:45px}.service .num{margin-bottom:25px}.split-image{min-height:320px;height:320px}.split-copy{padding:55px 5%}.steps{gap:25px}.step h3{font-size:21px}.step p{font-size:13px}.cta{padding:60px 5%;align-items:start;flex-direction:column}.cta h2{font-size:43px}.page-title{padding:60px 0 45px}.page-title h1{font-size:51px}.page-title p{font-size:16px}.page-photo{height:320px}.material-grid{grid-template-columns:1fr;gap:35px}.photo-grid{grid-template-columns:1fr;gap:15px}.photo-grid img{height:300px}.photo-grid button:first-child img{min-height:280px}.project-meta{grid-template-columns:1fr 1fr;font-size:13px}.contact-grid{padding-bottom:65px}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:25px}.contact-details h3{font-size:22px}.contact-details p{margin-bottom:0}form{gap:22px 18px}.review-table{display:block;overflow-x:auto}.review-table td{min-width:180px}.review-table td:first-child{min-width:120px}.review-intro{padding:25px}.review-section h2{font-size:32px}.footer-top{gap:30px;margin-bottom:40px}.footer-top p{font-size:11px}.footer-grid{gap:25px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{gap:20px;align-items:start}.source-list{gap:12px}.copy-example{padding:23px}.contact-details a{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{header,.concept,footer,.print-btn,.cta,#menu{display:none}.wrap{width:100%}.page-title{padding:20px 0}h1{font-size:35px}.review-table{font-size:10px;display:table}.review-table td{min-width:0}.review-section{break-inside:avoid}.section{padding:20px 0}}

/* Consistent content alignment across the residential and commercial pages. */
:root { --copy-size:16px; --copy-leading:1.65; --column-gap:56px; }
main p { text-align:left; text-wrap:pretty; }
.eyebrow { margin-bottom:20px; }
.intro > .eyebrow { margin-bottom:24px; }
.intro-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--column-gap); align-items:start; }
.intro-layout h2 { max-width:10.5em; }
.intro-copy { min-width:0; }
.intro .body { margin:0 0 18px; max-width:none; font-size:var(--copy-size); line-height:var(--copy-leading); }
.intro-copy .linkline { margin-top:2px; }
.body-copy { max-width:none; font-size:var(--copy-size); line-height:var(--copy-leading); }
.twocol > .body-copy { padding-top:38px; }
.body-copy p { margin:0 0 20px; }
.body-copy h3:not(:first-child) { margin-top:32px; }
.body-copy h3 { margin-bottom:16px; }
.sectionhead { align-items:flex-start; margin-bottom:32px; gap:var(--column-gap); }
.sectionhead > div:first-child, .sectionhead > h2 { max-width:calc((100% - var(--column-gap))/2); }
.sectionhead > p { flex:0 1 calc((100% - var(--column-gap))/2); max-width:none; padding-top:38px; font-size:var(--copy-size); line-height:var(--copy-leading); }
.sectionhead > .linkline { align-self:flex-end; }
.project-grid { column-gap:32px; row-gap:40px; align-items:start; }
.service { display:grid; grid-template-rows:auto 1fr auto auto auto; align-content:start; min-width:0; }
.service .num { margin-bottom:24px; }
.service h3 { margin:0; max-width:18em; }
.service p { max-width:none; margin:20px 0 16px; font-size:var(--copy-size); line-height:var(--copy-leading); }
.service .linkline { justify-self:start; }
.service img { margin-top:24px; }
.split { align-items:start; }
.split-image { height:100%; min-height:500px; max-height:720px; }
.split-copy { gap:0; text-align:left; }
.split-copy h2 { max-width:10.5em; }
.split-copy p { margin:20px 0 0; font-size:var(--copy-size); line-height:var(--copy-leading); }
.split-copy .linkline { margin-top:20px; }
.steps { margin-top:32px; gap:28px; }
.step h3 { min-height:2.16em; margin-top:20px; margin-bottom:16px; }
.step p { margin:0; line-height:var(--copy-leading); }
.page-title { padding:64px 0 48px; }
.page-title p { margin-top:24px; line-height:var(--copy-leading); }
.cta { padding-top:56px; padding-bottom:56px; align-items:flex-start; }
.cta h2 { font-size:clamp(36px,3.6vw,56px); max-width:15em; }
.cta > .button { align-self:flex-end; flex-shrink:0; }
.cta .eyebrow { color:#e2e2e2; }
.hero > img { object-position:center 54%; }
.hero:after { background:linear-gradient(90deg,rgba(15,15,15,.68),rgba(15,15,15,.08) 80%),linear-gradient(0deg,rgba(15,15,15,.22),transparent 70%); }
.material-grid { align-items:start; }
.material-grid article h3 { min-height:2.16em; }
.material-grid p { font-size:var(--copy-size); line-height:var(--copy-leading); margin-top:20px; }
.footer-grid p { line-height:1.6; }
@media(max-width:1050px) {
 :root { --column-gap:36px; }
 .twocol { gap:36px; }
 .split-copy { padding:48px 7%; }
 .split-image { min-height:460px; }
 .step h3 { min-height:0; }
 .sectionhead > div:first-child,.sectionhead > h2 { max-width:62%; }
 .cta { gap:28px; }
}
@media(max-width:760px) {
 :root { --column-gap:24px; --copy-size:15px; }
 .intro-layout,.twocol { grid-template-columns:1fr; gap:24px; }
 .intro-layout h2 { max-width:15em; font-size:39px; }
 .intro .body { margin-top:0; }
 .twocol > .body-copy { padding-top:0; }
 .section { padding:48px 0; }
 .sectionhead { gap:20px; }
 .sectionhead > div:first-child,.sectionhead > h2 { max-width:100%; }
 .sectionhead > p { padding-top:0; max-width:100%; flex-basis:auto; }
 .sectionhead > .linkline { align-self:flex-start; }
 .services-grid { grid-template-columns:1fr; gap:36px; }
 .service { display:block; }
 .service p { margin-top:18px; }
 .split { grid-template-columns:1fr; gap:0; }
 .split-copy { padding:40px 5%; }
 .split-image { height:320px; min-height:0; max-height:none; }
 .split-copy h2 { max-width:15em; }
 .page-title { padding:44px 0 36px; }
 .page-title h1 { font-size:clamp(42px,9vw,51px); }
 .page-title p { font-size:16px; }
 .project-grid { gap:32px; }
 .step h3 { min-height:0; }
 .material-grid article h3 { min-height:0; }
 .cta { padding-top:40px; padding-bottom:40px; }
 .cta > .button { align-self:flex-start; }
 .cta h2 { font-size:39px; }
 .hero > img { object-position:56% center; }
 .hero h1 { font-size:clamp(42px,10vw,54px); }
 .hero-links { flex-wrap:wrap; gap:12px 24px; }
 .footer-top p { text-align:left; }
 .contact-grid { grid-template-columns:1fr; gap:32px; }
 .contact-details { gap:24px; }
 .contact-details h3 { font-size:23px; }
}

.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin:0 0 16px; }
.contact-actions .button { display:inline-flex; justify-content:center; padding:12px 20px; }
.contact-checklist { min-width:0; border-top:1px solid var(--line); padding-top:20px; }
.contact-checklist h3 { margin-bottom:16px; }
.contact-checklist p { color:var(--muted); }
.contact-checklist ul { margin:20px 0 0; padding-left:20px; }
.contact-checklist li { margin-bottom:12px; }
@media(max-width:760px) {
 .contact-details > div:first-child { grid-column:1/-1; }
}

/* Keep the two feature photographs full width and pair the gallery details. */
.showcase-gallery button:last-child { grid-column:1/-1; }
.showcase-gallery button img { display:block; width:100%; height:auto; aspect-ratio:3/2; }
.showcase-gallery button:is(:first-child,:last-child) img { min-height:0; max-height:none; }

/* Logo (SVG) */
.brand{display:inline-flex;align-items:center;line-height:0;flex-shrink:0}
.brand img{display:block;height:40px;width:auto}
@media(max-width:1050px){.brand img{height:36px}}
@media(max-width:760px){.brand img{height:30px}.footer-top .brand img{height:28px}}
