:root { --ink:#17201b; --forest:#173c2d; --moss:#57755d; --cream:#f3f0e7; --stone:#d7d2c5; --rust:#a8532a; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial, Helvetica, sans-serif; font-size:17px; line-height:1.55; }
a { color:inherit; }
img { display:block; width:100%; object-fit:cover; }
.site-header { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; padding:1rem clamp(1.25rem,4vw,4rem); background:rgba(23,32,27,.94); color:var(--white); backdrop-filter:blur(10px); }
.brand { font-weight:900; letter-spacing:.04em; text-decoration:none; text-transform:uppercase; }
nav { display:flex; gap:1.4rem; }
nav a { font-size:.92rem; font-weight:700; text-decoration:none; }
.hero { min-height:75vh; display:grid; grid-template-columns:1.05fr .95fr; background:var(--forest); color:var(--white); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(3rem,8vw,8rem) clamp(1.5rem,6vw,6rem); }
.hero img { height:100%; min-height:31rem; }
.eyebrow { margin:0 0 .8rem; color:#b9ceb9; font-size:.82rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
h1,h2,h3 { margin-top:0; line-height:1.06; }
h1 { max-width:11ch; margin-bottom:1.3rem; font-family:Georgia,serif; font-size:clamp(2.8rem,6vw,5.8rem); font-weight:500; }
h2 { margin-bottom:1.5rem; font-family:Georgia,serif; font-size:clamp(2.2rem,4vw,3.8rem); font-weight:500; }
h3 { font-size:1.1rem; }
.hero-copy>p:not(.eyebrow) { max-width:36rem; font-size:1.12rem; }
.actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.5rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:3.2rem; padding:.75rem 1.15rem; border:2px solid transparent; font-weight:800; text-decoration:none; }
.primary { background:var(--rust); color:var(--white); }
.secondary { border-color:#bdd0c1; color:var(--white); }
.section { padding:clamp(4rem,8vw,7rem) clamp(1.25rem,6vw,6rem); }
.section>.eyebrow { color:var(--moss); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#aeb6ae; border:1px solid #aeb6ae; }
.service-grid article { min-height:12rem; padding:1.7rem; background:var(--cream); }
.service-grid p { margin-bottom:0; color:#3e4b43; }
.work-section { background:#e4e0d5; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.section-heading>p { max-width:30rem; }
.gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.gallery .feature { grid-column:span 2; }
.gallery img { aspect-ratio:4/3; }
.gallery .feature img { aspect-ratio:4/3; object-position:center 58%; }
figure { margin:0; background:var(--white); }
figcaption { padding:.8rem 1rem; font-weight:800; }
.contact-section { padding:clamp(4rem,10vw,8rem) clamp(1.25rem,12vw,12rem); background:var(--rust); color:var(--white); text-align:center; }
.contact-section .eyebrow { color:#f0c8b4; }
.contact-section h2 { margin-bottom:.8rem; }
.contact-section .actions { justify-content:center; }
.light { background:var(--white); color:var(--rust); }
.outline-light { border-color:var(--white); color:var(--white); }
.contact-details { margin-top:2rem; }
footer { display:flex; justify-content:space-between; gap:2rem; padding:1.5rem clamp(1.25rem,4vw,4rem); background:var(--ink); color:#d8e0da; font-size:.86rem; }
@media (max-width:800px) {
  nav { display:none; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { min-height:65vh; }
  .hero img { min-height:0; aspect-ratio:4/3; }
  .service-grid { grid-template-columns:1fr; }
  .service-grid article { min-height:0; }
  .section-heading { display:block; }
  .gallery { grid-template-columns:1fr; }
  .gallery .feature { grid-column:auto; }
  .gallery .feature img { aspect-ratio:4/3; }
  footer { flex-direction:column; gap:.5rem; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
