@charset "utf-8";
/* ========== 人口・世帯データ／対応エリア一覧 ========== */
.area-lp .area-data {
  padding: calc(60 * var(--u)) calc(16 * var(--u));
  background: #fcfcfc;
  color: #333;
  font-family: "Roboto", "Noto Sans JP", sans-serif;
}
.area-lp .area-data__inner {
  max-width: calc(1024 * var(--u));
  margin: 0 auto;
}
.area-lp .area-data__title {
  margin: 0 0 calc(24 * var(--u));
  font-size: calc(24 * var(--u));
  line-height: 1.6;
}

/* 数値カード */
.area-lp .area-data__kpi {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(12 * var(--u));
  margin: 0;
  padding: 0;
  list-style: none;
}
.area-lp .area-data__card {
  display: flex;
  flex-direction: column;
  width: calc((100% - calc(12 * var(--u))) / 2);
  margin: 0;
  overflow: hidden;
  border-radius: calc(10 * var(--u));
  background: #fff;
  box-shadow: 0 0 calc(10 * var(--u)) rgba(0, 0, 0, 0.1);
  text-align: center;
}
.area-lp .area-data__label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(60 * var(--u));
  margin: 0;
  padding: calc(8 * var(--u)) calc(6 * var(--u));
  background: #85b4d0;
  color: #fff;
  font-family: "Zen Old Mincho", serif;
  font-size: calc(14 * var(--u));
  letter-spacing: calc(1 * var(--u));
  line-height: 1.5;
}
.area-lp .area-data__value {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  gap: calc(4 * var(--u));
  padding: calc(14 * var(--u)) calc(6 * var(--u)) calc(16 * var(--u));
  letter-spacing: calc(1 * var(--u));
}
.area-lp .area-data__num {
  margin: 0;
  color: #0e5a88;
  font-size: calc(26 * var(--u));
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
}
.area-lp .area-data__num span {
  margin-left: calc(3 * var(--u));
  font-size: calc(14 * var(--u));
}
.area-lp .area-data__note {
  margin: 0;
  color: #666;
  font-size: calc(12 * var(--u));
  line-height: 1.6;
}
/* 補足の2行目（例：高齢化率の算出方法） */
.area-lp .area-data__note--sub {
  margin-top: calc(4 * var(--u));
  font-size: calc(11 * var(--u));
}

/* データからわかること */
.area-lp .area-data__point {
  margin-top: calc(28 * var(--u));
  padding: calc(20 * var(--u));
  border-radius: calc(10 * var(--u));
  background: #fafff3;
  font-size: calc(15 * var(--u));
  letter-spacing: calc(1 * var(--u));
  line-height: 1.9;
}
.area-lp .area-data__point p { margin: 0 0 calc(12 * var(--u)); }
.area-lp .area-data__point p:last-child { margin: 0; }
.area-lp .area-data__point-strong { font-weight: 700; }

/* 出典 */
.area-lp .area-data__source {
  margin: calc(24 * var(--u)) 0 0;
  color: #666;
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(10 * var(--u));
  line-height: calc(16 * var(--u));
}
.area-lp .area-data__source a {
  color: inherit;
  text-decoration: none;
}
.area-lp .area-data__source a:hover { text-decoration: underline; }

/* 対応エリア一覧 */
.area-lp .area-data__subtitle {
  margin: 0;
  padding: calc(48 * var(--u)) 0 calc(24 * var(--u));
  color: #0e5a88;
  font-family: "Zen Old Mincho", serif;
  font-size: calc(20 * var(--u));
  font-weight: 400;
  letter-spacing: calc(2 * var(--u));
  line-height: 1.6;
  text-align: center;
}
.area-lp .area-data__areas {
  display: flex;
  flex-direction: column;
  gap: calc(12 * var(--u));
}
.area-lp .area-data__pref {
  overflow: hidden;
  border: calc(1 * var(--u)) solid #dbe0de;
  border-radius: calc(10 * var(--u));
  background: #fff;
}
.area-lp .area-data__pref-name {
  position: relative;
  display: block;
  padding: calc(12 * var(--u)) calc(52 * var(--u)) calc(12 * var(--u)) calc(16 * var(--u));
  background: #0e5a88;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(18 * var(--u));
  font-weight: 700;
  line-height: calc(28 * var(--u));
  list-style: none;
  cursor: pointer;
}
.area-lp .area-data__pref-name::-webkit-details-marker { display: none; }
/* 開閉アイコン（閉：＋／開：−） */
.area-lp .area-data__pref-name::after {
  content: "＋";
  position: absolute;
  top: 50%;
  right: calc(16 * var(--u));
  transform: translateY(-50%);
  font-size: calc(24 * var(--u));
  line-height: 1;
}
.area-lp .area-data__pref[open] .area-data__pref-name::after { content: "−"; }
.area-lp .area-data__pref-name:hover { opacity: .9; }

