/* Nihonshu map page */
.map-sec{padding-top:clamp(28px,4vw,48px)}
.filters{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end;margin-bottom:.8rem}
.filters label{display:grid;gap:.25rem;font-size:.85rem;font-weight:760;color:var(--head)}
.filters .grow{flex:1;min-width:240px}
.filters input[type=search],.filters select{min-height:43px;border:1px solid #7c8b9b;border-radius:9px;background:var(--white);color:var(--body);padding:.5rem .65rem;font:inherit}
.filters .check{display:flex;align-items:center;gap:.45rem;min-height:43px}
.filters .check input{width:18px;height:18px;accent-color:var(--ink)}
.filters .lang{min-height:36px}
.count{font-weight:780;color:var(--head);margin-bottom:.8rem}
.map-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:15px;align-items:start}
.map-col{position:sticky;top:96px}
#map{height:clamp(420px,66vh,680px);border-radius:22px;border:1px solid var(--line);background:#dbe6ed;z-index:1;overflow:hidden}
#map .state{padding:1rem}
.legend{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.8rem;margin:.7rem 0 .3rem;color:var(--body)}
.legend span{white-space:nowrap;display:inline-flex;align-items:center}
.dot{width:.7rem;height:.7rem;border-radius:50%;display:inline-block;margin-right:.35rem}
.st-sym{color:var(--head);margin-right:.3rem}
.map-note{font-size:.84rem;color:var(--quiet)}
.shop-list{display:grid;gap:10px}
.shop{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:16px 18px}
.shop h3{font-size:1.12rem;margin:.45rem 0 .1rem;letter-spacing:-.01em}
.shop p{margin:.3rem 0;font-size:.92rem}
.shop .alt-name,.shop .addr,.shop .meta{color:var(--quiet);font-size:.85rem}
.shop-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.shop .tag{background:color-mix(in srgb,var(--c,#032a5c) 18%,transparent);color:var(--head)}
.shop .tag.visit{background:#a8b49b66}
.shop-links{display:flex;flex-wrap:wrap;gap:.45rem .9rem;align-items:center;margin-top:.6rem;font-size:.86rem;font-weight:780}
.shop-links a{color:var(--head)}
.shop-links .lang{min-height:30px}
.st-icon{background:#fffaf3;border:2px solid #032a5c;border-radius:4px;font-size:11px;font-weight:900;text-align:center;line-height:14px;color:#032a5c}
.shop-pin{background:#032a5c;border:2px solid #fff;border-radius:50%;font-size:11px;font-weight:850;color:#fff;text-align:center;line-height:20px;box-shadow:0 1px 3px #0005}
.pop h3{margin:.2rem 0;font-size:1rem;color:#032a5c}
.pop p{margin:.2rem 0}
.pop hr{border:0;border-top:1px solid #ccc}
.pop a{margin-right:.6rem;font-weight:700;color:#032a5c}
.leaflet-container{font-family:inherit}
:root[data-theme="dark"] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.8) contrast(.9)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.8) contrast(.9)}}
.map-about{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(16px,5vw,72px)}
.map-about h2{font-size:clamp(1.5rem,2.6vw,2.2rem)}
.map-about p{color:var(--quiet);margin-bottom:.9rem}
.map-about a{color:var(--head);font-weight:700}
.map-about .dl{display:flex;flex-wrap:wrap;gap:.5rem}
@media(max-width:860px){.map-layout,.map-about{grid-template-columns:1fr}.map-col{position:static}#map{height:400px}}
@media(max-width:480px){.filters label{width:100%}#map{height:330px}}