:root{--ink:#182523;--ink-2:#293a36;--paper:#f5f2ec;--white:#fff;--line:#d7d8d1;--muted:#5d6863;--accent:#d3bb8a;--serif:"Iowan Old Style",Baskerville,"Times New Roman",serif;--sans:"Avenir Next",Avenir,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6rem}
body{margin:0;color:var(--ink);background:#fff;font:400 1rem/1.58 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
:focus-visible{outline:3px solid #9d865b;outline-offset:4px}
.skip-link{position:absolute;left:1rem;top:-4rem;background:#fff;color:#111;padding:.6rem 1rem;z-index:100}
.skip-link:focus{top:1rem}
.wrap{width:min(100% - 3rem,1240px);margin-inline:auto}
.site-header{background:#111c1b;color:#fff;position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(255,255,255,.12)}
.header-inner{height:79px;display:flex;align-items:center;gap:2.5rem}
.brand{display:inline-flex;align-items:center;flex:none}.brand img{width:123px;height:auto;mix-blend-mode:screen}
.main-nav{display:flex;gap:2.15rem;margin-left:auto;align-items:center}
.main-nav a{font-size:.88rem;letter-spacing:.02em;color:#e7eae6;transition:color .2s}.main-nav a:hover{color:var(--accent)}
.header-cta{border:1px solid #c7b389;padding:.7rem 1rem;display:inline-flex;gap:1.2rem;align-items:center;font-size:.88rem;font-weight:650;white-space:nowrap;transition:background .2s,color .2s}
.header-cta:hover{background:var(--accent);color:var(--ink)}
.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:48% 52%;background:var(--ink);color:#fff;min-height:660px}
.hero-copy{display:flex;align-items:center;justify-content:flex-end;padding:5.5rem 4.5rem 4.5rem max(1.5rem,calc((100vw - 1240px)/2))}
.hero-copy-inner{width:min(100%,570px)}
.eyebrow{font-size:.77rem;letter-spacing:.17em;font-weight:720;line-height:1.4;color:#687b72;text-transform:uppercase;margin:0 0 1.15rem}.eyebrow.light{color:var(--accent)}
h1,h2,h3,p,figure{margin-top:0}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.037em;line-height:1.07}
h1{font-size:clamp(3.5rem,5vw,6rem);max-width:660px;margin-bottom:1.55rem}
h1 em,h2 em{font-weight:400;color:var(--accent)}
h2{font-size:clamp(2.65rem,4vw,4.25rem);margin-bottom:1.4rem}
h3{font-family:var(--serif);font-weight:400;line-height:1.13;letter-spacing:-.025em}
.hero-intro{max-width:530px;color:#d4ddd6;font-size:1.12rem;line-height:1.7;margin-bottom:2.1rem}
.hero-actions{display:flex;align-items:center;gap:2.2rem;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2.2rem;padding:1rem 1.3rem;font-size:.94rem;font-weight:700;border:1px solid transparent;min-height:54px;transition:transform .2s,background .2s,color .2s}
.button:hover{transform:translateY(-2px)}.button-light{background:var(--paper);color:var(--ink)}.button-light:hover{background:#e2d3b7}
.text-link{font-weight:650;font-size:.92rem;display:inline-flex;gap:.8rem;align-items:center;border-bottom:1px solid;padding-bottom:.3rem}.light-link{color:#e3e9e5;border-color:#8b9b91}
.hero-foot{font-size:.79rem;letter-spacing:.02em;color:#aebbb2;margin:4.2rem 0 0}.hero-foot span{padding:0 .5rem;color:var(--accent)}
.hero-image{position:relative;min-height:560px;overflow:hidden;margin:0}
.hero-image img{height:100%;width:100%;position:absolute;inset:0;object-fit:cover;object-position:48% center}
.hero-image:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.35))}
.hero-image figcaption{position:absolute;bottom:2rem;right:2.6rem;color:#fff;z-index:1;font-family:var(--serif);font-style:italic;font-size:1.16rem;text-shadow:0 1px 6px #0008}
.section-space{padding-block:6.5rem}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:2.5rem}
.section-head>p{max-width:400px;color:var(--muted);margin:0 0 .4rem}
.section-head h2{margin-bottom:0;max-width:700px}
.section-head.narrow{display:block;max-width:790px}.section-head.narrow p:not(.eyebrow){margin:.8rem 0 0;color:var(--muted);max-width:650px}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.choice-card{min-height:300px;padding:2.4rem;display:flex;flex-direction:column;border:1px solid var(--line);background:#fff;transition:background .2s,border-color .2s,transform .2s}
.choice-card:hover{background:var(--paper);border-color:#aeb4a6;transform:translateY(-3px)}
.choice-no{font-size:.78rem;font-weight:750;letter-spacing:.12em;color:#6a776e}.choice-card h3{font-size:2.3rem;margin:1.8rem 0 .8rem}.choice-card p{max-width:450px;color:var(--muted);margin:0 0 1.7rem}.choice-link{font-size:.9rem;font-weight:750;margin-top:auto;display:flex;justify-content:space-between;max-width:240px;border-bottom:1px solid #687b72;padding-bottom:.45rem}
.work{background:var(--paper)}.work-head{align-items:end}.work-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1rem}
.work-card{margin:0;position:relative;overflow:hidden;aspect-ratio:4/5;background:#d9d6d0}.work-card-tall{aspect-ratio:4/5}
.work-card img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.work-card:hover img{transform:scale(1.035)}
.work-card:nth-child(1) img{object-position:center}.work-card:nth-child(2) img{object-position:55% center}.work-card:nth-child(3) img{object-position:55% center}
.work-card:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#091b19a8)}
.work-card figcaption{position:absolute;z-index:1;bottom:1.6rem;left:1.6rem;color:#fff;display:flex;flex-direction:column;line-height:1.4;text-shadow:0 1px 5px #0005}
.work-card strong{font:400 1.7rem/1.1 var(--serif)}.work-card span{font-size:.82rem;margin-top:.3rem}
.underlined-link{display:inline-flex;align-items:center;gap:2.5rem;font-weight:700;font-size:.92rem;border-bottom:1px solid;padding:.35rem 0;margin-top:2rem}.underlined-link:hover{color:#566f63}
.services-head{align-items:end}.service-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:6% 1fr 28%;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line);scroll-margin-top:6rem}
.service-number{font-size:.82rem;color:#718078}.service-row h3{font-size:2.2rem;margin:0 0 .5rem}.service-row p{color:var(--muted);max-width:570px;margin:0}.service-row ul{padding:0;margin:0;list-style:none;color:var(--ink-2);font-size:.94rem;line-height:1.9}
.service-link{display:inline-flex;gap:1rem;align-items:center;margin-top:.8rem;padding-bottom:.2rem;border-bottom:1px solid #637b6a;color:#2e5840;font-weight:700;font-size:.91rem}.service-link:hover{color:#162f23}
.approach{background:var(--ink);color:#fff}.approach-head p{color:#b5c4ba}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;list-style:none;padding:2rem 0 0;margin:0;border-top:1px solid #5b6a62}.steps li{padding-right:1rem}.steps li>span{color:var(--accent);font:400 1.6rem var(--serif)}.steps h3{font-size:1.62rem;margin:2.8rem 0 .7rem}.steps p{color:#bdc9bf;font-size:.94rem;line-height:1.65;margin:0}
.about{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start}.about h2{max-width:520px}.about h2 em{color:#7c8d76}.about-details{padding-top:2rem}.about-details p{font-size:1.08rem;line-height:1.85;color:#45534d}.local-pills{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2rem}.local-pills span{border:1px solid #c9d1ca;color:#44554c;font-size:.82rem;padding:.44rem .8rem;border-radius:30px}
.faq{background:#f5f6f2}.faq-grid{display:grid;grid-template-columns:36% 1fr;gap:10%}.faq-intro{color:var(--muted);max-width:350px}.faq-list{border-top:1px solid #cbd3ca}.faq-list details{border-bottom:1px solid #cbd3ca;padding:1.2rem 0}.faq-list summary{font-weight:650;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:start;gap:1rem}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";font:400 1.6rem/1 var(--serif)}.faq-list details[open] summary:after{content:"−"}.faq-list details p{max-width:650px;color:var(--muted);margin:.85rem 2rem .3rem 0;line-height:1.7}
.contact{background:#1c302b;color:#fff}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start}.contact-copy{padding-top:1.4rem}.contact-copy h2{max-width:580px}.contact-copy>p:not(.eyebrow){color:#cad6ce;max-width:480px;font-size:1.05rem;line-height:1.75}.contact-direct{display:flex;flex-direction:column;gap:1rem;margin-top:3rem}.contact-direct a{width:fit-content;border-bottom:1px solid #84998b;padding-bottom:.3rem;font-weight:650}.contact-direct span{padding-left:2rem}.contact-direct a:hover{color:var(--accent)}
.project-form{background:#f9f8f4;color:var(--ink);padding:2.5rem;box-shadow:0 20px 35px #0c231c22}.project-form h3{font-size:2rem;margin:0 0 .25rem}.project-form>p{color:var(--muted);font-size:.91rem}.form-row{display:flex;flex-direction:column;margin-top:1.1rem}.form-row label{font-size:.87rem;font-weight:650;margin-bottom:.35rem}.form-row input,.form-row select,.form-row textarea{width:100%;border:1px solid #cbd2ca;background:#fff;color:#1c302b;border-radius:0;padding:.75rem .8rem;min-height:46px;font-size:.95rem}.form-row textarea{resize:vertical}.form-row input::placeholder,.form-row textarea::placeholder{color:#78847c}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.button-dark{background:var(--ink);color:#fff;width:100%;margin-top:1.5rem}.button-dark:hover{background:#3c5549}.project-form .form-note{font-size:.76rem;line-height:1.5;color:#66736a;margin:1rem 0 0}
.site-footer{background:#101b1a;color:#edf1ec;padding:4.5rem 0 1.3rem}.footer-top{display:grid;grid-template-columns:1.6fr .7fr 1.3fr .7fr;gap:2.5rem}.footer-top img{width:123px;mix-blend-mode:screen}.footer-top p{color:#9dab9f;font-size:.92rem;line-height:1.6;margin-top:1.5rem}.footer-top h3{font:700 .79rem var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin:0 0 1.1rem}.footer-top a{display:block;color:#d6dfd8;font-size:.88rem;line-height:1.9}.footer-top a:hover{text-decoration:underline}.footer-top address{font-size:.88rem;line-height:1.7;font-style:normal;color:#d6dfd8;margin-bottom:.7rem}.footer-bottom{border-top:1px solid #45534e;margin-top:4rem;padding-top:1.2rem;display:flex;justify-content:space-between;color:#9dab9f;font-size:.76rem}
@media(max-width:1050px){.header-inner{gap:1.4rem}.main-nav{gap:1rem}.hero-copy{padding-right:2.5rem}.hero{grid-template-columns:50% 50%}.hero-foot{margin-top:3rem}.section-space{padding-block:5.2rem}.footer-top{grid-template-columns:1fr 1fr;row-gap:2.5rem}}
@media(max-width:760px){.wrap{width:min(100% - 2rem,600px)}.header-inner{height:66px}.brand img{width:105px}.header-cta{margin-left:auto;padding:.5rem .65rem;font-size:.76rem;gap:.4rem}.menu-toggle{display:inline-flex;gap:.3rem;align-items:center;background:none;border:0;color:#fff;font-size:.84rem;padding:.5rem 0}.main-nav{display:none;position:absolute;top:66px;left:0;right:0;background:#111c1b;border-top:1px solid #44534b;padding:1rem;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 15px 20px #0003}.main-nav.open{display:flex}.main-nav a{padding:.65rem .5rem;font-size:1rem}.hero{display:flex;flex-direction:column}.hero-copy{padding:4rem 1.5rem 3rem;justify-content:center}.hero-copy-inner{width:min(100%,600px)}.hero-image{min-height:420px;max-height:550px;aspect-ratio:4/3}.hero-image figcaption{right:1.3rem;bottom:1.3rem}.hero-foot{margin-top:2.5rem}.section-space{padding-block:4.4rem}.section-head,.services-head,.approach-head{display:block}.section-head>p{margin-top:1.1rem}.choice-grid,.contact-grid,.about,.faq-grid{grid-template-columns:1fr;gap:1rem}.choice-card{min-height:260px;padding:1.8rem}.choice-card h3{margin-top:1.3rem}.work-grid{grid-template-columns:1fr 1fr}.work-card-tall{grid-row:span 2;aspect-ratio:auto}.work-card{aspect-ratio:1}.work-card figcaption{left:1rem;bottom:1rem}.work-card strong{font-size:1.3rem}.service-row{grid-template-columns:2rem 1fr;gap:1rem}.service-row ul{grid-column:2}.steps{grid-template-columns:1fr 1fr;row-gap:2rem}.steps h3{margin-top:1.4rem}.about-details{padding-top:0}.faq-list{margin-top:2rem}.contact-grid{gap:2.5rem}.contact-copy{padding:0}.contact-direct{margin-top:2rem}.project-form{padding:1.6rem}}
@media(max-width:480px){h1{font-size:3.65rem}h2{font-size:2.65rem}.hero-copy{padding:3.5rem 1rem 2.6rem}.hero-intro{font-size:1.03rem}.hero-actions{gap:1.5rem}.hero-foot{line-height:1.8}.hero-foot span{padding:0 .25rem}.hero-image{min-height:350px}.choice-grid{gap:.7rem}.work-grid{grid-template-columns:1fr}.work-card,.work-card-tall{grid-row:auto;aspect-ratio:4/3}.service-row h3{font-size:1.85rem}.steps{grid-template-columns:1fr 1fr;gap:1.5rem}.steps h3{font-size:1.4rem}.steps p{font-size:.87rem}.form-pair{grid-template-columns:1fr;gap:0}.footer-top{grid-template-columns:1fr 1fr;gap:2rem}.footer-top>div:first-child,.footer-top>div:nth-child(3){grid-column:span 2}.footer-bottom{gap:1rem;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.logo-frame{display:block;position:relative;overflow:hidden;width:130px;height:62px;flex:none}
.logo-frame img,.brand .logo-frame img,.footer-top .logo-frame img{position:absolute;left:-52.5px;top:-7.5px;width:230px;height:auto;max-width:none;mix-blend-mode:screen}
@media(max-width:760px){.header-inner .logo-frame{width:112px;height:53px}.header-inner .logo-frame img{width:197px;left:-44.5px;top:-6px}}
.hero-image img{object-position:50% 49%}
.gallery-accordion{border-top:1px solid #b9c2b7}
.gallery-category{border-bottom:1px solid #b9c2b7}
.gallery-category summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 0;cursor:pointer;color:var(--ink);font:400 clamp(1.7rem,2.5vw,2.25rem)/1.2 var(--serif)}
.gallery-category summary::-webkit-details-marker{display:none}
.gallery-category summary:hover{color:#536a5d}
.gallery-category summary:focus-visible{outline:2px solid #536a5d;outline-offset:3px}
.gallery-chevron{display:grid;place-items:center;flex:none;width:2.4rem;height:2.4rem;border:1px solid #a9b5a7;border-radius:50%;transition:transform .2s}
.gallery-chevron svg{display:block;width:1.2rem;height:1.2rem}
.gallery-category[open] .gallery-chevron{transform:rotate(180deg)}
.gallery-grid{columns:3;column-gap:1rem;padding-bottom:1.5rem}.gallery-grid-office{columns:3}
.gallery-card{display:block;break-inside:avoid;width:100%;margin:0 0 1rem;padding:0;border:1px solid #d7d9d2;background:#fff;color:var(--ink);overflow:hidden}
.gallery-card img{display:block;width:100%;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.gallery-card figcaption{display:block;padding:.76rem 1rem .88rem;font-size:.87rem;font-weight:650}
@media(max-width:900px){.gallery-grid{columns:2}.gallery-grid-office{columns:2}}
@media(max-width:600px){.gallery-grid,.gallery-grid-office{columns:1}.gallery-category summary{min-height:64px;padding:1rem 0}.gallery-card{margin-bottom:.8rem}}
.main-nav .nav-contact{display:none}
@media(max-width:760px){.header-cta{display:none}.menu-toggle{margin-left:auto;min-height:44px;padding:.5rem .35rem}.main-nav .nav-contact{display:block;border-top:1px solid #44534b;margin-top:.45rem;padding-top:.85rem;color:var(--accent)}}

.subhero{display:grid;grid-template-columns:52% 48%;min-height:560px;background:var(--ink);color:#fff}.subhero-copy{display:flex;justify-content:flex-end;align-items:center;padding:4.5rem 4.5rem 4.5rem max(1.5rem,calc((100vw - 1240px)/2))}.subhero-inner{width:min(100%,620px)}.subhero h1{font-size:clamp(3.25rem,4.6vw,5.6rem)}.subhero-image{position:relative;min-height:470px;margin:0;overflow:hidden}.subhero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.breadcrumb{display:flex;align-items:center;gap:.7rem;padding-block:1.2rem;color:#65756c;font-size:.83rem}.breadcrumb a{text-decoration:underline;text-underline-offset:3px}.breadcrumb span:last-child{color:var(--ink)}
.subsection{display:grid;grid-template-columns:.84fr 1.16fr;gap:9%;align-items:start}.subsection-lead>p:not(.eyebrow),.subfeature-grid>div>p:not(.eyebrow){color:var(--muted);font-size:1.05rem;line-height:1.8;max-width:600px}.subsection-list h3{font-size:2rem;margin:0 0 1.2rem}.subitems{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.subitems article{border-top:1px solid var(--line);padding:1.1rem 1rem .8rem 0}.subitems h3{font-size:1.42rem;margin:0 0 .6rem}.subitems p{color:var(--muted);margin:0;font-size:.91rem;line-height:1.7}
.subfeature{background:var(--paper);padding-block:5.5rem}.subfeature-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.subfeature figure{margin:0}.subfeature img{width:100%;max-height:570px;object-fit:cover}.subfeature figcaption{font-size:.82rem;color:var(--muted);padding-top:.7rem}.subfeature .underlined-link{margin-top:1.5rem}.subfaq{display:grid;grid-template-columns:35% 1fr;gap:10%}.subcta{background:#1c302b;color:#fff;padding-block:5.5rem}.subcta .wrap{max-width:990px}.subcta p:not(.eyebrow){color:#cad6ce;max-width:690px;font-size:1.05rem;line-height:1.75;margin-bottom:2rem}.subcta h2{max-width:750px}
@media(max-width:900px){.subhero{grid-template-columns:1fr 1fr}.subhero-copy{padding:3.5rem 2rem}.subsection{gap:5%}.subfeature-grid{gap:5%}}
@media(max-width:760px){.subhero{display:flex;flex-direction:column}.subhero-copy{padding:3.5rem 1.5rem 3rem}.subhero-inner{width:min(100%,600px);margin-inline:auto}.subhero-image{height:clamp(280px,65vw,470px);min-height:0}.subsection,.subfeature-grid,.subfaq{grid-template-columns:1fr;gap:2rem}.subsection-lead>p:not(.eyebrow){max-width:650px}.subfeature{padding-block:4rem}.subfeature-grid figure{max-width:600px}.subfaq .faq-list{margin-top:0}.subcta{padding-block:4.5rem}}
@media(max-width:480px){.subhero h1{font-size:clamp(2.7rem,12vw,3.5rem)}.subhero-copy{padding:3rem 1rem}.subitems{grid-template-columns:1fr;gap:0}.subfeature img{max-height:420px}.subcta .hero-actions{align-items:flex-start}.subcta .button{width:100%}}
