/* NageMap prefecture pages. Scoped to nm-* classes to avoid modifying existing screens. */
:root { color-scheme: light; }
body.nm-area-page { margin:0; background:#f7f5f9; }
/* Keep typography inside main so shared header/footer inherit the same rules as TOP. */
.nm-area-main { color:#29272b; font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif; line-height:1.65; text-align:left; }
.nm-area-main div { text-align:inherit; }
.nm-area-main h1, .nm-area-main h2, .nm-area-main h3 { font-weight:700; }
.nm-area-main { box-sizing:border-box; width:min(1080px, 100%); margin:64px auto 0; padding:24px 18px 72px; }
.nm-area-breadcrumb { margin:0 0 16px; color:#666; font-size:13px; }
.nm-area-breadcrumb a { color:#714181; }
.nm-area-hero { padding:30px 28px; border-radius:16px; background:#fff; box-shadow:0 3px 16px rgba(33,15,38,.06); border:1px solid #ece4ee; }
.nm-area-hero h1 { font-size:clamp(23px, 4.5vw, 32px); line-height:1.45; margin:0 0 12px; }
.nm-area-hero p { margin:0 0 10px; }
.nm-area-stat { color:#714181; font-weight:700; font-size:18px; }
.nm-area-stat strong { font-size:28px; }
.nm-area-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.nm-area-action { display:inline-block; min-height:44px; box-sizing:border-box; padding:10px 18px; background:#714181; border:1px solid #714181; color:#fff !important; border-radius:10px; font-weight:700; text-decoration:none; }
.nm-area-action.secondary { background:#fff; color:#714181 !important; }
.nm-area-section { margin-top:34px; }
.nm-area-section h2 { font-size:23px; margin:0 0 16px; }
.nm-area-groups { display:grid; gap:18px; }
.nm-area-group { border-radius:14px; padding:18px; background:#fff; border:1px solid #ece4ee; }
.nm-area-group h2 { margin:0 0 12px; font-size:20px; }
.nm-area-pref-grid { list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:9px; padding:0; margin:0; }
.nm-area-pref-grid a { display:flex; justify-content:space-between; gap:8px; align-items:center; background:#f9f5fb; color:#593067; border:1px solid #e9daed; text-decoration:none; padding:10px 12px; min-height:44px; box-sizing:border-box; border-radius:8px; font-weight:700; }
.nm-area-pref-grid a:hover, .nm-area-pref-grid a:focus-visible { background:#efe5f2; }
.nm-area-count { color:#777; font-size:12px; white-space:nowrap; font-weight:400; }
.nm-area-results { list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%, 325px),1fr)); gap:14px; padding:0; margin:0; }
.nm-area-shop { border:1px solid #e5dae7; border-radius:13px; padding:18px; background:#fff; overflow-wrap:anywhere; }
.nm-area-shop h3 { margin:0 0 8px; font-size:19px; line-height:1.45; }
.nm-area-shop h3 a { color:#653573; }
.nm-area-shop p { margin:4px 0; font-size:14px; }
.nm-area-shop .nm-area-shop-type { color:#555; font-size:12px; }
.nm-area-badge { display:inline-block; margin-right:5px; padding:2px 7px; border:1px solid #bfa0c7; border-radius:4px; color:#714181; font-size:11px; }
.nm-area-pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin:32px 0 12px; }
.nm-area-pagination a, .nm-area-pagination span { display:inline-flex; min-width:43px; min-height:43px; box-sizing:border-box; padding:8px 11px; align-items:center; justify-content:center; border:1px solid #d5c6da; border-radius:8px; color:#5b3368; background:#fff; text-decoration:none; }
.nm-area-pagination [aria-current="page"] { background:#714181; color:#fff; border-color:#714181; font-weight:700; }
@media (max-width:570px) { .nm-area-main { padding:17px 12px 46px; } .nm-area-hero { padding:20px 16px; } }
