@charset "UTF-8";
/**
*
* 記事ページ
* 
* 注意
* flex-basisはie11でバグがあるため不使用推奨
* メインカラム、左ナビ、右ナビの順番はorderで変更
**/
/**
* .column_left_wrap
* /info/ページ 左ナビ
**/
.column_left_wrap {
  width: 200px;
  order: 0;
  margin-top: 3rem;
}

@media (max-width: 959px) {
  .column_left_wrap {
    width: 100%;
    order: 5;
    margin: 0 15px 30px;
  }
  /* .column_left_wrap {
    width: 320px;
    order: 0;
  } */
}
@media (max-width: 767px) {
  /* .column_left_wrap {
    width: 100%;
    order: 5;
  } */
}
/**
* .column_right_wrap
* /info/ページ 右ナビ
**/
.column_right_wrap {
  width: 260px;
  order: 5;
  margin-top: 3rem;
}

@media (max-width: 959px) {
  .column_right_wrap {
    width: 100%;
    order: 3;
    margin: 0 15px;
  }
  /* .column_right_wrap {
    width: 320px;
    order: 5;
  } */
}
@media (max-width: 767px) {
  /* .column_right_wrap {
    width: 100%;
    order: 3;
    margin-top: 0;
  } */
}
.column_right_wrap > a > img {
  margin: 0 0 16px;
}

/**
* .column_right_wrap_sub
* /info/ページ 右ナビサブ
**/
.column_right_wrap_sub > a > img {
  margin: 0 0 16px;
}

@media (max-width: 767px) {
  .column_right_wrap_sub {
    width: 100%;
    display: block;
    margin: 0 0 16px;
  }
}
/**
* .column_center_wrap
* /info/ページ メインカラム
**/
[id="main"].column_center_wrap,
.column_center_wrap {
  width: calc(100% - 510px);
  order: 2;
  overflow: visible;
  margin-top: 2rem;
}

@media (max-width: 959px) {
  [id="main"].column_center_wrap,
  .column_center_wrap {
      width: 100%;
      order: 0;
      /* margin: 0 15px; */
    }
  /* [id="main"].column_center_wrap,
.column_center_wrap {
    width: calc(100% - 350px);
    order: 2;
  } */
}
@media (max-width: 767px) {
  /* [id="main"].column_center_wrap,
.column_center_wrap {
    width: 100%;
    order: 0;
  } */
}
/**
* .column_center_head
* /info/ページ メインカラム タイトル
**/
.column_center_head {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-content: center;
  align-items: center;
  margin: 0 0 16px;
  padding: 0 16px;
}

.column_center_head .title02 {
  color: #333;
  font-size: 28px;
  font-weight: 700;
  font-feature-settings: "palt";
  line-height: 52px;
  text-align: left;
  margin: 0;
}

.column_center_head .title02::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  background: var(--main_c);
  width: 1.5em;
  height: 0.1666em;
  border-radius: 1em;
  margin-left: -16px;
  margin-right: 1.2em;
  transform: translate(0, -83.33%);
}

.column_center_wrap .title03 {
  font-size: 20px;
  font-weight: 700;
  margin: 4px 0 16px;
}

.column_center_wrap .title03 span {
  color: var(--sub_c);
}

@media (max-width: 767px) {
  .column_center_head .title02 {
    font-size: 20px;
    line-height: 36px;
    margin: 0;
  }
  .column_center_head .title02::before {
    width: 1em;
    height: 0.1666em;
    margin-left: -12px;
    margin-right: 0.5em;
  }
  .column_center_wrap .title03 {
    font-size: 18px;
    text-align: center;
    margin: 8px 0 12px;
  }
}
/**
* .column_sns_wrap
* /info/ページ SNSボタンを配置する際に使用
**/
.column_sns_wrap {
  display: none;
  width: 144px;
}

@media (max-width: 767px) {
  .column_sns_wrap {
    display: none;
  }
}
/**
* .column_list_wrap
* /info/ページ 記事一覧
**/
.column_list_wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  border-radius: 6px;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.13);
  background-color: #fff;
  padding: 16px;
  margin: 0 0 16px;
}

