@charset "UTF-8";
/**
 * PC SP 表示切り替え
 * NOTE: display: none以外は記述禁止
**/
@media (min-width: 768px) {
  .sp--disp,
  .sp-disp,
  .sp_disp {
    display: none !important;
  }
}
@media (max-width: 767.98px) {
  .pc--disp,
  .pc-disp,
  .pc_disp {
    display: none !important;
  }
}


/**
 * テキスト装飾
**/
.text_underline {
  background: linear-gradient(transparent 50%, var(--marker-c) 50%);
}
.text_link {
  color: var(--font-c-link);
  text-decoration: underline;
}


/**
 * フォントウェイト
**/
.fw_700,
.fw_bold {
  font-weight: 700;
}
.fw_600 {
  font-weight: 600;
}
.fw_500 {
  font-weight: 500;
}
.fw_400 {
  font-weight: 400;
}

/**
 * テキストアライン
**/
.text_right {
  text-align: right;
}
.text_left {
  text-align: left;
}
.text_center {
  text-align: center;
}


/**
 * マージン
**/
.mt5 {margin-top: 5px;}
.mt10 {margin-top: 10px;}
.mt15 {margin-top: 15px;}
.mt20 {margin-top: 20px;}
.mt25 {margin-top: 25px;}
.mt30 {margin-top: 30px;}
.mt35 {margin-top: 35px;}
.mt40 {margin-top: 40px;}
.mt45 {margin-top: 45px;}
.mt50 {margin-top: 50px;}
.mt55 {margin-top: 55px;}
.mt60 {margin-top: 60px;}
.mb5 {margin-bottom: 5px;}
.mb10 {margin-bottom: 10px;}
.mb15 {margin-bottom: 15px;}
.mb20 {margin-bottom: 20px;}
.mb25 {margin-bottom: 25px;}
.mb30 {margin-bottom: 30px;}
.mb35 {margin-bottom: 35px;}
.mb40 {margin-bottom: 40px;}
.mb45 {margin-bottom: 45px;}
.mb50 {margin-bottom: 50px;}
.mb55 {margin-bottom: 55px;}
.mb60 {margin-bottom: 60px;}

/**
 * 幅
**/
.w50 {width: 50px;}
.w100 {width: 100px;}
.w150 {width: 150px;}
.w200 {width: 200px;}
.w250 {width: 250px;}
.w300 {width: 300px;}
.w350 {width: 350px;}
.w400 {width: 400px;}

/**
 * フロート
**/
.fl {
  float: left;
}

.fr {
  float: right;
}

/**
 * clearfix
**/
.clear {
  clear: both;
}

.cf::after,
.clearfix::after {
  content: '';
  display: table;
  clear: both;
}

/**
 * フレックス
**/
.flex_wrap {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-content: flex-start;
  align-items: flex-start;
}

/**
* base_wrap
* NOTE: サイト内共通 横幅
**/
.base_wrap {
  max-width: var(--site-container-width);
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--site-container-padding);
}

/**
 * .bg__full_width
 * NOTE: .base_wrap内でも背景の横幅だけが画面幅100%となり、コンテンツ幅はそのまま親要素の横幅を継承する
**/
.bg__full_width {
  margin-left: calc((100vw - 100%) / -2);
  margin-right: calc((100vw - 100%) / -2);
  padding-left: calc((100vw - 100%) / 2);
  padding-right: calc((100vw - 100%) / 2);
}


/**
 * bg__type_xxxx
 * サイト内共通 背景色は以下に記述
**/
.bg__type_default {
  background-color: var(--site-bg-c);
}
.bg__type_sub {
  background-color: var(--site-bg-c-sub);
}
.bg__type_gray {
  background-color: var(--site-bg-c-underlayer);
}


/**
 * 
 * 共通タイトル
 * NOTE: 使用例 <elem class="c_title"><span>新着情報</span><a>もっとみる</a></elem>
 * 
**/
.c_title {
  color: var(--site-c-main);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 12px;
  position: relative;
}
.c_title:only-child {
  margin-bottom: 0;
}
*+.c_title {
  margin-top: 24px;
}
@media (max-width: 767.98px) {
  .c_title {
    font-size: 18px;
    text-align: center;
    margin-bottom: 16px;
  }
}
/* 小さい英字 */
.c_title[data-small]::after {
  content: attr(data-small);
  display: block;
  color: var(--font-c);
  font-size: 16px;
  line-height: 0.6;
  margin: 2px 0 0;
  transform: scale(0.6);
  transform-origin: left center;
}
@media (max-width: 767.98px) {
  .c_title[data-small]::after {
    transform-origin: center center;
  }
}
/* タイトル文字 */
/* NOTE: spanの使用を推奨 */
.c_title > span {
  display: inline-block;
  vertical-align: middle;
}
@media (max-width: 767.98px) {
  .c_title > span {
    display: block;
  }
}
/* アイコン（デフォルト不使用） */
.c_title > i {
  display: none;
}
@media (max-width: 767.98px) {
  .c_title > i {
    display: none;
    margin: 0 0 13px;
  }
}
.c_title > i > img {
  width: auto;
  height: 1.5em;
  vertical-align: middle;
}
@media (max-width: 767.98px) {
  .c_title > i > img {
    width: auto;
    height: 25px;
  }
}
/* リンク */
.c_title > a {
  display: block;
  font-size: 14px;
  font-weight: 500;
  position: absolute;
  top: 16px;
  right: 0;
  z-index: 1;
  transform: translate(0, -50%);
}
.c_title > a::before {
  content: "\f105";
  display: inline-block;
  font-family: "Font Awesome 6 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  margin-right: 8px;
}


