:root {
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#22302a;
  background:#fbfcf8;
  line-height:1.65
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0
}
a {
  color:#346c16;
  text-underline-offset:.2em
}
a:hover {
  text-decoration-thickness:2px
}
a:focus-visible {
  outline:3px solid #d46a25;
  outline-offset:4px
}
img {
  max-width:100%;
  height:auto
}
h1,h2,h3 {
  line-height:1.18;
  color:#1e3825
}
h1 {
  font-size:clamp(2.2rem,5vw,4rem);
  margin:.2em 0 .4em
}
h2 {
  font-size:clamp(1.6rem,3vw,2.3rem)
}
h3 {
  font-size:1.2rem
}
p {
  max-width:72ch
}
ul {
  padding-left:1.4rem
}
.skip {
  position:absolute;
  left:-10000px;
  top:0;
  background:white;
  padding:.6rem
}
.skip:focus {
  left:1rem;
  z-index:10
}
.site-header {
  background:#fff;
  border-bottom:1px solid #dce7d5
}
.header-inner,.footer-inner,.container {
  max-width:1180px;
  margin:auto;
  padding-left:clamp(1rem,4vw,2rem);
  padding-right:clamp(1rem,4vw,2rem)
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  flex-wrap:wrap;
  padding-top:.6rem;
  padding-bottom:.6rem
}
.brand img {
  display:block;
  width:220px
}
.site-header nav {
  display:flex;
  gap:.4rem 1.2rem;
  flex-wrap:wrap
}
.site-header nav a {
  font-weight:650;
  text-decoration:none;
  color:#274b26;
  padding:.3rem 0
}
.site-header nav a:hover {
  text-decoration:underline
}
.container {
  padding-top:clamp(2rem,5vw,4rem);
  padding-bottom:clamp(3rem,6vw,5rem)
}
.home-hero {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  gap:clamp(2rem,6vw,5rem);
  background:linear-gradient(120deg,#edf5e8 0%,#f8faef 70%,#f5eadb 100%);
  border-radius:1.5rem;
  padding:clamp(1.5rem,5vw,4rem);
  margin-bottom:clamp(3rem,7vw,6rem)
}
.home-hero h1 {
  max-width:10ch
}
.home-hero img {
  width:100%;
  aspect-ratio:1.12;
  object-fit:cover;
  border-radius:1rem 4rem 1rem 4rem;
  box-shadow:0 18px 45px #1c421826
}
.services {
  margin-bottom:clamp(3rem,7vw,6rem)
}
.section-heading {
  margin-bottom:1.5rem
}
.section-heading h2 {
  margin:.2rem 0
}
.service-card {
  min-height:220px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  border-color:#dce7d5;
  transition:transform .18s ease,box-shadow .18s ease
}
.service-card:hover {
  transform:translateY(-4px);
  box-shadow:0 12px 30px #1c42181a
}
.service-card img {
  height:76px;
  width:auto;
  max-width:100%;
  object-fit:contain;
  object-position:left center;
  margin-bottom:1rem
}
.service-card h3 {
  margin:.1rem 0 .3rem
}
.service-card h3 a {
  color:#1e3825;
  text-decoration:none
}
.service-card h3 a:hover {
  color:#39751c;
  text-decoration:underline
}
.service-card p {
  margin:.3rem 0 0;
  color:#52665a
}
.home-more {
  display:grid;
  grid-template-columns:1fr 220px;
  align-items:center;
  gap:2rem
}
.home-more h2 {
  margin:.2rem 0
}
.home-more img {
  width:220px;
  height:220px;
  object-fit:cover;
  object-position:center 25%;
  border-radius:50%;
  border:6px solid white;
  box-shadow:0 8px 30px #1c421822
}
.profile {
  display:grid;
  grid-template-columns:minmax(240px,.8fr) 1.2fr;
  align-items:center;
  gap:clamp(2rem,6vw,5rem);
  background:#edf5e8;
  border-radius:1.5rem;
  padding:clamp(1.5rem,5vw,3.5rem);
  margin-bottom:2.5rem
}
.profile img {
  width:100%;
  max-width:420px;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:1rem 4rem 1rem 4rem;
  box-shadow:0 14px 36px #1c421826
}
.profile h2 {
  margin:.35rem 0 .7rem
}
.profile p:last-child {
  margin-bottom:0
}
.service-hero {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,280px);
  align-items:center;
  gap:clamp(1.5rem,5vw,4rem);
  background:linear-gradient(120deg,#edf5e8 0%,#f8faef 75%,#f5eadb 100%);
  border:1px solid #e3eadc;
  border-radius:1.5rem;
  padding:clamp(1.5rem,5vw,3.5rem);
  margin-bottom:2rem
}
.service-copy h1 {
  margin:.35rem 0 .65rem
}
.service-copy .quote {
  max-width:65ch;
  margin-bottom:0
}
.service-art {
  min-height:190px;
  display:grid;
  place-items:center;
  padding:1.25rem;
  background:#fff;
  border:1px solid #dae6d3;
  border-radius:1.25rem;
  box-shadow:0 12px 32px #1c421814
}
.service-art img {
  display:block;
  width:auto;
  max-width:100%;
  max-height:145px;
  object-fit:contain
}
.service-content {
  max-width:900px;
  margin:0 auto 2rem;
  padding:clamp(1.25rem,4vw,2.5rem);
  background:#fff;
  border:1px solid #e1e9dc;
  border-radius:1.2rem;
  box-shadow:0 8px 26px #1c42180c
}
.service-content h2 {
  padding-bottom:.55rem;
  border-bottom:2px solid #e7efdf
}
.service-content h3 {
  margin-top:1.75rem;
  color:#346c16
}
.about-work {
  margin:0 auto 2rem
}
.about-cards .card {
  border-top:4px solid #76a34e
}
.about-cards h2 {
  margin:.4rem 0 1rem
}
.about-cards li+li {
  margin-top:.55rem
}
.intro {
  max-width:850px;
  margin-bottom:2.5rem
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.8rem;
  font-weight:800;
  color:#4a782a
}
.lead {
  font-size:clamp(1.1rem,2vw,1.3rem);
  color:#3f5749
}
.button {
  display:inline-block;
  background:#39751c;
  color:white;
  font-weight:700;
  border-radius:.55rem;
  padding:.7rem 1.15rem;
  text-decoration:none;
  margin:.6rem .5rem .6rem 0
}
.button:hover {
  background:#275713
}
.button.secondary {
  background:#e9f2e2;
  color:#285918
}
.grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));
  gap:1rem
}
.card {
  background:white;
  border:1px solid #dae6d3;
  border-radius:1rem;
  padding:1.35rem;
  box-shadow:0 3px 18px #1c421308
}
.card h2,.card h3 {
  margin-top:0
}
.card a {
  font-weight:700
}
.panel {
  background:#edf5e8;
  border-radius:1.2rem;
  padding:clamp(1.25rem,4vw,2.5rem);
  margin:2rem 0
}
.two-col {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2rem;
  align-items:start
}
.gallery {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));
  gap:1rem;
  margin:2rem 0
}
.gallery img,.feature-image {
  width:100%;
  object-fit:cover;
  border-radius:.8rem
}
.gallery img {
  aspect-ratio:4/3
}
.feature-image {
  max-height:420px
}
.text-content {
  max-width:760px
}
.text-content p {
  margin:1.1rem 0
}
.text-content h2 {
  margin-top:2.5rem
}
.quote {
  border-left:4px solid #6a9f3a;
  padding-left:1.25rem;
  font-style:italic
}
.site-footer {
  background:#1e3825;
  color:#f4faef
}
.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:2rem;
  flex-wrap:wrap;
  padding-top:2rem;
  padding-bottom:2rem
}
.site-footer a {
  color:#d8f6bc
}
.site-footer p {
  margin:.4rem 0
}
.map {
  max-width:420px
}
.small {
  font-size:.9rem;
  color:#52665a
}
@media(max-width:700px) {
  .header-inner {
    display:block
  }
  .brand img {
    width:180px
  }
  .site-header nav {
    margin-top:.6rem;
    gap:.25rem 1rem
  }
  .site-header nav a {
    font-size:.93rem
  }
  .two-col {
    grid-template-columns:1fr
  }
  .home-hero,.profile {
    grid-template-columns:1fr
  }
  .service-hero {
    grid-template-columns:1fr;
    gap:1rem
  }
  .service-art {
    min-height:135px
  }
  .service-art img {
    max-height:105px
  }
  .home-hero img {
    max-height:320px;
    aspect-ratio:1.5;
    border-radius:1rem 3rem 1rem 3rem
  }
  .profile img {
    max-width:300px;
    max-height:300px
  }
  .home-more {
    grid-template-columns:1fr
  }
  .home-more img {
    width:150px;
    height:150px;
    grid-row:1
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  .service-card {
    transition:none
  }
}
