:root{--ink:#173c32;--green:#183e32;--deep:#102f26;--lime:#c6d889;--paper:#f7f8f3;--muted:#58675e;--line:#d7ded2;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;height:auto}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #879e43;outline-offset:6px}.skip{position:fixed;top:-100px;left:10px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.wrap{max-width:1440px;margin:auto;padding:0 5%}.topbar{background:var(--green);color:#e7eedb;font-size:.875rem}.topbar .wrap{display:flex;justify-content:space-between;gap:20px;padding-top:9px;padding-bottom:9px}.topbar a{font-weight:600;white-space:nowrap}.header{position:relative;background:var(--paper);z-index:5}.nav{min-height:114px;display:flex;align-items:center;gap:32px;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;line-height:1.2}.brand img{width:73px;height:52px;object-fit:contain}.brand-text{display:flex;flex-direction:column}.brand-text strong{font-family:var(--serif);font-weight:400;font-size:1.65rem;letter-spacing:-.02em}.brand-text span{font-size:.8rem;letter-spacing:.25em;text-transform:uppercase;margin-top:5px}.desktop-nav{display:flex;gap:30px;align-items:center;font-size:.925rem}.desktop-nav>a{padding:8px 0}.desktop-nav>a:hover,.desktop-nav>[aria-current=page]{color:#5b7131}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--green);color:#fff;padding:16px 25px;font-size:.9375rem;font-weight:600;border:1px solid var(--green);border-radius:3px;transition:background .2s,transform .2s}.button:hover{background:#2e5341;transform:translateY(-2px)}.button.light{background:var(--lime);color:var(--deep);border-color:var(--lime)}.button.light:hover{background:#d5e5a3}.text-link{display:inline-flex;align-items:center;gap:20px;font-weight:600;font-size:.9375rem;padding:11px 0;border-bottom:1px solid currentColor}.text-link:hover{color:#67803b}.nav-cta{padding:13px 19px!important}.mobile-menu{display:none}.eyebrow{font-size:.8125rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;margin:0 0 22px;color:#526c44}.hero{padding-top:20px;padding-bottom:75px;display:grid;grid-template-columns:.96fr 1.04fr;gap:5.2%;align-items:center}.hero-copy{padding:18px 0 36px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.09;letter-spacing:-.04em}h1{font-size:clamp(3.2rem,5.2vw,5.35rem);margin-bottom:29px}h1 em,h2 em{font-weight:400;color:#627d3b}.hero p.lede{max-width:450px;color:var(--muted);font-size:1.125rem;line-height:1.75;margin-bottom:29px}.actions{display:flex;align-items:center;gap:27px;flex-wrap:wrap}.hero-photo{margin:0;position:relative;align-self:stretch;min-height:570px}.hero-photo img{height:100%;position:absolute;inset:0;object-fit:cover;object-position:50% 42%;border-radius:90px 3px 3px 3px}.hero-photo figcaption{position:absolute;bottom:20px;left:22px;right:22px;background:rgba(248,249,243,.95);padding:17px 19px;display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:.875rem}.hero-photo figcaption span:first-child{display:flex;flex-direction:column}.hero-photo figcaption small{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.hero-photo figcaption b{font-weight:500}.hero-photo figcaption a{font-size:1.5rem;padding:0 8px}.service-strip{background:#e9eedf}.service-strip .wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 34px;padding-top:23px;padding-bottom:23px;font-size:.875rem}.service-strip span{white-space:nowrap}.section{padding-top:100px;padding-bottom:100px}.intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:start}h2{font-size:clamp(2.6rem,4vw,4rem);margin-bottom:25px}.intro-copy{padding-top:33px;font-size:1.05rem;color:var(--muted)}.intro-copy p:last-child{margin-bottom:0}.services{background:var(--green);color:var(--paper)}.services .eyebrow{color:var(--lime)}.services-head{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:end}.services-head>p{color:#d0dbce;max-width:410px;margin-bottom:31px}.services h2 em{color:var(--lime)}.service-grid{margin-top:42px;display:grid;grid-template-columns:1fr 1fr;gap:0 7%}.service-grid details{border-top:1px solid #4a6859}.service-grid details:last-child,.service-grid details:nth-last-child(2){border-bottom:1px solid #4a6859}.service-grid summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px;list-style:none;padding:23px 0;font-family:var(--serif);font-size:1.55rem;letter-spacing:-.02em}.service-grid summary::-webkit-details-marker{display:none}.service-grid summary::after{content:'+';font-family:var(--sans);font-weight:400;font-size:1.5rem;color:var(--lime)}.service-grid details[open] summary::after{content:'−'}.service-grid details p{color:#d0dbce;max-width:470px;padding-right:30px;margin-bottom:23px}.section-heading{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:35px}.section-heading h2{margin-bottom:0}.section-heading .text-link{margin-bottom:8px;white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.project-card{margin:0}.project-card .photo-link{display:block;overflow:hidden;background:#e6e8df;border-radius:3px}.project-card img{aspect-ratio:4/4.3;object-fit:cover;transition:transform .6s}.project-card a:hover img{transform:scale(1.035)}.project-card figcaption{padding-top:19px}.project-card h3{font-size:1.8rem;margin:4px 0 5px}.project-card p{font-size:.9rem;color:var(--muted);margin-bottom:0}.project-card .category{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;color:#5b7131}.about{background:#e9eedf}.about-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:9%}.about-photo img{aspect-ratio:4/3;object-fit:cover;border-radius:3px 70px 3px 3px}.about-copy>p{color:var(--muted)}.principles{display:grid;gap:19px;margin-top:26px}.principles div{display:grid;grid-template-columns:28px 1fr;gap:11px}.principles div>span{font-size:1.2rem}.principles b{display:block;font-size:1rem}.principles p{color:var(--muted);margin-bottom:0;font-size:.95rem}.contact{background:var(--deep);color:var(--paper)}.contact .eyebrow{color:var(--lime)}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:10%;align-items:center}.contact h2{max-width:620px}.contact h2 em{color:var(--lime)}.contact p{color:#d0dbce;max-width:460px}.contact-links{display:grid;gap:12px}.contact-links a{font-size:clamp(1rem,2.3vw,1.7rem);overflow-wrap:anywhere;padding-bottom:16px;border-bottom:1px solid #3e594a}.contact-links a:first-child{font-size:clamp(1.8rem,3.5vw,3rem);letter-spacing:-.03em}.contact-links a:hover{color:var(--lime)}.contact-links .hours{font-size:.875rem;line-height:1.9;margin-top:11px;max-width:none}.footer{background:var(--deep);color:#c7d3c7;padding:28px 0 35px;border-top:1px solid #344f41;font-size:.8125rem}.footer .wrap{display:flex;justify-content:space-between;gap:24px;align-items:center}.footer nav{display:flex;gap:25px}.gallery-header{padding-top:50px;padding-bottom:65px;max-width:900px;text-align:center;margin:auto}.gallery-header h1{font-size:clamp(3.1rem,5.5vw,5.7rem)}.gallery-header .lede{color:var(--muted);font-size:1.1rem;max-width:660px;margin:0 auto}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 24px}.gallery-item{margin:0}.gallery-item a{display:block;overflow:hidden;background:#e4e9de;border-radius:3px}.gallery-item img{aspect-ratio:4/3;object-fit:cover;transition:transform .6s}.gallery-item a:hover img{transform:scale(1.025)}.gallery-item figcaption{font-size:.875rem;margin-top:10px;color:var(--muted)}.gallery-intro{font-size:.875rem;color:var(--muted);text-align:center;margin-bottom:35px}.more-photos{margin-top:55px}.more-photos>summary{cursor:pointer;font-size:1rem;font-weight:600;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.more-photos .gallery-grid{margin-top:30px}.back-link{display:inline-flex;margin-top:40px}.notfound{min-height:60vh;padding:100px 5%;text-align:center}@media(min-width:1600px){.hero-photo{min-height:650px}}@media(max-width:1050px){.desktop-nav{gap:18px}.nav{gap:20px}.brand-text strong{font-size:1.35rem}.brand img{width:59px}.desktop-nav>a{font-size:.875rem}.hero{gap:4%}.hero-photo{min-height:540px}h1{font-size:4.1rem}.section{padding-top:80px;padding-bottom:80px}.brand-text span{font-size:.7rem}.nav-cta{gap:15px;padding:11px 15px!important}}@media(max-width:800px){.wrap{padding-left:6%;padding-right:6%}.topbar{font-size:.75rem}.topbar .wrap{gap:10px}.nav{min-height:90px}.brand-text strong{font-size:1.45rem}.brand-text span{font-size:.7rem}.brand img{width:62px}.desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu summary{list-style:none;cursor:pointer;border:1px solid var(--line);padding:9px 12px;border-radius:3px;font-size:.875rem}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;left:0;right:0;top:100%;background:var(--paper);box-shadow:0 10px 15px #102f2615;display:grid;padding:15px 6% 22px;gap:6px}.mobile-menu nav a{padding:10px 0}.mobile-menu nav .button{padding:12px 20px;margin-top:8px}.hero{grid-template-columns:1fr;padding-top:24px;gap:33px;padding-bottom:40px}.hero-copy{padding:0}.hero h1{font-size:clamp(3.25rem,8.8vw,5.5rem);max-width:600px}.hero .eyebrow{font-size:.75rem;margin-bottom:18px}.hero p.lede{max-width:580px;font-size:1rem;margin-bottom:24px}.hero-photo{min-height:0;aspect-ratio:5/4;max-height:620px}.hero-photo img{border-radius:65px 3px 3px 3px}.hero-photo figcaption{bottom:15px;left:15px;right:15px;padding:12px 15px}.service-strip .wrap{gap:7px 21px;padding-top:18px;padding-bottom:18px;font-size:.8rem}.section{padding-top:64px;padding-bottom:64px}.intro-grid,.services-head,.about-grid,.contact-grid{grid-template-columns:1fr;gap:26px}.intro-copy{padding-top:0}.intro-grid h2{margin-bottom:0}.services-head>p{margin:0;max-width:580px}.services-head h2{margin-bottom:0}.service-grid{gap:0 30px;margin-top:32px}.service-grid summary{font-size:1.3rem;padding:19px 0}.project-grid{gap:17px}.project-card h3{font-size:1.4rem}.project-card p{font-size:.875rem}.section-heading{gap:20px}.section-heading h2{font-size:2.7rem}.about-photo{max-width:580px}.about-copy h2{margin-bottom:22px}.contact-grid{gap:30px}.contact-links a{font-size:1.4rem}.contact-links a:first-child{font-size:2.3rem}.contact p{max-width:600px}.footer .wrap{align-items:flex-start;flex-direction:column;gap:15px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-header{padding-top:35px;padding-bottom:40px}}@media(max-width:500px){.topbar span{font-size:.6875rem}.topbar a{font-size:.8125rem}.brand img{width:48px}.brand{gap:9px}.brand-text strong{font-size:1.25rem}.brand-text span{font-size:.625rem;letter-spacing:.23em}.nav{gap:9px;min-height:85px}.mobile-menu summary{font-size:.8125rem;padding:7px 10px}.hero h1{font-size:3.45rem;line-height:1.04;letter-spacing:-.05em}.actions{gap:20px}.button{padding:14px 20px;gap:18px}.text-link{font-size:.875rem}.hero-photo{aspect-ratio:1.05}.hero-photo figcaption{font-size:.8125rem}.hero-photo figcaption small{font-size:.625rem}.hero-photo img{object-position:50% 50%}.service-strip .wrap{gap:8px 19px}.service-grid{grid-template-columns:1fr}.service-grid details:nth-last-child(2){border-bottom:none}.service-grid summary{font-size:1.45rem}.section-heading{align-items:flex-start;flex-direction:column;gap:15px}.section-heading h2{font-size:2.65rem}.section-heading .text-link{margin-bottom:0}.project-grid{grid-template-columns:1fr;gap:30px}.project-card img{aspect-ratio:4/3}.project-card h3{font-size:1.8rem}.project-card figcaption{padding-top:13px}.gallery-grid{grid-template-columns:1fr;gap:27px}.gallery-header h1{font-size:3.6rem}.footer nav{gap:20px;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
