/* メニュー：ホームと追加ページで共用。項目が増えても画面内でスクロール可能。 */
.menu-icon { left: auto; right: 16px; top: 16px; width: 48px; height: 48px; padding: 8px; border: 1px solid #d9b7c3; border-radius: 8px; background: #fffaf7; box-sizing: border-box; }
.menu-icon .line { display: block; }
.side-menu { box-sizing: border-box; width: min(340px, 100%); right: -360px; height: 100%; height: 100dvh; overflow-y: auto; overscroll-behavior: contain; visibility: hidden; transition: right .3s ease, visibility .3s; }
.side-menu.open { right: 0; visibility: visible; }
.side-menu .menu-list { margin: 52px 0 12px; }
.side-menu .menu-list li { margin: 6px 0; }
.side-menu .menu-item { min-height: 46px; max-width: 100%; font-size: 20px; line-height: 1.5; overflow-wrap: anywhere; }
.side-menu [aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }
@media (max-width: 640px) {
  .collection-main { width: calc(100% - 32px); padding-top: 32px; }
  .collection-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .collection-card { padding: 20px; }
  .collection-card h2 { font-size: 21px; }
  .collection-header { padding-left: 16px; }
  .collection-brand { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .side-menu, .menu-icon .line { transition: none; }
}
