@charset "UTF-8";

/*-------------------------------
  コンテンツ
-------------------------------*/

/*--- リンク ---*/

/*--- ファイルアイコン ---*/
.o-entry-content a.c-file-icon--pdf,
.o-entry-content a[href$=".pdf"],
.o-entry-content a[href$=".PDF"],
.o-entry-content a.c-file-icon--doc,
.o-entry-content a[href$=".doc"],
.o-entry-content a[href$=".docx"],
.o-entry-content a.c-file-icon--xls,
.o-entry-content a[href$=".xls"],
.o-entry-content a[href$=".xlsx"],
.o-entry-content a.c-file-icon--data,
.o-entry-content a[href$=".zip"] {
  display: inline-block;
}
.o-entry-content a.c-file-icon--pdf:before,
.o-entry-content a[href$=".pdf"]:before,
.o-entry-content a[href$=".PDF"]:before,
.o-entry-content a.c-file-icon--doc:before,
.o-entry-content a[href$=".doc"]:before,
.o-entry-content a[href$=".docx"]:before,
.o-entry-content a.c-file-icon--xls:before,
.o-entry-content a[href$=".xls"]:before,
.o-entry-content a[href$=".xlsx"]:before,
.o-entry-content a.c-file-icon--data:before,
.o-entry-content a[href$=".zip"]:before {
  font-family: "Font Awesome 5 Free";
  margin-right: 6px;
  font-size: 1.2em;
}
.o-entry-content a.c-file-icon--pdf:before,
.o-entry-content a[href$=".pdf"]:before,
.o-entry-content a[href$=".PDF"]:before {
  content: "\f1c1";
  color: #DD4D44;
}
.o-entry-content a.c-file-icon--doc:before,
.o-entry-content a[href$=".doc"]:before,
.o-entry-content a[href$=".docx"]:before {
  content: "\f1c2";
  color: #2A5699;
}
.o-entry-content a.c-file-icon--xls:before,
.o-entry-content a[href$=".xls"]:before,
.o-entry-content a[href$=".xlsx"]:before {
  content: "\f1c3";
  color: #1E6F43;
}
.o-entry-content a.c-file-icon--data:before,
.o-entry-content a[href$=".zip"]:before {
  content: "\f1c6";
  color: #B5B5B5;
}
.o-entry-content a.c-file-icon--none {
  display: inline;
}
.o-entry-content a.c-file-icon--none:before {
  display: none;
}

/*--- リスト ---*/
.o-entry-content ul {
  margin-left: 1.75em;
}
.o-entry-content ol {
  margin-left: 1.5em;
}
.o-entry-content li {
  list-style-type: inherit;
}

/*--- テーブル ---*/

