:root{--ink:#242424;--graphite:#333435;--white:#fffefa;--warm:#f4f1ec;--concrete:#d8d5d0;--sand:#c7b59e;--accent:#b56d54;--sage:#70786d;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--warm);color:var(--ink);font-family:var(--sans);line-height:1.6}a{color:inherit;text-decoration:none}img{display:block;width:100%;object-fit:cover}button{font:inherit;border:0;background:none;color:inherit;cursor:pointer}.site-header{position:absolute;z-index:5;left:0;right:0;top:0;padding:23px 5.5%;display:flex;align-items:center;justify-content:space-between;color:#fff;border-bottom:1px solid rgba(255,255,255,.3);transition:.3s}.site-header.scrolled{position:fixed;padding:15px 5.5%;background:rgba(36,36,36,.95);box-shadow:0 8px 20px rgba(0,0,0,.14)}.brand{display:flex;align-items:center;gap:11px;text-transform:uppercase;font-size:13px;font-weight:700;letter-spacing:.08em}.brand-box{display:grid;place-items:center;width:36px;height:36px;border:1px solid currentColor;font:italic 16px var(--serif);letter-spacing:-.12em}.brand small{display:block;font-size:8px;letter-spacing:.2em;opacity:.7;margin-top:2px}.site-header nav{display:flex;align-items:center;gap:25px;font-size:11px;letter-spacing:.06em}.site-header nav>a:not(.nav-cta){position:relative}.site-header nav>a:not(.nav-cta):after{content:'';position:absolute;bottom:-8px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transition:.3s}.site-header nav>a:hover:after{transform:scaleX(1)}.nav-cta{border:1px solid rgba(255,255,255,.65);padding:11px 15px}.nav-cta:hover{background:#fff;color:var(--ink)}.menu{display:none;color:#fff;border:1px solid rgba(255,255,255,.55);padding:7px 12px;font-size:11px}.hero{min-height:780px;position:relative;background:var(--graphite);color:#fff;overflow:hidden}.hero-image{position:absolute;right:0;top:0;bottom:0;width:68%}.hero-image img{height:100%;filter:saturate(.72)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#242424 0%,rgba(36,36,36,.94) 26%,rgba(36,36,36,.22) 72%,rgba(36,36,36,.12))}.hero-content{position:absolute;z-index:1;left:9%;bottom:15%;max-width:590px}.eyebrow,.section-tag{font-size:10px;letter-spacing:.2em;font-weight:700;text-transform:uppercase}.eyebrow{color:var(--accent);margin:0 0 20px}.hero .eyebrow{color:var(--sand)}.hero h1{font:400 clamp(68px,9vw,134px)/.84 var(--serif);letter-spacing:-.09em;margin:0 0 30px}.hero-lead{font:21px/1.36 var(--serif);color:rgba(255,255,255,.78);max-width:440px}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:36px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-width:187px;padding:15px 18px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:.25s}.button b{font-size:17px}.button.accent{background:var(--accent);color:#fff}.button.light{background:var(--white);color:var(--ink)}.button:hover{transform:translateY(-3px);box-shadow:0 10px 20px rgba(0,0,0,.15)}.hero-phone{font-size:12px;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:3px}.hero-index{position:absolute;right:5%;top:47%;writing-mode:vertical-rl;font-size:10px;letter-spacing:.18em;color:rgba(255,255,255,.65)}.scroll-cue{position:absolute;left:5.5%;bottom:26px;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.7)}.scroll-cue span{font-size:18px;margin-left:13px}.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:25px 7%;background:var(--accent);color:#fff}.trust div{display:flex;align-items:center;gap:14px}.trust strong{font:25px var(--serif);color:var(--sand)}.trust span{font-size:10px;line-height:1.35;letter-spacing:.1em;text-transform:uppercase}.section{padding:125px 8%}.section-tag{color:var(--accent);margin-bottom:64px}.about{background:var(--white)}.about-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:14%;max-width:1120px}.about h2,.section-head h2,.why-title h2,.process h2,.project-types h2,.commercial h2,.faq h2,.contact h2{font:400 clamp(43px,5.4vw,78px)/.97 var(--serif);letter-spacing:-.07em;margin:0}.rule{height:3px;width:60px;background:var(--accent);margin-top:35px}.about-copy{font-size:16px;color:#686862;max-width:470px}.about-copy p{margin-bottom:24px}.text-link{font-size:12px;color:var(--accent);font-weight:700;border-bottom:1px solid currentColor;padding-bottom:3px}.text-link span{margin-left:10px;font-size:16px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:62px}.section-head>p{max-width:350px;color:#6d6c68;font-size:14px}.services{background:var(--warm)}.service-matrix{display:grid;grid-template-columns:36% 64%;max-width:1220px;margin:auto}.service-hero{min-height:555px;background:var(--graphite);color:#fff;padding:52px 11%;display:flex;flex-direction:column;justify-content:flex-end}.service-hero small,.service-list b{font:18px var(--serif);color:var(--sand)}.service-hero h3{font:37px/1.02 var(--serif);font-weight:400;margin:20px 0}.service-hero p{color:rgba(255,255,255,.7);font-size:13px}.service-hero a{font-size:11px;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:3px;width:max-content;margin-top:21px}.service-list{display:grid;grid-template-columns:1fr 1fr;background:var(--white);border-top:1px solid var(--concrete);border-left:1px solid var(--concrete)}.service-list article{display:grid;grid-template-columns:28px 1fr;gap:14px;padding:28px 23px;border-right:1px solid var(--concrete);border-bottom:1px solid var(--concrete);transition:.25s}.service-list article:hover{background:#eeeae4}.service-list h3{font:19px var(--serif);margin:0 0 6px}.service-list p{font-size:12px;color:#74726e;margin:0}.why{background:var(--ink);color:#fff;display:grid;grid-template-columns:37% 1fr;gap:11%}.why-title h2{color:var(--sand);margin-bottom:24px}.why-title>p:last-child{color:rgba(255,255,255,.58);font-size:14px;max-width:335px}.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#4a4a48}.why-grid>div{background:var(--ink);padding:29px 5px 29px 30px}.why-grid span{font:23px var(--serif);color:var(--accent)}.why-grid h3{font:19px var(--serif);font-weight:400;margin:15px 0 6px}.why-grid p{font-size:12px;color:rgba(255,255,255,.55);max-width:185px}.process{background:var(--white)}.process-line{display:grid;grid-template-columns:repeat(6,1fr);position:relative}.process-line:before{content:'';position:absolute;top:13px;left:0;right:0;height:1px;background:var(--concrete)}.process-line article{padding-right:22px}.process-line article:not(:first-child){padding-left:16px}.process-line i{position:relative;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--accent);color:#fff;font-size:9px;font-style:normal;margin-bottom:26px}.process-line h3{font:19px var(--serif);margin:0 0 7px}.process-line p{font-size:11px;line-height:1.45;color:#77756e;max-width:140px}.commercial{display:grid;grid-template-columns:1fr 1fr;background:var(--sage);color:#fff}.commercial-visual{min-height:580px}.commercial-visual img{height:100%}.commercial-copy{align-self:center;padding:11% 13%}.commercial-copy .eyebrow{color:var(--sand)}.commercial h2{margin-bottom:24px}.commercial-copy p:not(.eyebrow){font-size:14px;color:rgba(255,255,255,.73)}.commercial-copy .button{margin-top:22px}.project-types{display:grid;grid-template-columns:1fr 1fr;padding:0;background:var(--sand)}.type-copy{padding:105px 14%}.project-types h2{margin-bottom:24px}.type-copy>p:not(.eyebrow){max-width:350px;color:#655f58;font-size:14px}.type-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:29px}.type-tags span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;border:1px solid #a99c8e;padding:8px 10px}.type-image{min-height:570px}.type-image img{height:100%}.gallery{background:var(--warm)}.gallery-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;grid-auto-rows:250px;gap:13px}.gallery-item{position:relative;overflow:hidden;padding:0;text-align:left;background:var(--graphite)}.gallery-item.large{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.gallery-item img{height:100%;transition:.55s}.gallery-item:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.72));opacity:.8}.gallery-item span{position:absolute;z-index:1;bottom:16px;left:18px;color:#fff;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.gallery-item:hover img{transform:scale(1.06)}.reviews{background:var(--white)}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.review-grid blockquote{margin:0;padding:30px;background:var(--warm);min-height:235px}.review-grid q{display:block;font:20px/1.3 var(--serif)}.review-grid cite{display:block;margin-top:25px;color:#817c74;font-size:10px;font-style:normal;text-transform:uppercase;letter-spacing:.09em}.faq{display:grid;grid-template-columns:39% 61%;background:var(--concrete)}.faq-list{border-top:1px solid #aaa8a3}.faq details{border-bottom:1px solid #aaa8a3;padding:17px 0}.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;font:19px var(--serif)}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-family:var(--sans);font-size:22px}.faq details[open] summary:after{content:'−'}.faq details p{font-size:13px;color:#5f5e5b;max-width:570px;margin:12px 0 2px}.cta{background:var(--graphite);color:#fff;text-align:center;padding:120px 8%;position:relative;overflow:hidden}.cta:before{content:'';position:absolute;width:370px;height:370px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:10%;top:-110px}.cta .eyebrow{color:var(--sand);position:relative}.cta h2{position:relative;font:400 clamp(58px,8vw,116px)/.87 var(--serif);letter-spacing:-.08em;margin:0 auto 26px}.cta>p:not(.eyebrow){position:relative;color:rgba(255,255,255,.65);max-width:430px;margin:0 auto 31px;font-size:15px}.cta>div:last-child{position:relative;display:flex;align-items:center;justify-content:center;gap:30px}.cta-phone{font-size:12px;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:3px}.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:12%;background:var(--white)}.contact h2{margin-bottom:24px}.contact-details>p:not(.eyebrow){max-width:350px;color:#6e6d68;font-size:14px}.contact-details address,.contact-details>a{display:block;font-size:13px;font-style:normal;margin-top:12px;width:max-content}.contact-details address{margin-top:34px;line-height:1.6}.contact-details>a:not(.map-link){border-bottom:1px solid var(--concrete);padding-bottom:2px}.map-link{color:var(--accent);font-size:12px;margin-top:22px}.form-box{background:var(--warm);padding:40px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}form label{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:20px}input,select,textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--concrete);background:transparent;padding:10px 0;font:16px var(--serif);outline:none;color:var(--ink)}input:focus,select:focus,textarea:focus{border-bottom-color:var(--accent);box-shadow:0 2px 0 var(--accent)}textarea{resize:vertical}.form-box .button{border:0;margin-top:2px}.form-box small{display:block;color:#88857e;font-size:10px;margin-top:14px}.success{display:none;color:var(--sage);font:24px var(--serif);padding:30px 0}.error-message{color:#b34e3b;font-size:11px;text-transform:none;letter-spacing:0;margin-top:4px}.map{height:335px;background:#d1d0cc}.map iframe{width:100%;height:100%;border:0;filter:grayscale(.9) contrast(.9)}footer{background:var(--ink);color:#fff;padding:70px 8% 27px;display:grid;grid-template-columns:1.45fr 1fr;gap:65px}.footer-info{display:flex;flex-direction:column;align-items:flex-start;max-width:350px}.footer-info .brand{margin-bottom:21px}.footer-info p{color:rgba(255,255,255,.56);font-size:13px}.footer-info address,.footer-info>a:not(.brand){font-size:12px;color:rgba(255,255,255,.72);font-style:normal;margin-top:6px}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:45px;max-width:275px}.footer-nav div{display:flex;flex-direction:column;gap:12px}.footer-nav a{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.7)}.footer-nav a:hover{color:var(--sand)}.copyright{grid-column:1/-1;border-top:1px solid #464745;padding-top:20px;color:#898a84;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.lightbox{display:none;position:fixed;z-index:20;inset:0;background:rgba(20,20,20,.94);padding:6vh 8vw}.lightbox.open{display:grid;place-items:center}.lightbox img{max-height:88vh;object-fit:contain}.lightbox button{position:absolute;right:28px;top:13px;color:#fff;font-size:44px}.reveal{opacity:0;transform:translateY(20px);transition:.7s}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.site-header{padding:18px 5%}.menu{display:block}.site-header nav{display:none;position:absolute;top:70px;left:5%;right:5%;padding:23px;background:var(--ink);flex-direction:column;align-items:flex-start}.site-header nav.open{display:flex}.hero{min-height:745px}.hero-image{width:100%}.hero-overlay{background:linear-gradient(90deg,rgba(36,36,36,.88),rgba(36,36,36,.23))}.hero-content{left:8%;bottom:18%}.section{padding:88px 7%}.about-layout,.why,.faq,.contact{grid-template-columns:1fr;gap:50px}.service-matrix,.commercial,.project-types{grid-template-columns:1fr}.service-hero{min-height:370px}.commercial-visual,.type-image{min-height:380px}.commercial-copy,.type-copy{padding:76px 9%}.process-line{grid-template-columns:1fr 1fr;gap:23px}.process-line:before{display:none}.process-line article:not(:first-child){padding-left:0}.review-grid{grid-template-columns:1fr}footer{grid-template-columns:1fr;gap:40px}.copyright{grid-column:auto}}@media(max-width:560px){.hero h1{font-size:69px}.hero-actions{align-items:flex-start;flex-direction:column}.trust{grid-template-columns:1fr 1fr;gap:16px 8px}.section-head{display:block}.section-head>p{margin-top:20px}.service-list{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:240px}.gallery-item.large,.gallery-item.wide{grid-column:auto;grid-row:auto}.form-box{padding:24px}.form-row{grid-template-columns:1fr}.cta>div:last-child{flex-direction:column}.footer-nav{max-width:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}
