@charset "UTF-8";
/*
====>> 再利用可能なパーツのデフォルトスタイリング <<====

・このファイルはベースのスタイルになるので、原則オーバーライド(上書き)はしない事
・タグに依存しないベースのコンポーネントパーツ
・単体、あるいはパーツ単位で独立した仕様のスタイル

*/
/*		見出し
-----------------------------------------------------*/
.c-title_l {
  font-size: 3.6rem;
}

.c-title_m {
  font-size: 2.8rem;
}

.c-title_s {
  font-size: 2rem;
}

@media screen and (max-width: 767px) {
  .c-title_l {
    font-size: 2rem;
  }
  .c-title_m {
    font-size: 1.8rem;
  }
  .c-title_s {
    font-size: 1.6rem;
  }
}
/*		リスト
-----------------------------------------------------*/
.c-list li {
  padding: 20px;
  box-sizing: border-box;
}

ul.c-list_plain > li {
  position: relative;
  padding-left: 2rem;
}
ul.c-list_plain > li::before {
  content: "・";
  position: absolute;
  left: 0;
  font-size: inherit;
}

ol.c-list_plain > li {
  counter-increment: mycounter;
}
ol.c-list_plain > li::before {
  content: counter(mycounter, decimal-leading-zero) ".";
  display: inline-block;
  font-size: inherit;
  margin-right: 0.3em;
}

/*		ボタン
-----------------------------------------------------*/
.c-btn_wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px 5%;
  flex-wrap: wrap;
}