/**
 * 
 * 共通小見出し
 * NOTE: 使用例 <elem class="c_subtitle"><span>新着情報</span><a>もっとみる</a></elem>
 * 
**/
.c_subtitle {
  font-size: 18px;
  font-weight: 700;
  color: var(--site-c-main);
  margin-bottom: 8px;
  position: relative;
}
*+.c_subtitle {
  margin-top: 24px;
}
.c_subtitle+* {
  margin-top: 8px;
}
@media (max-width: 767.98px) {
  .c_subtitle {
    font-size: 16px;
    margin-bottom: 8px;
  }
  .c_subtitle+* {
    margin-top: 8px;
  }
}

/* タイトル文字 */
/* NOTE: spanの使用を推奨 */
.c_subtitle > span {
  display: inline-block;
  vertical-align: middle;
}
@media (max-width: 767.98px) {
  .c_subtitle > span {
    display: block;
  }
}
/* アイコン（デフォルト不使用） */
.c_subtitle > i {
  display: none;
}
@media (max-width: 767.98px) {
  .c_subtitle > i {
    display: none;
    margin: 0 0 13px;
  }
}
.c_subtitle > i > img {
  width: auto;
  height: 1.5em;
  vertical-align: middle;
}
@media (max-width: 767.98px) {
  .c_subtitle > i > img {
    width: auto;
    height: 25px;
  }
}
/* リンク */
.c_subtitle > a {
  display: block;
  font-size: 14px;
  font-weight: 500;
  position: absolute;
  top: 16px;
  right: 0;
  z-index: 1;
  transform: translate(0, -50%);
}
.c_subtitle > a::before {
  content: "\f105";
  display: inline-block;
  font-family: "Font Awesome 6 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  margin-right: 8px;
}


/**
 * 
 * 共通小見出し
 * NOTE: 使用例 <elem class="c_sub_subtitle"><span>新着情報</span><a>もっとみる</a></elem>
 * 
**/
.c_sub_subtitle {
  font-size: 16px;
  font-weight: 700;
  color: var(--font-c);
  margin-bottom: 8px;
  position: relative;
}
*+.c_sub_subtitle {
  margin-top: 24px;
}
.c_sub_subtitle+* {
  margin-top: 8px;
}
@media (max-width: 767.98px) {
  .c_sub_subtitle {
    font-size: 16px;
    margin-bottom: 8px;
  }
  .c_sub_subtitle+* {
    margin-top: 8px;
  }
}
/* タイトル文字 */
/* NOTE: spanの使用を推奨 */
.c_sub_subtitle > span {
  display: inline-block;
  vertical-align: middle;
}
@media (max-width: 767.98px) {
  .c_sub_subtitle > span {
    display: block;
  }
}
/* アイコン（デフォルト不使用） */
.c_sub_subtitle > i {
  display: none;
}
@media (max-width: 767.98px) {
  .c_sub_subtitle > i {
    display: none;
    margin: 0 0 13px;
  }
}
.c_sub_subtitle > i > img {
  width: auto;
  height: 1.5em;
  vertical-align: middle;
}
@media (max-width: 767.98px) {
  .c_sub_subtitle > i > img {
    width: auto;
    height: 25px;
  }
}
/* リンク */
.c_sub_subtitle > a {
  display: block;
  font-size: 14px;
  font-weight: 500;
  position: absolute;
  top: 16px;
  right: 0;
  z-index: 1;
  transform: translate(0, -50%);
}
.c_sub_subtitle > a::before {
  content: "\f105";
  display: inline-block;
  font-family: "Font Awesome 6 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  margin-right: 8px;
}



/**
 * タイトル その他の拡張スタイル
**/

.c_title.type--h2 {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  align-items: center;
  background: var(--site-c-main);
  color: #fff;
  font-weight: 700;
  font-feature-settings: 'palt';
  font-size: 20px;
  line-height: 24px;
  margin: 0 0 16px;
  padding: 12px 0;
}
*+.c_title.type--h2 {
  margin-top: 24px;
}
@media (max-width: 767.98px) {
  .c_title.type--h2 {
    font-size: 16px;
    margin: 0 0 16px;
  }
  *+.c_title.type--h2 {
    margin-top: 24px;
  }
}

