* { box-sizing: border-box; }
body { margin: 0; color: #242331; background: #f7f7f8; font: 16px/1.6 system-ui, sans-serif; }
header { padding: 18px max(20px, calc((100% - 1100px)/2)); border-bottom: 1px solid #e3e2ea; background: #fff; }
header a { color: inherit; font-size: 23px; font-weight: 750; text-decoration: none; }
main { width: min(100% - 32px, 620px); margin: clamp(24px, 7vw, 72px) auto; padding: clamp(20px, 6vw, 44px); background: #fff; border: 1px solid #e3e2ea; border-radius: 12px; }
h1 { margin: 0; font-size: clamp(26px, 5vw, 36px); line-height: 1.4; }
main > p { margin: 8px 0 0; }
form { margin-top: 24px; }
label { display: block; font-weight: 650; margin: 18px 0 6px; }
input, textarea { width: 100%; padding: 11px 12px; font: inherit; color: inherit; border: 1px solid #a8a7b6; border-radius: 6px; }
textarea { resize: vertical; }
.hint { color: #555368; font-size: 14px; margin: 6px 0 14px; }
a { color: #5242ba; }
:focus-visible { outline: 3px solid #6754d4; outline-offset: 3px; }
button { padding: 10px 22px; min-height: 44px; color: white; background: #5545ba; font: inherit; font-weight: 700; border: 0; border-radius: 6px; cursor: pointer; }
button:disabled { opacity: .65; cursor: default; }
#contact-status:not(:empty) { padding: 12px; margin-top: 18px; background: #f3f0ff; border-radius: 6px; }
#contact-status.error { color: #8f2539; background: #fff0f2; }
