/* [ni_area_hub]：TOP・主要ページの「地域から探す」入口。DESIGN.md のDon'ts（角丸8px、タップ44px以上、強調色は1色、飾りを重ねない）に従う */
.ni-areahub {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  gap: 1.5rem;
}

.ni-areahub-col {
  padding: 1.5rem;
  border: 1px solid #E2E8F0;
  border-top: 4px solid #217CEA;
  border-radius: 8px;
  background: #fff;
  min-width: 0;
}

.ni-areahub-head {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid #E2E8F0;
}

.ni-areahub-count {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: none;
  min-width: 5.5rem;
  margin: 0;
  color: #217CEA;
  line-height: 1.2;
}

.ni-areahub-count strong {
  font-size: 3.25rem;
  font-weight: 700;
  line-height: 1;
}

.ni-areahub-count span {
  margin-top: .25rem;
  font-size: .8125rem;
  font-weight: 700;
}

.ni-areahub-title {
  margin: 0;
  color: #212529;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
}

.ni-areahub-title small {
  display: block;
  margin-top: .25rem;
  color: #4F5B72;
  font-size: .875rem;
  font-weight: 400;
}

.ni-areahub-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1.25rem;
  padding: 0;
  list-style: none;
}

.ni-areahub-chips a {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  padding: .25rem .875rem;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  background: #F8F9FA;
  color: #212529;
  font-size: .9375rem;
  line-height: 1.5;
  text-decoration: none;
}

.ni-areahub-chips a small {
  color: #4F5B72;
  font-size: .8125rem;
}

.ni-areahub-chips a:hover,
.ni-areahub-chips a:focus-visible {
  border-color: #217CEA;
  background: #fff;
  color: #217CEA;
}

.ni-areahub-go {
  margin: 0;
}

@media (max-width: 575px) {
  .ni-areahub-col {
    padding: 1.25rem;
  }

  .ni-areahub-count {
    min-width: 4.5rem;
  }

  .ni-areahub-count strong {
    font-size: 2.75rem;
  }
}

/* TOP用：県ごとの1枚カード＋サービス別リンク */
.ni-areahub--single {
  grid-template-columns: 1fr;
}

.ni-areahub-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ni-areahub-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 44px;
  padding: .5rem 1rem;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  background: #F8F9FA;
  color: #212529;
  text-decoration: none;
}

.ni-areahub-links a::after {
  content: "";
  flex: none;
  width: .5rem;
  height: .5rem;
  border-top: 2px solid #217CEA;
  border-right: 2px solid #217CEA;
  transform: rotate(45deg);
}

.ni-areahub-svc {
  font-weight: 700;
}

.ni-areahub-links small {
  margin-left: auto;
  color: #4F5B72;
  font-size: .8125rem;
}

.ni-areahub-links a:hover,
.ni-areahub-links a:focus-visible {
  border-color: #217CEA;
  background: #fff;
  color: #217CEA;
}

/* TOP用：全国対応（オンライン）と出張OKエリアを並べて示す */
.ni-areahub-reach {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: 1rem;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}

.ni-areahub-reach li {
  padding: 1.25rem 1.5rem;
  border: 1px solid #E2E8F0;
  border-left: 4px solid #217CEA;
  border-radius: 8px;
  background: #fff;
}

.ni-areahub-reach b {
  display: block;
  margin-bottom: .25rem;
  color: #217CEA;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
}

.ni-areahub-reach span {
  display: block;
  color: #212529;
  font-size: .9375rem;
  line-height: 1.75;
}

.ni-areahub-links .is-soon {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 44px;
  padding: .5rem 1rem;
  border: 1px dashed #E2E8F0;
  border-radius: 8px;
  color: #4F5B72;
}

/* 県ページ「ほかの出張エリア」：見出しに合わせて中央寄せ */
#area-pref-others-n .ni-areahub-chips {
  justify-content: center;
}

/* [ni_area_hub_all]：サービスカテゴリのページ用。方面ごとの見出し＋市区町村リンクを全展開 */
.ni-areaall {
  display: grid;
  gap: 1.5rem;
}

.ni-areaall-group {
  padding: 1.25rem 1.5rem;
  border: 1px solid #E2E8F0;
  border-left: 4px solid #217CEA;
  border-radius: 8px;
  background: #fff;
}

.ni-areaall-gh {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .75rem;
  color: #212529;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
}

.ni-areaall-gh small {
  color: #4F5B72;
  font-size: .8125rem;
  font-weight: 400;
}

