:root{
  --cream:#F6F0E2; --pine:#1F4A38; --pine-d:#163827; --rust:#7E3B32; --rust-d:#632D26;
  --marigold:#E3A73C; --marigold-d:#D69A2E; --amber-text:#3A2E14; --ink:#2A2620;
  --navy:#1C3A5E; --navy-d:#132B47;
  --card:#FFFDF8; --line:#DDD5C4; --muted:#6E675C;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Source Sans 3',sans-serif;}
img{max-width:100%;}
a{color:var(--pine);}
a:hover{color:var(--rust);}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* buttons — background/color live here so :hover can override */
.btn{display:inline-block;text-decoration:none;border:none;cursor:pointer;font-family:'Source Sans 3',sans-serif;border-radius:8px;font-weight:700;}
.btn--pine{background:var(--pine);color:var(--cream);}
.btn--pine:hover{background:var(--pine-d);color:var(--cream);}
.btn--rust{background:var(--rust);color:var(--cream);}
.btn--rust:hover{background:var(--rust-d);color:var(--cream);}
.btn--navy{background:var(--navy);color:var(--cream);}
.btn--navy:hover{background:var(--navy-d);color:var(--cream);}
.btn--navy:focus-visible{outline-color:var(--marigold);}
.btn--marigold{background:var(--marigold);color:var(--amber-text);}
.btn--marigold:hover{background:var(--marigold-d);color:var(--amber-text);}
.btn--outline{background:transparent;color:var(--pine);border:3px solid var(--pine);}
.btn--outline:hover{background:#EDE5D2;color:var(--pine);}
.btn:focus-visible{outline:3px solid var(--rust);outline-offset:3px;}
.btn--marigold:focus-visible{outline-color:var(--pine);}
.btn--rust:focus-visible{outline-color:var(--pine);}

/* nav links */
.navlink{color:var(--pine);text-decoration:none;font-weight:600;}
.navlink:hover{color:var(--rust);text-decoration:underline;}
.navlink:focus-visible{outline:3px solid var(--pine);outline-offset:3px;border-radius:2px;}

/* form fields */
.field{font-family:'Source Sans 3',sans-serif;background:var(--card);color:var(--ink);border:3px solid var(--pine);border-radius:10px;}
.field:focus-visible{outline:3px solid var(--marigold);outline-offset:2px;}

/* form status messages */
.formstatus{margin-top:14px;font-size:17px;font-weight:600;}
.formstatus.err{color:var(--rust);}
.formstatus.ok{color:var(--pine);}
[hidden]{display:none !important;}
