: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}
.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;text-align:left;color:var(--ink);cursor:zoom-in;overflow:hidden;transition:box-shadow .2s,transform .2s}
.gallery-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #1b2c2422}.gallery-card img{display:block;width:100%;height:auto;max-width:none}.gallery-card span{display:block;padding:.76rem 1rem .88rem;font-size:.87rem;font-weight:650}
.gallery-dialog{border:0;padding:0;background:#101b1a;color:#fff;width:min(95vw,1250px);height:min(94vh,900px);max-width:none;max-height:none;overflow:hidden;box-shadow:0 24px 80px #0009}.gallery-dialog::backdrop{background:#07110fe6}
.gallery-dialog figure{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.9rem;margin:0;padding:3.2rem 4.5rem 2.3rem;height:100%;width:100%}.gallery-dialog figure img{width:auto;height:auto;max-width:100%;max-height:calc(100% - 2.6rem);object-fit:contain;min-height:0}.gallery-dialog figcaption{font-size:.9rem;color:#d8e0d8;text-align:center;line-height:1.3}
.gallery-close,.gallery-arrow{position:absolute;z-index:1;background:#101b1ad9;color:#fff;border:1px solid #b5c3b7;padding:.5rem .8rem;font-size:.93rem}.gallery-close{right:1rem;top:1rem}.gallery-close span{font-size:1.3rem;margin-left:.45rem;line-height:0}.gallery-arrow{top:50%;transform:translateY(-50%);border-radius:50%;width:2.7rem;height:2.7rem;display:grid;place-items:center;padding:0;font-size:1.8rem;line-height:1}.gallery-prev{left:1rem}.gallery-next{right:1rem}.gallery-close:hover,.gallery-arrow:hover{background:#42584e}
@media(max-width:900px){.gallery-grid{columns:2}.gallery-grid-office{columns:2}}
@media(max-width:600px){.gallery-grid{columns:1}.gallery-grid-office{columns:1}.gallery-dialog{width:100vw;height:100dvh}.gallery-dialog figure{padding:4rem 1rem 4rem}.gallery-dialog figure img{max-height:calc(100% - 1.8rem)}.gallery-arrow{top:auto;bottom:.75rem;transform:none}.gallery-prev{left:1rem}.gallery-next{right:1rem}}
.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)}}
