:root{--paper:#f1eee6;--ink:#23271e;--olive:#3d4738;--muted:#505347;--line:#cbc5b7;--serif:"Instrument Serif",Georgia,serif;font-family:"DM Sans",system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}
*{box-sizing:border-box}
body,figure,p,h1,h2,h3{margin:0}
a{color:inherit;text-underline-offset:.25em}
a:focus-visible{outline:3px solid #ad793d;outline-offset:4px}
.wrap{width:min(90%,1250px);margin-inline:auto}
.skip{position:absolute;left:1rem;top:1rem;z-index:1;transform:translateY(-250%);background:white;padding:.6rem}
.skip:focus{transform:none}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);min-height:91px}
.brand img{display:block;width:76px;height:auto}
nav{display:flex;gap:clamp(1rem,4vw,3rem)}
nav a,footer a{text-decoration:none;font-weight:600}
nav a:hover,footer a:hover{text-decoration:underline}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.2rem;padding:.92rem 1.35rem;background:var(--olive);color:#fff;text-decoration:none;border:1px solid transparent;font-weight:600;border-radius:3px}
.button:hover{background:#2c3629}
.outline{background:transparent;color:var(--olive);border-color:#85897a}
.outline:hover{color:white}
.hero{display:grid;grid-template-columns:1.03fr 1fr;gap:4%;align-items:center;padding-block:clamp(1.6rem,5vw,4.7rem)}
.intro{padding:1rem 0 1.4rem}
.eyebrow{color:var(--olive);text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:700;margin-bottom:1.15rem}
h1,h2,h3{font-weight:400}
h1,h2,.services h3{font-family:var(--serif);line-height:.99}
h1{font-size:clamp(3.25rem,7.1vw,7rem);letter-spacing:-.025em}
h1 em{color:var(--olive)}
.intro>p:not(.eyebrow){max-width:34ch;color:var(--muted);margin:1.5rem 0 1.65rem;font-size:1.06rem}
.hero-image{position:relative;min-width:0;background:#d8d0bf}
.hero-image img{display:block;width:100%;height:auto;aspect-ratio:1.03;object-fit:cover}
figcaption{position:absolute;bottom:.55rem;right:.55rem;background:#f1eee6;color:#343a30;padding:.2rem .45rem;font-size:.67rem}
.services{border-top:1px solid var(--line);padding:2.8rem 0 4.3rem}
h2{font-size:clamp(2.8rem,5.3vw,4.7rem)}
.services ul{padding:0;margin:1.8rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;list-style:none}
.services li{border-top:1px solid var(--line);padding:1.12rem 0 0}
.services h3{font-size:2rem;margin-bottom:.55rem}
.services p{color:var(--muted);max-width:28ch}
.contact{background:var(--olive);color:var(--paper);padding:clamp(2.7rem,6vw,5.3rem) 0}
.contact-grid,.details{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.details{align-self:center}
.details h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.7rem;font-weight:700}
.details address,.details p{font-style:normal;font-size:1.1rem}
.details a{display:inline-block;margin-top:.5rem}
.light{background:var(--paper);color:var(--olive);margin-top:1.45rem}
.light:hover{background:#ded8cb}
footer{display:flex;justify-content:space-between;padding:1.2rem 0;font-size:.87rem}
@media(max-width:740px){.desktop-phone{display:none}.nav{min-height:72px}.brand img{width:62px}.hero,.contact-grid{grid-template-columns:1fr}.hero{gap:1rem}.hero-image img{aspect-ratio:1.22}.services ul{grid-template-columns:1fr}.contact-grid{gap:2.4rem}}
@media(max-width:380px){.details{grid-template-columns:1fr}h1{font-size:2.95rem}}
