* { box-sizing: border-box; }
body { margin: 0; background: #f5f4ef; color: #20342f; font: 15px/1.75 "Segoe UI", Inter, Arial, sans-serif; }
a { color: #315e3e; }
header { background: #142723; color: #fff; padding: 23px max(24px, calc((100vw - 900px)/2)); display: flex; justify-content: space-between; gap: 20px; align-items: center; }
header a { color: #fff; text-decoration: none; }
header a:hover { color: #d6e3a3; }
.brand { font-size: 22px; font-weight: 800; letter-spacing: -.06em; }
.brand span { color: #d6e3a3; }
header nav { font-size: 13px; }
main { max-width: 900px; margin: auto; padding: 80px 24px 100px; }
small { font-size: 11px; font-weight: 800; letter-spacing: .13em; color: #668266; text-transform: uppercase; }
h1, h2 { font-family: Georgia, "Iowan Old Style", serif; font-weight: 500; }
h1 { font-size: clamp(43px, 6vw, 66px); letter-spacing: -.06em; line-height: 1.1; margin: 15px 0 20px; }
h2 { font-size: 27px; letter-spacing: -.04em; margin: 43px 0 10px; }
p, li { color: #586d60; }
ul { padding-left: 21px; }
.intro { font-size: 18px; max-width: 700px; }
.notice { background: #e9efe2; border-left: 4px solid #8ea564; border-radius: 5px; padding: 17px 21px; margin: 35px 0; color: #315443; }
footer { border-top: 1px solid #d6dfd4; max-width: 900px; margin: auto; padding: 25px 24px 45px; display: flex; gap: 22px; flex-wrap: wrap; font-size: 12px; }
footer a { text-decoration: none; }
:focus-visible { outline: 3px solid #93a855; outline-offset: 3px; }
@media (max-width: 600px) { header { padding: 18px 24px; } main { padding-top: 54px; } }
