* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #fff; color: #333; font: 16px/1.7 Geneva, Verdana, sans-serif; }
a { color: #006ba7; text-underline-offset: 3px; }
a:hover { color: #00552d; }
a:focus-visible { outline: 3px solid #0071bc; outline-offset: 4px; }
.site-header { max-width: 1160px; margin: auto; padding: 20px 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-header img { display: block; }
.site-header nav { display: flex; flex-wrap: wrap; gap: 18px; }
.site-header nav a { color: #333; text-transform: uppercase; font-size: 14px; text-decoration: none; }
.title-band { background: #e9f7ef; border-top: 2px solid #22b573; text-align: center; padding: 25px 20px; }
h1 { font-size: 32px; color: #007d43; margin: 0; }
.title-band p { margin: 4px 0 0; }
main { max-width: 920px; margin: 36px auto 64px; padding: 0 24px; }
.updated { color: #666; font-size: 14px; }
.contents { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 20px 0; border-bottom: 1px solid #dbe9e0; }
section { scroll-margin-top: 24px; }
h2 { font-size: 24px; color: #007d43; margin-top: 36px; }
h3 { font-size: 18px; margin: 24px 0 8px; }
p { margin: 0 0 16px; }
footer { background: #e9f7ef; padding: 28px 24px; text-align: center; font-size: 14px; }
footer p { margin-bottom: 8px; }
@media (max-width: 760px) { .site-header { flex-direction: column; } .site-header nav { justify-content: center; } h1 { font-size: 28px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.npc-registration { display: flex; align-items: center; gap: 32px; padding: 24px; margin-bottom: 32px; border: 1px solid #dce5ec; border-radius: 12px; background: #f6f8fa; }
.npc-registration img { display: block; width: 150px; height: auto; }
.npc-registration h2 { margin-top: 0; }
footer .npc-footer-badge { display: inline-block; margin-top: 20px; }
footer .npc-footer-badge img { display: block; width: 65px; height: auto; }
@media (max-width: 560px) { .npc-registration { flex-direction: column; text-align: center; gap: 20px; } }
