@font-face{font-family:DM Sans;src:url('/assets/dm-sans-latin.woff2') format('woff2');font-weight:400 700;font-display:swap}
:root{--ink:#263b35;--paper:#f8f6ef;--muted:#506159;--line:#ccd3c8;--accent:#d4b47d;--panel:#e9ede3}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:3px solid #977129;outline-offset:6px}img{display:block;max-width:100%}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700;letter-spacing:-.045em;line-height:1.08}h1{font-size:clamp(3.6rem,6.5vw,6.6rem);line-height:.98;text-transform:uppercase;margin-bottom:25px}h2{font-size:clamp(2.5rem,4vw,4rem);margin-bottom:26px}h3{font-size:1.85rem;line-height:1.15}.wrap{width:min(1280px,88%);margin-inline:auto}.skip{position:absolute;top:-100px;left:12px;background:white;padding:12px;z-index:10}.skip:focus{top:12px}header{padding:24px 6%;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:2.3rem;font-weight:700;letter-spacing:-.06em;line-height:1}.brand:hover{text-decoration:none}.brand-icon{width:48px;height:48px;background:var(--ink);padding:5px;display:grid;place-items:center}.brand-icon img{width:100%;height:100%;object-fit:contain}.brand-dot{color:#8c6d3d}nav{display:flex;gap:32px;font-size:.94rem}.header-contact{border-bottom:1px solid var(--ink);padding:8px 0;font-weight:600}.header-contact span{margin-left:22px}.hero{display:grid;grid-template-columns:.85fr 1.25fr;gap:5%;align-items:center;padding-block:52px}.eyebrow,.number{font-size:.8rem;letter-spacing:.15em;font-weight:600}.eyebrow{margin-bottom:24px}.lead{font-size:1.2rem;line-height:1.6}.actions{display:flex;flex-direction:column;align-items:flex-start;gap:17px;margin-block:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;background:var(--ink);color:white;padding:17px 23px;font-size:.95rem;font-weight:500}.button:hover{background:#3b5148;text-decoration:none}.text-link{font-size:.9rem;border-bottom:1px solid #afb7a9}.hero-location{font-size:.875rem;color:var(--muted)}.hero-image{position:relative;overflow:hidden}.hero-image img{width:100%;height:500px;object-fit:cover;object-position:50% 55%}.hero-image figcaption{position:absolute;inset:auto 0 0;padding:16px 24px;background:rgba(38,59,53,.95);color:white;font-size:.8rem}.ribbon{background:var(--ink);color:var(--paper);display:flex;justify-content:center;align-items:center;gap:6%;padding:22px;font-size:.8rem;letter-spacing:.15em}.ribbon span[aria-hidden]{color:var(--accent);font-size:1.4rem}.section{padding-block:72px}.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:36px}.section-heading h2{margin:0}.section-heading>p{max-width:325px;color:var(--muted);font-size:.9rem}.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px}.services article{display:flex;flex-direction:column;border-top:1px solid #aeb9a6;padding-top:25px}.number{margin-bottom:22px;color:var(--muted)}.services h3{margin-bottom:20px}.services p{margin-bottom:28px;color:var(--muted)}.services a{margin-top:auto;display:flex;align-items:center;min-height:44px;font-size:.9rem;font-weight:600}.projects{background:var(--panel)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.project-grid figure{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--ink)}.project-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.project-grid figcaption{position:absolute;inset:auto 0 0;padding:16px 22px;background:rgba(38,59,53,.95);color:white}.project-grid h3{font-size:clamp(1.1rem,1.8vw,1.6rem);letter-spacing:-.02em}.about{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.about-photo img{width:100%;height:auto;aspect-ratio:1.15;object-fit:cover;object-position:70% 50%}.about p:not(.eyebrow){color:var(--muted);max-width:520px;margin-bottom:18px}.contact{background:var(--ink);color:var(--paper);padding-block:80px}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.contact .eyebrow{color:#e0cc9f}.contact h2{font-size:clamp(3rem,5vw,5rem);margin:0}.contact-inner>div>p:not(.eyebrow){margin-bottom:24px}.light{background:var(--paper);color:var(--ink)}.light:hover{background:#e4e8da}.phone{display:block;margin-top:18px;text-decoration:underline}footer{display:flex;justify-content:space-between;gap:20px;padding-block:28px;font-size:.8rem}
@media(hover:hover){.project-grid figure:hover img{transform:scale(1.035)}}
@media(max-width:950px){header{flex-wrap:wrap}nav{gap:18px}.hero{grid-template-columns:1fr 1fr}.hero-image img{height:460px}.services{gap:25px}.section-heading{align-items:start;flex-direction:column;gap:15px}.section-heading>p{max-width:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){header{padding:18px 6%;gap:18px}.brand{font-size:2rem}.brand-icon{width:42px;height:42px}nav{order:3;width:100%;justify-content:space-between;font-size:.85rem}.header-contact{font-size:.85rem}.header-contact span{margin-left:12px}.hero{grid-template-columns:1fr;padding-block:32px;gap:28px}h1{font-size:clamp(3.4rem,14vw,5rem)}.hero-image img{height:auto;aspect-ratio:1.15}.hero-image figcaption{padding:12px 18px;font-size:.75rem}.ribbon{font-size:.7rem;gap:5%;padding:17px 10px;letter-spacing:.08em}.ribbon span[aria-hidden]{font-size:.9rem}.section{padding-block:48px}.services,.about,.contact-inner{grid-template-columns:1fr;gap:28px}.services article{padding-top:20px}.number{margin-bottom:15px}.project-grid{gap:10px}.project-grid figure{aspect-ratio:1}.project-grid figcaption{padding:12px}.project-grid h3{font-size:1rem;overflow-wrap:anywhere}.contact{padding-block:56px}.button{max-width:100%;font-size:.9rem}footer{flex-direction:column;gap:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