.c-link_btn {
  position: relative;
  color: #fff;
  background: var(--color-black);
  border: 2px solid var(--color-black);
  padding: 10px 40px;
  display: inline-block;
  transition: all 0.2s ease-in-out;
}
.c-link_btn ::file-selector-button {
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  touch-action: manipulation;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.c-link_btn.is-arrow::after, .c-link_btn.is-arrow_under::after {
  content: "▶";
  position: absolute;
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
  font-size: 1rem;
  line-height: 0;
  transition: all 0.2s ease-in-out;
}
.c-link_btn.is-arrow_under::after {
  transform: rotate(90deg);
}
@media (hover: hover) {
  .c-link_btn:hover {
    background-color: #fff;
    opacity: 1;
    color: var(--color-black);
    text-decoration: none;
  }
  .c-link_btn:hover::after {
    color: currentColor;
  }
}
@media (hover: hover) {
  .c-link_btn.is-arrow:hover::after {
    right: 4%;
  }
}

.c-link_btn_arrow {
  position: relative;
  border: 1px solid var(--color-border-pale);
  padding: 10px 40px;
  display: inline-block;
  color: var(--theme-main);
}
.c-link_btn_arrow:after {
  content: "→";
  position: absolute;
  top: auto;
  right: 5%;
}
@media (hover: hover) {
  .c-link_btn_arrow:after:hover {
    right: -5%;
  }
}
@media (hover: hover) {
  .c-link_btn_arrow:hover {
    opacity: 1;
    color: var(--theme-main);
    text-decoration: none;
  }
}

.c-news_list li {
  display: flex;
  border-bottom: dashed 1px #333;
}
.c-news_list li a {
  width: 100%;
  padding: 20px 0;
  display: flex;
  align-items: center;
  gap: 15px;
}
@media (hover: hover) {
  .c-news_list li a:hover {
    color: blue;
    color: var(--color-blue);
    color: var(--color-base);
  }
}
.c-news_list li .c-news_cat {
  min-width: 120px;
  font-size: 1.2rem;
  text-align: center;
  border: 1px solid currentColor;
  border-radius: 6px;
}

@media screen and (max-width: 767px) {
  /*SP以下 表示*/
  .c-news_list li a {
    flex-wrap: wrap;
  }
  .c-news_list li a p {
    width: 100%;
  }
}
/*END SP以下 表示*/
/*		タブ切り替えパネル
-----------------------------------------------------*/
.c-tab-panel_tabs {
  display: flex;
  justify-content: center;
  gap: 15px 3%;
}
.c-tab-panel_tab {
  cursor: pointer;
  padding: 3px 5px;
}
.c-tab-panel_tab.is-active {
  pointer-events: none;
  border-bottom: 1px solid var(--color-black);
}
.c-tab-panel_panel {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transition: opacity 0.2s ease;
}
.c-tab-panel_panel.is-active {
  pointer-events: all;
  max-height: 100%;
  visibility: visible;
  opacity: 1;
}

/*		パンくずリスト
-----------------------------------------------------*/
.c-breadcrumb {
  width: var(--w-liquid);
  padding: 5px 0;
  box-sizing: border-box;
}
.c-breadcrumb ol, .c-breadcrumb ul,
.c-breadcrumb .c-breadcrumb-list {
  list-style-type: none;
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 10px 5px;
  padding: 4px 6px;
  background-color: #efefef;
  overflow-y: none;
}
.c-breadcrumb ol li, .c-breadcrumb ul li,
.c-breadcrumb .c-breadcrumb-list li {
  color: var(--color-font-base);
  font-size: 1.3rem;
}
.c-breadcrumb ol li:not(:last-child):after, .c-breadcrumb ul li:not(:last-child):after,
.c-breadcrumb .c-breadcrumb-list li:not(:last-child):after {
  content: ">";
  display: inline-block;
  margin: 0 -1px 0 1px;
}
.c-breadcrumb ol li a, .c-breadcrumb ul li a,
.c-breadcrumb .c-breadcrumb-list li a {
  color: var(--color-font-base);
  display: inline-block;
  font-size: 1.3rem;
}
@media (hover: hover) {
  .c-breadcrumb ol li a:hover, .c-breadcrumb ul li a:hover,
  .c-breadcrumb .c-breadcrumb-list li a:hover {
    opacity: 1;
  }
}

@media screen and (max-width: 767px) {
  .c-breadcrumb li,
  .c-breadcrumb li a {
    font-size: 1.2rem;
  }
}
/*  END Break Point  */
/*		ページャー
-----------------------------------------------------*/
/* 複数ページタイプ */
.c-pagination,
.wp-pagenavi {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px 10px;
  width: -moz-max-content;
  margin: 30px auto;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .c-pagination .c-pagination,
  .c-pagination .wp-pagenavi,
  .wp-pagenavi .c-pagination,
  .wp-pagenavi .wp-pagenavi {
    gap: 10px;
  }
}
.c-pagination .c-pagination_prev,
.c-pagination .c-pagination_page,
.c-pagination .c-pagination_next,
.c-pagination .c-pagination_first,
.c-pagination .c-pagination_last,
.c-pagination .previouspostslink,
.c-pagination .prev,
.c-pagination .nextpostslink,
.c-pagination .next,
.c-pagination .page,
.c-pagination .page-numbers,
.c-pagination .is-current,
.c-pagination .current,
.c-pagination .first,
.c-pagination .last,
.wp-pagenavi .c-pagination_prev,
.wp-pagenavi .c-pagination_page,
.wp-pagenavi .c-pagination_next,
.wp-pagenavi .c-pagination_first,
.wp-pagenavi .c-pagination_last,
.wp-pagenavi .previouspostslink,
.wp-pagenavi .prev,
.wp-pagenavi .nextpostslink,
.wp-pagenavi .next,
.wp-pagenavi .page,
.wp-pagenavi .page-numbers,
.wp-pagenavi .is-current,
.wp-pagenavi .current,
.wp-pagenavi .first,
.wp-pagenavi .last {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px 5px;
  min-width: 50px;
  min-height: 50px;
  padding: 3px 5px;
  border: 1px solid currentColor;
  color: var(--color-base);
  box-sizing: border-box;
  text-decoration: none;
  transition: 0.3s ease;
}
@media screen and (max-width: 767px) {
  .c-pagination .c-pagination_prev,
  .c-pagination .c-pagination_page,
  .c-pagination .c-pagination_next,
  .c-pagination .c-pagination_first,
  .c-pagination .c-pagination_last,
  .c-pagination .previouspostslink,
  .c-pagination .prev,
  .c-pagination .nextpostslink,
  .c-pagination .next,
  .c-pagination .page,
  .c-pagination .page-numbers,
  .c-pagination .is-current,
  .c-pagination .current,
  .c-pagination .first,
  .c-pagination .last,
  .wp-pagenavi .c-pagination_prev,
  .wp-pagenavi .c-pagination_page,
  .wp-pagenavi .c-pagination_next,
  .wp-pagenavi .c-pagination_first,
  .wp-pagenavi .c-pagination_last,
  .wp-pagenavi .previouspostslink,
  .wp-pagenavi .prev,
  .wp-pagenavi .nextpostslink,
  .wp-pagenavi .next,
  .wp-pagenavi .page,
  .wp-pagenavi .page-numbers,
  .wp-pagenavi .is-current,
  .wp-pagenavi .current,
  .wp-pagenavi .first,
  .wp-pagenavi .last {
    min-width: 38px;
    min-height: 38px;
  }
}
.c-pagination .c-pagination_prev:hover,
.c-pagination .c-pagination_next:hover,
.c-pagination .c-pagination_page:hover,
.c-pagination .c-pagination_first:hover,
.c-pagination .c-pagination_last:hover,
.c-pagination .previouspostslink:hover,
.c-pagination .prev:hover,
.c-pagination .nextpostslink:hover,
.c-pagination .next:hover,
.c-pagination .page:hover,
.c-pagination .page-numbers:hover,
.c-pagination .current:hover,
.c-pagination .first:hover,
.c-pagination .last:hover,
.wp-pagenavi .c-pagination_prev:hover,
.wp-pagenavi .c-pagination_next:hover,
.wp-pagenavi .c-pagination_page:hover,
.wp-pagenavi .c-pagination_first:hover,
.wp-pagenavi .c-pagination_last:hover,
.wp-pagenavi .previouspostslink:hover,
.wp-pagenavi .prev:hover,
.wp-pagenavi .nextpostslink:hover,
.wp-pagenavi .next:hover,
.wp-pagenavi .page:hover,
.wp-pagenavi .page-numbers:hover,
.wp-pagenavi .current:hover,
.wp-pagenavi .first:hover,
.wp-pagenavi .last:hover {
  opacity: 0.7;
  color: #fff;
  background-color: var(--color-base);
}
.c-pagination .page-numbers.dots,
.c-pagination .extend,
.wp-pagenavi .page-numbers.dots,
.wp-pagenavi .extend {
  border: none;
  pointer-events: none;
}
.c-pagination .is-current,
.c-pagination .current,
.wp-pagenavi .is-current,
.wp-pagenavi .current {
  color: #fff;
  background-color: var(--color-base);
}
@media (hover: hover) {
  .c-pagination .is-current:hover,
  .c-pagination .current:hover,
  .wp-pagenavi .is-current:hover,
  .wp-pagenavi .current:hover {
    opacity: 1;
  }
}
.c-pagination .previouspostslink,
.c-pagination .prev,
.c-pagination .nextpostslink,
.c-pagination .next,
.wp-pagenavi .previouspostslink,
.wp-pagenavi .prev,
.wp-pagenavi .nextpostslink,
.wp-pagenavi .next {
  position: relative;
  overflow: hidden;
  text-indent: -999%;
}
.c-pagination .previouspostslink::before,
.c-pagination .prev::before,
.c-pagination .nextpostslink::before,
.c-pagination .next::before,
.wp-pagenavi .previouspostslink::before,
.wp-pagenavi .prev::before,
.wp-pagenavi .nextpostslink::before,
.wp-pagenavi .next::before {
  content: "";
  display: block;
  width: 0.89em;
  height: 0.89em;
  border-top: solid 2px;
  position: absolute;
  transform-origin: center;
  color: inherit;
  transition: 0.3s ease;
}
.c-pagination .previouspostslink::before,
.c-pagination .prev::before,
.wp-pagenavi .previouspostslink::before,
.wp-pagenavi .prev::before {
  border-left: solid 2px;
  top: 50%;
  left: 37%;
  transform: rotate(-45deg);
  transform-origin: top left;
}
.c-pagination .nextpostslink::before,
.c-pagination .next::before,
.wp-pagenavi .nextpostslink::before,
.wp-pagenavi .next::before {
  border-right: solid 2px;
  top: 50%;
  right: 37%;
  transform: rotate(45deg);
  transform-origin: top right;
}
.c-pagination .c-pagination_first,
.c-pagination .c-pagination_last,
.wp-pagenavi .c-pagination_first,
.wp-pagenavi .c-pagination_last {
  width: -moz-max-content;
  width: max-content;
}

/* 前後ページナビゲーション */
.c-pagination_adjacent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 540px;
  margin: 0 auto;
  margin-top: 60px;
}
.c-pagination_adjacent .c-pagination_prev,
.c-pagination_adjacent .c-pagination_next {
  min-width: 80px;
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: bold;
  letter-spacing: 0.06em;
  transition: 0.3s ease;
}
.c-pagination_adjacent .c-pagination_prev {
  justify-content: flex-start;
}
.c-pagination_adjacent .c-pagination_next {
  justify-content: flex-end;
}
.c-pagination_adjacent .c-pagination_prev::before,
.c-pagination_adjacent .c-pagination_next::after {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  border-top: solid 2px;
  border-right: solid 2px;
  transform-origin: center;
  color: inherit;
  transition: 0.3s ease;
}
.c-pagination_adjacent .c-pagination_prev::before {
  position: relative;
  left: 0;
  transform: rotate(-135deg);
  transition: 0.3s ease;
}
.c-pagination_adjacent .c-pagination_next::after {
  position: relative;
  right: 0;
  transform: rotate(45deg);
  transition: 0.3s ease;
}
.c-pagination_adjacent .c-pagination_back {
  justify-content: center;
  font-weight: bold;
  text-align: center;
  min-width: 80px;
}
.c-pagination_adjacent .c-pagination_prev:hover,
.c-pagination_adjacent .c-pagination_next:hover,
.c-pagination_adjacent .c-pagination_back:hover {
  color: var(--color-base);
}
.c-pagination_adjacent .c-pagination_prev:hover::before {
  left: -5px;
}
.c-pagination_adjacent .c-pagination_next:hover::after {
  right: -5px;
}
.c-pagination_adjacent .c-pagination_empty {
  min-width: 100px;
}

