:root {
  --green: #3d6b4f;
  --green-dark: #2d523c;
  --green-light: #eef4ef;
  --ink: #1e2420;
  --muted: #5a6560;
  --line: #dde5df;
  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Source Sans 3", system-ui, sans-serif;
  --header-h: 4rem;
  --banner-h: 1.5rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);line-height:1.65;color:var(--ink);padding-top:calc(var(--header-h)+var(--banner-h))}
a{color:var(--green-dark)}
.container{width:min(100% - 2rem,42rem);margin-inline:auto}
.demo-banner{position:fixed;top:0;left:0;right:0;z-index:300;margin:0;padding:.35rem 1rem;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:#fff;background:#1e4d8c}
.site-header{position:fixed;top:var(--banner-h);left:0;right:0;z-index:200;background:#fff;border-bottom:1px solid var(--line)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;min-height:var(--header-h);width:min(100% - 2rem,42rem);margin-inline:auto}
.brand{text-decoration:none;color:var(--ink)}
.brand strong{display:block;font-family:var(--font-display);font-size:1.05rem}
.brand span{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.nav{display:none;gap:1rem}
.nav a{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
.nav-toggle{display:flex;flex-direction:column;gap:5px;border:none;background:none;padding:0;width:2.25rem;height:2.25rem;cursor:pointer}
.nav-toggle span{display:block;height:2px;background:var(--ink)}
.nav-mobile[hidden]{display:none!important}
.nav-mobile{display:flex;flex-direction:column;padding:.75rem 1rem;border-bottom:1px solid var(--line)}
.nav-mobile a{text-decoration:none;padding:.35rem 0;color:var(--ink);font-size:.85rem}
@media(min-width:720px){.nav{display:flex}.nav-toggle,.nav-mobile{display:none!important}}
.hero{padding:3rem 0;background:var(--green-light)}
.hero h1{margin:0 0 .5rem;font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.4rem);color:var(--green-dark)}
.hero p{margin:0;color:var(--muted)}
.section{padding:2.5rem 0}
.section--alt{background:var(--green-light)}
.section h2{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.35rem;color:var(--green-dark)}
.section p,.section li{color:var(--muted)}
.services{display:grid;gap:.75rem}
.service{padding:1rem;border:1px solid var(--line);border-radius:.3rem;background:#fff}
.service strong{display:block;color:var(--green-dark);margin-bottom:.25rem}
.btn{display:inline-block;padding:.65rem 1.1rem;background:var(--green);color:#fff;text-decoration:none;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:.2rem}
.contact-box{padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:.3rem}
.contact-box label{display:block;margin-bottom:.75rem}
.contact-box input,.contact-box textarea{width:100%;padding:.6rem;border:1px solid var(--line);font:inherit}
.footer{padding:1.5rem 0;background:var(--green-dark);color:rgba(255,255,255,.8);font-size:.82rem;text-align:center}
.footer a{color:#fff}
