@charset "utf-8";
/* ============================================================
 common style
============================================================ */
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.ja {
  font-family: var(--ja) !important;
}
.ja-m {
  font-family: var(--ja-m) !important;
}
.ja-b {
  font-family: var(--ja-b) !important;
}
.ja-serif {
  font-family: var(--ja-serif) !important;
}
.en {
  font-family: var(--en) !important;
}
a {
  color: var(--color-black);
  text-decoration: none;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}
a:hover {
  text-decoration: none;
  opacity: 0.7;
}
a:focus {
  outline: none;
}
.underline {
  display: inline;
  color: var(--color-black);
  position: relative;
  border-bottom: 1px solid var(--color-black);
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}
img {
  width: 100%;
  max-width: 100%;
  display: block;
}
.txt20 {
  font-size: var(--txt20);
}
.txt18 {
  font-size: var(--txt18);
}
.txt16 {
  font-size: var(--txt16);
}
.txt15 {
  font-size: var(--txt15);
}
.txt14 {
  font-size: var(--txt14);
}
.txt13 {
  font-size: var(--txt13);
}
.txt12 {
  font-size: var(--txt12);
}
.txt10 {
  font-size: var(--txt10);
}
/* ============================================================
 typography
============================================================ */
.bold {
  font-family: var(--en), var(--ja-b) !important;
  font-weight: 700;
}
.medium {
  font-family: var(--en), var(--ja-m) !important;
  font-weight: 500;
}
.txt-center {
  text-align: center;
}
.txt-left {
  text-align: left;
}
.txt-right {
  text-align: right;
}
.txt-indent {
  text-indent: -1.2em;
  padding-left: 1.2em;
}
.txt-indent .txt-indent {
  display: inline-block;
}
.txt-indent-half {
  text-indent: -0.6em;
  padding-left: 0.6em;
}
.txt-indent-one-half {
  text-indent: -1.5em;
  padding-left: 1.5em;
}
.note,
.note a {
  font-size: var(--txt12);
  line-height: 2;
}
.nowrap {
  white-space: nowrap;
}
.ellipsis {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.line-clamp2 {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  overflow: hidden;
}
.break-all {
  word-break: break-all;
}
/* ============================================================
 utility
============================================================ */
.img-auto {
  width: auto;
  max-width: 100%;
}
.img-50 {
  zoom: 0.5;
  width: auto;
  max-width: 100%;
}
.float-right {
  float: right !important;
}
.float-left {
  float: left !important;
}
.border {
  border: 1px solid #333;
}
.border-top-bottom {
  border-top: 1px solid #333;
  border-bottom: 1px solid #333;
}
.no-border {
  border: none!important;
}
.no-bg {
  background: none!important;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.display-table {
  display: table;
  width: 100%;
}
.inline-list li {
  display: inline-block;
}
.center-block {
  margin-left: auto;
  margin-right: auto;
}
.valign-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.space-around {
  -ms-flex-pack: distribute !important;
      justify-content: space-around !important;
}
.over-hidden {
  overflow: hidden;
}
.difference {
  mix-blend-mode: difference;
}
/* ============================================================
 margin
============================================================ */
.pt0 {
  padding-top: 0 !important;
}
.pb0 {
  padding-bottom: 0 !important;
}
.pl0 {
  padding-left: 0 !important;
}
.pr0 {
  padding-right: 0 !important;
}
.mt0 {
  margin-top: 0 !important;
}
.mb0 {
  margin-bottom: 0 !important;
}
.ml0 {
  margin-left: 0 !important;
}
.mr0 {
  margin-right: 0 !important;
}
.mt5 {
  margin-top: 5px !important;
}
.mb5 {
  margin-bottom: 5px !important;
}
.ml5 {
  margin-left: 5px !important;
}
.mr5 {
  margin-right: 5px !important;
}
.mt10 {
  margin-top: 10px !important;
}
.mb10 {
  margin-bottom: 10px !important;
}
.ml10 {
  margin-left: 10px !important;
}
.mr10 {
  margin-right: 10px !important;
}
.mt20 {
  margin-top: 20px !important;
}
.mb20 {
  margin-bottom: 20px !important;
}
.ml20 {
  margin-left: 20px !important;
}
.mr20 {
  margin-right: 20px !important;
}
.mt30 {
  margin-top: 30px !important;
}
.mb30 {
  margin-bottom: 30px !important;
}
.ml30 {
  margin-left: 30px !important;
}
.mr30 {
  margin-right: 30px !important;
}
.mt40 {
  margin-top: 40px !important;
}
.mb40 {
  margin-bottom: 40px !important;
}
.ml40 {
  margin-left: 40px !important;
}
.mr40 {
  margin-right: 40px !important;
}
.mt50 {
  margin-top: 50px !important;
}
.mb50 {
  margin-bottom: 50px !important;
}
.ml50 {
  margin-left: 50px !important;
}
.mr50 {
  margin-right: 50px !important;
}
.mt60 {
  margin-top: 60px !important;
}
.mb60 {
  margin-bottom: 60px !important;
}
.ml60 {
  margin-left: 60px !important;
}
.mr60 {
  margin-right: 60px !important;
}
.mt70 {
  margin-top: 70px !important;
}
.mb70 {
  margin-bottom: 70px !important;
}
.ml70 {
  margin-left: 70px !important;
}
.mr70 {
  margin-right: 70px !important;
}
.mt80 {
  margin-top: 80px !important;
}
.mb80 {
  margin-bottom: 80px !important;
}
.ml80 {
  margin-left: 80px !important;
}
.mr80 {
  margin-right: 80px !important;
}
.mt90 {
  margin-top: 90px !important;
}
.mb90 {
  margin-bottom: 90px !important;
}
.ml90 {
  margin-left: 90px !important;
}
.mr90 {
  margin-right: 90px !important;
}
.mt100 {
  margin-top: 100px !important;
}
.mb100 {
  margin-bottom: 100px !important;
}
.ml100 {
  margin-left: 100px !important;
}
.mr100 {
  margin-right: 100px !important;
}
.mt120 {
  margin-top: 120px !important;
}
.mb120 {
  margin-bottom: 120px !important;
}
.ml120 {
  margin-left: 120px !important;
}
.mr120 {
  margin-right: 120px !important;
}
/* ============================================================
 width
============================================================ */
.w5 {
  width: 5%;
}
.w10 {
  width: 10%;
}
.w15 {
  width: 15%;
}
.w20 {
  width: 20%;
}
.w30 {
  width: 30%;
}
.w40 {
  width: 40%;
}
.w50 {
  width: 50%;
}
.w60 {
  width: 60%;
}
.w70 {
  width: 70%;
}
.w80 {
  width: 80%;
}
.w90 {
  width: 90%;
}
.w100 {
  width: 100%;
}
/* ============================================================
 Text選択
============================================================ */
::-moz-selection {
  background: #323232;
}
::selection {
  background: #323232;
}
::-moz-selection {
  background: #323232;
}
/* ============================================================
 アンカー
============================================================ */
.anc {
  padding-top: 100px;
  margin-top: -100px;
}
@media screen and (max-width: 1100px) {
  .anc {
    padding-top: 80px;
    margin-top: -80px;
  }
}
/* ============================================================
 photograh
============================================================ */
.c-credit {
  position: relative;
}
.c-credit-txt {
  position: absolute;
  bottom: 0.5em;
  right: 0.5em;
  font-size: var(--txt10);
  letter-spacing: 0;
}
.c-credit-txt.white {
  color: var(--color-white);
}
@media screen and (max-width: 768px) {
  .c-credit-txt {
    -webkit-transform: scale(0.7) translateY(0.4em);
            transform: scale(0.7) translateY(0.4em);
    -webkit-transform-origin: right bottom;
            transform-origin: right bottom;
    white-space: nowrap;
  }
}
/* ============================================================
 スクロール
============================================================ */
.c-scroll-area {
  overflow-y: scroll;
  overflow-x: auto;
  width: 100%;
}
.c-scroll-area::-webkit-scrollbar {
  width: 6px;
  height: 6px;
  border-radius: 20px;
}
.c-scroll-area::-webkit-scrollbar-track {
  background-color: transparent;
}
.c-scroll-area::-webkit-scrollbar-thumb {
  background-color: var(--tag-bg);
  border-radius: 20px;
}
.c-scroll-area::-webkit-scrollbar-thumb:hover {
  background-color: var(--color-black);
  border-radius: 20px;
}
/* ============================================================
 ボタン
============================================================ */
.c-btn-wrap {
  margin: 60px auto 0;
}
.c-btn {
  display: inline-block;
  text-align: left;
  width: 240px;
  padding: 1.25em;
  font-family: var(--en), var(--ja-m), sans-serif;
  font-size: var(--txt16);
  font-weight: 400;
  color: var(--color-black);
  border: 1px solid var(--color-black);
  line-height: 1;
  position: relative;
}
.c-btn:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.25em;
  width: 20px;
  height: 6px;
  background: url(/assets/images/common/arrow.svg) no-repeat center center / contain;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c-btn:hover {
  opacity: 0.7;
}
.c-btn.large {
  width: 300px;
}
.c-btn.white {
  color: var(--color-white);
  border-color: var(--color-white);
}
.c-btn.white:after {
  content: "";
  background: url(/assets/images/common/arrow_white.svg) no-repeat center center / contain;
}
.c-btn.center {
  text-align: center;
}
@media screen and (max-width: 768px) {
  .c-btn-wrap {
    margin: 40px auto 0;
  }
  .c-btn {
    width: 210px;
    font-size: var(--txt16);
  }
  .c-btn.large {
    width: 290px;
  }
}
/* ============================================================
 ページ_タイトル
============================================================ */
.c-page-ttl {
  font-size: calc(60 / 16 * 1rem);
  font-weight: 700;
  text-align: center;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .c-page-ttl {
    font-size: calc(30 / 16 * 1rem);
  }
}
/* ============================================================
 コンテンツ_タイトル
============================================================ */
.c-content-ttl {
  margin-bottom: 60px;
  font-family: var(--en), var(--ja-m), sans-serif;
  font-size: calc(34 / 16 * 1rem);
  font-weight: 500;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .c-content-ttl {
    margin-bottom: 30px;
    font-size: calc(24 / 16 * 1rem);
  }
}