/*		詳細
---------------------------
--------------------------*/
.c-pagination_single {
  margin-top: 40px;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
}
.c-pagination_single .c-pagination_prev {
  text-align: left;
}
.c-pagination_single .c-pagination_back {
  text-align: center;
}
.c-pagination_single .c-pagination_next {
  text-align: right;
}

/*		テーブル
-----------------------------------------------------*/
.c-table_plain {
  width: 100%;
}
.c-table_plain th {
  background: #efefef;
  width: 20%;
  padding: 20px;
  border-bottom: solid 1px #ccc;
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
}
.c-table_plain td {
  padding: 20px 30px;
  border-bottom: solid 1px #ccc;
}

@media screen and (max-width: 767px) {
  .c-table_plain thead, .c-table_plain tbody, .c-table_plain tfoot, .c-table_plain tr {
    display: block;
    width: 100%;
  }
  .c-table_plain th, .c-table_plain td {
    width: 100%;
    padding: 20px;
    display: block;
  }
}
.c-table_two_tone {
  width: 100%;
}
.c-table_two_tone th {
  width: 30%;
  padding: 20px;
  border-bottom: solid 1px var(--color-border-pale);
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
}
.c-table_two_tone tr:nth-child(2n) > th {
  background: var(--color-base);
  width: 30%;
  padding: 20px;
  border-bottom: solid 1px var(--color-border-pale);
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
}
.c-table_two_tone td {
  width: 70%;
  padding: 20px 30px;
  border-bottom: solid 1px var(--color-border-pale);
}
.c-table_two_tone tr:nth-child(2n) > td {
  background: var(--color-base);
  width: 70%;
  padding: 20px 30px;
  border-bottom: solid 1px var(--color-border-pale);
}

