/* =============================================================================
 *  printmedia.jp  /reviews/ 日本地図ブロック（お客様の声アーカイブ用）
 *  すべて #pm-reviews-map 配下にスコープ。既存テーマCSSと干渉しない前提。
 *  ※ 丸ゴシック(Zen Maru Gothic)を使う場合は下の @import を有効化（不要なら削除可）
 * ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700;900&display=swap');

#pm-reviews-map{
  --pink:#ff4d8d; --pink-d:#e01f6e; --pink-deep:#c1105a; --ink:#2b1f2a;
  --yellow:#ffd23f; --paper:#fff; --line:#efe1e8;
  --s0:#eef0f2; --s1:#ffd7e6; --s2:#ff9ec4; --s3:#ff5d97; --s4:#d6116a;
  font-family:"Zen Maru Gothic", -apple-system, "Hiragino Kaku Gothic ProN", sans-serif;
  color:var(--ink); background:var(--paper);
  border:3px solid var(--ink); border-radius:24px; box-shadow:7px 7px 0 var(--ink);
  padding:22px 22px 18px; margin:0 0 28px; box-sizing:border-box; width:100%; min-width:0;
}
#pm-reviews-map *{ box-sizing:border-box; }
#pm-reviews-map .pm-map-loading{ padding:40px; text-align:center; color:#8a7580; }

#pm-reviews-map .pm-map-title{ font-weight:900; font-size:clamp(18px,3vw,24px); margin:0 0 4px; line-height:1.3; }
#pm-reviews-map .pm-map-title::before{ content:"🗾 "; }
#pm-reviews-map .pm-map-sub{ font-size:13px; font-weight:500; color:#6a5560; margin:0 0 16px; }

#pm-reviews-map .pm-map-active{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  background:#fff0f5; border:2px solid var(--ink); border-radius:14px;
  padding:9px 14px; margin:0 0 16px; font-size:14px;
}
#pm-reviews-map .pm-map-active b{ color:var(--pink-deep); }
#pm-reviews-map .pm-map-clear{
  margin-left:auto; text-decoration:none; font-weight:700; font-size:13px;
  color:#fff; background:var(--pink); border:2px solid var(--ink); border-radius:999px; padding:3px 12px;
}

#pm-reviews-map .pm-map-layout{ display:grid; grid-template-columns:1fr 300px; gap:22px; align-items:start; }
@media(max-width:860px){ #pm-reviews-map .pm-map-layout{ grid-template-columns:1fr; } }

#pm-reviews-map .pm-map-svg{ max-width:560px; margin:0 auto; }
#pm-reviews-map .pm-map-svg svg{ width:100%; height:auto; display:block; overflow:visible; touch-action:manipulation; }
#pm-reviews-map .pm-pref polygon, #pm-reviews-map .pm-pref path{ stroke:#fff; stroke-width:1.1; stroke-linejoin:round; transition:fill .14s; }
#pm-reviews-map .pm-pref{ cursor:pointer; }
#pm-reviews-map .pm-pref--empty{ cursor:default; }
#pm-reviews-map .pm-pref:not(.pm-pref--empty):hover polygon,
#pm-reviews-map .pm-pref:not(.pm-pref--empty):hover path,
#pm-reviews-map .pm-pref:not(.pm-pref--empty):focus polygon,
#pm-reviews-map .pm-pref:not(.pm-pref--empty):focus path{ fill:var(--yellow)!important; stroke:var(--ink); outline:none; }
#pm-reviews-map .pm-pref:not(.pm-pref--empty):hover, #pm-reviews-map .pm-pref:not(.pm-pref--empty):focus{ filter:drop-shadow(3px 4px 0 rgba(43,31,42,.5)); }
#pm-reviews-map .pm-pref.is-active polygon, #pm-reviews-map .pm-pref.is-active path{ fill:var(--pink)!important; stroke:var(--ink); stroke-width:1.6; }
#pm-reviews-map .pm-pref.is-active{ filter:drop-shadow(3px 4px 0 var(--ink)); }
#pm-reviews-map .boundary-line{ stroke:#ffd7e6!important; stroke-width:8!important; }

#pm-reviews-map .pm-map-legend{ display:flex; align-items:center; justify-content:center; gap:7px; flex-wrap:wrap; font-size:12px; font-weight:700; color:#6a5560; margin-top:12px; }
#pm-reviews-map .pm-map-legend i{ width:24px; height:13px; border-radius:4px; border:2px solid var(--ink); display:inline-block; }
#pm-reviews-map .pm-map-legend .s0{ background:var(--s0); } .pm-map-legend .s1{ background:var(--s1); }
#pm-reviews-map .pm-map-legend .s2{ background:var(--s2); } .pm-map-legend .s3{ background:var(--s3); } .pm-map-legend .s4{ background:var(--s4); }
#pm-reviews-map .pm-map-total{ font-weight:900; color:var(--pink-deep); }

#pm-reviews-map .pm-map-side h3{ font-weight:900; font-size:15px; margin:0 0 12px; }
#pm-reviews-map .pm-map-side h3::before{ content:"🏆 "; }
#pm-reviews-map .pm-map-rank{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:8px; }
#pm-reviews-map .pm-map-rank a{ display:flex; align-items:center; gap:9px; text-decoration:none; color:var(--ink); font-size:13px; font-weight:700;
  background:#fff; border:2px solid var(--ink); border-radius:12px; padding:7px 10px; box-shadow:3px 3px 0 var(--ink); transition:transform .12s, box-shadow .12s; }
#pm-reviews-map .pm-map-rank a:hover{ transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--ink); }
#pm-reviews-map .pm-map-rank .m{ width:20px; text-align:center; }
#pm-reviews-map .pm-map-rank .nm{ min-width:58px; }
#pm-reviews-map .pm-map-rank .bar{ flex:1; height:11px; background:var(--s0); border:2px solid var(--ink); border-radius:7px; overflow:hidden; }
#pm-reviews-map .pm-map-rank .bar i{ display:block; height:100%; background:repeating-linear-gradient(45deg,var(--pink) 0 7px,var(--pink-d) 7px 14px); }
#pm-reviews-map .pm-map-rank .n{ font-weight:900; font-size:13px; color:var(--pink-deep); min-width:26px; text-align:right; }
#pm-reviews-map .pm-map-rank-empty{ list-style:none; color:#8a7580; font-size:13px; }
#pm-reviews-map .pm-map-note{ font-size:12px; font-weight:500; color:#6a5560; background:#fff5ea; border:2px dashed var(--pink); border-radius:14px; padding:11px 13px; }

/* ツールチップ（body直下・fixed） */
.pm-map-tip{ position:fixed; z-index:9999; background:#2b1f2a; color:#fff; padding:8px 12px; border-radius:12px;
  font-size:12px; font-weight:700; pointer-events:none; opacity:0; transform:translateY(6px); transition:.12s; white-space:nowrap;
  box-shadow:3px 3px 0 rgba(0,0,0,.25); border:2px solid #fff; font-family:"Zen Maru Gothic",sans-serif; }
.pm-map-tip.show{ opacity:1; transform:translateY(0); }
.pm-map-tip b{ display:block; color:var(--yellow,#ffd23f); font-size:13px; }