.ni-areaall-list {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ni-areaall-list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .25rem .875rem;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  background: #F8F9FA;
  color: #212529;
  font-size: .9375rem;
  line-height: 1.5;
  text-decoration: none;
}

.ni-areaall-list a:hover,
.ni-areaall-list a:focus-visible {
  border-color: #217CEA;
  background: #fff;
  color: #217CEA;
}

@media (max-width: 575px) {
  .ni-areaall-group {
    padding: 1rem;
  }
}

/* [ni_area_hub_all]：埼玉の市区町村リンクを開閉式に */
.ni-areaall-fold > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 44px;
  padding: .5rem 1.5rem;
  border: 1px solid #217CEA;
  border-radius: 8px;
  background: #fff;
  color: #217CEA;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.ni-areaall-fold > summary::-webkit-details-marker {
  display: none;
}

.ni-areaall-fold > summary::after {
  content: "";
  flex: none;
  width: .5rem;
  height: .5rem;
  border-right: 2px solid #217CEA;
  border-bottom: 2px solid #217CEA;
  transform: rotate(45deg);
}

.ni-areaall-fold[open] > summary::after {
  transform: rotate(-135deg);
}

.ni-areaall-body {
  display: grid;
  gap: 1.5rem;
  margin-top: 1.5rem;
}

/* [ni_area_hub_all]：全国対応・出張OKの2枚カード（文字のメリハリ＋イラスト1点） */
.ni-areaall-top {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.ni-areaall-card {
  position: relative;
  min-width: 0;
  padding: 1.5rem 1.75rem 1.75rem;
  border: 1px solid #E2E8F0;
  border-top: 4px solid #217CEA;
  border-radius: 8px;
  background: #fff;
}

.ni-areaall-label {
  margin: 0;
  color: #217CEA;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1;
}

.ni-areaall-title {
  margin: .25rem 0 .5rem;
  color: #212529;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.4;
}

.ni-areaall-big {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  margin: 0 0 .75rem;
  color: #217CEA;
  line-height: 1.1;
}

.ni-areaall-big strong {
  font-size: 4rem;
  font-weight: 700;
  line-height: 1;
}

.ni-areaall-big span {
  font-size: 1.25rem;
  font-weight: 700;
}

.ni-areaall-text {
  max-width: 24em;
  margin: 0;
  color: #212529;
  font-size: .9375rem;
  line-height: 1.8;
}

.ni-areaall-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
}

.ni-areaall-card img.ni-areaall-img {
  flex: none;
  width: 11rem;
  height: auto;
  margin: 0 -.75rem -1.75rem auto;
}

.ni-areaall-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ni-areaall-pills a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .25rem 1.25rem;
  border: 1px solid #217CEA;
  border-radius: 8px;
  background: #fff;
  color: #217CEA;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
}

.ni-areaall-pills a.is-main {
  background: #217CEA;
  color: #fff;
  font-size: 1.125rem;
  padding-inline: 1.75rem;
}

.ni-areaall-pills a:hover,
.ni-areaall-pills a:focus-visible {
  background: #E8F1FD;
  color: #217CEA;
}

.ni-areaall-pills a.is-main:hover,
.ni-areaall-pills a.is-main:focus-visible {
  background: #1A66C4;
  color: #fff;
}

@media (max-width: 575px) {
  .ni-areaall-card {
    padding: 1.25rem 1.25rem 1.5rem;
  }

  .ni-areaall-big strong {
    font-size: 3.25rem;
  }

  .ni-areaall-card img.ni-areaall-img {
    width: 9rem;
    margin: 0 -.5rem -1.5rem auto;
  }
}

/* PC幅：イラストは「出張OK」カードの右上に置く（ピルの横に収まらないため。狭い幅では上のピル下に回り込む） */
@media (min-width: 992px) {
  .ni-areaall-card img.ni-areaall-img {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    margin: 0;
  }
}

/* 「全国対応」カード：イラストは文章の下（狭い幅）／PCは右上 */
.ni-areaall-card {
  display: flex;
  flex-direction: column;
}

.ni-areaall-card > img.ni-areaall-img {
  display: block;
  margin: auto -.5rem -1.5rem auto;
}

@media (min-width: 992px) {
  .ni-areaall-card > img.ni-areaall-img {
    margin: 0;
  }
}

/* 県ページが未公開の県：リンクにせず表記のみ */
.ni-areaall-pills .ni-areaall-plain {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .25rem 1.25rem;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  background: #F8F9FA;
  color: #4F5B72;
  font-size: 1rem;
  font-weight: 700;
}