.area-lp .area-data__cities {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--u));
  margin: 0;
  padding: calc(16 * var(--u));
  list-style: none;
}
.area-lp .area-data__city {
  margin: 0;
  padding: calc(6 * var(--u)) calc(12 * var(--u));
  border: calc(1 * var(--u)) solid #dbe0de;
  border-radius: calc(20 * var(--u));
  background: #fff;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(13 * var(--u));
  line-height: calc(20 * var(--u));
  white-space: nowrap;
}
/* 表示中のエリア */
.area-lp .area-data__city.is-current {
  border-color: #0e5a88;
  background: #0e5a88;
  color: #fff;
  font-weight: 700;
}
/* エリアページへのリンク（公開中のページ） */
.area-lp .area-data__city.is-link {
  padding: 0;
  border-color: #0e5a88;
}
.area-lp .area-data__city.is-link a {
  display: block;
  padding: calc(6 * var(--u)) calc(12 * var(--u));
  color: #0e5a88;
  text-decoration: none;
  transition: background .3s, color .3s;
}
.area-lp .area-data__city.is-link a:hover {
  border-radius: calc(20 * var(--u));
  background: #0e5a88;
  color: #fff;
}
/* 府県ページへのリンク */
.area-lp .area-data__pref-link {
  margin: 0;
  padding: calc(16 * var(--u)) calc(16 * var(--u)) 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(14 * var(--u));
  font-weight: 700;
  line-height: calc(22 * var(--u));
}
.area-lp .area-data__pref-link a {
  color: #0e5a88;
  text-decoration: none;
}
.area-lp .area-data__pref-link a::after { content: " →"; }
.area-lp .area-data__pref-link a:hover { text-decoration: underline; }
/* 市区町村LPの町名リスト（リンクなし） */
.area-lp .area-data__towns {
  border: calc(1 * var(--u)) solid #dbe0de;
  border-radius: calc(10 * var(--u));
  background: #fff;
}
.area-lp .area-data__towns.is-scroll {
  max-height: calc(320 * var(--u));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.area-lp .area-data__scroll-note {
  margin: calc(8 * var(--u)) 0 0;
  color: #666;
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(12 * var(--u));
  line-height: calc(18 * var(--u));
  text-align: right;
}
/* 人口・世帯データが無いとき（一覧だけ） */
.area-lp .area-data--list-only .area-data__subtitle { padding-top: 0; }

@media (min-width: 992px) {
  .area-lp .area-data {
    padding: calc(100 * var(--u)) calc(24 * var(--u));
  }
  .area-lp .area-data__title {
    margin-bottom: calc(40 * var(--u));
    font-size: calc(40 * var(--u));
    line-height: calc(80 * var(--u));
  }
  .area-lp .area-data__label {
    min-height: 0;
    padding: calc(10 * var(--u)) calc(4 * var(--u));
    font-size: calc(17 * var(--u));
    letter-spacing: calc(2 * var(--u));
    line-height: calc(30 * var(--u));
  }
  .area-lp .area-data__value { padding: calc(20 * var(--u)) calc(4 * var(--u)) calc(22 * var(--u)); }
  .area-lp .area-data__num {
    font-size: calc(40 * var(--u));
    line-height: calc(52 * var(--u));
  }
  .area-lp .area-data__num span {
    margin-left: calc(4 * var(--u));
    font-size: calc(18 * var(--u));
  }
  .area-lp .area-data__note {
    font-size: calc(13 * var(--u));
    line-height: calc(22 * var(--u));
  }
  .area-lp .area-data__point {
    margin-top: calc(40 * var(--u));
    padding: calc(24 * var(--u)) calc(32 * var(--u));
    font-size: calc(16 * var(--u));
    letter-spacing: calc(1.2 * var(--u));
    line-height: calc(30 * var(--u));
  }
  .area-lp .area-data__source { margin-top: calc(40 * var(--u)); }
  .area-lp .area-data__subtitle {
    padding: calc(72 * var(--u)) 0 calc(40 * var(--u));
    font-size: calc(28 * var(--u));
    letter-spacing: calc(5 * var(--u));
    line-height: calc(48 * var(--u));
  }
  .area-lp .area-data__pref-name {
    padding: calc(14 * var(--u)) calc(64 * var(--u)) calc(14 * var(--u)) calc(24 * var(--u));
    font-size: calc(20 * var(--u));
  }
  .area-lp .area-data__pref-name::after {
    right: calc(24 * var(--u));
    font-size: calc(26 * var(--u));
  }
  .area-lp .area-data__cities { padding: calc(20 * var(--u)) calc(24 * var(--u)); }
  .area-lp .area-data__city {
    padding: calc(6 * var(--u)) calc(14 * var(--u));
    font-size: calc(14 * var(--u));
  }
  .area-lp .area-data__towns.is-scroll { max-height: calc(440 * var(--u)); }
  .area-lp .area-data__scroll-note { font-size: calc(13 * var(--u)); }
  .area-lp .area-data__city.is-link { padding: 0; }
  .area-lp .area-data__city.is-link a { padding: calc(6 * var(--u)) calc(14 * var(--u)); }
  .area-lp .area-data__pref-link {
    padding: calc(20 * var(--u)) calc(24 * var(--u)) 0;
    font-size: calc(15 * var(--u));
  }
}