@media screen and (max-width: 767px) {
  .table_two_tone th,
  table.two_tone td {
    width: 100%;
    padding: 20px 0px;
    display: block;
  }
}
/*		googlemap
-----------------------------------------------------*/
.c-gmap {
  position: relative;
  aspect-ratio: 100/75; /* 比率を4:3に固定 */
  overflow: hidden;
}
.c-gmap iframe, .c-gmap object, .c-gmap embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*		movie  iframeのwidthとheightは削除すること！
-----------------------------------------------------*/
.c-movie {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9; /* 比率を16:9に固定 */
  overflow: hidden;
}
.c-movie iframe, .c-movie object, .c-movie embed, .c-movie video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*		定義リスト
-----------------------------------------------------*/
.c-dl-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 2%;
}
.c-dl-flex dt {
  float: left;
  font-weight: bold;
  width: 80px;
}
.c-dl-flex dd {
  width: calc(98% - 80px);
}

/*		アコーディオンコンテンツ .scratch.jsに記述あり
-----------------------------------------------------*/
.c-accordion {
  list-style: none;
  /*アコーディオンで現れるエリア*/
}
.c-accordion .c-accordion_label {
  position: relative;
  cursor: pointer;
  font-size: 2rem;
  text-align: left;
  padding: 20px 50px 20px 20px;
  transition: all 0.5s ease;
  list-style-type: none;
  /*　is-openというクラスがついたら形状変化　*/
}
.c-accordion .c-accordion_label::before, .c-accordion .c-accordion_label::after {
  position: absolute;
  content: "";
  width: 15px;
  height: 2px;
  background-color: #333;
  transition: all 0.2s linear;
}
.c-accordion .c-accordion_label::before {
  top: 50%;
  right: 15px;
  transform: translateY(-50%) rotate(0deg);
}
.c-accordion .c-accordion_label::after {
  top: 50%;
  right: 15px;
  transform: translateY(-50%) rotate(90deg);
}
.c-accordion details[open] .c-accordion_label::before, .c-accordion details[open] .c-accordion_label::after {
  transform: rotate(0);
}
.c-accordion details[open] .c-accordion_label::after {
  opacity: 0;
}
.c-accordion .c-accordion_box {
  overflow: hidden;
}
.c-accordion .c-accordion_box .l-inner {
  padding: 0 20px 20px;
}
.c-accordion details[open] .c-accordion_box {
  max-height: 500px; /* 十分な高さを設定。必要に応じて調整 */
}

