@charset "utf-8";

body {
  color: #000;
  font-family: "noto-sans-cjk-jp", YakuHanJP_Narrow, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", YuGothic, 'Lato', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku GothicPro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
  font-weight: 400;
  line-height: 1.75;
  font-size: clamp(0.563rem, 0rem + 0.833vw, 1rem);
  background: #fff;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
}

@media (max-width: 1080px) {
  body {
    font-size: clamp(0.875rem, 0.509rem + 1.56vw, 1.563rem);
  }
}

a {
  text-decoration: none;
  color: #000;
  transition: 0.8s cubic-bezier(.15, 1, .2, 1);
}

ul,
li {
  text-decoration: none;
  list-style: none;
}

img,
svg {
  width: 100%;
  height: auto;
  vertical-align: middle;
  box-sizing: border-box;
}

button {
  display: block;
  letter-spacing: 0.05em;
}

main {
  margin-top: 6.85em;
}

@media (max-width: 1080px) {
  main {
    margin-top: 4em;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

.block {
  display: block;
}

.inline {
  display: inline;
}

.ib {
  display: inline-block;
}

.relative {
  position: relative;
}

.pc-none {
  display: none;
}

.sp-only {
  display: none;
}

@media (max-width: 1080px) {
  .pc-none {
    display: inherit;
  }

  .pc-only {
    display: none;
  }
}

@media (max-width: 767px) {
  .sp-none {
    display: none;
  }

  .sp-only {
    display: inherit;
  }
}


/* --------------- type --------------- */
/* 明朝体 */
.txt-mincho {
  font-family: "游明朝", "Yu Mincho", "游明朝体", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
}

/* 英字 */
.txt-din {
  font-family: din-2014, sans-serif;
}

@media (min-width: 1081px) {

  /* PC文字サイズ_1080-1920 */
  /* 8-15 */
  .txt-8-15 {
    font-size: clamp(0.5rem, -0.063rem + 0.833vw, 0.938rem);
  }

  /* 9-16 */
  .txt-9-16 {
    font-size: clamp(0.563rem, 0rem + 0.833vw, 1rem);
  }

  /* 10-17 */
  .txt-10-17 {
    font-size: clamp(0.625rem, 0.063rem + 0.833vw, 1.063rem);
  }

  /* 10-18 */
  .txt-10-18 {
    font-size: clamp(0.625rem, -0.018rem + 0.952vw, 1.125rem);
  }

  /* 11-20 */
  .txt-11-20 {
    font-size: clamp(0.688rem, -0.036rem + 1.071vw, 1.25rem);
  }

  /* 12-21 */
  .txt-12-21 {
    font-size: clamp(0.75rem, 0.027rem + 1.071vw, 1.313rem);
  }

  /* 12-22 */
  .txt-12-22 {
    font-size: clamp(0.75rem, -0.054rem + 1.19vw, 1.375rem);
  }

  /* 13-23 */
  .txt-13-23 {
    font-size: clamp(0.813rem, 0.009rem + 1.19vw, 1.438rem);
  }

  /* 13-24 */
  .txt-13-24 {
    font-size: clamp(0.813rem, -0.071rem + 1.31vw, 1.5rem);
  }

  /* 14-25 */
  .txt-14-25 {
    font-size: clamp(0.875rem, -0.009rem + 1.31vw, 1.563rem);
  }

  /* 15-27 */
  .txt-15-27 {
    font-size: clamp(0.938rem, -0.027rem + 1.429vw, 1.688rem);
  }

  /* 17-30 */
  .txt-17-30 {
    font-size: clamp(1.063rem, 0.018rem + 1.548vw, 1.875rem);
  }

  /* 19-33 */
  .txt-19-33 {
    font-size: clamp(1.188rem, 0.063rem + 1.667vw, 2.063rem);
  }

  /* 20-35 */
  .txt-20-35 {
    font-size: clamp(1.25rem, 0.045rem + 1.786vw, 2.188rem);
  }

  /* 21-38 */
  .txt-21-38 {
    font-size: clamp(1.313rem, -0.054rem + 2.024vw, 2.375rem);
  }

  /* 22-40 */
  .txt-22-40 {
    font-size: clamp(1.375rem, -0.071rem + 2.143vw, 2.5rem);
  }

  /* 24-43 */
  .txt-24-43 {
    font-size: clamp(1.5rem, -0.027rem + 2.262vw, 2.688rem);
  }

  /* 25-45 */
  .txt-25-45 {
    font-size: clamp(1.563rem, -0.045rem + 2.381vw, 2.813rem);
  }

  /* 28-50 */
  .txt-28-50 {
    font-size: clamp(1.75rem, -0.018rem + 2.619vw, 3.125rem);
  }

  /* 52-93 */
  .txt-52-93 {
    font-size: clamp(3.25rem, -0.045rem + 4.881vw, 5.813rem);
  }

  /* 42-108 */
  .txt-42-108 {
    font-size: clamp(2.625rem, -2.679rem + 7.857vw, 6.75rem);
  }
}

@media (max-width: 1080px) {

  /* SP文字サイズ_375-1080 */
  /* 8 - 16 */
  .txt-sp-8-16 {
    font-size: clamp(0.5rem, 0.234rem + 1.13vw, 1rem);
  }

  /* 9 - 18 */
  .txt-sp-9-18 {
    font-size: clamp(0.563rem, 0.263rem + 1.28vw, 1.125rem);
  }

  /* 10 - 21 */
  .txt-sp-10-21 {
    font-size: clamp(0.625rem, 0.259rem + 1.56vw, 1.313rem);
  }

  /* 12 - 25 */
  .txt-sp-12-25 {
    font-size: clamp(0.75rem, 0.318rem + 1.84vw, 1.563rem);
  }

  /* 13 - 26 */
  .txt-sp-13-26 {
    font-size: clamp(0.813rem, 0.38rem + 1.84vw, 1.625rem);
  }

  /* 14 - 28 */
  .txt-sp-14-28 {
    font-size: clamp(0.875rem, 0.41rem + 1.99vw, 1.75rem);
  }

  /* 15 - 31 */
  .txt-sp-15-31 {
    font-size: clamp(0.938rem, 0.406rem + 2.27vw, 1.938rem);
  }

  /* 16 - 33 */
  .txt-sp-16-33 {
    font-size: clamp(1rem, 0.435rem + 2.41vw, 2.063rem);
  }

  /* 18 - 37 */
  .txt-sp-18-37 {
    font-size: clamp(1.125rem, 0.493rem + 2.7vw, 2.313rem);
  }

  /* 20 - 40 */
  .txt-sp-20-47 {
    font-size: clamp(1.25rem, 0.585rem + 2.84vw, 2.5rem);
  }

  /* 23 - 47 */
  .txt-sp-23-47 {
    font-size: clamp(1.438rem, 0.64rem + 3.4vw, 2.938rem);
  }

  /* 24 - 49 */
  .txt-sp-24-49 {
    font-size: clamp(1.5rem, 0.669rem + 3.55vw, 3.063rem);
  }

  /* 25 - 51 */
  .txt-sp-25-51 {
    font-size: clamp(1.563rem, 0.698rem + 3.69vw, 3.188rem);
  }

  /* 26 - 53 */
  .txt-sp-26-53 {
    font-size: clamp(1.625rem, 0.727rem + 3.83vw, 3.313rem);
  }

  /* 28 - 58 */
  .txt-sp-28-58 {
    font-size: clamp(1.75rem, 0.753rem + 4.26vw, 3.625rem);
  }

  /* 30 - 61 */
  .txt-sp-30-61 {
    font-size: clamp(1.875rem, 0.844rem + 4.4vw, 3.813rem);
  }

  /* 32 - 65 */
  .txt-sp-32-65 {
    font-size: clamp(2rem, 0.903rem + 4.68vw, 4.063rem);
  }

  /* 34 - 70 */
  .txt-sp-34-70 {
    font-size: clamp(2.125rem, 0.928rem + 5.11vw, 4.375rem);
  }

  /* 40 - 82 */
  .txt-sp-40-82 {
    font-size: clamp(2.5rem, 1.104rem + 5.96vw, 5.125rem);
  }
}


/* font-weight */
.fw-light {
  font-weight: 300;
}

.fw-demilight {
  font-weight: 350;
}

.fw-regular {
  font-weight: 400;
}

.fw-medium {
  font-weight: 500;
}

.fw-semibold {
  font-weight: 600;
}

.fw-bold {
  font-weight: 700;
}

.fw-extrabold {
  font-weight: 800;
}

.fw-black {
  font-weight: 900;
}

/* line-height */
.lh-0 {
  line-height: 0;
}

/* 小（本文・説明） */
.lh-s {
  line-height: 1.75;
}

/* 中（見出し） */
.lh-m {
  line-height: 1.25;
}

/* 大（大見出し・FV） */
.lh-l {
  line-height: 1.05;
}

/* letter-spacing */
.ls-00 {
  letter-spacing: 0;
}

.ls-02 {
  letter-spacing: 0.02em;
}

.ls-03 {
  letter-spacing: 0.03em;
}

.ls-04 {
  letter-spacing: 0.04em;
}

.ls-05 {
  letter-spacing: 0.05em;
}

.ls-06 {
  letter-spacing: 0.06em;
}


/* --------------- wrap --------------- */
/* 95% */
.wrap-95 {
  width: min(95vw, 113.75rem);
  margin: 0 auto;
}

/* 73% */
.wrap-73 {
  width: min(73vw, 87.5rem);
  margin: 0 auto;
}

/* 62.5% */
.wrap-62 {
  width: min(62.5vw, 75rem);
  margin: 0 auto;
}

/* 52% */
.wrap-52 {
  width: min(52vw, 62.5rem);
  margin: 0 auto;
}

@media (max-width: 1080px) {
  .wrap-95 {
    width: max(94.6vw, 22.18rem);
    margin: 0 auto;
  }
}

/* --------------- space 16px base --------------- */
/* --------------- space (respect clamp) --------------- */
/* padding */
/* 7rem-14rem (112px-224px) */
.pt-5l {
  padding-top: clamp(7rem, calc(4.739rem + 9.647vw), 14rem);
}

.pb-5l {
  padding-bottom: clamp(7rem, calc(4.739rem + 9.647vw), 14rem);
}

/* 6rem-12rem (96px-192px) */
.pt-4l {
  padding-top: clamp(6rem, calc(4.062rem + 8.269vw), 12rem);
}

.pb-4l {
  padding-bottom: clamp(6rem, calc(4.062rem + 8.269vw), 12rem);
}

/* 5rem-10rem (80px-160px) */
.pt-3l {
  padding-top: clamp(5rem, calc(3.385rem + 6.891vw), 10rem);
}

.pb-3l {
  padding-bottom: clamp(5rem, calc(3.385rem + 6.891vw), 10rem);
}

/* 4rem-8rem (64px-128px) */
.pt-2l {
  padding-top: clamp(4rem, calc(2.708rem + 5.512vw), 8rem);
}

.pb-2l {
  padding-bottom: clamp(4rem, calc(2.708rem + 5.512vw), 8rem);
}

/* 3rem-6rem (48px-96px) */
.pt-l {
  padding-top: clamp(3rem, calc(2.031rem + 4.134vw), 6rem);
}

.pb-l {
  padding-bottom: clamp(3rem, calc(2.031rem + 4.134vw), 6rem);
}

/* 2.5rem-4rem (40px-64px) */
.pt-m {
  padding-top: clamp(2.5rem, calc(2.016rem + 2.067vw), 4rem);
}

.pb-m {
  padding-bottom: clamp(2.5rem, calc(2.016rem + 2.067vw), 4rem);
}

/* 2rem-3.2rem (32px-51.2px) */
.pt-s {
  padding-top: clamp(2rem, calc(1.612rem + 1.654vw), 3.2rem);
}

.pb-s {
  padding-bottom: clamp(2rem, calc(1.612rem + 1.654vw), 3.2rem);
}

/* 1.5rem-2.4rem (24px-38.4px) */
.pt-xs {
  padding-top: clamp(1.5rem, calc(1.209rem + 1.24vw), 2.4rem);
}

.pb-xs {
  padding-bottom: clamp(1.5rem, calc(1.209rem + 1.24vw), 2.4rem);
}

/* margin */
/* 7rem-14rem (112px-224px) */
.mt-5l {
  margin-top: clamp(7rem, calc(4.739rem + 9.647vw), 14rem);
}

.mb-5l {
  margin-bottom: clamp(7rem, calc(4.739rem + 9.647vw), 14rem);
}

/* 6rem-12rem (96px-192px) */
.mt-4l {
  margin-top: clamp(6rem, calc(4.062rem + 8.269vw), 12rem);
}

.mb-4l {
  margin-bottom: clamp(6rem, calc(4.062rem + 8.269vw), 12rem);
}

/* 5rem-10rem (80px-160px) */
.mt-3l {
  margin-top: clamp(5rem, calc(3.385rem + 6.891vw), 10rem);
}

.mb-3l {
  margin-bottom: clamp(5rem, calc(3.385rem + 6.891vw), 10rem);
}

/* 4rem-8rem (64px-128px) */
.mt-2l {
  margin-top: clamp(4rem, calc(2.708rem + 5.512vw), 8rem);
}

.mb-2l {
  margin-bottom: clamp(4rem, calc(2.708rem + 5.512vw), 8rem);
}

/* 3rem-6rem (48px-96px) */
.mt-l {
  margin-top: clamp(3rem, calc(2.031rem + 4.134vw), 6rem);
}

.mb-l {
  margin-bottom: clamp(3rem, calc(2.031rem + 4.134vw), 6rem);
}

/* 2.5rem-4rem (40px-64px) */
.mt-m {
  margin-top: clamp(2.5rem, calc(2.016rem + 2.067vw), 4rem);
}

.mb-m {
  margin-bottom: clamp(2.5rem, calc(2.016rem + 2.067vw), 4rem);
}

/* 2rem-3.2rem (32px-51.2px) */
.mt-s {
  margin-top: clamp(2rem, calc(1.612rem + 1.654vw), 3.2rem);
}

.mb-s {
  margin-bottom: clamp(2rem, calc(1.612rem + 1.654vw), 3.2rem);
}

/* 1rem-1.6rem (16px-25.6px) */
.mt-xs {
  margin-top: clamp(1rem, calc(0.806rem + 0.827vw), 1.6rem);
}

.mb-xs {
  margin-bottom: clamp(1rem, calc(0.806rem + 0.827vw), 1.6rem);
}


/* =====================
background-color
===================== */
.bg-white {
  background-color: #fff;
}

.bg-black {
  background-color: #000;
}

.bg-gray01 {
  background-color: #efefef;
}

.bg-gray02 {
  background-color: #d8d8d8;
}

.bg-gray03 {
  background-color: #d0d1d5;
}

.bg-gray04 {
  background-color: #9b9b9c;
}

.bg-navy01 {
  background-color: #222548;
}

.bg-navy02 {
  background-color: #223062;
}

.bg-blue01 {
  background-color: #c1d7e8;
}

.bg-blue02 {
  background-color: #6a93a5;
}

.bg-brown01 {
  background-color: #946134;
}

.bg-brown02 {
  background-color: #6c6134;
}

.bg-brown03 {
  background-color: #b4a179;
}

.bg-brown04 {
  background-color: #8f774c;
}

.bg-offwhite {
  background-color: #fdfaf3;
}

.bg-red {
  background-color: #b40022;
}

.bg-green {
  background-color: #60c100;
}

.bg-yellow01 {
  background-color: #fae600;
}

.bg-yellow02 {
  background-color: #ffff00;
}


/* --------------- color --------------- */
.txt-white {
  color: #fff;
}

.txt-white a {
  color: #fff;
}

.txt-black {
  color: #000;
}

.txt-black a {
  color: #000;
}

.txt-gray01 {
  color: #efefef;
}

.txt-gray01 a {
  color: #efefef;
}

.txt-gray02 {
  color: #d8d8d8;
}

.txt-gray02 a {
  color: #d8d8d8;
}

.txt-gray03 {
  color: #d0d1d5;
}

.txt-gray03 a {
  color: #d0d1d5;
}

.txt-gray04 {
  color: #9b9b9c;
}

.txt-gray04 a {
  color: #9b9b9c;
}

.txt-navy01 {
  color: #222548;
}

.txt-navy01 a {
  color: #222548;
}

.txt-navy02 {
  color: #223062;
}

.txt-navy02 a {
  color: #223062;
}

.txt-blue01 {
  color: #c1d7e8;
}

.txt-blue01 a {
  color: #c1d7e8;
}

.txt-blue02 {
  color: #6a93a5;
}

.txt-blue02 a {
  color: #6a93a5;
}

.txt-brown01 {
  color: #946134;
}

.txt-brown01 a {
  color: #946134;
}

.txt-brown02 {
  color: #6c6134;
}

.txt-brown02 a {
  color: #6c6134;
}

.txt-brown03 {
  color: #b4a179;
}

.txt-brown03 a {
  color: #b4a179;
}

.txt-offwhite {
  color: #fdfaf3;
}

.txt-offwhite a {
  color: #fdfaf3;
}

.txt-red {
  color: #b40022;
}

.txt-red a {
  color: #b40022;
}

.txt-green {
  color: #60c100;
}

.txt-green a {
  color: #60c100;
}

.txt-yellow01 {
  color: #fae600;
}

.txt-yellow01 a {
  color: #fae600;
}

.txt-yellow02 {
  color: #ffff00;
}

.txt-yellow02 a {
  color: #ffff00;
}




/* --------------- layout --------------- */
/* --------------- flex --------------- */

.flex {
  display: flex;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-column {
  flex-direction: column;
}

/* justify-content */
.flex-center {
  justify-content: center;
}

.flex-between {
  justify-content: space-between;
}

.flex-around {
  justify-content: space-around;
}

.flex-end {
  justify-content: flex-end;
}

.flex-start {
  justify-content: flex-start;
}

/* align-items */
.align-center {
  align-items: center;
}

.align-start {
  align-items: flex-start;
}

.align-end {
  align-items: flex-end;
}


/* --------------- position --------------- */

.relative {
  position: relative;
}

.absolute {
  position: absolute;
}

.fixed {
  position: fixed;
}

.sticky {
  position: sticky;
}

/* inset */
.inset-0 {
  inset: 0;
}

.top-0 {
  top: 0;
}

.right-0 {
  right: 0;
}

.bottom-0 {
  bottom: 0;
}

.left-0 {
  left: 0;
}

/* center positioning */
.abs-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.abs-xcenter {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.abs-ycenter {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

/* z-index */
.z-0 {
  z-index: 0;
}

.z-1 {
  z-index: 1;
}

.z-2 {
  z-index: 2;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-50 {
  z-index: 50;
}

/* overflow */
.overflow-hidden {
  overflow: hidden;
}

.overflow-auto {
  overflow: auto;
}

.fit {
  width: fit-content;
}