/*--- フォーム部品 ---*/
input[type="text"],
input[type="password"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="telephone"],
input[type="number"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="tel"],
input[type="month"],
textarea {
  padding: 0.5rem 0.75rem;
  width: 100%;
  border: 1px solid #ccc;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.035);
  vertical-align: bottom;
  font-size: var(--px-to-rem_15);
}
input[type="text"]:hover,
input[type="password"]:hover,
input[type="email"]:hover,
input[type="url"]:hover,
input[type="search"]:hover,
input[type="telephone"]:hover,
input[type="number"]:hover,
input[type="date"]:hover,
input[type="datetime"]:hover,
input[type="datetime-local"]:hover,
input[type="month"]:hover,
input[type="week"]:hover,
input[type="time"]:hover,
input[type="tel"]:hover,
input[type="month"]:hover,
textarea:hover {
  border-color: #999;
}
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="telephone"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="tel"]:focus,
input[type="month"]:focus,
textarea:focus {
  border-color: #85b7d9;
}
.o-form-control--s {
  width: 5rem !important;
}
.o-form-control--m {
  width: 20rem !important;
}
.o-form-control--l {
  width: 40rem !important;
}
@media only screen and (max-width: 39.9375rem) {
  .o-form-control--full,
  .o-form-control--m,
  .o-form-control--l {
    width: 100% !important;
  }
}
.o-search-date input[type="month"],
select {
  font-family: 'Barlow','Noto Sans','Noto Sans JP','Hiragino Sans','ヒラギノ角ゴシック','Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ','Meiryo',sans-serif;
  border: 1px solid var(--color-gray);
  border-radius: 10px;
  padding: 2vw 4vw;
  vertical-align: bottom;
  font-size: var(--px-to-vw_12);
}
@media (min-width: 40em) {
  .o-search-date input[type="month"],
  select {
    border: 1px solid var(--color-gray);
    border-radius: unset;
    padding: 5px 10px;
    width: 100%;
    font-size: var(--px-to-rem_16);
  }
}
/* ページネーション */
.o-works .c-pagenavi {
  font-weight: bold;
  gap: 2.2vw;
}
.o-works .c-pagenavi .c-btn {
  gap: 2em;
  padding: 0 1em 0 2.5em !important;
  height: 9.6vw;
}
.o-works .c-pagenavi .c-btn.c-btn--reverse {
  gap: 2em;
  padding: 0 2.5em 0 1em !important;
}
@media (min-width: 40em) {
  .o-works .c-pagenavi {
    font-size: var(--px-to-rem_18);
    gap: 10px;
  }
  .o-works .c-pagenavi .c-btn {
    font-size: var(--px-to-rem_18);
    height: 50px;
  }
}
.o-info .c-pagenavi {
  font-weight: bold;
  gap: 2.2vw;
}
.o-info .c-pagenavi .c-btn {
  gap: 2em;
  padding: 0 1em 0 2.5em !important;
  height: 9.6vw;
}
.o-info .c-pagenavi .c-btn.c-btn--reverse {
  gap: 2em;
  padding: 0 2.5em 0 1em !important;
}
@media (min-width: 40em) {
  .o-info .c-pagenavi {
    font-size: var(--px-to-rem_18);
    gap: 10px;
  }
  .o-info .c-pagenavi .c-btn {
    font-size: var(--px-to-rem_18);
    height: 50px;
  }
}
a.page-numbers,
span.page-numbers {
  width: 9.6vw;
  height: 9.6vw;
  line-height: 9.5vw;
  border: 1px solid var(--color-main);
  background-color: #fff;
  color: var(--color-main);
  transition: 0.2s;
  text-decoration: none;
  display: inline-block;
}
span.page-numbers.dots {
  border: none;
  font-size: var(--px-to-vw_20);
  line-height: 7vw;
  width: 8vw;
}
.page-numbers.current,
.page-numbers.next,
.page-numbers.prev {
  border: 1px solid var(--color-main);
  background-color: var(--color-main);
  color: #fff;
}
@media (min-width: 40em) {
  a.page-numbers,
  span.page-numbers {
    width: 50px;
    height: 50px;
    line-height: 49px;
    border: 1px solid var(--color-main);
    background-color: #fff;
    color: var(--color-main);
  }
  span.page-numbers.dots {
    font-size: 25px;
    line-height: 37px;
    width: 40px;
  }
  .page-numbers.current,
  .page-numbers.next,
  .page-numbers.prev {
    border: 1px solid var(--color-main);
    background-color: var(--color-main);
    color: #fff;
  }
  a.page-numbers:hover {
    border: 1px solid var(--color-main);
    background-color: var(--color-main);
    color: #fff;
  }
}
/* 共通スタイル */
.o-entry-content ul {
  margin: 2em 0 2em 1.75em;
}
.o-entry-content ol {
  margin: 2em 0 2em 1.5em;
}
.o-entry-content p {
  margin: 2em 0;
  line-height: 1.8;
  font-size: 3.75vw;
}
.o-entry-content li {
list-style-type: inherit;
margin: 0.75em 0;
line-height: 1.7;
}
@media (min-width: 40em) {
  .o-entry-content li {
  list-style-type: inherit;
  margin: 1em 0;
  line-height: 1.7;
  }
  .o-entry-content {
    margin: 0 0 5em;
  }
  .o-entry-content p {
    margin: 2em 0;
    font-size: var(--px-to-rem_15);
  }
  .o-entry-content ol {
    margin: 2em 1em;
  }
}
.o-entry-content li.o-info-item {
  margin: 0;
}


/* モーダル表示 */
#zoom-modal {
  display: none;
  position: fixed;
  z-index: 9999;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.8);
  justify-content: center;
  align-items: center;
}
#zoom-modal.is-show {
  display: flex;
}
.zoom-img-wrap {
  position: relative;
  text-align: center;
}
#zoom-modal img {
  max-width: 90%;
  max-height: 90%;
}
#zoom-modal .zoom-close {
  position: absolute;
  top: 20px;
  right: 30px;
  font-size: 80px;
  color: #fff;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s;
  z-index: 10000;
}
#zoom-modal .zoom-close:hover {
  opacity: 0.7;
}
#zoom-modal .zoom-prev,
#zoom-modal .zoom-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 48px;
  color: #fff;
  border: none;
  width: 60px;
  height: 60px;
  text-align: center;
  cursor: pointer;
  transition: background 0.2s;
  z-index: 10000;
}
#zoom-modal .zoom-prev,
#zoom-modal .zoom-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 48px;
  color: #fff;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 10000;
}
#zoom-modal .zoom-prev { left: -40px; }
#zoom-modal .zoom-next { right: -40px; }
#zoom-modal .zoom-prev::before {
  content: "\f104";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
#zoom-modal .zoom-next::before {
  content: "\f105";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