/*		フォーム
-----------------------------------------------------*/
.c-form {
  margin: auto;
  transform: unset;
}

/*フォームステップ*/
.c-form_step {
  position: relative;
  width: 300px;
  margin: 0 auto 61px;
  display: flex;
  justify-content: space-between;
}
.c-form_step::before {
  content: "";
  width: 250px;
  height: 1px;
  background-color: var(--color-base);
  position: absolute;
  z-index: -1;
  top: 31px;
  left: 50%;
  transform: translateX(-50%);
}
.c-form_step .c-form_step_item {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 5px;
  color: var(--color-base);
  font-size: 1.6rem;
}
.c-form_step .c-form_step_item.active .c-form_step_item_number span {
  opacity: 1;
  color: #fff;
  background-color: var(--color-base);
}
.c-form_step .c-form_step_item.active .c-form_step_title {
  opacity: 1;
}
.c-form_step .c-form_step_item .c-form_step_item_number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #fff;
}
.c-form_step .c-form_step_item .c-form_step_item_number span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  opacity: 0.5;
  border-radius: 50%;
  border: 2px solid var(--color-base);
  background-color: #fff;
  font-weight: 500;
  letter-spacing: 0;
}
.c-form_step .c-form_step_item .c-form_step_item_number .c-form_step_title {
  opacity: 0.5;
  letter-spacing: 0.06em;
}

/*.c-form_step*/
/*フォームレイアウト*/
.c-form_row {
  margin-bottom: 30px;
}

.c-form dt {
  display: block;
  margin-bottom: 12px;
}

.c-form dd {
  display: block;
  margin-bottom: 15px;
}

.c-form dd + dt {
  margin-top: 38px;
}

.c-form_input_row {
  display: flex;
  gap: 20px 40px;
  flex-wrap: wrap;
}
.c-form_input_row.is-col-2 > * {
  max-width: calc(50% - 20px);
}
.c-form_input_row + .c-form_input_row {
  margin-top: 15px;
}

@media screen and (max-width: 767px) {
  /*SP以下 表示*/
  .c-form_input_row {
    flex-direction: column;
  }
  .c-form_input_row.is-col-2 > * {
    max-width: 100%;
  }
}
/*END SP以下 表示*/
.c-form select,
.c-form option,
.c-form textarea,
.c-form input[type=text],
.c-form input[type=tel],
.c-form input[type=email],
.c-form input[type=search],
.c-form input[type=url] {
  font-size: 1.6rem;
  font-weight: 400;
  width: 100%;
  min-height: 50px;
  padding: 15px;
  border: none;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.08);
  border-radius: 6px;
  background-color: #fff;
  outline: 0;
}

