/* ==============================
   JP Region List Map (scoped)
   対象: .jp-listmap-wrap[data-jp-listmap="1"] のみ
   ============================== */

.jp-listmap-wrap[data-jp-listmap="1"]{
  --ink:#111827;
  --bg:#f7f5ef;
  --card:#fff;
  --radius:16px;

  background:var(--bg);
  border-radius:var(--radius);
  padding:16px;
  max-width:1200px;
  margin:0 auto;
}

/* 地図（正方形） */
.jp-listmap-wrap[data-jp-listmap="1"] .jp-listmap-hero{
  position:relative;
  width:100%;
  aspect-ratio: var(--ratio, 1);
  background:#fff center/contain no-repeat;
  background-image: var(--map-bg);
  border-radius:calc(var(--radius) - 4px);
  box-shadow:inset 0 0 0 1px #00000010;
  overflow:hidden;
}
@supports not (aspect-ratio: 1 / 1){
  .jp-listmap-wrap[data-jp-listmap="1"] .jp-listmap-hero{
    height:0;
    padding-top: calc(100% / var(--ratio, 1));
  }
}

/* 地図上ラベル */
.jp-listmap-wrap[data-jp-listmap="1"] .jp-marker{
  position:absolute;
  transform:translate(-50%,-50%);
  text-decoration:none;
  z-index:2;
}

.jp-listmap-wrap[data-jp-listmap="1"] .jp-marker .mk-pill{
  display:inline-flex;
  align-items:center;
  gap:.4em;
  white-space:nowrap;
  color:#fff;
  background:rgba(17,24,39,.92);
  border:2px solid #fff;
  border-radius:999px;
  padding:4px 8px;
  font-weight:800;
  font-size:10px;
  box-shadow:0 6px 14px rgba(0,0,0,.18);
}

.jp-listmap-wrap[data-jp-listmap="1"] .jp-marker .mk-num{
  font-variant-numeric: tabular-nums;
}

.jp-listmap-wrap[data-jp-listmap="1"] .jp-marker:hover .mk-pill{
  transform: translateY(-1px);
  box-shadow:0 10px 18px rgba(0,0,0,.22);
}

/* モバイルは重なり回避（件数のみ丸バッジ） */
@media (max-width: 720px){
  .jp-listmap-wrap[data-jp-listmap="1"] .jp-marker .mk-pill{
    width:26px;
    height:26px;
    padding:0;
    border-width:0;
    border-radius:50%;
    justify-content:center;
    font-size:12px;
  }
  .jp-listmap-wrap[data-jp-listmap="1"] .jp-marker .mk-name{display:none}
}

/* 下部：地域 */
.jp-listmap-wrap[data-jp-listmap="1"] .jp-listmap-regions{
  margin-top:18px;
  display:grid;
  gap:20px;
}

.jp-listmap-wrap[data-jp-listmap="1"] .jp-region{
  background:var(--card);
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:14px;
}

.jp-listmap-wrap[data-jp-listmap="1"] .jp-region-title{
  display:inline-block;
  margin:0 0 10px;
  padding:4px 10px;
  border-radius:8px;
  font-weight:800;
  font-size:16px;
  color:#fff;
}

/* 見出しの色分け */
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.hokkaido .jp-region-title{background:#1e88e5}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.tohoku   .jp-region-title{background:#41b3a3}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.kanto    .jp-region-title{background:#e56a54}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.chubu    .jp-region-title{background:#8abf22}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.kinki    .jp-region-title{background:#f29e2e}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.chugoku  .jp-region-title{background:#8a56c9}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.shikoku  .jp-region-title{background:#b07cc0}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.kyushu   .jp-region-title{background:#c03b59}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-region.okinawa  .jp-region-title{background:#e255b0;color:#111}

/* 県リスト（テーマ干渉防止：li::before/after無効） */
.jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-grid{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
  grid-template-columns:repeat(4, minmax(0,1fr));
}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-grid li::before,
.jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-grid li::after{
  content:none !important;
}
@media (max-width:1024px){
  .jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-grid{grid-template-columns:repeat(3, minmax(0,1fr))}
}
@media (max-width:640px){
  .jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:420px){
  .jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-grid{grid-template-columns:1fr}
}

.jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-item{margin:0;padding:0}

.jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  text-decoration:none;
  color:var(--ink);
  background:#fff;
  border:2px solid var(--ink);
  border-radius:999px;
  padding:10px 12px;
  font-weight:700;
  transition:transform .12s ease, box-shadow .12s ease;
}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-link:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 14px rgba(0,0,0,.06);
}
.jp-listmap-wrap[data-jp-listmap="1"] .jp-pref-count{
  font-variant-numeric:tabular-nums;
  background:#1118270d;
  border:1px solid #11182733;
  padding:2px 8px;
  border-radius:999px;
  font-size:12px;
}