
.main-key-visual-wrapper {
  position: relative;
}

.main-key-visual-mask-outer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.main-key-visual-mask-inner {
  color: #ffffff;
  font-size: 2.0rem;
  letter-spacing: 1.5rem;
  text-align: center;
}

.main-key-visual-mask-inner h2 {
  margin-bottom: -20px;
  letter-spacing: 0;
}

@media (max-width: 1023px) {
  .main-key-visual-mask-inner {
    font-size: 1.5rem;
    letter-spacing: 0.5rem;
  }
}

@media (max-width: 767px) {
  .main-key-visual-mask-inner {
    font-size: 1.0rem;
    letter-spacing: 0.15rem;
  }
}


.main-concept {
  background-color: rgb(255, 255, 255);
}

.main-concept-title {
  letter-spacing: 1.0rem;
  text-align: center;
  margin: 40px 0;
}

@media (max-width: 1023px) {
  .main-concept-title {
    font-size: 1.0rem;
    letter-spacing: 0.1rem;
    margin: 20px 0;
  }
}

.clip-path-base {
  background-color: rgb(213, 221, 224);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 7vw), 0 100%);
}

.clip-path-base-top {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 7vw), 0 100%);
}

.clip-path-base-bottom {
  clip-path: polygon(0 calc(0% + 7vw), 100% 0, 100% 100%, 0 100%);
}

.clip-path-shadow-top {
  filter: drop-shadow(0 10px 5px rgba(200, 200, 200, 0.5));
}

.clip-path-shadow-bottom {
  filter: drop-shadow(0 -10px 5px rgba(200, 200, 200, 0.5));
}

@media (max-width: 1023px) {
  .clip-path-base-top {
    padding: 16px 0 0 16px;
  }
}

.flex-catch-copy {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-wrap: wrap;
  height: calc(450px + 10vh);
  margin: 0;
  padding-bottom: 100px;
}

.catch-copy {
  font-size: 2.0rem;
  letter-spacing: 0.8rem;
  font-weight: bold;
  line-height: 4.0rem;
}

.read-copy {
  font-size: 1.1rem;
  font-weight: bold;
  line-height: 3.0rem;
}

@media (max-width: 1023px) {
  .flex-catch-copy {
    height: calc(200px + 10vh);
    padding-bottom: 50px;
  }

  .catch-copy {
    font-size: 1.6rem;
    letter-spacing: 0.5rem;
  }

  .read-copy {
    font-size: 0.9rem;
    line-height: 1.6rem;
  }
}

@media (max-width: 767px) {
  .flex-catch-copy {
    justify-content: left;
    padding-bottom: 100px;
  }

  .catch-copy {
    font-size: 1.1rem;
    letter-spacing: 0;
    line-height: 3.0rem;
  }

  .read-copy {
    font-size: 0.7rem;
  }
}

.flex-mind {
  display: flex;
  align-items: center;
  font-weight: bold;
  line-height: 2.0rem;
  margin: 50px 0;
}

.flex-mind.mind1,
.flex-mind.mind3 {
  justify-content: flex-start;
}

.flex-mind.mind2 {
  flex-direction: row-reverse
}

.concept-mind img {
  width: 100%;
}

.mind-title {
  font-weight: bold;
  font-size: 1.7rem;
  letter-spacing: 0.8rem;
  text-align: center;
  padding: 20px 0;
}

.mind-title:after {
  display: block;
  content: " ";
  width: 80px;
  height: 1px;
  background-color: #000000;
  margin: 20px auto 0;
}

.mind1-caption,
.mind3-caption {
  margin-left: 50px;
}

.mind1-title,
.mind2-title,
.mind3-title {
  margin-bottom: 20px;
}

.mind2-caption {
  margin-right: 50px;
}

@media (max-width: 1023px) {
  .flex-mind {
    margin: 24px 0;
  }

  .mind1-message,
  .mind2-message,
  .mind3-message {
    font-size: 0.7rem;
    line-height: 1.4rem;
  }
}

@media (max-width: 767px) {
  .mind-title {
    letter-spacing: 0.5rem;
    margin: 20px 0 0px;
    font-size: 1.0rem;
  }

  .mind-title:after {
    width: 60px;
    height: 2px;
    background-color: #999999;
    margin: 7px auto 0;
  }

  .flex-mind {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    font-weight: bold;
    line-height: 2.0rem;
    margin: 0px 16px 48px;
  }

  .mind1-title,
  .mind2-title,
  .mind3-title {
    margin-top: 20px;
    margin-bottom: 0;
  }

  .mind1-caption,
  .mind2-caption,
  .mind3-caption {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
  }
  .mind1-message {
    margin-left: 16%;
  }
  .mind2-message {
    margin-left: 20%;
  }
  .mind3-message {
    margin-left: 19%;
  }
}


.promise-title {
  font-weight: bold;
  font-size: 1.7rem;
  letter-spacing: 0.8rem;
  text-align: center;
  padding-top: 150px;
}

.promise-title:after {
  display: block;
  content: " ";
  width: 100px;
  height: 1px;
  background-color: #000000;
  margin: 20px auto -60px;
}

.flex-promise {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-wrap: wrap;
  height: 300px;
  margin: 60px 0 0;
}

.promise-caption {
  font-size: 1.2rem;
  letter-spacing: 0.2rem;
  font-weight: bold;
  line-height: 3.5rem;
  text-align: center;
}

@media (max-width: 1023px) {
  .promise-title {
    font-size: 1.4rem;
    letter-spacing: 0.5rem;
    padding-top: 50px;
  }

  .promise-title:after {
    width: 60px;
    height: 2px;
    background-color: #999999;
    margin: 7px auto 0;
  }

  .flex-promise {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    flex-wrap: wrap;
    height: 100px;
    margin: 0;
  }

  .promise-caption {
    font-size: 0.7rem;
    letter-spacing: 0;
    font-weight: bold;
    line-height: 1.6rem;
  }
}
