/* 単独ページでも、ホームと同じ従来のサイドメニューを表示する。 */
.side-menu { position: fixed; top: 0; right: -360px; z-index: 999; width: min(340px, 100%); height: 100%; height: 100dvh; padding: 20px; box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain; background: #AA0077; box-shadow: -2px 0 5px rgba(0,0,0,.5); visibility: hidden; transition: right .3s ease, visibility .3s; font-family: 'Noto Serif JP', serif; }
.side-menu.open { right: 0; visibility: visible; }
.side-menu .menu-list { list-style: none; padding: 0; margin: 52px 0 12px; text-align: center; }
.side-menu .menu-list li { margin: 6px 0; }
.side-menu .menu-item { position: relative; display: inline-flex; align-items: center; min-height: 46px; max-width: 100%; font-size: 20px; line-height: 1.5; overflow-wrap: anywhere; text-decoration: none; color: white; }
.side-menu .menu-item:hover { color: white; }
.side-menu .menu-icon-img { width: 30px; height: auto; opacity: 0; transition: opacity .3s ease; margin-right: 10px; vertical-align: middle; }
.side-menu .menu-item:hover .menu-icon-img { opacity: 1; }
.side-menu [aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }
.side-menu a:focus-visible { outline: 3px solid #986033; outline-offset: 4px; }
.side-menu .menu-list--local { margin-top: 20px; padding-top: 16px; border-top: 1px solid #ffffff55; }
@media (prefers-reduced-motion: reduce) { .side-menu, .side-menu .menu-icon-img { transition: none; } }