/* トップと404のページ用 */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: #f5f6f9; color: #222; font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; line-height: 1.8; }
a { color: #1a3c8c; }
.site-header { background: #fff; border-bottom: 1px solid #ddd; padding: 16px; text-align: center; }
.site-logo { height: 40px; width: auto; vertical-align: middle; }
.site-main { max-width: 860px; margin: 0 auto; padding: 32px 16px 48px; }
.notice { background: #fff; border-top: 4px solid #1a3c8c; padding: 28px 24px; }
.notice h1 { margin: 0 0 16px; font-size: 22px; line-height: 1.5; }
.notice p { margin: 0 0 12px; }
.notice p:last-child { margin-bottom: 0; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin: 24px 0; }
.card { display: block; background: #fff; border: 1px solid #d5dbe8; padding: 20px 22px; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s; }
.card:hover, .card:focus-visible { border-color: #1a3c8c; box-shadow: 0 2px 10px rgba(26, 60, 140, .12); }
.card__label { display: block; font-size: 13px; color: #1a3c8c; font-weight: bold; }
.card__title { display: block; margin: 4px 0 8px; font-size: 19px; font-weight: bold; }
.card__title::after { content: " →"; color: #1a3c8c; }
.card__text { display: block; font-size: 14px; color: #555; }
.contact { background: #fff; padding: 24px; }
.contact h2 { margin: 0 0 12px; font-size: 18px; }
.contact p { margin: 0 0 10px; }
.contact__name { font-weight: bold; }
.contact__note { font-size: 14px; color: #555; }
.back { text-align: center; }
.site-footer { background: #1a3c8c; color: #fff; text-align: center; font-size: 12px; padding: 20px 16px; }
.site-footer p { margin: 0; }
@media (max-width: 600px) {
  .notice { padding: 22px 18px; }
  .notice h1 { font-size: 19px; }
  .notice br { display: none; }
}
