* { box-sizing: border-box; }
body { margin: 0; background: #f6f9fc; color: #132239; font: 1rem/1.6 system-ui, sans-serif; }
main { max-width: 44rem; margin: auto; padding: 2rem 1.25rem 4rem; }
a { color: #007f79; }
h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); line-height: 1.2; }
form { display: grid; gap: 1.2rem; }
label { font-weight: 650; display: block; }
input, textarea { font: inherit; border: 1px solid #799098; border-radius: .4rem; padding: .65rem; width: 100%; background: white; color: #132239; }
textarea { resize: vertical; }
input:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid #007f79; outline-offset: 3px; }
small { display: block; color: #43566d; }
button { font: inherit; font-weight: 700; border: 0; border-radius: .5rem; padding: .8rem 1.2rem; background: #007f79; color: white; cursor: pointer; justify-self: start; }
.notice { padding: 1rem; border: 2px solid #007f79; border-radius: .5rem; background: white; overflow-wrap: anywhere; }
.errors { border-color: #a52d2d; }
.consent { display: flex; align-items: flex-start; gap: .6rem; }
.consent input { width: 1.1rem; height: 1.1rem; margin-top: .25rem; flex: none; }
.consent label { font-weight: 400; }
.trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
