:root{--green:#1f4d3a;--deep:#14301f;--gold:#c9a227;--paper:#fbfbf7;--grain:#edefe4;--ink:#1b2a22;--muted:#56645b}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:17px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--paper)}
h1,h2,h3{font-family:Charter,"Iowan Old Style",Georgia,serif;line-height:1.15;margin:0 0 .5em;color:var(--deep)}
h1{font-size:clamp(2.2rem,6vw,4rem)}h2{font-size:clamp(1.6rem,3.5vw,2.3rem)}h3{font-size:1.2rem}
p{max-width:62ch;margin:0 0 1em}a{color:var(--green)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
header{background:var(--deep);color:#fff;position:sticky;top:0;z-index:10}
header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.logo{font-family:Charter,Georgia,serif;font-size:1.25rem;color:#fff;text-decoration:none;font-weight:700}
nav ul{display:flex;gap:6px;list-style:none;margin:0;padding:0}
nav a{color:#e6ece6;text-decoration:none;padding:8px 12px;border-radius:6px}
nav a:hover,nav a[aria-current]{background:var(--green);color:#fff}
#menu{display:none;background:none;border:1px solid #6b8a78;color:#fff;border-radius:6px;padding:6px 12px;font-size:1rem}
.hero{background:var(--green);color:#fff;position:relative;overflow:hidden;padding:88px 0 96px}
.hero h1{color:#fff;max-width:14ch}.hero p{font-size:1.15rem;color:#dfe8e1}
.hero .grains{position:absolute;inset:0;pointer-events:none}
.grain{position:absolute;width:38px;height:13px;border-radius:50%;background:#f3efd9;opacity:.16}
.hero .wrap{position:relative}
.page-head{background:var(--grain);padding:56px 0 40px;border-bottom:4px solid var(--gold)}
.page-head p{color:var(--muted);margin:0}
.btn{display:inline-block;background:var(--gold);color:var(--deep);font-weight:700;padding:12px 22px;border-radius:6px;text-decoration:none;border:0;font-size:1rem;cursor:pointer;margin:6px 10px 6px 0}
.btn.alt{background:transparent;color:#fff;border:2px solid #fff}
section{padding:60px 0}section.tint{background:var(--grain)}
.grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:#fff;border:1px solid #dfe3d4;border-radius:10px;padding:22px}
.card .tag{display:inline-block;font-size:.8rem;background:var(--grain);border-radius:99px;padding:2px 10px;margin-bottom:10px;color:var(--green)}
.card dl{margin:10px 0 0;font-size:.95rem}.card dt{float:left;clear:left;width:92px;color:var(--muted)}.card dd{margin:0 0 2px 92px}
.stats{display:flex;flex-wrap:wrap;gap:36px}.stats strong{display:block;font:700 2.2rem Charter,Georgia,serif;color:var(--green)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.filters button{border:1px solid var(--green);background:#fff;color:var(--green);padding:8px 16px;border-radius:99px;cursor:pointer;font-size:.95rem}
.filters button.on{background:var(--green);color:#fff}
.steps{counter-reset:s;list-style:none;padding:0}.steps li{counter-increment:s;padding:0 0 18px 52px;position:relative}
.steps li:before{content:counter(s);position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--deep);font-weight:700;display:grid;place-items:center}
table{border-collapse:collapse;width:100%;background:#fff}th,td{text-align:left;padding:12px;border-bottom:1px solid #dfe3d4}th{background:var(--grain)}
.tablewrap{overflow-x:auto}
form{display:grid;gap:16px;max-width:560px}label{font-weight:600;display:grid;gap:6px}
input,select,textarea{font:inherit;padding:11px;border:1px solid #b9c2b3;border-radius:6px;background:#fff}
.err{color:#a02020;font-weight:400;font-size:.9rem;min-height:1.1em}
#ok{background:#e3f2e6;border:1px solid #9cc8a6;padding:14px;border-radius:8px;display:none}
details{background:#fff;border:1px solid #dfe3d4;border-radius:8px;padding:14px 18px;margin-bottom:10px}summary{cursor:pointer;font-weight:600}
footer{background:var(--deep);color:#c9d6cd;padding:40px 0 20px;font-size:.95rem}
footer a{color:#e6ece6}footer h3{color:#fff}footer .small{border-top:1px solid #2f4a3a;margin-top:24px;padding-top:14px}
@media(max-width:760px){#menu{display:block}nav ul{display:none;position:absolute;left:0;right:0;top:64px;background:var(--deep);flex-direction:column;padding:10px 20px}nav ul.open{display:flex}header .wrap{position:relative}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