.c_title.type--h3 {
  border-left: solid 6px var(--site-c-main);
  font-size: 20px;
  font-weight: 700;
  margin: 28px 16px 16px;
  padding: 0 0 0 12px;
}
*+.c_title.type--h3 {
  margin-top: 24px;
}
@media (max-width: 767.98px) {
  .c_title.type--h3 {
    font-size: 17px;
  }
  *+.c_title.type--h3 {
    margin-top: 24px;
  }
}

.c_title.type--h4 {
  border-radius: 4px;
  border: solid 1px var(--site-input-border-c);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 16px 16px;
  padding: 0.75em 1em;
}
*+.c_title.type--h4 {
  margin-top: 24px;
}
@media (max-width: 767.98px) {
  .c_title.type--h4 {
    margin: 0 8px 16px;
  }
  *+.c_title.type--h4 {
    margin-top: 16px;
  }
}




/**
 * 共通list
**/
.c_list {
  --parts-list-padding: 28px;
  --parts-list-gap: 8px;
  list-style: none;
  margin-block: 0;
  margin-inline: calc( var(--parts-list-padding) + 1em ) var(--parts-list-padding);
}
*+.c_list {
  margin-top: 1em;
}
@media (max-width: 767.98px) {
  .c_list {
    margin-inline: calc( var(--parts-list-padding) + 1em ) 0;
  }
  *+.c_list {
    margin-top: 1em;
  }
}
.c_list>li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.c_list>*+li {
  margin-top: var(--parts-list-gap);
}
.c_list__icon {
  display: inline-block;
  color: var(--font-c);
  width: var(--parts-list-padding);
  margin-left: calc( var(--parts-list-padding) * -1 );
}

/* 以下、バリエーション */
.c_list.type--number,
.c_list.type--notes,
.c_list.type--round {
  margin-inline: 0;
}
*+.c_list.type--number,
*+.c_list.type--notes,
*+.c_list.type--round {
  margin-top: 16px;
}

/* まる塗りつぶしアイコン */
.c_list.type--round>li {
  line-height: 1.5;
  padding: 0 0 0 1.5em;
  position: relative;
}
.c_list.type--round>*+li {
  margin-top: 0.5em;
}
.c_list.type--round>li::before {
  content: '';
  display: inline-block;
  border-radius: 50%;
  background: var(--site-c-black);
  width: 1em;
  height: 1em;
  position: absolute;
  left: 0;
  top: 0.75em;
  transform: translate(0, -50%) scale(1.0);
  transform-origin: left center;
}

/* ※アイコン */
.c_list.type--notes>li {
  line-height: 1.5;
  padding: 0 0 0 1.5em;
  position: relative;
}
.c_list.type--notes>*+li {
  margin-top: 0.5em;
}
.c_list.type--notes>li::before {
  content: "※";
  display: inline-block;
  position: absolute;
  left: 0;
  top: 0.75em;
  transform: translate(0, -50%) scale(1.0);
  transform-origin: left center;
}

/* 番号アイコン */
.c_list.type--number {
  counter-reset: list-number-type;
}
.c_list.type--number>li {
  line-height: 1.5;
  padding: 0 0 0 1.5em;
  position: relative;
}
.c_list.type--number>*+li {
  margin-top: 0.5em;
}
.c_list.type--number>li::before {
  counter-increment: list-number-type;
  content: counter(list-number-type) '.';
  display: inline-block;
  position: absolute;
  left: 0;
  top: 0.75em;
  transform: translate(0, -50%) scale(1.0);
  transform-origin: left center;
}


/**
 * data
 * NOTE: 様々なデータに使えます
**/
.c_data_parts {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-content: stretch;
  align-items: stretch;
  font-size: 12px;
  width: 100%;
  gap: 8px 0;
  order: 5;
}
*+.c_data_parts {
  margin-top: 8px;
}
.c_data_parts .data_title {
  display: block;
  border-bottom: dashed 1px var(--site-border-c);
  font-weight: 700;
  font-feature-settings: 'palt';
  width: 10em;
  padding: 0 0 2px;
}
.c_data_parts .data_text {
  display: block;
  border-bottom: dashed 1px var(--site-border-c);
  font-feature-settings: 'palt';
  width: calc( 100% - 10em );
  padding: 0 0 2px;
}
.c_data_parts .data_title:nth-last-child(-n+2),
.c_data_parts .data_text:nth-last-child(-n+2) {
  border-bottom: none;
}


/**
 * 共通table
**/
.table__type_default {
  width: 100%;
  table-layout: fixed;
}

*+.table__type_default {
  margin-top: 16px;
}

.table__type_default > thead > tr > th,
.table__type_default > tbody > tr > th,
.table__type_default > tfoot > tr > th,
.table__type_default > thead > tr > td,
.table__type_default > tbody > tr > td,
.table__type_default > tfoot > tr > td {
  border: solid 1px rgba(0, 0, 0, 0.33);
  padding: 16px;
}

.table__type_default > tbody > tr > th {
  background: rgba(0, 0, 0, 0.08);
  font-weight: 700;
}


/**
 * 広告など
**/
*+.banner {
  margin-top: 16px;
}

.banner img {
  width: 100%;
  height: auto;
  vertical-align: top;
}

.banner a {
  display: block;
}
