:root{--paper:#f5f3ed;--ink:#252b28;--muted:#6a6d66;--orange:#ed7848;--line:#d9dbd1}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:6px}input:focus,textarea:focus,select:focus{outline:2px solid #8e4527;outline-offset:2px}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2{letter-spacing:-.065em;line-height:1.01;font-weight:700}h1 em,h2 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.065em}h2{font-size:clamp(38px,4.5vw,66px)}p{line-height:1.65}.skip{position:absolute;top:-100px;z-index:100;background:var(--paper);padding:20px}.skip:focus{top:0}.header{height:100px;padding:0 4.4%;display:flex;justify-content:space-between;align-items:center;background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand svg{width:43px;fill:none;stroke:var(--orange);stroke-width:3}.brand span{font-size:18px;font-weight:800;letter-spacing:-.5px}.brand small{display:block;font-size:8.5px;letter-spacing:1.85px;font-weight:600;margin-top:5px}.nav{display:flex;gap:27px;font-size:13px;font-weight:600}.nav a,.text-link,.email{transition:opacity .2s}.nav a:hover,.text-link:hover,.email:hover{opacity:.6}.nav-call{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;border:1px solid #c5c8bf;padding:14px 17px}.nav-call svg{width:17px;fill:none;stroke:currentColor;stroke-width:1.4}.menu-toggle,.mobile-menu{display:none}.hero{display:grid;grid-template-columns:49% 51%;min-height:660px;background:var(--ink);color:var(--paper);position:relative}.hero-copy{padding:69px 30px 56px 9%;position:relative;z-index:2}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;line-height:1.5;display:flex;align-items:center;gap:12px}.hero .eyebrow{color:#d1d5ca}.tiny-roof{display:block;width:13px;height:13px;border-left:2px solid var(--orange);border-top:2px solid var(--orange);transform:rotate(45deg) translateY(3px)}h1{font-size:clamp(57px,6.6vw,100px);margin-top:31px}h1 em{color:var(--orange)}.hero-intro{margin-top:26px;font-size:15px;color:#d1d4cd;line-height:1.65}.hero-actions{display:flex;gap:24px;align-items:center;margin-top:32px}.button{padding:19px 22px;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;font-size:12px;font-weight:700;border:0;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-orange{background:var(--orange);color:var(--ink)}.button-orange:hover{background:#fa8d5c}.button span{font-size:20px;font-weight:400;line-height:.8}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:12px;font-weight:600;padding:7px 0;border-bottom:1px solid #727970;white-space:nowrap}.text-link span{font-size:18px}.hero-note{font-size:10px;color:#aab2a7;margin-top:43px}.hero-photo{position:relative;overflow:hidden;min-height:660px}.hero-photo>img{width:100%;height:100%;position:absolute;object-position:43% 49%}.photo-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,30,25,.72),transparent 58%)}.photo-caption{position:absolute;top:28px;left:30px;font-size:9px;letter-spacing:2px;color:white;background:rgba(30,36,31,.4);padding:11px 14px;border:1px solid #ffffff36}.project-tag{position:absolute;bottom:35px;left:33px;right:33px;display:flex;justify-content:space-between;align-items:center;z-index:2;border-top:1px solid #ffffff60;padding-top:21px;font-size:18px;letter-spacing:-.4px}.project-tag small{display:block;font-size:10px;letter-spacing:.2px;margin-top:8px;color:#dadcd2}.round-arrow{height:43px;width:43px;border:1px solid #ffffff66;border-radius:50%;display:grid;place-items:center;font-size:23px}.roof-outline{position:absolute;right:-90px;bottom:85px;width:270px;stroke:#ffffff65;stroke-width:1;fill:none;pointer-events:none}.specialties{display:flex;align-items:center;gap:24px;padding:26px 4.4%;border-bottom:1px solid var(--line);font-size:9px;font-weight:700;letter-spacing:1px}.specialties i{width:4px;height:4px;background:var(--orange);border-radius:50%;flex-shrink:0}.specialties a{margin-left:auto;font-size:11px;font-weight:400;letter-spacing:0}.specialties b{margin-left:17px;font-size:16px}.section{padding:105px 7.2%}.services{display:grid;grid-template-columns:1fr 1.03fr;gap:9%}.section-intro .eyebrow,.work .eyebrow{color:#787b72}.section-intro h2{margin-top:23px}.section-intro>p:not(.eyebrow){color:var(--muted);font-size:14px;max-width:330px;margin-top:25px}.section-intro .text-link{margin-top:25px}.service-list{padding-top:2px}details{border-bottom:1px solid #cbd0c5}details:first-child{border-top:1px solid #cbd0c5}summary{list-style:none;display:flex;align-items:center;gap:23px;padding:25px 0;font-size:22px;font-weight:600;letter-spacing:-.6px;cursor:pointer}summary::-webkit-details-marker{display:none}summary svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.2;flex-shrink:0}.plus{margin-left:auto;font-size:28px;font-weight:300;transition:transform .2s}details[open] .plus{transform:rotate(45deg);color:#b74d23}.detail-body{padding:0 33px 28px 57px;font-size:13px;color:var(--muted);line-height:1.65}.detail-body a{display:inline-block;color:var(--ink);font-size:11px;font-weight:600;margin-top:18px}.detail-body a span{margin-left:12px}.work{background:#e9ece4;padding-top:80px;padding-bottom:66px}.work-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:37px}.work h2{margin-top:20px}.work-description{font-size:13px;color:var(--muted);padding-bottom:5px;max-width:360px}.work-description .text-link{margin-top:16px;color:var(--ink)}.gallery{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:end}.gallery-item{position:relative;padding:0;border:0;overflow:hidden;background:var(--ink);color:white;text-align:left;width:100%}.gallery-item::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#0c1614a8,transparent 50%)}.gallery-item img{width:100%;height:100%;transition:transform .8s;object-position:45% 60%}.gallery-item:hover img{transform:scale(1.035)}.gallery-item.large{height:450px}.gallery-item.small{height:365px}.gallery-item.small img{object-position:38% 52%}.image-label{position:absolute;bottom:25px;left:26px;font-size:20px;z-index:1;letter-spacing:-.5px}.image-label small{display:block;font-size:10px;letter-spacing:.4px;margin-top:7px;color:#ebeee7}.zoom-icon{position:absolute;bottom:26px;right:25px;z-index:1;border:1px solid #ffffff66;width:37px;height:37px;display:grid;place-items:center;font-size:23px}.gallery-foot{display:flex;justify-content:space-between;margin-top:19px;font-size:9px;color:#72776d}.gallery-foot span:last-child{letter-spacing:1.3px;font-size:8px}.approach{display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:var(--paper);padding:83px 7.2%;gap:8%;overflow:hidden}.approach-title{position:relative}.approach .eyebrow{color:#b0b8aa;font-size:9px}.approach h2{font-size:clamp(36px,4vw,57px);margin-top:25px}.approach h2 em{color:#c8d1bf}.approach-title>p:not(.eyebrow){max-width:340px;font-size:13px;color:#b7beb2;margin-top:25px}.approach .text-link{margin-top:23px}.approach-title>svg{position:absolute;left:-90px;bottom:-180px;fill:none;stroke:#a2ad9620;stroke-width:1;width:330px;pointer-events:none}.approach-steps article{display:flex;gap:23px;padding:26px 0;border-bottom:1px solid #ffffff25}.approach-steps article:first-child{padding-top:6px}.approach-steps article:last-child{border:0;padding-bottom:0}.step-icon{color:var(--orange);border:1px solid #ffffff30;width:37px;height:37px;flex-shrink:0;display:grid;place-items:center;font-size:20px}.approach h3{font-size:20px;font-weight:500;letter-spacing:-.5px;line-height:1.3}.approach-steps p{font-size:12px;color:#b7beb2;margin-top:10px;max-width:360px}.contact{display:grid;grid-template-columns:1fr .95fr;gap:10%;background:#ed7848;padding-top:82px;padding-bottom:85px}.contact-copy .eyebrow{font-size:9px;letter-spacing:1.8px}.contact h2{margin-top:24px;font-size:clamp(40px,4.8vw,68px)}.contact-copy>p:not(.eyebrow):not(.location){font-size:13px;margin-top:25px}.big-phone{display:block;font-size:28px;letter-spacing:-1.3px;font-weight:600;margin-top:30px}.big-phone span{margin-left:15px;font-size:24px}.email{display:inline-block;margin-top:12px;font-size:13px;border-bottom:1px solid #252b2860;padding-bottom:5px}.location{font-size:11px;line-height:1.7;margin-top:33px;position:relative;padding-left:28px}.location svg{width:16px;position:absolute;left:0;top:2px;fill:none;stroke:currentColor;stroke-width:1.3}.contact-card{background:var(--paper);padding:33px 35px;align-self:center;box-shadow:0 18px 35px #7f39171c}.card-eyebrow{font-size:8px;font-weight:700;letter-spacing:1.5px;display:flex;align-items:center;gap:8px}.message-dot{width:6px;height:6px;border-radius:50%;background:#697a5a}.contact-card h3{font-size:25px;letter-spacing:-1px;margin-top:20px}.contact-card>p{font-size:11px;color:var(--muted);margin-top:8px;max-width:300px}form{margin-top:22px}label{display:block;font-size:10px;font-weight:600;margin-bottom:8px}input,select,textarea{display:block;width:100%;border:1px solid #cdd0c6;border-radius:0;background:transparent;padding:12px 10px;font-size:11px;color:var(--ink)}textarea{resize:vertical;min-height:85px}input::placeholder,textarea::placeholder{color:#777c72;opacity:1}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:17px 0}form>label:not(:first-child){margin-top:17px}.button-dark{background:var(--ink);color:var(--paper);width:100%;margin-top:18px;padding:17px 18px}.button-dark:hover{background:#3e4941}.form-note{font-size:9px!important;color:#74796f;line-height:1.5;margin-top:12px!important}footer{padding:40px 4.4% 24px;background:var(--ink);color:var(--paper)}.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:33px;gap:20px}.footer-top>p{font-family:Georgia,serif;font-style:italic;color:#c5cec0;font-size:18px}.facebook{font-size:10px;display:flex;align-items:center;gap:12px}.facebook span{display:grid;place-items:center;font-family:Arial;font-size:17px;font-weight:bold;width:27px;height:27px;border:1px solid #ffffff40}.footer-bottom{border-top:1px solid #ffffff20;padding-top:22px;display:flex;justify-content:space-between;color:#aab4a4;font-size:9px;gap:20px}.concept-label{letter-spacing:1px;font-size:8px}.concept-label strong{color:#d9dfd4;font-size:9px;letter-spacing:1.4px}.mobile-call{display:none}dialog{border:1px solid #ffffff33;background:var(--ink);padding:18px;color:white;max-width:min(94vw,1150px);max-height:94vh}dialog::backdrop{background:#111916e8;backdrop-filter:blur(6px)}dialog>img{max-height:75vh;max-width:100%;object-fit:contain;margin:0 auto}dialog>p{font-size:12px;padding-top:14px}.close-dialog{display:block;margin:0 0 14px auto;border:1px solid #ffffff60;background:transparent;color:white;padding:8px 14px;font-size:12px}.reveal{opacity:1}.js-reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}.js-reveal.visible{opacity:1;transform:none}
@media(min-width:1600px){.hero-copy{padding-left:max(9%,calc((100vw - 1370px)/2))}.hero{min-height:760px}.hero-photo{min-height:760px}.section{padding-left:max(7.2%,calc((100vw - 1280px)/2));padding-right:max(7.2%,calc((100vw - 1280px)/2))}}
@media(max-width:1100px){.nav{gap:18px;font-size:11px}.header{padding:0 4%;height:88px}.brand span{font-size:16px}.brand small{font-size:7px;letter-spacing:1.6px}.brand svg{width:35px}.nav-call{font-size:11px;padding:12px}.hero-copy{padding:55px 25px 40px 8%}.hero,.hero-photo{min-height:620px}.hero-actions{flex-wrap:wrap;gap:18px}.hero-note{margin-top:27px}.hero h1{font-size:clamp(55px,6.8vw,82px)}.specialties{gap:16px;font-size:8px}.specialties a{font-size:10px}.section{padding:80px 6%}.services{gap:7%}.gallery-item.large{height:390px}.gallery-item.small{height:330px}.approach{padding:70px 6%;gap:6%}.contact{gap:6%}.contact-card{padding:28px}.footer-top>p{font-size:15px}}
@media(max-width:800px){.nav,.nav-call{display:none}.header{height:80px;padding:0 6%}.menu-toggle{display:flex;flex-direction:column;gap:6px;padding:12px;background:transparent;border:0}.menu-toggle span{height:1px;width:23px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-menu:not([hidden]){display:flex;flex-direction:column;position:absolute;top:80px;left:0;right:0;z-index:30;background:var(--paper);padding:20px 6% 30px;border-bottom:1px solid var(--line);box-shadow:0 15px 20px #0002;gap:0}.mobile-menu a{padding:14px 0;border-bottom:1px solid var(--line);font-size:16px}.hero{grid-template-columns:1fr 1fr;min-height:590px}.hero-photo{min-height:590px}.hero-copy{padding:48px 20px 35px 12%}.hero h1{font-size:60px}.hero .eyebrow{font-size:8px;letter-spacing:1.2px}.hero-intro{font-size:12px}.hero-actions{gap:14px}.hero .button{font-size:10px;padding:17px 14px;gap:15px}.hero-note{font-size:9px}.photo-caption{left:18px;font-size:8px;letter-spacing:1px}.project-tag{left:20px;right:20px;font-size:15px;gap:10px}.project-tag small{font-size:9px}.round-arrow{width:33px;height:33px;flex-shrink:0}.specialties{flex-wrap:wrap;padding:22px 6%;gap:13px;justify-content:space-between}.specialties a{display:none}.specialties i:last-of-type{display:none}.specialties span{font-size:8px}.section{padding:70px 6%}.services{gap:6%}.section-intro h2{font-size:40px}.section-intro>p:not(.eyebrow){font-size:12px}.eyebrow{font-size:9px;letter-spacing:1.5px}summary{font-size:18px;gap:14px;padding:23px 0}summary svg{width:27px}.detail-body{padding-left:41px;padding-right:0;font-size:12px}.work-heading{gap:35px}.work-description{font-size:12px;max-width:260px}.gallery-item.large{height:320px}.gallery-item.small{height:275px}.image-label{font-size:17px;left:18px}.gallery-foot span:last-child{font-size:7px}.approach{gap:7%}.approach h2{font-size:37px}.approach h3{font-size:18px}.approach-steps article{gap:15px}.contact h2{font-size:43px}.contact{gap:6%}.contact-card{padding:25px 22px}.contact-card h3{font-size:21px}.form-row{grid-template-columns:1fr;gap:16px}.big-phone{font-size:25px}.footer-top{flex-wrap:wrap}.footer-top>p{display:none}}
@media(max-width:580px){html{scroll-padding-top:30px}.hero{grid-template-columns:1fr}.hero-copy{padding:39px 7% 38px}.hero h1{font-size:clamp(41px,13.2vw,70px);margin-top:25px}.hero .eyebrow{font-size:8px;letter-spacing:1.45px}.hero-intro{font-size:13px;margin-top:21px}.hero-actions{flex-wrap:nowrap;gap:23px;margin-top:26px}.hero .button{font-size:11px;padding:18px 17px}.hero .text-link{font-size:11px}.hero-note{margin-top:25px;font-size:9px}.hero-photo{height:370px;min-height:0}.hero-photo>img{object-position:50% 54%}.photo-caption{top:19px;left:7%}.project-tag{left:7%;right:7%;bottom:24px;padding-top:17px;font-size:18px}.project-tag small{font-size:10px}.roof-outline{bottom:55px;width:230px}.specialties{display:grid;grid-template-columns:1fr 1fr;gap:13px 17px;padding:22px 7%}.specialties i{display:none}.specialties span{font-size:8px;letter-spacing:1.05px;display:flex;align-items:center;gap:9px}.specialties span:before{content:'';height:4px;width:4px;background:var(--orange);border-radius:50%}.section{padding:61px 7%}.services{display:block}.section-intro h2{font-size:45px}.section-intro>p:not(.eyebrow){font-size:13px;max-width:100%;margin-top:21px}.section-intro .text-link{margin-top:19px}.service-list{margin-top:35px}summary{font-size:21px;padding:23px 0;gap:18px}summary svg{width:32px}.detail-body{padding-left:50px;padding-right:10px;font-size:13px}.work-heading{display:block;margin-bottom:28px}.work h2{font-size:48px;margin-top:19px}.work-description{margin-top:24px;max-width:none;font-size:12px}.work-description .text-link{margin-top:11px}.gallery{display:flex;flex-direction:column;gap:17px}.gallery-item.large{height:330px}.gallery-item.small{height:295px}.gallery-item img{object-position:50% 58%}.gallery-item.small img{object-position:42% 54%}.image-label{left:22px;font-size:20px}.gallery-foot{font-size:8px;margin-top:16px}.gallery-foot span:last-child{display:none}.approach{display:block;padding:59px 7%}.approach h2{font-size:42px}.approach-title>p:not(.eyebrow){font-size:13px}.approach-title>svg{left:auto;right:-90px;bottom:-170px;width:260px}.approach-steps{margin-top:40px;position:relative}.approach-steps article{gap:20px;padding:23px 0}.approach h3{font-size:20px}.approach-steps p{font-size:12px}.contact{display:block;padding-top:58px}.contact h2{font-size:clamp(36px,11.6vw,50px)}.big-phone{font-size:32px;margin-top:27px}.contact-copy>p:not(.eyebrow):not(.location){font-size:13px}.location{margin-top:25px}.contact-card{margin-top:35px;padding:28px 24px}.contact-card h3{font-size:26px}.contact-card>p{font-size:12px}.card-eyebrow{font-size:8px}.form-row{grid-template-columns:1fr 1fr;gap:12px}label{font-size:11px}input,select,textarea{font-size:16px;padding:12px 9px}input::placeholder,textarea::placeholder{font-size:11px}.form-row select{font-size:11px;height:45px}.form-row input{height:45px}textarea{font-size:16px}.button-dark{font-size:12px}.form-note{font-size:10px!important}.footer-top{display:block;padding-bottom:27px}.footer-top .brand span{font-size:17px}.facebook{margin-top:25px;font-size:11px}.footer-bottom{flex-wrap:wrap;gap:18px;font-size:8px}.footer-bottom>a{margin-left:auto}.concept-label{order:3;flex-basis:100%;font-size:7px}footer{padding:34px 7% 94px}.mobile-call{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--ink);color:var(--paper);padding:18px 7%;padding-bottom:max(18px,env(safe-area-inset-bottom));font-size:12px;justify-content:space-between;border-top:1px solid #ffffff35;box-shadow:0 -3px 18px #0002}.mobile-call span{color:var(--orange)}dialog{padding:10px;max-width:96vw;max-height:88vh}dialog>img{max-height:68vh}.close-dialog{font-size:11px}dialog>p{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.js-reveal{opacity:1;transform:none}}

/* Contact icons */
.contact-copy .big-phone{display:flex;align-items:center;gap:14px}.contact-copy .big-phone>span{margin-left:2px}.contact-copy .email{display:inline-flex;align-items:center;gap:9px}.contact-icon{width:24px;height:24px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.email .contact-icon{width:16px;height:16px}

/* Balanced contact details and directions */
.contact-copy .big-phone{font-size:20px;line-height:1.5;letter-spacing:-.5px;gap:12px}
.contact-copy .big-phone>span{font-size:18px;margin-left:2px}
.contact-copy .email{font-size:15px;line-height:1.5;gap:12px}
.contact-copy .contact-icon,.contact-copy .email .contact-icon{width:18px;height:18px}
.contact-copy .location{font-size:14px;line-height:1.7;padding-left:30px;margin-top:24px}
.contact-copy .location svg{width:18px;height:18px;top:3px}
.contact-copy .route-link{display:inline-flex;align-items:center;gap:10px;margin-left:30px;margin-top:6px;padding:6px 0;font-size:12px;font-weight:600;line-height:1.5;border-bottom:1px solid #252b2860;transition:opacity .2s}
.contact-copy .route-link:hover{opacity:.65}
.contact-copy .route-link>span{font-size:16px}

/* Keep roof decoration clear of stacked approach text. */
@media(max-width:800px){.approach-title>svg{display:none}}
