@charset "UTF-8";
body {
  background-color: #fefefe;
  color: #333;
}
header {
  padding: 0.5em 1em;
  background-color: #2b473e;
  color: #fefefe;
  position: sticky;
  top: 0;
  z-index: 99;
}
header a {
  color: #fefefe;
}
header h1 {
  font-size: 1.2em;
}
main {
  padding: 0.5em 1em;
  min-height: 100vh;
}
footer {
  padding: 0.5em 1em;
  background-color: #f4f1eb;
  border-top: 1px solid #ccc;
  position: sticky;
  bottom: 0;
  z-index: 98;
}
footer a {
  color: #333;
}
/* 全ページ共通 */
a {
  text-decoration: none;
  color: #2b473e;
}
h2 {
  padding: 0.5em;
  background-color: #6d8c50;
  color: #fefefe;
}
h1, h2, h3 {
  margin: 0.3em auto;
}
p {
  margin-bottom: 0.2em;
}
.no_bold {
  font-weight: normal;
}
.fsize_s {
  font-size: 0.9em;
}
/* 一覧ページ共通 */
span.joukyou {
  font-size: 0.9em;
  border: 1px solid #555;
  color: #555;
  padding: 0.1em 0.3em;
  border-radius: 0.3em;
  margin-left: 0.3em;
  display: inline-block;
  background-color: #fff;
}
/* 備考長い場合にスクロール */
.scrollable-box {
  max-height: 3em;
  overflow-y: auto;
}
@media only screen and (max-width: 767px) {
  .scrollable-box {
    max-height: 4em;
  }
}
/* 上下に薄い透過マスクをかけて「スクロール可能」であることを視覚的に示す。 */
.scrollable-box.fade-mask {
  mask-image: linear-gradient(to bottom, transparent 0%, black 75%, black 75%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 75%, transparent 100%);
}
/* 上端のマスクを外す（スクロールが上端まで達したとき） */
.scrollable-box.no-fade-top {
  mask-image: linear-gradient(to bottom, black 0%, black 75%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 75%, transparent 100%);
}
/* 下端のマスクを外す（スクロールが下端まで達したとき） */
.scrollable-box.no-fade-bottom {
  mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 100%);
}
/* マスクを完全に外す（上下ともにスクロール不要な場合） */
.scrollable-box.no-fade {
  mask-image: none;
  -webkit-mask-image: none;
}
.official {
  display: flex;
  flex-wrap: wrap;
}
.official > li {
  display: inlineblock;
  padding-right: 0.3em;
}
.official > li:last-child {
  padding-right: 0;
}
/* テーブルタイプの一覧用 */
.shisetsu_list h3 {
  margin-top: 1em;
}
.shisetsu_list table {
  width: 100%;
  margin: 0.5em auto 1em;
  table-layout: fixed;
}
.shisetsu_list table td, .shisetsu_list table th {
  padding: 0.3em;
  border: 1px #aaa solid;
  text-align: left;
}
.shisetsu_list table td.min, .shisetsu_list table th.min {
  width: 80px;
}
.shisetsu_list table td.mid, .shisetsu_list table th.mid {
  width: 100px;
}
.shisetsu_list table th {
  background-color: #dce3d3;
  color: #333;
}
@media only screen and (max-width: 767px) {
  .shisetsu_list table .thead {
    display: none;
  }
  .shisetsu_list table tr {
    width: 100%;
    border: none;
    border-bottom: 1px #444 solid;
  }
  .shisetsu_list table th {
    border: none;
    display: block;
    width: 100%;
  }
  .shisetsu_list table td {
    display: block;
    width: 100%;
    border: none;
    border-bottom: 1px #444 dashed;
  }
  .shisetsu_list table tr:nth-child(2) > td:first-child {
    border: none;
  }
  .shisetsu_list table td:first-child {
    background: #eee;
    font-weight: bold;
    text-align: center;
  }
  .shisetsu_list table td:last-child {
    border: none;
  }
  .shisetsu_list table td:before {
    content: attr(data-label);
    float: left;
  }
}
/* アコーディオン展開の一覧ページ用 */
.area {
  margin-bottom: 1em;
}
.pref {
  padding: 0.5em;
  border-bottom: solid 1px #aaa;
}
.pref h3 {
  padding-left: 1.5em;
}
.pref li a {
  padding: 0.3em;
  display: block;
}
.pref li a:hover {
  color: #000;
}
.pref li a::before {
  content: "";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  padding-right: 0.5em;
  color: #666;
}
/* ページごとの見た目 */
.caution {
  background-color: #ff0;
  padding: 0.5em;
  color: #f00;
  font-weight: bold;
  width: 100%;
  margin-top: 0.5em;
}
.mod_time {
  color: #555;
  font-size: 0.9em;
  margin-top: 0.5em;
}
.g_out {
  color: #777;
}
table.infotable {
  width: 100%;
  margin: 1em auto;
}
table.infotable td, table.infotable th {
  padding: 0.3em;
  border: 1px #aaa solid;
}
table.infotable th {
  background-color: #dce3d3;
  color: #333;
  width: 30%;
}
@media only screen and (max-width: 767px) {
  table.infotable tr {
    width: 100%;
  }
  table.infotable td, table.infotable th {
    display: block;
    width: 100%;
    text-align: left;
  }
  table.infotable th {
    border-bottom: none;
  }
  table.infotable td {
    border-top: none;
    border-bottom: none;
  }
  table.infotable td:first-child {
    border-bottom: none;
  }
  table.infotable tr:last-child td:last-child {
    border-bottom: 1px solid #ccc;
  }
}
/* 検索窓 */
#searchform {
  margin: 0.3em auto;
  font-size: 0.9em;
}
#searchform > div > input {
  width: 18em;
  max-width: 80%;
  border-radius: 0.3em;
  border: solid 1px #ccc;
  padding: 0.3em 0.5em;
}
#searchform > div > button {
  border-radius: 0.3em;
  border: solid 1px #ccc;
  padding: 0.3em 0.5em;
}
/* フッターにある都道府県ごとへのリンク用 */
.flex_pre {
  display: flex;
  flex-wrap: wrap;
}
.flex_pre > div {
  padding: 0.3em 0;
}
@media only screen and (min-width: 960px) {
  .flex_pre > div {
    width: calc((100% / 5) - (4em / 5));
    margin-right: 1em;
  }
  .flex_pre > div:nth-child(5n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 550px) and (max-width: 959px) {
  .flex_pre > div {
    width: calc((100% / 4) - (3em / 4));
    margin-right: 1em;
  }
  .flex_pre > div:nth-child(4n) {
    margin-right: 0;
  }
}
@media only screen and (max-width: 549px) {
  .flex_pre > div {
    width: calc((100% / 3) - (2em / 3));
    margin-right: 1em;
  }
  .flex_pre > div:nth-child(3n) {
    margin-right: 0;
  }
}
/* アコーディオンメニュー */
.accordion_title, .accordion02_title {
  position: relative;
  border: none;
  display: block;
  list-style: none;
  width: 100%;
  cursor: pointer;
}
summary.accordion_title::-webkit-details-marker, summary.accordion02_title::-webkit-details-marker {
  display: none;
}
.accordion_title:after, .accordion02_title:after {
  content: "+";
  position: absolute;
  top: calc(50% - 0.5em);
  left: 0;
  line-height: 1;
  padding: 0;
  pointer-events: none;
}
.accordion::details-content, .accordion02::details-content {
  opacity: 0;
  block-size: 0;
  transition: 0.3s;
  transition-property: display, opacity, block-size, padding;
  transition-behavior: allow-discrete;
}
.accordion[open]::details-content, .accordion02[open]::details-content {
  opacity: 1;
  block-size: auto;
  block-size: calc-size(auto, size);
}
.accordion[open] .accordion_content, .accordion02[open] .accordion02_content {
  padding: 1.4em 2em 1.4em 3em;
}
.accordion[open] .accordion_title:after, .accordion02[open] .accordion02_title:after {
  content: "-";
}
/* アコーディオン違う部分のみ(フッターの都道府県の所) */
.accordion02 li {
  padding: 0.3em 0 0.3em 0.8em;
}
.accordion02_title {
  padding-left: 0.8em;
}
/* ページトップへのスクロール用ボタン */
#page-top {
  position: fixed;
  z-index: 999;
  bottom: 4px;
  right: 10px;
}
#page-top a {
  background: rgba(100, 100, 100, 0.5);
  text-decoration: none;
  color: #fff;
  padding: 3px 12px;
  text-align: center;
  display: block;
  border-radius: 5px;
  font-size: 25px;
  border: solid 2px #fff;
}
#page-top a:before {
  content: "";
  font-family: "Font Awesome 5 Free";
  font-weight: bold;
}
#page-top a:hover {
  text-decoration: none;
  background: rgba(100, 100, 100, 0.7);
}
