:root { color-scheme: light; font-family: system-ui, sans-serif; color: #172b37; background: #edf2f4; line-height: 1.6; }
* { box-sizing: border-box; }
body { margin: 0; }
main { max-width: 860px; margin: 2rem auto; padding: clamp(1rem,4vw,2.5rem); background: #fff; border-radius: .75rem; }
h1 { font-size: clamp(1.5rem,4vw,2.1rem); line-height: 1.3; }
h2 { line-height: 1.4; }
fieldset { min-width: 0; border: 1px solid #b6c5cd; border-radius: .4rem; margin: 1.5rem 0; padding: 1rem; }
legend { font-weight: 650; padding: 0 .35rem; }
.choice { display: flex; align-items: flex-start; gap: .7rem; padding: .6rem; margin: .25rem 0; cursor: pointer; border-radius: .25rem; }
.choice:has(input:checked) { background: #e5f2ed; }
input { flex-shrink: 0; width: 1.15rem; height: 1.15rem; margin-top: .3rem; accent-color: #185b4b; }
select, textarea { display: block; width: 100%; max-width: 100%; font: inherit; border: 1px solid #718895; border-radius: .25rem; padding: .65rem; background: #fff; color: inherit; }
textarea { resize: vertical; }
.text-answer label { display: block; font-weight: 600; margin: .75rem 0 .3rem; }
.hint, .counter { color: #435968; font-size: .95rem; }
.hint p { margin: .35rem 0; }
.counter { text-align: right; }
.error { color: #9c2525; font-weight: 600; }
.error:empty { display: none; }
[aria-invalid=true] { border-color: #9c2525; }
button { font: inherit; font-weight: 600; background: #185b4b; color: #fff; border: 2px solid #185b4b; border-radius: .3rem; padding: .65rem 1.15rem; margin: .4rem .65rem .4rem 0; cursor: pointer; min-height: 44px; }
button:disabled { background: #e2e8eb; color: #465965; border-color: #becbd1; cursor: not-allowed; }
:focus-visible { outline: 3px solid #a14e00; outline-offset: 3px; }
progress { width: 100%; accent-color: #185b4b; height: .8rem; }
.badge { font-size: .85rem; font-weight: 700; letter-spacing: .04em; color: #674600; }
.notice { background: #fff4d5; padding: 1rem; border-left: 4px solid #936700; }
summary { cursor: pointer; font-weight: 650; }
dt { font-weight: 650; margin-top: 1rem; }
dd { margin: .3rem 0; white-space: pre-wrap; overflow-wrap: anywhere; }
footer { border-top: 1px solid #b6c5cd; margin-top: 2rem; padding-top: 1rem; font-size: .9rem; }
.skip-link { position: absolute; left: -10000px; }
.skip-link:focus { position: static; display: block; padding: 1rem; background: white; }
@media (max-width: 600px) { main { margin: 0; border-radius: 0; } fieldset { padding: .65rem; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto; } }
/* Long compounds in supported languages must fit narrow viewports. */
h1, h2, legend, .choice span { overflow-wrap: anywhere; }
/* Off-screen honeypot: not part of keyboard or assistive-technology navigation. */
.krs-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.krs-partners { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin-bottom: 1.5rem; }
.krs-partner { min-width: 0; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: 600; overflow-wrap: anywhere; }
.krs-partner img { display: block; width: 100%; max-width: 180px; height: 80px; object-fit: contain; margin-bottom: .5rem; }
