* { box-sizing: border-box; }
body { margin: 0; color: #232525; background: #fff; font: 1rem/1.6 system-ui; }
header, footer { background: #232525; color: #fff; padding: 1.5rem max(1.5rem, calc((100vw - 72rem) / 2)); }
header img { width: 145px; height: 24px; object-fit: contain; }
footer { border-top: 1px solid #48951c; margin-top: 3rem; font-size: .875rem; }
footer a { color: #fff; }
main { max-width: 40rem; min-height: 55vh; margin: 3rem auto; padding: 0 1.5rem; }
form, label { display: grid; gap: 1rem; }
form { gap: 1.5rem; }
input, button { font: inherit; padding: .8rem; border: 1px solid #5f6461; border-radius: 5px; min-width: 0; }
button { background: #3a7a16; color: #fff; cursor: pointer; }
.check { display: flex; align-items: start; }
.check input { flex-shrink: 0; margin-top: .5rem; }
a { color: #3a7a16; overflow-wrap: anywhere; }
:focus-visible { outline: 3px solid #48951c; outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) {
    main { animation: arrive .2s ease-out; }
    button { transition: background .15s ease-out, transform .15s ease-out; }
    button:active { transform: scale(.98); }
    @keyframes arrive { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}

aside { padding: 1rem 1.5rem; background: #232525; color: #fff; text-align: center; }
.legal-copy { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
