:root{
  --color-bg:#ffffff;
  --color-accent:#2f7a4a;
  --color-accent-2:#5aa372;
  --color-text:#1b1b1b;
  --muted:#666;
  --max-width:1100px;
  --radius:8px;
  --gap:1.25rem;
  --container-padding:1rem;
  --border:#e6e6e6;
  font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color-scheme: light;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.container{
  max-width:var(--max-width);
  margin:0 auto;
  padding:0 var(--container-padding);
}

/* Header */
.site-header{border-bottom:1px solid var(--border); background:#fff; position:sticky; top:0; z-index:60}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:0.75rem 0}
.logo img{height:48px}

/* Nav */
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1rem;align-items:center}
.main-nav a{color:var(--color-text);text-decoration:none;padding:0.5rem 0.5rem;border-radius:6px}
.main-nav a.active, .main-nav a:hover{background:var(--color-accent-2);color:white}

/* Mobile nav toggle */
.nav-toggle{background:none;border:0;padding:0.25rem;display:none}
.hamburger{display:inline-block;width:28px;height:2px;background:var(--color-text);position:relative}
.hamburger::before,.hamburger::after{content:"";position:absolute;left:0;width:28px;height:2px;background:var(--color-text)}
.hamburger::before{top:-8px} .hamburger::after{top:8px}

/* Hero */
.hero{background:linear-gradient(0deg, rgba(47,122,74,0.06), rgba(47,122,74,0.02));padding:3.25rem 0;text-align:center}
.hero h1{font-size:clamp(1.5rem,3.6vw,2.4rem);margin:0 0 0.5rem}
.lead{color:var(--muted);margin-bottom:1rem}
.cta-row .btn{margin-right:0.5rem}

/* Buttons */
.btn{display:inline-block;padding:0.55rem 0.9rem;border-radius:6px;border:1px solid var(--border);background:white;color:var(--color-text);text-decoration:none}
.btn-primary{background:var(--color-accent);color:white;border-color:transparent}
.btn-secondary{background:transparent;color:var(--color-accent);border-color:var(--color-accent)}

/* Grid utility */
.grid{display:grid;gap:var(--gap)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.align-center{align-items:center}

/* Cards */
.card{background:#fff;border:1px solid var(--border);padding:0.75rem;border-radius:8px;text-align:left}
.card img{width:100%;height:150px;object-fit:cover;border-radius:6px;margin-bottom:0.5rem}

/* About blurb */
.about-blurb{padding:2rem 0}

/* CTA band */
.cta-band{background:var(--color-accent);color:#fff;padding:1.5rem 0;text-align:center;margin-top:1.5rem}
.cta-band .btn{background:white;color:var(--color-accent)}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0.75rem;margin-top:1rem}
.gallery-item img{width:100%;height:160px;object-fit:cover;border-radius:6px;display:block}

/* Form */
.contact-form{max-width:700px;margin-top:1rem;display:flex;flex-direction:column;gap:0.5rem}
.contact-form label{font-weight:600}
.contact-form input,.contact-form textarea{padding:0.6rem;border-radius:6px;border:1px solid var(--border);font:inherit}
.hidden{display:none}

/* Footer */
.site-footer{border-top:1px solid var(--border);padding:2rem 0;background:#fff;margin-top:2rem}
.footer-inner{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.footer-col h4{margin:0 0 0.5rem}
.footer-col p, .footer-col address, .footer-col ul{margin:0;font-size:0.95rem;color:var(--muted)}
.footer-col ul{list-style:none;padding:0}
.rounded{border-radius:8px;max-width:100%}

/* Small devices */
@media (max-width:900px){
  .grid-3{grid-template-columns:repeat(1,1fr)}
  .grid-2{grid-template-columns:1fr}
  .header-inner{gap:0.5rem}
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:white;border-top:1px solid var(--border);padding:1rem}
  .nav-toggle{display:block}
}

/* Accessibility */
.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}