/* Site Map page presentation. Shared shell and visual-system rules stay in the public foundation. */
.site-map-section { overflow: hidden; }
.site-map-mobile-guide { display: none; }
.site-map-viewport { overflow: visible; }
.site-map-scroll {
  aspect-ratio: 3 / 2;
  justify-content: flex-start;
  padding: 168px 108px 64px;
}
.site-map-scroll::after { display: none !important; content: none !important; }
.site-map-intro { max-width: 700px; margin: 0 auto 20px; }
.site-map-intro h1 { margin-bottom: 6px; font-size: clamp(2rem, 3.4vw, 3rem); }
.site-map-intro p:last-child { font-size: .88rem; line-height: 1.35; }
.site-map-groups { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 28px; }
.site-map-group-wide { grid-column: span 2; }
.site-map-question-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.site-map-group h2 { margin-bottom: 5px; padding-bottom: 6px; font-size: 1.42rem; }
.site-map-entry { padding: 6px 3px 7px; }
.site-map-entry strong { font-size: .93rem; line-height: 1.2; }
.site-map-entry span { margin-top: 3px; font-size: .82rem; line-height: 1.4; }
.site-map-signature { margin-top: 14px; font-size: .82rem; }

.site-map-page .site-map-scroll {
  padding: clamp(44px, 6vw, 76px);
  color: var(--ink);
  border: 1px solid rgba(111, 72, 45, .16);
  border-radius: 24px;
  background: rgba(247, 241, 231, .96);
  box-shadow: 0 28px 58px rgba(0, 0, 0, .28);
  filter: none;
}
.site-map-page .site-map-intro .mini-label { color: var(--accent-deep); }
.site-map-page .site-map-intro h1 { color: var(--ink); }
.site-map-page .site-map-intro p:last-child { color: #6c5e52; }
.site-map-page .site-map-group h2 { color: var(--ink); border-bottom-color: rgba(111, 72, 45, .24); }
.site-map-page .site-map-entry { color: var(--ink-soft); border-bottom-color: rgba(111, 72, 45, .14); }
.site-map-page .site-map-entry strong { color: var(--ink); }
.site-map-page .site-map-entry span { color: #6c5e52; }
.site-map-page .site-map-signature { color: var(--accent-deep); }

@media (max-width: 1040px) {
  .site-map-section { padding: 22px 0 34px; }
  .site-map-mobile-guide { display: block; margin-bottom: 14px; text-align: center; }
  .site-map-swipe-hint { margin: 0 0 10px; color: #5b4334; font: 700 .78rem/1.4 ui-sans-serif, system-ui, sans-serif; }
  .site-map-jump-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 2px 0 4px; }
  .site-map-jump { min-height: 48px; padding: 8px 6px; border: 1px solid rgba(96, 53, 25, .34); border-radius: 999px; color: #58341f; background: rgba(245, 220, 176, .58); font: 750 .78rem/1.2 ui-sans-serif, system-ui, sans-serif; cursor: pointer; }
  .site-map-jump[aria-pressed="true"] { color: #fff7e9; border-color: #7a421f; background: #75401f; box-shadow: 0 5px 14px rgba(62, 31, 16, .18); }
  .site-map-viewport { width: 100%; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: x proximity; scroll-padding-inline: 24px; scrollbar-width: none; }
  .site-map-viewport::-webkit-scrollbar { display: none; }
  .site-map-shell { width: 1180px; max-width: none; margin: 0 14px; }
  .site-map-scroll { width: 1180px; max-width: none; aspect-ratio: 3 / 2; overflow: visible; border-radius: 0; padding: 165px 106px 62px; box-shadow: none; filter: drop-shadow(0 26px 38px rgba(0, 0, 0, .48)); }
  .site-map-intro { max-width: 700px; margin: 0 auto 20px; text-align: center; }
  .site-map-intro h1 { font-size: 3rem; }
  .site-map-intro p:last-child { font-size: .88rem; }
  .site-map-groups { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 28px; }
  .site-map-group-wide { grid-column: span 2; }
  .site-map-question-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .site-map-group h2 { font-size: 1.42rem; }
  .site-map-entry { padding: 6px 3px 7px; }
  .site-map-entry strong { font-size: .93rem; }
  .site-map-entry span { font-size: .82rem; line-height: 1.4; }
  .site-map-group { scroll-snap-align: start; scroll-margin-inline-start: 24px; }
}

@media (max-width: 430px) {
  .site-map-page .site-map-scroll { padding: 34px 24px; border-radius: 18px; }
}