::-moz-placeholder {
  color: #aaa;
}

::placeholder {
  color: #aaa;
}

.c-form_input_l {
  width: 100%;
}

.c-form_input_m {
  width: -moz-max-content;
  width: max-content;
  max-width: 400px;
}

.c-form_input_s {
  width: -moz-min-content;
  width: min-content;
  max-width: 120px;
}

.c-form input[type=text] {
  min-width: 80px;
  min-height: 50px;
}

.c-form input[type=radio] {
  margin-right: 5px;
}

.form__input-container--checkbox,
.form__input-container--radio {
  gap: 10px 39px;
}

.form__input-container--col-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

@media screen and (max-width: 879px) {
  .form__input-container--col-2 {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
.c-form_checkbox-item,
.c-form_radio-item {
  display: inline-flex;
  align-items: center;
  gap: 0 20px;
}

.c-form input[type=checkbox],
.c-form input[type=radio] {
  position: relative;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  width: 24px;
  height: 24px;
  padding: 0;
  margin: 0 0.2em 0 0;
}

.c-form input[type=checkbox]::before,
.c-form input[type=radio]::before {
  content: "";
  position: absolute;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  background: #fff;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.c-form input[type=checkbox]::after,
.c-form input[type=radio]::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.c-form input[type=checkbox]::before {
  border: 1px solid #f6f5f3;
  background: #fff;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.08);
}

.c-form input[type=checkbox]:checked::after {
  content: "✔";
  font-size: 1.8rem;
  line-height: 1em;
}

@media screen and (max-width: 879px) {
  .c-form input[type=checkbox]:checked::after {
    font-size: 12px;
  }
}
.c-form input[type=radio]::before {
  border: 1px solid #d5d5d5;
  border-radius: 50%;
}

.c-form input[type=radio]:checked::after {
  content: "";
  background: #666;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  border-radius: 50%;
}

.c-form .check_close {
  display: none;
}

.c-form option:focus,
.c-form textarea:focus,
.c-form input[type=text]:focus,
.c-form input[type=tel]:focus,
.c-form input[type=email]:focus,
.c-form input[type=search]:focus,
.c-form input[type=url]:focus {
  outline: 0;
  box-shadow: 0 0 0 2px rgb(225, 236, 251) inset;
}

.c-form label:has(input[type=radio]) {
  display: inline-block;
}

.c-form label select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}

.c-form label:has(select) {
  display: inline-flex;
  align-items: center;
  position: relative;
}

.c-form label:has(select)::after {
  position: absolute;
  right: 15px;
  width: 10px;
  height: 7px;
  background-color: #535353;
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
          clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
  pointer-events: none;
}

.c-form_label {
  display: block;
  margin-bottom: 10px;
}

/*必須or任意ラベル*/
.c-form_label span {
  display: inline-block;
  color: #fff;
  background-color: #c4c4c4;
  background-color: var(--color-gray);
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  font-weight: bold;
  text-align: center;
  vertical-align: middle;
  padding: 2px 8px;
  margin-left: 8px;
}
.c-form_label span.is-required {
  background-color: #f00;
  background-color: var(--color-red);
}

.c-form label > select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  min-width: 230px;
  height: 2.8em;
  padding: 8px;
  border: 1px solid #c4c4c4;
  background-color: #fff;
  color: #2e2e2e;
  font-size: 1em;
  cursor: pointer;
}

/*プライバシー同意チェック*/
.c-form_privacy {
  max-width: 434px;
  width: 100%;
  min-height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 20px;
  background-color: #f6f6f6;
  padding: 18px 40px;
  margin: 30px auto 40px;
}
.c-form_privacy .c-form_privacy_link {
  text-decoration: underline;
}
@media (hover: hover) {
  .c-form_privacy .c-form_privacy_link:hover {
    text-decoration: none;
  }
}
.c-form_privacy .c-form_privacy_consent label {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.c-form_agreement {
  background: #fff5f8;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 80%;
  font-size: 15px;
  padding: 25px 45px;
  margin: 45px auto;
}
.c-form_agreement a {
  color: var(--color-red);
  text-decoration: underline;
}
@media (hover: hover) {
  .c-form_agreement a:hover {
    text-decoration: none;
    opacity: 0.7;
  }
}

/*フォームボタン*/
.c-form input[type=submit],
.c-form input[type=button],
.c-form button {
  border-color: transparent;
  cursor: pointer;
}

/*		相対幅ボックス
-----------------------------------------------------*/
.c-block {
  width: var(--w-liquid);
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  /*  END .c-block_2 */
  /*  END &.c-block_3 */
  /*  END &.c-block_4 */
  /*  END &.c-block_5 */
  /*  END &.c-block_6 */
  /*  END &.c-block_7 */
  /*  END &.c-block_8 */
}
.c-block.c-block_2 > * {
  width: 48%;
}
.c-block.c-block_3 > * {
  width: 33.3333333333%;
}
.c-block.c-block_4 > * {
  width: 25%;
}
.c-block.c-block_5 > * {
  width: 20%;
}
.c-block.c-block_6 > * {
  width: 16.6666666667%;
}
.c-block.c-block_7 > * {
  width: 14.2857142857%;
}
.c-block.c-block_8 > * {
  width: 12.5%;
}

/*  END .c-block */
/*		GLIDカード
-----------------------------------------------------*/
.c-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 15px 2%;
  margin-left: auto;
  margin-right: auto;
  /* END .c-card-grid_item */
}
.c-card-grid > *,
.c-card-grid .c-card-grid_item {
  display: grid;
  grid-row: span 4;
  gap: 0.65rem;
  grid-template-rows: subgrid;
}
.c-card-grid > * > a,
.c-card-grid .c-card-grid_item > a {
  display: inherit;
  grid-template-rows: inherit;
  grid-row: inherit;
  gap: inherit;
}
.c-card-grid > * .c-card-grid_image,
.c-card-grid .c-card-grid_item .c-card-grid_image {
  width: 100%;
  text-align: center;
}
.c-card-grid > * .c-card-grid_title,
.c-card-grid .c-card-grid_item .c-card-grid_title {
  font-size: 2.4rem;
}
.c-card-grid > * .c-card-grid_title,
.c-card-grid > * .c-card-grid_text,
.c-card-grid .c-card-grid_item .c-card-grid_title,
.c-card-grid .c-card-grid_item .c-card-grid_text {
  margin-top: 20px;
  text-align: justify;
}
.c-card-grid.c-card_2 {
  grid-template-columns: repeat(auto-fit, minmax(435px, 1fr));
}
@media screen and (max-width: 767px) {
  .c-card-grid.c-card_2 {
    grid-template-columns: none;
  }
}
.c-card-grid.c-card_3 {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
@media (max-width: 500px) {
  .c-card-grid.c-card_3 {
    grid-template-columns: none;
  }
}
.c-card-grid.c-card_4 {
  grid-template-columns: repeat(auto-fit, minmax(248px, 1fr));
}
@media (max-width: 400px) {
  .c-card-grid.c-card_4 {
    grid-template-columns: none;
  }
}
.c-card-grid.c-card_5 {
  grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
}
@media (max-width: 300px) {
  .c-card-grid.c-card_5 {
    grid-template-columns: none;
  }
}
.c-card-grid.c-card_6 {
  grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));
}
@media (max-width: 200px) {
  .c-card-grid.c-card_6 {
    grid-template-columns: none;
  }
}
.c-card-grid.c-card_7 {
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
}
@media (max-width: 200px) {
  .c-card-grid.c-card_7 {
    grid-template-columns: none;
  }
}
.c-card-grid.c-card_8 {
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
}
@media (max-width: 150px) {
  .c-card-grid.c-card_8 {
    grid-template-columns: none;
  }
}

