:root{--cream:#f4f0e7;--paper:#fbf8f1;--green:#173f32;--green-2:#285849;--charcoal:#232622;--sage:#a9b59f;--clay:#b86e4b;--line:rgba(35,38,34,.2);--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--cream);color:var(--charcoal);font-family:var(--sans);font-size:16px;line-height:1.65;overflow-x:hidden}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit}button,input,select,textarea{font:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;background:#fff;padding:.75rem 1rem;z-index:100}.skip-link:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid #d58b64;outline-offset:4px}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.25rem,4vw,4.5rem);background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{display:inline-flex;align-items:center;gap:.65rem;text-decoration:none;font:600 1.35rem var(--serif);letter-spacing:-.02em}.brand i{font-weight:500;color:var(--clay)}.brand svg{width:32px;fill:none;stroke:currentColor;stroke-width:1.3}.site-header nav{display:flex;align-items:center;gap:clamp(1.25rem,2.5vw,2.75rem)}nav a{text-decoration:none;font-size:.9rem;font-weight:600}.site-header nav>a:not(.button){position:relative}.site-header nav>a:not(.button)::after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;transition:right .2s}.site-header nav>a:hover::after{right:0}.menu-toggle{display:none;border:0;background:none;padding:.5rem;cursor:pointer}.menu-toggle span:not(.sr-only){display:block;width:26px;height:2px;background:currentColor;margin:5px;transform-origin:center;transition:transform .28s ease,opacity .2s ease}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.8rem;background:var(--green);color:#fff;text-decoration:none;border:1px solid var(--green);padding:.9rem 1.25rem;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .2s,color .2s}.button:hover{background:var(--green-2)}.button-small{padding:.65rem 1rem;gap:.5rem}.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,46vw);grid-template-rows:1fr auto;padding-left:clamp(1.25rem,7vw,8.5rem);background:var(--paper)}.hero-copy{align-self:center;max-width:700px;padding:5rem clamp(2rem,5vw,6rem) 5rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:600;margin:0 0 1.25rem;color:var(--green-2)}h1,h2{font-family:var(--serif);font-weight:500;line-height:1.04;letter-spacing:-.035em;margin:0}h1{font-size:clamp(3.15rem,6.4vw,7.25rem);max-width:11ch}.hero-intro{max-width:590px;font-size:clamp(1rem,1.25vw,1.2rem);margin:2rem 0 2.2rem;color:#555b55}.hero-image{margin:0;grid-column:2;grid-row:1 / 3;min-height:650px;position:relative}.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,63,50,.08),transparent 30%)}.hero-note{margin:0;padding:1.1rem 2rem;border-top:1px solid var(--line);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}
.section{padding:clamp(5rem,10vw,9rem) clamp(1.25rem,7vw,8.5rem)}.section-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:5rem;align-items:end;margin-bottom:4.5rem}.section-heading h2,.about h2,.contact h2{font-size:clamp(2.65rem,5vw,5.25rem)}.section-heading>p{max-width:430px;margin:0 0 .5rem;color:#5c625c}.service-list{border-top:1px solid var(--line)}.service-list article{display:grid;grid-template-columns:4rem 1fr auto;gap:2rem;align-items:center;padding:2.2rem 0;border-bottom:1px solid var(--line)}.service-list article>span:first-child{font-size:.75rem;color:var(--clay)}.service-list article div{display:grid;grid-template-columns:minmax(200px,.8fr) 1fr;gap:4rem;align-items:center}.service-list h3{font:500 clamp(1.65rem,2.5vw,2.5rem) var(--serif);margin:0}.service-list p{margin:0;max-width:520px;color:#666b65}.service-mark{font-size:1.35rem;color:var(--green)}
.work{background:var(--green);color:var(--paper)}.section-heading.light .eyebrow{color:var(--sage)}.section-heading.light>p{color:#c8d0c8}.gallery{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:1fr 1fr;gap:1.25rem}.gallery figure{margin:0;min-height:300px;position:relative;overflow:hidden}.gallery-large{grid-row:1/3}.gallery img{transition:transform .5s ease}.gallery figure:hover img{transform:scale(1.02)}.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:3rem 1.5rem 1.4rem;background:linear-gradient(transparent,rgba(9,20,15,.75));display:flex;align-items:end;justify-content:space-between}.gallery figcaption span{text-transform:uppercase;font-size:.65rem;letter-spacing:.14em}.gallery figcaption strong{font:500 1.35rem var(--serif)}
.about{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(300px,1fr);gap:clamp(3rem,9vw,9rem);align-items:center}.about-photo{aspect-ratio:4/5;max-height:680px}.about-copy{max-width:700px}.about-copy>p:not(.eyebrow){color:#5b605a;max-width:640px}.about-copy h2{margin-bottom:2rem}.text-link{display:inline-flex;gap:2rem;margin-top:1rem;text-underline-offset:7px;font-weight:600;color:var(--green)}
.contact{background:var(--charcoal);color:var(--paper);display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(4rem,9vw,10rem)}.contact .eyebrow{color:var(--sage)}.contact-intro>p:not(.eyebrow){color:#c9cbc5;max-width:510px}.privacy-note{border-left:2px solid var(--clay);padding-left:1rem;margin-top:2.5rem;display:flex;flex-direction:column;font-size:.82rem}.privacy-note span{color:#aaaDA7}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.field{margin-bottom:1.3rem}.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:.45rem}.field label span{font-weight:400;color:#aeb1ab}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid #777a74;background:transparent;color:#fff;padding:.7rem 0;border-radius:0}.field select{color-scheme:dark}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-bottom-color:#fff}.field [aria-invalid="true"]{border-bottom-color:#e5a07e}.error{color:#f2b79b;font-size:.76rem;min-height:1.2em;margin:.25rem 0 0}.button-light{background:var(--paper);color:var(--charcoal);border-color:var(--paper)}.button-light:hover{background:var(--sage);border-color:var(--sage)}.form-status{min-height:1.5rem;margin:1rem 0 0;font-weight:600;color:#f2b79b}
#message{min-height:130px;border:1px solid #777a74;padding:.85rem}#message:focus{border-color:#fff}#message[aria-invalid="true"]{border-color:#e5a07e}
.custom-select{position:relative}.native-service{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none}.select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid #777a74;background:transparent;color:#fff;padding:.7rem 0;cursor:pointer;text-align:left}.select-trigger:focus{outline:0;border-bottom-color:#fff}.select-trigger[aria-invalid="true"]{border-bottom-color:#e5a07e}.select-chevron{width:8px;height:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s cubic-bezier(.22,1,.36,1)}.select-trigger[aria-expanded="true"] .select-chevron{transform:rotate(225deg) translate(-2px,-2px)}.select-menu{position:absolute;z-index:15;top:calc(100% + 7px);left:0;right:0;display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transform:translateY(-8px);background:var(--paper);box-shadow:0 14px 30px rgba(0,0,0,.22);transition:grid-template-rows .34s cubic-bezier(.22,1,.36,1),opacity .22s ease,transform .3s ease,visibility 0s linear .34s}.custom-select.open .select-menu{grid-template-rows:1fr;opacity:1;visibility:visible;transform:translateY(0);transition:grid-template-rows .34s cubic-bezier(.22,1,.36,1),opacity .22s ease,transform .3s ease,visibility 0s}.select-options{min-height:0;overflow:hidden;padding:0 .45rem;transition:padding .3s ease}.custom-select.open .select-options{padding:.45rem}.select-options button{display:block;width:100%;border:0;background:transparent;color:var(--charcoal);padding:.7rem .8rem;text-align:left;cursor:pointer;transition:background .16s ease,color .16s ease}.select-options button:hover,.select-options button:focus-visible,.select-options button[aria-selected="true"]{background:var(--green);color:#fff;outline:0}
.service-mark{width:2.6rem;height:2.6rem;display:grid;place-items:center;border:1px solid var(--line);font-size:1.35rem;color:var(--green);text-decoration:none;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.service-mark:hover{background:var(--green);color:#fff;transform:translate(2px,-2px)}
footer{background:#102a22;color:#fff;padding:3.5rem clamp(1.25rem,7vw,8.5rem);display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem}footer nav{display:flex;gap:2rem}footer>p{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.18);padding-top:1.5rem;margin:0;color:#abb9b1;font-size:.78rem}.brand-light{color:#fff}
@media(max-width:850px){.site-header{height:70px}.menu-toggle{display:block}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0)}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.site-header nav{display:flex;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:0 1.5rem;max-height:0;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-10px);flex-direction:column;align-items:stretch;gap:.35rem;border-bottom:1px solid transparent;box-shadow:0 14px 24px rgba(20,35,28,0);transition:max-height .42s cubic-bezier(.22,1,.36,1),padding .32s ease,opacity .22s ease,transform .32s ease,visibility 0s linear .42s,border-color .25s ease,box-shadow .3s ease}.site-header nav.open{max-height:380px;padding:1.25rem 1.5rem 1.5rem;opacity:1;visibility:visible;transform:translateY(0);border-bottom-color:var(--line);box-shadow:0 14px 24px rgba(20,35,28,.14);transition:max-height .42s cubic-bezier(.22,1,.36,1),padding .32s ease,opacity .22s ease,transform .32s ease,visibility 0s}.site-header nav a{text-align:center;padding:.55rem}.hero{min-height:auto;grid-template-columns:1fr;grid-template-rows:auto auto auto;padding:0}.hero-copy{padding:4rem 1.25rem}.hero-image{grid-column:1;grid-row:2;min-height:54vh}.hero-note{grid-row:3}.section-heading{grid-template-columns:1fr;gap:1.5rem;margin-bottom:3rem}.service-list article{grid-template-columns:2rem 1fr auto;gap:1rem}.service-list article div{grid-template-columns:1fr;gap:.4rem}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:1.3fr .8fr}.gallery-large{grid-column:1/3;grid-row:auto}.gallery figcaption{display:block}.gallery figcaption strong{display:block}.about{grid-template-columns:1fr;gap:3rem}.about-photo{max-height:550px}.contact{grid-template-columns:1fr;gap:4rem}footer{grid-template-columns:1fr}footer nav{flex-wrap:wrap}footer>p{grid-column:1}}
@media(max-width:540px){h1{font-size:clamp(3rem,14vw,4.5rem)}.section{padding:4.5rem 1.25rem}.gallery{display:block}.gallery figure{min-height:320px;margin-bottom:1rem}.gallery-large{min-height:460px!important}.field-row{grid-template-columns:1fr}.contact{gap:3rem}.service-list article{padding:1.6rem 0}.service-list p{font-size:.9rem}footer nav{gap:1rem 1.5rem}.hero-image{min-height:430px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
