* { box-sizing: border-box; }
body { margin: 0; background: #fffdf8; color: #131a15; font: 16px/1.6 system-ui, sans-serif; }
header, footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 20px max(24px, calc((100% - 1040px)/2)); border-bottom: 1px solid #dde5da; }
header > a { font-size: 22px; font-weight: 700; }
nav, footer { display: flex; flex-wrap: wrap; gap: 16px; }
a { color: #16443f; text-underline-offset: 4px; }
main { max-width: 680px; margin: 48px auto; padding: 0 24px; }
h1 { font-size: 30px; line-height: 1.2; margin: 0 0 24px; overflow-wrap: anywhere; }
p { margin: 16px 0; }
form { display: grid; gap: 20px; margin: 28px 0; }
label { display: grid; gap: 6px; font-weight: 600; }
input, textarea, select { width: 100%; min-width: 0; border: 1px solid #809287; border-radius: 6px; padding: 12px; font: inherit; background: white; color: inherit; }
textarea { resize: vertical; }
button, .button { display: inline-block; width: fit-content; max-width: 100%; border: 0; border-radius: 6px; padding: 12px 24px; background: #16443f; color: white; font: 600 16px/1.5 system-ui, sans-serif; text-decoration: none; cursor: pointer; }
:focus-visible { outline: 3px solid #b9894c; outline-offset: 3px; }
.hint { font-size: 14px; color: #526057; }
form .hint { margin: 0; }
dt { font-weight: 700; margin-top: 16px; }
dd { margin: 4px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
footer { border-top: 1px solid #dde5da; border-bottom: 0; justify-content: center; font-size: 14px; }
@media (max-width: 480px) { header { align-items: flex-start; flex-direction: column; } nav { gap: 8px 16px; font-size: 14px; } main { margin: 32px auto; } h1 { font-size: 26px; } }