/* END .c-card-grid */
@media screen and (max-width: 767px) {
  .c-card-grid {
    /* END .c-card-grid_item */
  }
  .c-card-grid .c-card-grid_item .c-card-grid_title {
    font-size: 2rem;
  }
  .c-card-grid .c-card-grid_item .c-card-grid_title,
  .c-card-grid .c-card-grid_item .c-card-grid_text {
    margin-top: 15px;
  }
}
/*  END Break Point  */
/*		FLEXカード
-----------------------------------------------------*/
.c-card-flex {
  width: var(--w-liquid);
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  gap: 30px 3%;
  /* END c-card_2 */
  /* END c-card_3 */
  /* END c-card_4 */
  /* END c-card_5 */
  /* END c-card_6 */
  /* END c-card_7 */
  /* END c-card_8 */
}
@media screen and (max-width: 767px) {
  .c-card-flex .c-card-flex_item {
    width: 100%;
  }
}
.c-card-flex.c-card_2 .c-card-flex_item {
  width: 48.5%;
}
.c-card-flex.c-card_3 .c-card-flex_item {
  width: 31.3333333333%;
}
@media screen and (max-width: 767px) {
  .c-card-flex.c-card_3 .c-card-flex_item {
    width: 100%;
  }
}
.c-card-flex.c-card_4 .c-card-flex_item {
  width: 22.75%;
}
@media screen and (max-width: 767px) {
  .c-card-flex.c-card_4 .c-card-flex_item {
    width: 48.5%;
  }
}
.c-card-flex.c-card_5 .c-card-flex_item {
  width: 17.6%;
}
@media screen and (max-width: 767px) {
  .c-card-flex.c-card_5 .c-card-flex_item {
    width: 100%;
  }
}
.c-card-flex.c-card_6 .c-card-flex_item {
  width: 14.1666666667%;
}
@media screen and (max-width: 767px) {
  .c-card-flex.c-card_6 .c-card-flex_item {
    width: 48.5%;
  }
}
.c-card-flex.c-card_7 .c-card-flex_item {
  width: 11.7142857143%;
}
@media screen and (max-width: 767px) {
  .c-card-flex.c-card_7 .c-card-flex_item {
    width: 100%;
  }
}
.c-card-flex.c-card_8 .c-card-flex_item {
  width: 9.875%;
}
@media screen and (max-width: 767px) {
  .c-card-flex.c-card_8 .c-card-flex_item {
    width: 48.5%;
  }
}
.c-card-flex .c-card-flex_image {
  width: 100%;
  text-align: center;
}
.c-card-flex .c-card-flex_title {
  font-size: 2.4rem;
}
.c-card-flex .c-card-flex_title,
.c-card-flex .c-card-flex_text {
  margin-top: 20px;
  text-align: justify;
}

