html {
  scroll-behavior: smooth;
}

@media screen and (min-width: 1401px) {
  html {
    font-size: 62.5%;
  }
}
@media screen and (max-width: 1400px) {
  html {
    font-size: 0.7142857vw;
  }
}
@media screen and (max-width: 768px) {
  html {
    font-size: 1.99999995vw;
  }
}
body {
  width: 100%;
}

.l-container {
  width: 100%;
}

.f-container {
  position: relative;
  display: flex;
  overflow: clip;
  justify-content: center;
  width: 100%;
  text-align: center;
  color: #333333;

  scroll-margin-top: 80px;
  font-feature-settings: 'palt';
}
.f-container * {
  box-sizing: border-box;

  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
}
.f-container a.mask-img {
  position: relative;
}
.f-container a.mask-img::after {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  width: 100%;
  height: 100%;
  content: '';
  transition: all 0.3s ease-in-out;

  -webkit-mask-size: cover;
  mask-size: cover;
  will-change: opacity;
}
.f-container a.mask-img:hover {
  opacity: 1;
}
.f-container a.mask-img:hover::after {
  opacity: 0.3;
  background: rgb(255, 255, 255);
}
.f-container img,
.f-container video {
  width: 100%;
  height: auto;
  vertical-align: top;
  pointer-events: none;
}
.f-container svg {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}
.f-container a {
  display: block;
  cursor: pointer;
  text-decoration: none;
  color: #333333;
  transition: all 0.3s ease-in-out;
}
.f-container a:hover {
  opacity: 0.7;
}
.f-container figure {
  display: block;
}
.f-container .f-left {
  position: relative;
  position: sticky;
  top: 80px;
  width: 50%;
  height: calc(100vh - 80px);
}
.f-container .f-left__box {
  position: relative;
  width: 100%;
  height: 100%;
}
.f-container .f-left__mv {
  position: relative;
  width: 100%;
  height: 100%;
}
.f-container .f-left__mv img {
  width: 100%;
  height: auto;
  min-height: 100%;

  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center top;
  object-position: center top;
}
.f-container .f-left__title {
  position: absolute;
  bottom: calc((100vh - 80px) * 0.1071428571);
  width: 100%;
}
.f-container .f-left__title img {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 50.2rem;
  transform: translateX(-50%);
}
.f-container .f-left__logo {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
}
.f-container .f-left__logo img {
  position: absolute;
  top: 4.6rem;
  right: 4.6rem;
  width: 10.8rem;
}
.f-container .f-main {
  width: 50%;
}
.f-container .f-main-wrap {
  overflow: clip;
  width: 100%;
  max-width: 50rem;
  min-height: 100vh;
  margin: 0 auto;
  background-size: 100% auto;

  scroll-margin-top: 80px;
}
@media screen and (max-width: 768px) {
  .f-container .f-main {
    width: 50rem;
  }
  .f-container .f-main-wrap {
    width: 50rem;
    margin: 0 auto;
  }
  .f-container .f-left,
  .f-container .f-right {
    display: none;
  }
}
.f-container .fadeIn {
  opacity: 0;
  transition: opacity 1s ease-in;
}
.f-container .fadeIn.showed {
  opacity: 1;
}
.f-container .fadeUp {
  opacity: 0;
  transition: all 1.5s 0s ease;
  transform: translateY(4rem);
}
.f-container .fadeUp.showed {
  opacity: 1;
  transform: translateY(0);
}
.f-container .fadeUp02 {
  opacity: 0;
  transition: all 1.1s 0s ease;
  transform: translateY(4rem);
}
.f-container .fadeUp02.showed {
  opacity: 1;
  transform: translateY(0);
}
.f-container .typing {
  visibility: hidden;
  opacity: 0;
  transition: all 80ms 0.3s ease;
}
.f-container .typing.is-start {
  visibility: visible;
  opacity: 1;
}
.f-container .typing span {
  display: inline-block;
  opacity: 0;
}
.f-container .typing span.active {
  opacity: 1;
}
.f-container .hero__box {
  display: none;
}
.f-container .hero {
  position: relative;
}
.f-container .hero__mv-box {
  position: relative;
}
.f-container .hero__box {
  position: relative;
  height: 60rem;
}
.f-container .hero__title {
  position: absolute;
  bottom: 6.467rem;
  left: 0;
  width: 100%;
}
.f-container .hero__title img {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 35.867rem;
  transform: translateX(-50%);
}
.f-container .hero__logo {
  position: absolute;
  top: 3.333rem;
  right: 3.333rem;
  width: 7.667rem;
}
.f-container .hero__text-box {
  padding: 0 4rem 9.2rem;
  text-align: left;
}
.f-container .hero__lead {
  padding-top: 7.467rem;
  padding-bottom: 4.2rem;
  letter-spacing: 0.035em;
  font-family: 'yu-mincho-pr6n', sans-serif;
  font-size: 2.667rem;
  font-weight: 400;
  font-weight: 600;
  font-style: normal;
  line-height: 2.533rem;
}
.f-container .hero__text {
  padding-right: 2rem;
  text-align: justify;
  font-family: 'yu-mincho-pr6n', sans-serif;
  font-size: 1.867rem;
  font-weight: 400;
  font-style: normal;
  line-height: 3.467rem;
}
.f-container .hero__text span {
  display: inline-block;
}
.f-container .content__wrap .s__area {
  position: relative;
  padding: 5.6rem 4rem 6.667rem 4rem;
  margin-bottom: 10rem;
  background-color: #e8e8e8;
}
.f-container .content__wrap .s__title {
  display: flex;
  flex-direction: column;
  margin-bottom: 4.267rem;
  color: #53848e;
}
.f-container .content__wrap .s__title-over {
  padding-bottom: 0.2rem;
  margin-right: -0.333rem;
  margin-bottom: 2.733rem;
  letter-spacing: 0.05em;
  font-family: 'ivypresto-display', serif;
  font-size: 3.2rem;
  font-weight: 300;
  font-style: normal;
  line-height: 2.333rem;
}
.f-container .content__wrap .s__title-under {
  letter-spacing: 0.02em;
  font-family: 'yu-mincho-pr6n', sans-serif;
  font-size: 5rem;
  font-weight: 400;
  font-style: normal;
  line-height: 4.667rem;
}
.f-container .content__wrap .s__lead {
  margin-bottom: 4.333rem;
  letter-spacing: 0.1em;
  font-family: 'yu-mincho-pr6n', sans-serif;
  font-size: 2.4rem;
  font-weight: 400;
  font-weight: 600;
  font-style: normal;
  line-height: 4rem;
  color: #53848e;
}
.f-container .content__wrap .s__img {
  width: 34.667rem;
  margin: 0 auto 4.333rem;
}
.f-container .content__wrap .s__text {
  text-align: justify;
  font-family: 'yu-gothic-pr6n', sans-serif;
  font-size: 1.867rem;
  font-weight: 400;
  font-style: normal;
  line-height: 3.467rem;
}
.f-container .content__wrap .s__text span {
  display: inline-block;
}
.f-container .content__wrap .s01 .s__lead span.t1 {
  margin-left: -0.667rem;
}
.f-container .content__wrap .s01 .s__lead span.t2,
.f-container .content__wrap .s01 .s__lead span.t3,
.f-container .content__wrap .s01 .s__lead span.t4,
.f-container .content__wrap .s01 .s__lead span.t5 {
  margin-left: -0.2rem;
}
.f-container .content__wrap .s01 .s__lead span.t6 {
  margin-left: -0.2rem;
}
.f-container .content__wrap .s01 .s__lead span.t23 {
  margin-right: -0.333rem;
}
.f-container .content__wrap .s02 {
  padding-bottom: 7.2rem;
}
.f-container .content__wrap .s02 .s__lead span {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .s02 .s__lead span.t1 {
  margin-left: -1.067rem;
}
.f-container .content__wrap .s02 .s__lead span.t2,
.f-container .content__wrap .s02 .s__lead span.t3,
.f-container .content__wrap .s02 .s__lead span.t4,
.f-container .content__wrap .s02 .s__lead span.t5 {
  margin-left: -0.2rem;
}
.f-container .content__wrap .s02 .text01 {
  padding-right: 0.667rem;
}
.f-container .content__wrap .sec__area {
  position: relative;
  width: 42rem;
  margin: 0 auto 10rem;
  text-align: left;
}
.f-container .content__wrap .sec__num {
  padding-bottom: 0.333rem;
  margin-bottom: 3rem;
  margin-left: -0.2rem;
  letter-spacing: 0.05em;
  font-family: 'ivypresto-display', serif;
  font-size: 7.333rem;
  font-weight: 300;
  font-style: normal;
  line-height: 5.333rem;
  color: #53848e;
}
.f-container .content__wrap .sec__title {
  width: 45.333rem;
  margin-bottom: 1.333rem;
  font-family: 'yu-mincho-pr6n', sans-serif;
  font-size: 2.4rem;
  font-weight: 400;
  font-weight: 600;
  font-style: normal;
  line-height: 4rem;
  color: #53848e;
}
.f-container .content__wrap .sec__text {
  padding-right: 1.2rem;
  margin-bottom: 4.333rem;
  text-align: justify;
  font-family: 'yu-gothic-pr6n', sans-serif;
  font-size: 1.867rem;
  font-weight: 400;
  font-style: normal;
  line-height: 3.467rem;
}
.f-container .content__wrap .sec__text span {
  display: inline-block;
}
.f-container .content__wrap .sec__img:nth-of-type(n + 2) {
  margin-top: 4rem;
}
.f-container .content__wrap .sec__img:last-of-type {
  margin-bottom: 5.2rem;
}
.f-container .content__wrap .sec__item-title {
  margin-right: -1.333rem;
  margin-bottom: 2.667rem;
  text-align: center;
  letter-spacing: 0.05em;
  font-family: 'haboro-contrast-normal', sans-serif;
  font-size: 2.4rem;
  font-weight: 200;
  font-style: normal;
  line-height: 2.4rem;
}
.f-container .content__wrap .sec__item-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 36rem;
  margin: 0 auto;

  gap: 2.667rem;
}
.f-container .content__wrap .sec__item-box {
  width: 16.667rem;
}
.f-container .content__wrap .sec__item-img {
  margin-bottom: 1.467rem;
}
.f-container .content__wrap .sec__item-credit a {
  display: flex;
  letter-spacing: 0.02em;
  font-family: 'yu-gothic-pr6n', sans-serif;
  font-size: 1.467rem;
  font-weight: 400;
  font-style: normal;
  line-height: 1.2rem;
}
.f-container .content__wrap .sec01 .title01 span.t1 {
  letter-spacing: 0.05em;
}
.f-container .content__wrap .sec01 .title01 span.t2 {
  letter-spacing: 0.05em;
}
.f-container .content__wrap .sec01 .title01 span.t3 {
  letter-spacing: 0.05em;
}
.f-container .content__wrap .sec01 .title01 span.t4 {
  letter-spacing: 0.05em;
}
.f-container .content__wrap .sec01 .title01 span.t5 {
  letter-spacing: 0.05em;
}
.f-container .content__wrap .sec01 .title01 span.t6 {
  letter-spacing: 0.05em;
}
.f-container .content__wrap .sec01 .title01 span.t7 {
  letter-spacing: 0.05em;
}
.f-container .content__wrap .sec01 .title01 span.t8 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t9 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t10 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t11 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t12 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t13 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t14 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t15 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t16 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t17 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t18 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec01 .title01 span.t19 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t1 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t2 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t3 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t4 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t5 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t6 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t7 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t8 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t9 {
  letter-spacing: 0.12em;
}
.f-container .content__wrap .sec02 .title01 span.t10 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t11 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t12 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t13 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t14 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t15 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t16 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t17 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t18 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t19 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t20 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec02 .title01 span.t21 {
  letter-spacing: 0.09em;
}
.f-container .content__wrap .sec03 .title01 span.t1 {
  letter-spacing: 0.11em;
}
.f-container .content__wrap .sec03 .title01 span.t2 {
  letter-spacing: 0.11em;
}
.f-container .content__wrap .sec03 .title01 span.t3 {
  letter-spacing: 0.11em;
}
.f-container .content__wrap .sec03 .title01 span.t4 {
  letter-spacing: 0.11em;
}
.f-container .content__wrap .sec03 .title01 span.t5 {
  letter-spacing: 0.11em;
}
.f-container .content__wrap .sec03 .title01 span.t6 {
  letter-spacing: 0.11em;
}
.f-container .content__wrap .sec03 .title01 span.t7 {
  letter-spacing: 0.11em;
}
.f-container .content__wrap .sec03 .title01 span.t8 {
  letter-spacing: 0.11em;
}
.f-container .content__wrap .sec03 .title01 span.t9 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t10 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t11 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t12 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t13 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t14 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t15 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t16 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t17 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t18 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t19 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t20 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t21 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t22 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec03 .title01 span.t23 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .sec04 {
  margin-bottom: 13.333rem;
}
.f-container .content__wrap .sec04 .title01 span.t1 {
  letter-spacing: 0.02em;
}
.f-container .content__wrap .sec04 .title01 span.t2 {
  letter-spacing: 0.02em;
}
.f-container .content__wrap .sec04 .title01 span.t3 {
  letter-spacing: 0.02em;
}
.f-container .content__wrap .sec04 .title01 span.t4 {
  letter-spacing: 0.02em;
}
.f-container .content__wrap .sec04 .title01 span.t5 {
  letter-spacing: 0.02em;
}
.f-container .content__wrap .sec04 .title01 span.t6 {
  letter-spacing: 0.02em;
}
.f-container .content__wrap .sec04 .title01 span.t7 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t8 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t9 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t10 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t11 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t12 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t13 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t14 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t15 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t16 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t17 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t18 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t19 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t20 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t21 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t22 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .sec04 .title01 span.t23 {
  letter-spacing: 0.15em;
}
.f-container .content__wrap .profile {
  width: 42rem;
  padding: 5.467rem 5rem 6.667rem;
  margin: 0 auto 10rem;
  text-align: left;
  background-color: #f2f2f2;
}
.f-container .content__wrap .profile__img {
  width: 20rem;
  margin: 0 auto 4rem;
}
.f-container .content__wrap .profile__title {
  padding-bottom: 1.333rem;
  margin-bottom: 2.333rem;
  letter-spacing: 0.05em;
  font-family: 'haboro-contrast-normal', sans-serif;
  font-size: 2.4rem;
  font-weight: 200;
  font-style: normal;
  line-height: 1.733rem;
  color: #555555;
  border-bottom: min(0.133rem, 1px) solid #dddddd;
}
.f-container .content__wrap .profile__text {
  padding-left: 0.133rem;
  margin-bottom: 2.533rem;
  text-align: justify;
  letter-spacing: 0.03em;
  font-family: 'yu-gothic-pr6n', sans-serif;
  font-size: 1.867rem;
  font-weight: 400;
  font-style: normal;
  line-height: 3.467rem;
  color: #555555;
}
.f-container .content__wrap .profile__text span {
  display: inline-block;
}
.f-container .content__wrap .profile__text span.t1 {
  letter-spacing: 0.06em;
}
.f-container .content__wrap .profile__link {
  padding-bottom: 0.133rem;
  font-family: 'yu-gothic-pr6n', sans-serif;
  font-size: 1.867rem;
  font-weight: 400;
  font-style: normal;
  line-height: 1.467rem;
  color: #555555;
}
.f-container .content__wrap .all__btn {
  width: 32rem;
  margin: 0 auto 10rem;
}
.f-container .content__wrap .other {
  padding: 6.533rem 0 10rem;
  background-color: #e8e8e8;
}
.f-container .content__wrap .other__name {
  padding-top: 0.333rem;
  margin-bottom: 3rem;
  letter-spacing: 0.05em;
  font-family: 'haboro-contrast-normal', sans-serif;
  font-size: 5rem;
  font-weight: 200;
  font-style: normal;
  line-height: 3.6rem;
}
.f-container .content__wrap .other__title {
  margin-bottom: 5.467rem;
  letter-spacing: 0.05em;
  font-family: 'yu-gothic-pr6n', sans-serif;
  font-size: 1.867rem;
  font-weight: 400;
  font-style: normal;
  line-height: 1.6rem;
  color: #333333;
}
.f-container .content__wrap .other__img {
  width: 32rem;
  margin: 0 auto;
}

.pc-footer {
  margin-top: 0;
}

.l-footer {
  padding-top: 0;
}