.column_wrap {
  display: block;
  border-bottom: 1px solid #f1f1f1;
  width: 100%;
  margin: 0 0 16px;
  padding: 0 0 16px;
}

.column_wrap:last-child {
  border-bottom: none;
  margin: 0;
  padding: 0;
}

.column_wrap > div {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: flex-start;
  align-items: flex-start;
}

.column_wrap .column_img {
  width: 20%;
  position: relative;
}

.column_wrap .column_img::before {
  content: "";
  display: block;
  padding: 100% 0 0;
  position: relative;
  z-index: 1;
}

.column_wrap .column_img img {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.column_wrap .column_text {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: flex-start;
  align-items: flex-start;
  width: 80%;
  padding: 0 0 0 16px;
}

.column_wrap .column_text .column_title {
  font-size: 14px;
  font-weight: 700;
  font-feature-settings: "palt";
  line-height: 24px;
  width: 100%;
  order: 2;
}

.column_wrap .column_text .column_category {
  display: block;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.2ex;
  color: var(--sub_c);
  width: 100%;
  margin: 8px 0 0;
  order: 10;
}

.column_wrap .column_text .column_date {
  display: block;
  font-size: 10px;
  font-weight: 700;
  font-family: Arial, Helvetica, "sans-serif";
  line-height: 1;
  letter-spacing: 0.2ex;
  width: 100%;
  margin: 0 0 4px;
  order: 1;
}

.column_wrap .column_text .column_main {
  color: rgba(0, 0, 0, 0.56);
  font-size: 12px;
  font-feature-settings: "palt";
  line-height: 20px;
  margin-top: 4px;
  order: 5;
}

.column_wrap .column_text .column_main br {
  display: none;
}

@media (max-width: 767px) {
  .column_wrap .column_text .column_main {
    display: none;
  }
}
/**
* .column_side_wrap
* /info/ページ サイド共通パーツ
**/
.column_side_wrap {
  border-radius: 6px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
  background: #fff;
}

.column_side_title {
  border-radius: inherit;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background: var(--main_c);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.02ex;
  text-align: center;
  padding: 14px 8px;
  margin: 0;
}

@media (max-width: 767px) {
  .column_side_wrap {
    padding: 14px;
    margin: 0 -16px;
    overflow: hidden;
  }
  .column_side_title {
    font-size: 14px;
    line-height: 16px;
  }
}
/**
* .ranking_parts
* /info/ページ ランキングのラッパー
**/
.ranking_parts {
  counter-reset: ranking-number;
  margin: 8px 0;
}

/**
* .ranking_column
* /info/ページ ランキング
* 
* 注意
* 動的出力のためテンプレートに存在しない
**/
.ranking_column {
  display: block;
  padding: 16px;
  border-bottom: solid 1px #e1e1e1;
}

.ranking_column > div {
  position: relative;
}

.ranking_column_img {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-end;
  align-content: flex-end;
  align-items: flex-end;
  position: absolute;
  right: 0;
  bottom: 0;
}

.ranking_column_img > img {
  border-radius: 50%;
  width: 48px;
  height: 48px;
  -o-object-fit: cover;
  object-fit: cover;
  position: relative;
  z-index: 1;
}

.ranking_column_img > img + img {
  display: none;
}

/* ランキングフラッグ（デフォルト不使用） */
/* ランクアイコン */
.ranking_column_img::before {
  counter-increment: ranking-number;
  content: counter(ranking-number);
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-content: center;
  align-items: center;
  border-radius: 50%;
  background: #ef948f;
  color: #fff;
  font-size: 16px;
  font-style: italic;
  font-weight: 700;
  font-family: Arial, Helvetica, "sans-serif";
  text-shadow: 0 0 12px rgba(255, 255, 255, 0.5);
  width: 36px;
  height: 36px;
  padding: 0 2px 0 0;
  position: relative;
  z-index: 5;
  transform: translate(12.5%, 0);
}

/* ランク1 */
.ranking_column:nth-child(1) .ranking_column_img::before {
  background: linear-gradient(to bottom right, #c1a814 0%, #a0870a 100%);
  color: #fff;
}

/* ランク2 */
.ranking_column:nth-child(2) .ranking_column_img::before {
  background: linear-gradient(to bottom right, #adaca6 0%, #8e8c80 100%);
  color: #fff;
}

/* ランク3 */
.ranking_column:nth-child(3) .ranking_column_img::before {
  background: linear-gradient(to bottom right, #aa771d 0%, #8c5e14 100%);
  color: #fff;
}

.ranking_column_TITLE {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: flex-start;
  align-items: flex-start;
}

.ranking_column_TITLE > img {
  display: none;
}

/* ランキングフラッグ（デフォルト不使用） */
.ranking_column_TITLE > p {
  font-size: 14px;
  font-weight: 500;
  font-feature-settings: "palt";
  line-height: 24px;
}

.ranking_column_TITLE > p + p {
  color: rgba(0, 0, 0, 0.56);
  font-size: 12px;
  font-weight: 500;
  font-feature-settings: "palt";
  line-height: 20px;
  padding: 0 96px 0 0;
  margin-top: 4px;
}

/* バナー */
.column_side_banner {
  text-align: center;
}

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

.column_side_banner a {
  display: block;
}

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

.column_side_banner img {
  max-width: none;
  width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  .column_side_banner {
    margin: 8px 0;
    text-align: center;
  }
}
/* カテゴリ */
.category_parts {
  padding: 0;
}

.category_parts > li {
  padding: 0;
  margin: 0;
}

.category_parts > li + li {
  border-top: solid 1px #e1e1e1;
}

.category_parts > li > a {
  display: block;
  color: #666;
  font-size: 10px;
  line-height: 12px;
  padding: 8px;
}

.category_parts > li a > span {
  display: inline-block;
  border-radius: 32px;
  border: solid 1px #f4f4f4;
  background: #f4f4f4;
  color: #000;
  font-size: 13px;
  line-height: 19px;
  padding: 4px 8px;
}

.category_parts > li a > span:first-child {
  border: solid 1px var(--column_c);
  background: #fff;
  color: var(--column_c);
  font-size: 10px;
  font-weight: 500;
  line-height: 12px;
}

.category_parts > li a > * + span {
  margin-left: 4px;
}

.category_parts > li a > span:only-child {
  background: var(--column_c);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 12px;
}

@media (max-width: 767px) {
  .category_parts > li > a {
    font-size: 8px;
    line-height: 12px;
    padding: 4px;
  }
  .category_parts > li a > span {
    font-size: 10px;
    line-height: 12px;
    padding: 4px 8px;
  }
  .category_parts > li a > span:first-child {
    font-size: 8px;
    line-height: 12px;
  }
  .category_parts > li a > * + span {
    margin-left: 4px;
  }
  .category_parts > li a > span:only-child {
    font-size: 10px;
    line-height: 12px;
  }
}
/**
* .column_detail_wrap
* /info/[ID]/ページ 詳細ページ 共通ラッパー
**/
.column_detail_wrap {
  border-radius: 6px;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.1);
  background-color: #fff;
  padding: 12px 20px 20px;
  margin: 0 0 28px;
}

@media (max-width: 767px) {
  .column_detail_wrap {
    border-radius: 0;
    padding: 8px 16px 16px;
    /* margin: 0 -16px 8px; */
  }
}
/**
* .column_detail_head
* /info/[ID]/ページ 詳細ページ記事メイン画像、日付など
**/
.column_detail_head {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: center;
  align-items: center;
  margin: 0 0 32px;
}

.column_detail_head > .cate {
  font-size: 12px;
  line-height: 16px;
  color: var(--sub_c);
}

.column_detail_head > time {
  font-size: 12px;
  line-height: 16px;
}

.column_detail_head > figure {
  width: 100%;
  position: relative;
  z-index: 1;
}

.column_detail_head > * + figure {
  margin-top: 25px;
}

.column_detail_head > figure::before {
  content: "";
  display: block;
  padding: 66.66% 0 0;
  position: relative;
  z-index: 1;
}

.column_detail_head > figure > img {
  position: absolute;
  left: 50%;
  top: 0;
  z-index: 1;
  width: 80%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
  transform: translate(-50%, 0);
}

@media (max-width: 767px) {
  .column_detail_head {
    padding: 8px 0 0;
    margin: 0 -16px 16px;
  }
  .column_detail_head > .cate,
.column_detail_head > time {
    display: block;
    font-size: 6.25px;
    padding: 0 16px;
  }
}
/**
* .column_detail_head
* /info/[ID]/ページ 詳細ページ 記事本文
* 
* 注意
* 動的出力のHTMLにより編集できないためセレクタの階層構造の厳密な違いに注意
* 本文テキストは基本的にpタグなどに内包されない状態なので隣接セレクタ等がうまく動作しない
* よってmarginなどは、隣接（自身の次要素）のmargin-topではなく、自身にmargin-topを記述する
**/
.column_detail_main {
  font-size: 16px;
  font-weight: 500;
  line-height: 32px;
  letter-spacing: 0.1ex;
}

@media (max-width: 767px) {
  .column_detail_main {
    font-size: 13px;
    line-height: 28px;
  }
}
.column_detail_main h1,
.column_detail_main h2,
.column_detail_main h3,
.column_detail_main h4,
.column_detail_main h5,
.column_detail_main h6 {
  font-feature-settings: "palt";
  margin: 32px 0;
}

.column_detail_main h5,
.column_detail_main h6 {
  margin: 16px 0;
}

@media (max-width: 767px) {
  .column_detail_main h1,
.column_detail_main h2,
.column_detail_main h3,
.column_detail_main h4,
.column_detail_main h5,
.column_detail_main h6 {
    margin: 16px 0;
  }
  .column_detail_main h5,
.column_detail_main h6 {
    margin: 8px 0;
  }
}
.column_detail_main h1 {
  border-top: solid 1px #e1e1e1;
  font-size: 24px;
  font-weight: 700;
  padding: 24px 0 0;
  position: relative;
}

.column_detail_main h1::before {
  content: "";
  display: block;
  border-top: solid 4px var(--main_c);
  position: absolute;
  left: 0;
  top: -1px;
  z-index: 1;
  width: 6em;
}

@media (max-width: 767px) {
  .column_detail_main h1 {
    font-size: 18px;
    padding: 12px 0 0;
  }
  .column_detail_main h1::before {
    border-top: solid 3px var(--main_c);
    width: 6em;
  }
}
.column_detail_main h2 {
  border-top: solid 1px #e1e1e1;
  font-size: 24px;
  font-weight: 700;
  padding: 20px 0 0;
  position: relative;
}

.column_detail_main h2::before {
  content: "";
  display: block;
  border-top: solid 1px var(--main_c);
  position: absolute;
  left: 0;
  top: -1px;
  z-index: 1;
  width: 6em;
}

@media (max-width: 767px) {
  .column_detail_main h2 {
    font-size: 18px;
    padding: 8px 0 0;
  }
}
.column_detail_main h3 {
  border-left: solid 3px var(--main_c);
  font-size: 20px;
  padding: 0 0 0 14px;
}

@media (max-width: 767px) {
  .column_detail_main h3 {
    font-size: 16px;
    padding: 0 0 0 8px;
  }
}
.column_detail_main h4 {
  font-size: 18px;
  color: var(--main_c);
}

.column_detail_main h5 {
  font-size: 18px;
}

.column_detail_main h6 {
  font-size: inherit;
}

@media (max-width: 767px) {
  .column_detail_main h4 {
    font-size: 16px;
  }
  .column_detail_main h5 {
    font-size: 16px;
  }
  .column_detail_main h6 {
    font-size: inherit;
  }
}
.column_detail_main p {
  font-size: inherit;
  margin: 16px 0;
}

.column_detail_main i {
  font-style: italic;
}

.column_detail_main s {
  text-decoration: line-through;
}

.column_detail_main u {
  text-decoration: underline;
}

.column_detail_main a {
  color: #41aaf5;
  text-decoration: underline;
}

.column_detail_main > hr {
  border-top: solid 1px;
  border-right: none;
  border-bottom: none;
  border-left: none;
  color: #e1e1e1;
  margin: 32px 0;
}

.column_detail_main table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: inherit;
  margin: 16px auto 0;
}

.column_detail_main table tr > th,
.column_detail_main table tr > td {
  border: 1px solid #e1e1e1;
  vertical-align: middle;
  padding: 16px;
}

.column_detail_main table tr > th {
  background-color: #f1f1f1;
  vertical-align: middle;
  text-align: left;
}

.column_detail_main table tr > td {
  vertical-align: middle;
}

@media (max-width: 767px) {
  .column_detail_main table {
    font-size: 11px;
    font-feature-settings: "palt";
    line-height: 20px;
  }
  .column_detail_main table tr > th,
.column_detail_main table tr > td {
    padding: 12px;
  }
}
.column_detail_main ul {
  margin: 16px 0 16px;
}

.column_detail_main ul > li {
  font-size: inherit;
  line-height: 1.5;
  position: relative;
  padding: 0 0 0 1.5em;
}

.column_detail_main ul > li::before {
  content: "";
  width: 1em;
  height: 1em;
  border-radius: 50%;
  background: var(--main_c);
  position: absolute;
  left: 0;
  top: 0.75em;
  z-index: 1;
  transform: translate(0, -50%) scale(0.5);
}

.column_detail_main ul > li + li {
  margin-top: 8px;
}

.column_detail_main ol {
  margin: 16px 0 16px;
  counter-reset: ol-number;
}

.column_detail_main ol > li + li {
  margin-top: 8px;
}

.column_detail_main ol > li {
  font-size: inherit;
  line-height: 1.5;
  position: relative;
  padding: 0 0 0 1.5em;
}

.column_detail_main ol > li::before {
  counter-increment: ol-number;
  content: counter(ol-number) ".";
  color: var(--main_c);
  font-weight: 700;
  position: absolute;
  left: 0;
  top: 0.75em;
  z-index: 1;
  transform: translate(0, -50%);
}

/* 特殊な構造の部分 */
.column_detail_main .image {
  margin: 16px 0;
}

.column_detail_main .image > img {
  max-width: none;
  width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  .column_detail_main .image {
    margin: 16px -16px;
  }
}
.column_detail_main > div > h4 {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.8;
  margin: 0 0 8px;
}

.column_detail_main > div > p {
  font-size: 14px;
  line-height: 1.8;
}

/**
* .similar_column
* /info/[ID]/ページ 詳細ページ 関連記事
**/
.similar_column {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 100%;
}

.similar_column + .similar_column {
  border-top: solid 1px #e1e1e1;
  margin-top: 16px;
  padding-top: 16px;
}

.similar_column > div {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-start;
}

/* 画像 */
.similar_column_img {
  width: 25%;
  margin: 0;
  position: relative;
}

.similar_column_img::before {
  content: "";
  display: block;
  padding: 75% 0 0;
  position: relative;
  z-index: 1;
}

.similar_column_img img {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 5;
  max-width: none;
  width: 100%;
  height: 100%;
  margin: 0;
  -o-object-fit: cover;
  object-fit: cover;
}

/* テキスト */
.similar_column_img + *,
.similar_column_img ~ .similar_column_detail {
  width: calc(75% - 16px);
}

.similar_column_img + * > p,
.similar_column_title > p {
  color: inherit;
  font-size: 14px;
  font-weight: 700;
  font-feature-settings: "palt";
  line-height: 23px;
}

.similar_column_img + * > p:first-of-type + p,
.similar_column_title > p:first-of-type + p {
  color: rgba(0, 0, 0, 0.56);
  font-size: 10px;
  font-weight: 500;
  font-feature-settings: "palt";
  line-height: 22px;
  margin-top: 2px;
}

.similar_column_title p:last-child {
  display: none;
}

.similar_column_detail p {
  font-size: 7.5px;
  display: none;
}

@media (max-width: 767px) {
  /* 画像 */
  .similar_column_img {
    width: 25%;
    transform: translate(0, 6.66%);
  }
  /* テキスト */
  .similar_column_img + *,
.similar_column_img ~ .similar_column_detail {
    width: calc(75% - 16px);
  }
}