/* END .c-card_flex */
@media screen and (max-width: 767px) {
  .c-card-flex {
    flex-direction: row;
  }
  .c-card-flex.c-card_2 .c-card-flex_item, .c-card-flex.c-card_3 .c-card-flex_item, .c-card-flex.c-card_4 .c-card-flex_item, .c-card-flex.c-card_5 .c-card-flex_item, .c-card-flex.c-card_6 .c-card-flex_item, .c-card-flex.c-card_7 .c-card-flex_item, .c-card-flex.c-card_8 .c-card-flex_item {
    width: 45%;
  }
}
/*  END Break Point  */
@media screen and (max-width: 767px) {
  .c-card-flex {
    flex-direction: column;
  }
  .c-card-flex.c-card_2 .c-card-flex_item,
  .c-card-flex .c-card_3 .c-card-flex_item,
  .c-card-flex .c-card_4 .c-card-flex_item,
  .c-card-flex .c-card_5 .c-card-flex_item,
  .c-card-flex .c-card_6 .c-card-flex_item,
  .c-card-flex .c-card_7 .c-card-flex_item,
  .c-card-flex .c-card_8 .c-card-flex_item {
    width: 100%;
  }
}
/*  END Break Point  */
/*		ユニットコンテンツ
-----------------------------------------------------*/
.c-unit {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  gap: 40px 4%;
}
.c-unit > * {
  flex: 1 360px;
}
.c-unit + .c-unit {
  margin-top: 30px;
}

@media screen and (max-width: 767px) {
  .c-unit {
    flex-direction: column;
  }
  .c-unit > * {
    flex: 1 1 100%;
    width: 100%;
  }
}
/*  END Break Point  */
.c-media {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 3%;
}
@media screen and (max-width: 767px) {
  .c-media {
    flex-direction: column;
  }
}
.c-media_image {
  flex: none;
}
@media screen and (max-width: 767px) {
  .c-media_image {
    width: 100%;
  }
}
.c-media_content {
  flex: 1 1 400px;
}
@media screen and (max-width: 767px) {
  .c-media_content {
    min-width: none;
    width: 100%;
  }
}