@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:wght@500;600&display=swap');
:root{--ink:#242821;--dark:#242920;--muted:#62675d;--line:#d6d5cb;--paper:#f3f0e9;--accent:#c8d747;--green:#394333;--body:'DM Sans',Arial,sans-serif;--display:'Playfair Display',Georgia,serif;--max:1440px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:400 16px/1.6 var(--body);-webkit-font-smoothing:antialiased}img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}[hidden]{display:none!important}:focus-visible{outline:3px solid #78900e;outline-offset:4px}h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{text-wrap:balance}.skip{position:fixed;top:-100px;left:15px;z-index:99;padding:12px;background:white}.skip:focus{top:12px}.section{width:min(100% - 10vw,var(--max));margin-inline:auto}.eyebrow{margin:0 0 16px;color:#4e5d32;font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.button{display:inline-flex;min-height:52px;align-items:center;justify-content:space-between;gap:28px;border:1px solid var(--green);padding:12px 18px;background:var(--green);color:white;font-size:12px;font-weight:800;transition:background .2s,color .2s}.button:hover{background:var(--accent);color:var(--ink)}.button.light{background:var(--accent);border-color:var(--accent);color:var(--ink)}.button.light:hover{background:white}.text-button{display:inline-flex;min-height:44px;align-items:center;gap:18px;border-bottom:1px solid currentColor;font-size:12px;font-weight:800}.underlink{display:inline-flex;min-height:44px;align-items:center;gap:12px;border-bottom:1px solid currentColor;font-size:12px;font-weight:700}.header{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:86px;padding:8px clamp(20px,5vw,74px);background:#fff;box-shadow:0 1px 0 #20241c1a}.logo{display:block;width:115px}.logo img{width:100%;height:70px;object-fit:contain}.header>.logo{grid-column:1;grid-row:1}.desktop-nav{display:flex;grid-column:2;grid-row:1;gap:clamp(22px,3vw,48px)}.desktop-nav a{font-size:12px;font-weight:700}.desktop-nav a:hover,.footer a:hover{color:#788b23}.header-cta{grid-column:3;grid-row:1;justify-self:end;display:flex;min-height:45px;align-items:center;gap:24px;padding:8px 15px;background:var(--green);color:white;font-size:11px;font-weight:800}.header-cta:hover{background:#4c5940}.menu-toggle{display:none}.menu{position:absolute;top:100%;left:0;width:100%;padding:20px 25px 25px;background:white;box-shadow:0 15px 30px #151a1030}.menu>a{display:block;border-bottom:1px solid var(--line);padding:13px 0;font-weight:700}.menu-call{color:#52662b}
.hero{position:relative;min-height:640px;isolation:isolate;overflow:hidden;background:#253026;color:white}.hero-photo,.hero-photo:after,.hero-photo img{position:absolute;inset:0;width:100%;height:100%}.hero-photo img{object-fit:cover;object-position:center 45%}.hero-photo:after{content:'';background:linear-gradient(90deg,#111810d9 0%,#182118bd 39%,#17201854 75%,#19201948),linear-gradient(0deg,#18201866,transparent 50%)}.hero-grid{position:relative;display:grid;grid-template-columns:1.12fr minmax(310px,.66fr);align-items:center;gap:8%;width:min(100% - 12vw,1320px);min-height:640px;margin:auto;padding:65px 0}.hero-copy{max-width:690px}.hero .eyebrow{color:var(--accent)}.hero h1{max-width:680px;margin:0 0 24px;font:500 clamp(53px,6.2vw,88px)/1.02 var(--display);letter-spacing:-.045em}.hero-copy>p:not(.eyebrow){max-width:550px;margin:0 0 26px;color:#f2f2e9;font-size:17px}.hero-actions,.contact-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.hero .button{background:var(--accent);border-color:var(--accent);color:var(--ink)}.hero .underlink{color:white}.hero-contact{border:1px solid #ffffff70;padding:26px;background:#21291ee8;backdrop-filter:blur(3px)}.hero-contact small,.index-label,.contact-note>span{color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.15em}.hero-contact h2{margin:15px 0 9px;font:500 31px/1.14 var(--display)}.hero-contact p{margin:0 0 19px;color:#e4e7de;font-size:13px}.call-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff52;border-bottom:1px solid #ffffff52;padding:14px 0;color:white;font-weight:800;font-size:20px}.hero-contact .underlink{margin-top:12px;color:#f2f2e9;font-size:11px}.photo-credit{position:absolute;right:20px;bottom:13px;color:white;font-size:9px;text-shadow:0 1px 4px #111}
.work{padding-top:100px;padding-bottom:105px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:43px}.section-title h2,.gallery-head h2{max-width:780px;margin:0 0 13px;font:500 clamp(40px,4.7vw,67px)/1.06 var(--display);letter-spacing:-.04em}.section-title p:not(.eyebrow){margin:0;color:var(--muted);font-size:14px}.section-title .text-button{flex:none;margin-bottom:6px}.project-index{border-top:1px solid var(--line)}.index-label{display:flex;justify-content:space-between;padding:18px 0;color:#52613b}.project-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}.project-row{position:relative;display:flex;min-height:220px;flex-direction:column;align-items:flex-start;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:21px 25px;transition:background .2s}.project-row:nth-child(3n){border-right:0}.project-row:hover{background:var(--paper)}.project-row small,.project-tile>small{color:#59673a;font-size:9px;font-weight:800;letter-spacing:.12em}.project-row h3{max-width:330px;margin:28px 0 8px;font:500 clamp(24px,2.5vw,35px)/1.1 var(--display)}.project-row p{max-width:340px;margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.55}.row-arrow{position:absolute;top:16px;right:18px;display:grid;width:32px;height:32px;place-items:center;border:1px solid #aaa;font-size:17px}.project-row:hover .row-arrow{background:var(--green);color:white}.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin:79px 0 25px;border-top:1px solid var(--line);padding-top:37px}.gallery-head h2{margin:0}.gallery-controls{display:flex;gap:8px}.gallery-controls button{width:42px;height:42px;border:1px solid var(--ink);background:white;font-size:20px}.gallery-controls button:hover:not(:disabled){background:var(--green);color:white}.gallery-controls button:disabled{opacity:.4;cursor:default}.gallery{display:flex;gap:18px;overflow:auto;scrollbar-width:none;scroll-snap-type:x mandatory}.gallery::-webkit-scrollbar{display:none}.gallery-card{flex:0 0 calc((100% - 54px)/4);min-width:240px;scroll-snap-align:start}.gallery-card img{height:270px;object-fit:cover}.gallery-card>span{display:block;margin:14px 0 5px;color:#58683a;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.gallery-card h3{display:flex;justify-content:space-between;margin:0;font:500 23px/1.15 var(--display)}.gallery-card b{font:500 17px var(--body)}
.services-feature{display:grid;grid-template-columns:.9fr 1.1fr;gap:8%;padding:92px max(5vw,24px) 88px;background:var(--dark);color:white}.services-intro{max-width:550px;justify-self:end}.services-feature .eyebrow{color:var(--accent)}.services-feature h2,.story h2,.contact-band h2,.cta-strip h2{margin:0 0 20px;font:500 clamp(43px,5vw,69px)/1.05 var(--display);letter-spacing:-.04em}.services-intro>p:not(.eyebrow){max-width:470px;color:#d9ddd3;font-size:15px}.services-feature .text-button{margin-top:15px;color:white}.service-slices{align-self:center;border-top:1px solid #ffffff70}.service-slices>a{display:grid;grid-template-columns:42px 1fr 25px;align-items:start;gap:17px;border-bottom:1px solid #ffffff70;padding:20px 0}.service-slices>a>span{color:var(--accent);font-size:10px;font-weight:800}.service-slices h3{margin:0 0 3px;font:500 25px/1.2 var(--display)}.service-slices p{margin:0;color:#d0d4cb;font-size:12px}.service-slices>b{font-size:17px}.service-slices>a:hover h3{color:var(--accent)}
.story{display:grid;grid-template-columns:1fr 1fr;min-height:570px}.story-image{position:relative;min-height:520px;background:var(--paper)}.story-image img{height:100%;object-fit:cover}.story-image>span{position:absolute;left:15px;bottom:15px;padding:6px 9px;background:#fffffff0;font-size:9px;font-weight:800;letter-spacing:.09em}.story-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:70px clamp(40px,7vw,105px)}.story-copy h2{max-width:600px}.story-copy>p:not(.eyebrow){max-width:540px;color:var(--muted);font-size:15px}.story-copy .text-button{margin-top:16px}.contact-band{display:grid;grid-template-columns:1fr .64fr;align-items:center;gap:9%;padding:90px max(5vw,24px);background:var(--paper)}.contact-band>div:first-child{max-width:650px;justify-self:end}.contact-band h2{max-width:650px}.contact-band>div:first-child>p:not(.eyebrow){max-width:530px;color:var(--muted)}.contact-actions{margin-top:26px}.contact-note{display:flex;min-height:280px;flex-direction:column;justify-content:space-between;border-left:2px solid #b5c334;padding:8px 0 8px 26px}.contact-note strong{font:500 31px/1.45 var(--display)}.contact-note>span:last-child{color:var(--muted);font-size:12px}
.footer{padding:73px max(5vw,24px) 22px;background:#232920;color:white}.footer-lead{display:flex;max-width:var(--max);align-items:end;justify-content:space-between;gap:32px;margin:0 auto 60px;border-bottom:1px solid #69705f;padding-bottom:53px}.footer-lead .eyebrow{color:var(--accent)}.footer-lead h2{max-width:730px;margin:0;font:500 clamp(41px,5vw,68px)/1.05 var(--display)}.footer-columns{display:grid;max-width:var(--max);grid-template-columns:1.4fr 1fr 1fr;gap:35px;margin:0 auto 55px}.footer-columns .logo{align-self:start;width:110px;background:white}.footer-columns>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.footer-columns b{margin-bottom:7px;color:var(--accent);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.footer-columns a:not(.logo),.footer-columns span{font-size:12px}.footer-columns span{max-width:240px;color:#d6d9d0}.legal{display:flex;max-width:var(--max);justify-content:space-between;gap:20px;margin:auto;border-top:1px solid #69705f;padding-top:17px;color:#c9cdc4;font-size:10px}.legal p{max-width:850px;margin:0}.legal a{text-decoration:underline;text-underline-offset:3px}.legal>a{white-space:nowrap;font-weight:700}
.page-head{padding:95px 0 78px;background:var(--paper)}.page-head h1{max-width:1000px;margin:0 0 21px;font:500 clamp(54px,7vw,93px)/1.02 var(--display);letter-spacing:-.05em}.page-head p:not(.eyebrow){max-width:700px;margin:0;color:var(--muted);font-size:17px}.service-page{padding-top:75px;padding-bottom:100px}.service-top{display:grid;grid-template-columns:.7fr 1fr;gap:5%;margin-bottom:40px}.service-top p:last-child{max-width:660px;margin:0;color:var(--muted);font-size:14px}.service-detail{display:grid;grid-template-columns:.62fr 1fr .9fr;align-items:center;gap:35px;border-top:1px solid var(--line);padding:30px 0}.service-detail>div:first-child small{color:#59673a;font-size:9px;font-weight:800;letter-spacing:.1em}.service-detail h2{margin:10px 0;font:500 clamp(28px,3.1vw,42px)/1.1 var(--display)}.service-detail img{height:230px;object-fit:cover}.service-text p{color:var(--muted);font-size:13px}.cta-strip{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:52px max(5vw,24px);background:var(--green);color:white}.cta-strip .eyebrow{color:var(--accent)}.cta-strip h2{margin:0;font-size:clamp(32px,4vw,50px)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 24px;padding-top:75px;padding-bottom:100px}.project-tile img{height:360px;object-fit:cover}.project-tile>small{display:block;margin:14px 0 5px}.project-tile h2{display:flex;justify-content:space-between;gap:16px;margin:0 0 7px;font:500 clamp(28px,3vw,40px)/1.15 var(--display)}.project-tile h2 span{font:400 19px var(--body)}.project-tile p{max-width:560px;margin:0;color:var(--muted);font-size:13px}.project-tile:hover h2{color:#576831}.detail-layout{display:grid;grid-template-columns:1.3fr .7fr;align-items:start;gap:7%;padding-top:75px;padding-bottom:100px}.detail-image img{max-height:720px;object-fit:cover}.detail-copy{border-top:2px solid #7b8d37;padding-top:17px}.detail-copy h2{margin:0 0 16px;font:500 38px/1.1 var(--display)}.detail-copy>p:not(.eyebrow){color:var(--muted);font-size:14px}.detail-copy .source-note{margin-top:27px;border-top:1px solid var(--line);padding-top:18px;font-size:11px}.detail-copy .underlink{display:flex;width:max-content;max-width:100%;margin-top:12px}.about-story{margin:0 0 65px}.contact-page{display:grid;grid-template-columns:.8fr 1.2fr;gap:8%;padding-top:75px;padding-bottom:45px}.contact-page h2{margin:0 0 16px;font:500 clamp(38px,4vw,54px)/1.1 var(--display)}.contact-page>div:first-child>p:not(.eyebrow){color:var(--muted);font-size:14px}.contact-details{border-top:2px solid var(--green)}.contact-details>a,.contact-details>div{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border-bottom:1px solid var(--line);padding:18px 0}.contact-details small{color:#59673a;font-size:9px;font-weight:800;letter-spacing:.13em}.contact-details strong{font-size:19px}.contact-details span{color:var(--muted);font-size:11px}.contact-details .phone-primary{padding:22px 18px;background:var(--paper)}.phone-primary strong{font-size:29px}.official-note{width:min(100% - 10vw,var(--max));margin:0 auto 75px;color:var(--muted);font-size:12px}.official-note a{text-decoration:underline;text-underline-offset:3px}
@media(min-width:1600px){.hero,.hero-grid{min-height:760px}.hero-grid{min-height:760px}.hero h1{font-size:96px}.work{padding-block:125px}.project-row{min-height:255px;padding:27px}.gallery-card img{height:330px}.project-tile img{height:430px}}
@media(max-width:900px){.header{min-height:76px;padding-inline:23px}.desktop-nav{gap:19px}.hero,.hero-grid{min-height:0}.hero-grid{grid-template-columns:1fr .85fr;width:calc(100% - 10vw);gap:35px;padding:90px 0}.hero h1{font-size:clamp(49px,7vw,72px)}.project-list{grid-template-columns:repeat(2,minmax(0,1fr))}.project-row:nth-child(3n){border-right:1px solid var(--line)}.project-row:nth-child(2n){border-right:0}.gallery-card{flex-basis:calc((100% - 36px)/3)}.services-feature{grid-template-columns:1fr;gap:38px}.services-intro{justify-self:start}.story-copy{padding:55px 38px}.service-detail{grid-template-columns:.7fr 1fr}.service-detail .service-text{grid-column:2}.detail-layout{grid-template-columns:1.05fr .95fr;gap:5%}}
@media(max-width:650px){.section{width:calc(100% - 40px)}.header{min-height:70px;grid-template-columns:44px 1fr 44px;padding:5px 14px}.menu-toggle{display:flex;width:42px;height:42px;flex-direction:column;justify-content:center;gap:7px;border:0;background:none}.menu-toggle span{width:25px;height:2px;background:var(--ink)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.header>.logo{grid-column:2;grid-row:1;justify-self:center;width:91px}.header>.logo img{height:57px}.desktop-nav{display:none}.header-cta{grid-column:3;grid-row:1;justify-self:end;width:42px;min-height:42px;overflow:hidden;justify-content:center;padding:0;font-size:0}.header-cta span{font-size:17px}.hero-photo:after{background:linear-gradient(0deg,#101810f2 0%,#152018d9 48%,#1720188a 100%)}.hero-grid{display:flex;width:calc(100% - 40px);flex-direction:column;align-items:stretch;gap:28px;padding:68px 0 52px}.hero h1{font-size:clamp(43px,11vw,61px)}.hero-copy>p:not(.eyebrow){font-size:15px}.hero-contact{padding:21px}.hero-contact h2{font-size:28px}.photo-credit{right:10px;bottom:7px;font-size:8px}.work{padding-top:72px;padding-bottom:78px}.section-title{display:block;margin-bottom:30px}.section-title h2,.gallery-head h2{font-size:clamp(37px,10vw,49px)}.section-title .text-button{margin-top:15px}.index-label{font-size:8px}.project-row{min-height:218px;padding:17px 12px}.project-row h3{margin-top:25px;font-size:clamp(20px,5.5vw,28px)}.project-row p{font-size:10px}.project-row small{font-size:8px;letter-spacing:.06em}.row-arrow{top:11px;right:7px;width:27px;height:27px;font-size:14px}.gallery-head{display:block;margin-top:61px;padding-top:30px}.gallery-controls{margin-top:17px}.gallery-card{flex-basis:83%;min-width:245px}.gallery-card img{height:280px}.services-feature{padding:70px 20px}.services-feature h2,.story h2,.contact-band h2{font-size:clamp(42px,10vw,57px)}.service-slices h3{font-size:23px}.story{grid-template-columns:1fr}.story-image{min-height:0;height:340px}.story-copy{padding:61px 20px 70px}.story-copy>p:not(.eyebrow){font-size:14px}.contact-band{grid-template-columns:1fr;gap:38px;padding:70px 20px}.contact-band>div:first-child{justify-self:start}.contact-note{min-height:220px}.footer{padding:62px 20px 20px}.footer-lead{display:block;margin-bottom:42px;padding-bottom:38px}.footer-lead h2{font-size:clamp(40px,10vw,56px)}.footer-lead .button{margin-top:23px}.footer-columns{grid-template-columns:1fr 1fr;gap:31px 16px;margin-bottom:40px}.footer-columns .logo{grid-column:1/-1}.legal{display:block}.legal>a{display:inline-block;margin-top:13px}.page-head{padding:72px 0 61px}.page-head h1{font-size:clamp(47px,11vw,65px)}.page-head p:not(.eyebrow){font-size:15px}.service-page{padding-top:57px;padding-bottom:72px}.service-top{display:block;margin-bottom:30px}.service-detail{grid-template-columns:1fr 1fr;gap:13px;padding:23px 0}.service-detail h2{font-size:29px}.service-detail img{height:175px}.service-detail .service-text{grid-column:1/-1}.service-text p{font-size:13px}.cta-strip{display:block;padding:37px 20px}.cta-strip h2{font-size:35px}.cta-strip .button{margin-top:21px}.project-grid{grid-template-columns:1fr;gap:35px;padding-top:55px;padding-bottom:72px}.project-tile img{height:300px}.project-tile h2{font-size:31px}.detail-layout{grid-template-columns:1fr;gap:25px;padding-top:47px;padding-bottom:70px}.detail-image img{max-height:450px}.detail-copy h2{font-size:34px}.about-story{margin-bottom:45px}.contact-page{grid-template-columns:1fr;gap:28px;padding-top:55px;padding-bottom:30px}.phone-primary strong{font-size:26px}.official-note{width:calc(100% - 40px);margin-bottom:55px}}
@media(max-width:360px){.header>.logo{width:80px}.hero h1{font-size:41px}.project-row h3{font-size:19px}.project-row{padding-inline:9px}.contact-details strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
.hero-contact .enquiry-form{display:grid;gap:10px;margin:15px 0 13px}.form-field{display:grid;gap:4px}.form-field label{color:#f2f2e9;font-size:11px;font-weight:700}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:42px;border:1px solid #ffffff70;border-radius:0;padding:9px 10px;background:#fff;color:var(--ink);font:400 13px/1.4 var(--body)}.form-field textarea{min-height:63px;resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:#676c63}.enquiry-submit{min-height:45px;border:1px solid #aeb19f;padding:10px;background:#777d70;color:white;font:700 12px/1.3 var(--body);cursor:not-allowed}.form-note{margin:0!important;color:#e4e7de!important;font-size:11px!important;line-height:1.45}.official-contact{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;padding:10px 12px;background:var(--accent);color:var(--ink);font-size:12px;font-weight:800}.hero-contact .call-link{font-size:17px}.header-cta{white-space:nowrap}
@media(max-width:650px){.header{grid-template-columns:1fr auto 1fr;column-gap:8px}.menu-toggle{grid-column:1;grid-row:1;justify-self:start}.header>.logo{position:static;transform:none;grid-column:2;grid-row:1;justify-self:center}.header-cta{width:auto;min-width:66px;min-height:44px;gap:5px;padding:0 7px;font-size:11px}.header-cta span{font-size:14px}.hero-contact{padding:18px}.hero-contact h2{font-size:27px}}
@media(max-width:360px){.header{grid-template-columns:1fr auto 1fr;column-gap:3px;padding-inline:10px}.menu-toggle{width:38px}.header>.logo{width:78px}.header-cta{min-width:62px;padding-inline:6px;font-size:10px}.header-cta span{font-size:13px}.hero-grid{width:calc(100% - 32px)}.hero-contact{padding:15px}}
.copy-fallback{display:grid;gap:5px}.copy-fallback label{font-size:11px;font-weight:700}.copy-fallback textarea{width:100%;min-height:115px;padding:8px;color:var(--ink);font:12px/1.4 var(--body)}
.call-helper{margin:12px 0 0!important;color:#e4e7de!important;font-size:12px!important}
.call-helper a{font-weight:800;color:#fff;border-bottom:1px solid currentColor}
.hero-contact .copy-fallback label{color:#f2f2e9}
.closing{padding:90px 0 100px}
.closing>h2{max-width:700px;margin:0 0 12px;font:500 clamp(38px,4.5vw,60px)/1.06 var(--display);letter-spacing:-.04em}
.closing>p:not(.eyebrow){max-width:640px;margin:0;color:var(--muted);font-size:15px}
.closing .hero-contact{max-width:700px;margin:32px auto 0}
@media(max-width:650px){.closing{padding:64px 0 72px}}
.enquiry-submit{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;border-color:var(--accent);background:var(--accent);color:var(--ink);font-weight:800;cursor:pointer}
.enquiry-submit:hover{border-color:white;background:white}
@media(max-width:650px){.header-cta{min-height:44px;padding-inline:9px;font-size:12px}}
@media(max-width:360px){.header-cta{min-height:44px;padding-inline:7px;font-size:11px}}