@media (max-width: 600px) {
  #zoom-modal .zoom-prev,
  #zoom-modal .zoom-next {
    width: 30px;
    height: 30px;
  }
  #zoom-modal .zoom-prev {
  left: 30px;
  }
  #zoom-modal .zoom-next {
    right: 30px;
  }
  #zoom-modal .zoom-close {
    top: 10px;
    right: 15px;
    font-size: 26px;
  }
  #zoom-modal .zoom-prev,
  #zoom-modal .zoom-next {
    font-size: 30px;
  }
  #zoom-modal .zoom-prev { left: 20px; }
  #zoom-modal .zoom-next { right: 20px; }
}
#zoom-modal:not(.is-map) .zoom-inner {
  max-width: 90%;
  max-height: 90%;
}
/* ===== マップ用モード ===== */
#zoom-modal.is-map .zoom-inner {
  position: relative;
  background: #f0f0f0;
  width: 90%;
  height: 90%;
  padding: 40px 20px;
  box-sizing: border-box;
}
#zoom-modal.is-map .zoom-inner .zoom-close {
  color: #717171;
  top: 0;
  font-size: 80px;
}
#zoom-modal.is-map .js-scroll-hint {
  width: 100%;
  height: 100%;
  padding: 40px 20px;
  overflow-x: auto;
  text-align: left;
  -webkit-overflow-scrolling: touch;
}
#zoom-modal.is-map img {
  max-width: none;
  max-height: 100%;
  width: auto;
  display: block;
}

/* タイムライン */
.c-timeline {
  position: relative;
  margin-top: 8vw;
}
.c-timeline__item {
  position: relative;
  margin-bottom: 6.67vw;
}
.c-timeline__item .c-row--middle{
  padding-left: 13vw;
}
.c-timeline__meta {
  font-size: var(--px-to-vw_27);
  font-weight: bold;
  line-height: 1.5;
}
.c-timeline__meta span {
  color: var(--color-main);
  font-size: var(--px-to-vw_14);
}
.c-timeline__marker {
  position: absolute;
  left: 2.6vw;
  top: calc(60.3 / 432.6 * 100%);
  width: 12px;
  height: 12px;
  background-color: var(--color-main);
  transform: translate(-50%, -50%);
}
.c-timeline__marker.is-wave {
  position: absolute;
  width: 60px;
  height: 22px;
  background: url("../img/wave.svg") no-repeat center / contain;
  z-index: 3;
}
.c-timeline__item:has(.c-timeline__marker.is-wave) .c-timeline__line {
  background:
    linear-gradient(
      to bottom,
      transparent 0,
      transparent 4px,
      var(--color-main) 4px,
      var(--color-main) 100%
    );
}
.c-timeline__line {
  position: absolute;
  left: 2.6vw;
  width: 2px;
  height: 0;
  background-color: var(--color-main);
  transform: translateX(-50%);
}
.c-timeline__body {
  position: relative;
  padding: 1vw 2.6667vw 4vw 13vw;
}
.c-timeline__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  padding-left: 5vw;
}
.c-timeline__title {
  font-weight: bold;
  font-size: var(--px-to-vw_16);
  margin-top: 0.2em;
}
.c-timeline__text {
  position: relative;
  font-size: var(--px-to-vw_14);
  margin: 0;
  line-height: 1.8;
}
.c-timeline__item.is-special {
  color: var(--color-main);
}
.c-timeline__item.is-special .c-timeline__text {
  font-weight: bold;
  font-size: var(--px-to-vw_32);
}
.c-timeline__item.is-special .c-timeline__frame polyline {
  stroke-width: 3;
}
@media (min-width: 40em) {
  .c-timeline {
    padding-left: 0;
    margin-top: 55px;
  }
  .c-timeline__item {
    margin-bottom: 60px;
  }
  .c-timeline__item .c-row--middle{
    padding-left: 0;
  }
  .c-timeline__meta {
    position: absolute;
    top: calc(77.95 / 114.52 * 100% - 32px);
    left: 0;
    font-size: var(--px-to-rem_40);
  }
  .c-timeline__meta span {
    display: block;
    font-size: var(--px-to-rem_14);
  }
  .c-timeline__marker {
    left: 170px;
    top: calc(77.95 / 114.52 * 100%);
    width: 15px;
    height: 15px;
  }
  .c-timeline__marker::before {
    content: '';
    position: absolute;
    left: -50px;
    top: 50%;
    width: 50px;
    height: 2px;
    background-color: var(--color-main);
    transform: translateY(-50%);
  }
  .is-wave.c-timeline__marker::before {
    display: none;
  }
  .c-timeline__line {
    left: 170px;
  }
  .c-timeline__body {
    padding: 0 50px 35px 330px;
  }
  .c-timeline__frame {
    padding-left: 225px;
  }
  .c-timeline__title {
    font-size: var(--px-to-rem_25);
  }
  .c-timeline__text {
    font-size: var(--px-to-rem_14);
  }
  .c-timeline__item.is-special .c-timeline__text {
    font-size: var(--px-to-rem_48);
  }
}