@charset "utf-8";


/* --------------- base --------------- */
body{
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  /* 15-16 */
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 2.15;
  color: #212128;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


a{
  text-decoration: none;
  color: #212128;
  transition: 0.8s cubic-bezier(.15,1,.2,1);
}
img,svg {
  width: 100%;
  height: auto;
  vertical-align: middle;
  box-sizing: border-box;
}
button{
  display: block;
  letter-spacing: 0.1em;
}
.site-wrapper{
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  overflow: hidden;
}
main{
  position: relative;
  z-index: 1;
}
*,
*::before,
*::after {
  box-sizing: boder-box;
}
.block{
  display: block;
}
.ib {
  display: inline-block;
}
.pc-none{
  display: none;
}
.sp-only{
  display: none;
}

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

@media (max-width: 767px){
  body{
    font-size: 0.938rem;
  }
  .sp-none{
    display: none;
  }
  .sp-only{
    display: inherit;
  }
}



/* --------------- type --------------- */

/* 和文タイトル */
/* 375~1920px 27-61 */
.ttl-jp-27-54{
  font-size: 1.688rem;
  font-size: clamp(1.688rem, 1.172rem + 2.2vw, 3.813rem);
  letter-spacing: 0.05em;
  line-height: 1.6;
}
/* 375~1920px 25-46 */
.ttl-jp-25-40{
  font-size: 1.563rem;
  font-size: clamp(1.563rem, 1.244rem + 1.36vw, 2.875rem);
  letter-spacing: 0.05em;
  line-height: 1.65;
}
/* 375~1920px 22-38.5 */
.ttl-jp-22-34{
  font-size: 1.375rem;
  font-size: clamp(1.375rem, 1.125rem + 1.07vw, 2.406rem);
  letter-spacing: 0.05em;
  line-height: 1.65;
}
/* 375~1920px 21-39 */
.ttl-jp-21-34{
  font-size: 1.313rem;
  font-size: clamp(1.313rem, 1.039rem + 1.17vw, 2.438rem);
  letter-spacing: 0.05em;
  line-height: 1.65;
}
/* 375~1920px 18-27 */
.ttl-jp-18-24{
  font-size: 1.125rem;
  font-size: clamp(1.125rem, 0.988rem + 0.58vw, 1.688rem);
  letter-spacing: 0.06em;
  line-height: 1.65;
}
/* 375~1920px 16-27.5 */
.ttl-jp-16-24{
  font-size: 1rem;
  font-size: clamp(1rem, 0.826rem + 0.74vw, 1.719rem);
  letter-spacing: 0.06em;
  line-height: 1.65;
}
/* 375~1920px 17-21 */
.ttl-jp-17-20{
  font-size: 1.063rem;
  font-size: clamp(1.063rem, 1.002rem + 0.26vw, 1.313rem);
  letter-spacing: 0.06em;
  line-height: 1.65;
}


/* 英文タイトル */
/* 375~1920px 45-135 */
.ttl-en-45-110{
  font-size: 2.813rem;
  font-size: clamp(2.813rem, 1.447rem + 5.83vw, 8.438rem);
  letter-spacing: -0.01em;
  line-height: 1.1;
}
/* 375~1920px 40-109 */
.ttl-en-40-90{
  font-size: 2.5rem;
  font-size: clamp(2.5rem, 1.453rem + 4.47vw, 6.813rem);
  letter-spacing: 0em;
  line-height: 1.1;
}
/* 375~1920px 38-104 */
.ttl-en-38-86{
  font-size: 2.375rem;
  font-size: clamp(2.375rem, 1.374rem + 4.27vw, 6.5rem);
  letter-spacing: 0em;
  line-height: 1.1;
}
/* 375~1920px 37-55 */
.ttl-en-37-50{
  font-size: 2.313rem;
  font-size: clamp(2.313rem, 2.039rem + 1.17vw, 3.438rem);
  letter-spacing: 0em;
  line-height: 1.1;
}
/* 375~1920px 31-51.5 */
.ttl-en-31-46{
  font-size: 1.938rem;
  font-size: clamp(1.938rem, 1.627rem + 1.33vw, 3.219rem);
  letter-spacing: 0em;
  line-height: 1.1;
}
/* 375~1920px 27-45 */
.ttl-en-27-40{
  font-size: 1.688rem;
  font-size: clamp(1.688rem, 1.414rem + 1.17vw, 2.813rem);
  letter-spacing: 0em;
  line-height: 1.1;
}
/* 375~1920px 26-40 */
.ttl-en-26-36{
  font-size: 1.625rem;
  font-size: clamp(1.625rem, 1.413rem + 0.91vw, 2.5rem);
  letter-spacing: 0em;
  line-height: 1.1;
}
/* 375~1920px 16-36 */
.ttl-en-16-32{
  font-size: 1rem;
  font-size: clamp(1rem, 0.666rem + 1.42vw, 2.375rem);
  letter-spacing: 0.01em;
  line-height: 1.1;
}
/* 375~1920px 22-28 */
.ttl-en-22-28{
  font-size: 1.375rem;
  font-size: clamp(1.375rem, 1.254rem + 0.52vw, 1.875rem);
  font-weight: 550;
  letter-spacing: 0.01em;
  line-height: 1.1;
}


/* 本文 */
/* 17-18 */
.txt-17-18{
  font-size: 1.125rem;
  letter-spacing: 0.08em;
}
/* 15-18 */
.txt-15-18{
  font-size: 1.125rem;
  letter-spacing: 0.08em;
}
/* 14-18 */
.txt-14-18{
  font-size: 1.125rem;
  letter-spacing: 0.08em;
}
/* 16-17 */
.txt-16-17{
  font-size: 1.0625rem;
  letter-spacing: 0.08em;
}
/* 15-16 */
.txt-15-16{
  font-size: 1rem;
  letter-spacing: 0.08em;
}
/* 16-16 */
.txt-16-16{
  font-size: 1rem;
  letter-spacing: 0.08em;
}
/* 14-16 */
.txt-14-16{
  font-size: 1rem;
  letter-spacing: 0.08em;
}
/* 13-16 */
.txt-13-16{
  font-size: 1rem;
  letter-spacing: 0.08em;
}
/* 15-15 */
.txt-15-15{
  font-size: 0.938rem;
  letter-spacing: 0.08em;
}
/* 12-14 */
.txt-12-14{
  font-size: 0.875rem;
  letter-spacing: 0.08em;
}
/* 12-13 */
.txt-12-13{
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
}
/* 13-13 */
.txt-13-13{
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
}
/* 10-12 */
.txt-10-12{
  font-size: 0.75rem;
  letter-spacing: 0.08em;
}

@media (max-width: 767px){
  .txt-17-18{
    font-size: 1.0625rem;
  }
  .txt-15-18{
    font-size: 0.938rem;
  }
  .txt-14-18{
    font-size: 0.875rem;
  }
  .txt-16-17{
    font-size: 1rem;
  }
  .txt-15-16{
    font-size: 0.938rem;
  }
  .txt-14-16{
    font-size: 0.875rem;
  }
  .txt-13-16{
    font-size: 0.8125rem;
  }
  .txt-12-14{
    font-size: 0.75rem;
  }
  .txt-12-13{
    font-size: 0.75rem;
  }
  .txt-10-12{
    font-size: 0.625rem;
  }
}



.txt-light{
  font-weight: 300;
}
.txt-medium{
  font-weight: 500;
}
.txt-bold{
  font-weight: 700;
}
.txt-center{
  text-align: center;
}
.txt-left{
  text-align: left;
}
.txt-right{
  text-align: right;
}
.txt-just{
  text-align: justify;
}
.lh-info{
  line-height: 1.6;
}
.lh-en{
  line-height: 1.1;
}
.ls-jp-wide{
  letter-spacing: 0.12em;
}
.ls-jp-normal{
  letter-spacing: 0.08em;
}
.ls-en-narrow{
  letter-spacing: 0.01em;
}
.en-upper{
  text-transform: uppercase;
}
.en-normal{
  text-transform: none;
}





@media (max-width: 767px){
}


/* --------------- wrap --------------- */

/* 1280px */
.wrap-1280{
  width: 85.3%;
  margin: 0 auto;
}
/* max710px */
.wrap-inner-710{
  width: min(80%,44.375em);
  margin: 0 auto;
}

@media (max-width: 1023px){
  .wrap-inner-710{
    width: 90%;
  }
}
@media (max-width: 767px){
  .wrap-1280{
    width: 90%;
  }
  .wrap-inner-710{
    width: 100%;
  }
}


/* --------------- space --------------- */
/* 375px~1920px */
.space-128-320{
  padding-top: 8rem;
  padding-top: clamp(8rem, 5.087rem + 12.43vw, 20rem);
}
.space-128-320-bottom{
  padding-bottom: 8rem;
  padding-bottom: clamp(8rem, 5.087rem + 12.43vw, 20rem);
}
.space-112-280{
  padding-top: 7rem;
  padding-top: clamp(7rem, 4.451rem + 10.87vw, 17.5rem);
}
.space-112-280-bottom{
  padding-bottom: 7rem;
  padding-bottom: clamp(7rem, 4.451rem + 10.87vw, 17.5rem);
}
.space-96-240{
  padding-top: 6rem;
  padding-top: clamp(6rem, 3.816rem + 9.32vw, 15rem);
}
.space-96-240-bottom{
  padding-bottom: 6rem;
  padding-bottom: clamp(6rem, 3.816rem + 9.32vw, 15rem);
}
.space-80-200{
  padding-top: 5rem;
  padding-top: clamp(5rem, 3.18rem + 7.77vw, 12.5rem);
}
.space-80-200-bottom{
  padding-bottom: 5rem;
  padding-bottom: clamp(5rem, 3.18rem + 7.77vw, 12.5rem);
}
.space-64-160{
  padding-top: 4rem;
  padding-top: clamp(4rem, 2.544rem + 6.21vw, 10rem);
}
.space-64-160-bottom{
  padding-bottom: 4rem;
  padding-bottom: clamp(4rem, 2.544rem + 6.21vw, 10rem);
}
.space-48-120{
  padding-top: 3rem;
  padding-top: clamp(3rem, 1.908rem + 4.66vw, 7.5rem);
}
.space-48-120-bottom{
  padding-bottom: 3rem;
  padding-bottom: clamp(3rem, 1.908rem + 4.66vw, 7.5rem);
}
.space-40-100{
  padding-top: 2.5rem;
  padding-top: clamp(2.5rem, 1.59rem + 3.88vw, 6.25rem);
}
.space-40-100-bottom{
  padding-bottom: 2.5rem;
  padding-bottom: clamp(2.5rem, 1.59rem + 3.88vw, 6.25rem);
}
.space-34-80{
  padding-top: 2.125rem;
  padding-top: clamp(2.125rem, 1.427rem + 2.98vw, 5rem);
}
.space-34-80-bottom{
  padding-bottom: 2.125rem;
  padding-bottom: clamp(2.125rem, 1.427rem + 2.98vw, 5rem);
}
/* 1 */
.space-1{
  padding-top: 1px;
}


/* --------------- color --------------- */

.txt-white, .txt-white a{
  color: #fff;
}
.txt-black, .txt-black a{
  color: #212128;
}
.txt-gray, .txt-gray a{
  color: #c9caca;
}
.txt-purple, .txt-purple a{
  color: #7c4f9c;
}

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