@charset "utf-8";


/* --------------- base --------------- */
body{
  font-family: "Noto Sans", sans-serif;
  /* 15-16 */
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.7;
  font-feature-settings: "palt" 1;
  color: #212128;
  -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;
  flex: 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;
    line-height: 1.6;
  }
  .sp-none{
    display: none;
  }
  .sp-only{
    display: inherit;
  }
}



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

/* 和文タイトル */
/* 29-65 */
.ttl-jp-27-54{
  font-size: 1.813rem;
  font-size: clamp(1.813rem, 1.266rem + 2.33vw, 4.063rem);
  letter-spacing: 0.02em;
  line-height: 1.4;
}
/* 26-49 */
.ttl-jp-25-40{
  font-size: 1.625rem;
  font-size: clamp(1.625rem, 1.276rem + 1.49vw, 3.063rem);
  letter-spacing: 0.02em;
  line-height: 1.4;
}
/* 22-41 */
.ttl-jp-21-34{
  font-size: 1.375rem;
  font-size: clamp(1.375rem, 1.087rem + 1.23vw, 2.563rem);
  letter-spacing: 0.02em;
  line-height: 1.4;
}
/* 20-30 */
.ttl-jp-18-24{
  font-size: 1.25rem;
  font-size: clamp(1.25rem, 1.098rem + 0.65vw, 1.875rem);
  letter-spacing: 0.02em;
  line-height: 1.4;
}
/* 17-22 */
.ttl-jp-17-20{
  font-size: 1.063rem;
  font-size: clamp(1.063rem, 0.987rem + 0.32vw, 1.375rem);
  letter-spacing: 0.02em;
  line-height: 1.4;
}


/* 英文タイトル */
/* 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;
}
/* 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;
}
/* 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;
}
/* 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;
}
/* 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.06em;
}
/* 14-18 */
.txt-14-18{
  font-size: 1.125rem;
  letter-spacing: 0.06em;
}
/* 16-17 */
.txt-16-17{
  font-size: 1.0625rem;
  letter-spacing: 0.06em;
}
/* 15-16 */
.txt-15-16{
  font-size: 1rem;
  letter-spacing: 0.06em;
}
/* 16-16 */
.txt-16-16{
  font-size: 1rem;
  letter-spacing: 0.06em;
}
/* 14-16 */
.txt-14-16{
  font-size: 1rem;
  letter-spacing: 0.06em;
}
/* 13-16 */
.txt-13-16{
  font-size: 1rem;
  letter-spacing: 0.06em;
}
/* 12-14 */
.txt-12-14{
  font-size: 0.875rem;
  letter-spacing: 0.06em;
}
/* 12-13 */
.txt-12-13{
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
}
/* 13-13 */
.txt-13-13{
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
}

@media (max-width: 767px){
  .txt-17-18{
    font-size: 1.0625rem;
  }
  .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;
  }
}


.en-montserrat{
  font-family: "Montserrat", sans-serif;
}
.txt-light{
  font-weight: 300;
}
.txt-medium{
  font-weight: 500;
}
.txt-bold{
  font-weight: 700;
}
.weight-520{
  font-weight: 520;
}
.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.13em;
}
.ls-jp-normal{
  letter-spacing: 0.09em;
}
.ls-en-seminarrow{
  letter-spacing: 0.03em;
}
.ls-en-narrow{
  letter-spacing: 0.01em;
}
.en-upper{
  text-transform: uppercase;
}
.en-normal{
  text-transform: none;
}
.sp-only-space{
  display: none;
}




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


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

/* 1280px */
.wrap-1280{
  width: 85.3%;
  margin: 0 auto;
}
.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 */
/* 112-280 */
.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);
}
/* 96-240 */
.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);
}
/* 80-200 */
.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);
}
/* 64-160 */
.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);
}
/* 48-120 */
.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);
}
/* 40-100 */
.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);
}
/* 34-80 */
.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-purple, .txt-purple a{
  color: #7c4f9c;
}

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