@charset "UTF-8";
.idx-concept {
  padding-top: 175px;
}
@media screen and (max-width: 767px) {
  .idx-concept {
    padding-top: 100px;
  }
}
.idx-concept .concept_container {
  /*
   width: 70%;
   max-width: 1200px;
  */
  width: 1200px;
  margin: 0 auto;
  position: relative;
}
@media screen and (max-width: 1200px) {
  .idx-concept .concept_container {
    width: 100%;
  }
}
.idx-concept .concept_container h2 {
  width: 69.1666666667%;
  min-width: 600px;
  margin-inline: auto;
}
.idx-concept .concept_container h2 + p {
  text-align: center;
  margin-top: 25px;
}
.idx-concept .concept_container h2 + p img {
  width: 83.41%;
  max-width: 500px;
  display: inline-block;
}
.idx-concept .concept_container--box {
  font-size: clamp(16px, 13.6537678208px + 0.3054989817vw, 19px);
  font-weight: 400;
  line-height: 2.57;
  padding: 0 8.08%;
  margin-top: 120px;
  /*
        .text_bank_of_life {
          text-align: center;
          margin-top: 100px;
          img {
            width: 96%;
            max-width: 964px;
          }

          // PCのみアニメーションパーツをここに移動
          position: relative;
          .decoration_text_bank_of_life {
            &--3pc {
              opacity: 0;
              transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
              position: absolute;
              bottom: -41%;
              left: -20.5%;
              width: 17.9%;
              max-width: 178px;
              transform: translateX(-50px);
              &.show {
                opacity: 1;
                transform: scale(1) translateX(0);
              }
            }
            &--4pc {
              opacity: 0;
              transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
              position: absolute;
              bottom: -60%;
              right: -33%;
              width: 32.9%;
              max-width: 329px;
              transform: translateX(50px);
              &.show {
                opacity: 1;
                transform: scale(1) translateX(0);
              }
            }
          }
        }
        */
}
.idx-concept .concept_container--box p + p {
  margin-top: 3rem;
}
.idx-concept .concept_container--box .logo_banrai {
  width: 64%;
  max-width: 641px;
  margin-top: 8.5rem;
}
@media screen and (max-width: 767px) {
  .idx-concept .concept_container {
    width: 91.466%;
  }
  .idx-concept .concept_container h2 {
    min-width: unset;
    width: 80.4664723032%;
    margin-left: 12px;
  }
  .idx-concept .concept_container h2 + p {
    text-align: left;
    padding: 0 15px;
    margin-top: 15px;
  }
  .idx-concept .concept_container h2 + p img {
    width: 97%;
  }
  .idx-concept .concept_container--box {
    font-size: 1.6rem;
    line-height: 2.125;
    padding: 0 4%;
    margin-top: 39px;
  }
  .idx-concept .concept_container--box .logo_banrai {
    width: 100%;
    margin-top: 3.5rem;
  }
  .idx-concept .concept_container--box .text_bank_of_life {
    margin-top: 20px;
  }
}
.idx-concept .text_bank_of_life {
  text-align: center;
  width: 100%;
  max-width: 1340px;
  margin: 100px auto 0;
}
.idx-concept .text_bank_of_life--inner {
  width: 964px;
  position: relative;
  margin: 0 auto;
}
.idx-concept .text_bank_of_life--inner .inner-text {
  width: 100%;
  max-width: 964px;
}
@media screen and (max-width: 964px) {
  .idx-concept .text_bank_of_life--inner {
    width: 100%;
  }
  .idx-concept .text_bank_of_life--inner .inner-text {
    width: 90%;
    display: block;
    margin: 0 auto;
  }
}
.idx-concept .text_bank_of_life img {
  width: 100%;
}
.idx-concept .text_bank_of_life .decoration_text_bank_of_life--3pc {
  opacity: 0;
  transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: absolute;
  bottom: -41%;
  left: -22.5%;
  width: 178px;
  transform: translateX(-50px);
}
.idx-concept .text_bank_of_life .decoration_text_bank_of_life--3pc img {
  width: 100%;
}
.idx-concept .text_bank_of_life .decoration_text_bank_of_life--3pc.show {
  opacity: 1;
  transform: scale(1) translateX(0);
}
.idx-concept .text_bank_of_life .decoration_text_bank_of_life--4pc {
  opacity: 0;
  transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: absolute;
  bottom: -60%;
  right: -36%;
  width: 329px;
  transform: translateX(50px);
}
.idx-concept .text_bank_of_life .decoration_text_bank_of_life--4pc img {
  width: 100%;
}
.idx-concept .text_bank_of_life .decoration_text_bank_of_life--4pc.show {
  opacity: 1;
  transform: scale(1) translateX(0);
}
@media screen and (max-width: 1480px) {
  .idx-concept .text_bank_of_life .decoration_text_bank_of_life--3pc {
    left: -18.5%;
  }
  .idx-concept .text_bank_of_life .decoration_text_bank_of_life--4pc {
    right: -30%;
  }
}
@media screen and (max-width: 1380px) {
  .idx-concept .text_bank_of_life .decoration_text_bank_of_life--4pc {
    right: -25%;
  }
}
.idx-concept .decoration_concept > div {
  opacity: 0;
  transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.idx-concept .decoration_concept--1 {
  position: absolute;
  top: 42%;
  right: -16%;
  width: 38.9%;
  max-width: 460px;
  transform: scale(0.5);
}
.idx-concept .decoration_concept--1.show {
  opacity: 1;
  transform: scale(1.2);
  animation: bounceIn 0.6s forwards;
}
.idx-concept .decoration_concept--2 {
  position: absolute;
  top: 11%;
  right: -4%;
  width: 51.9%;
  max-width: 602px;
  transform: scale(0.5);
}
.idx-concept .decoration_concept--2.show {
  opacity: 1;
  transform: scale(1.2);
  animation: bounceIn 0.6s forwards;
}
.idx-concept .decoration_concept--3 {
  position: absolute;
  bottom: -4%;
  left: -9%;
  width: 14.9%;
  max-width: 178px;
  transform: translateX(-50px);
}
.idx-concept .decoration_concept--3.show {
  opacity: 1;
  transform: scale(1) translateX(0);
}
.idx-concept .decoration_concept--4 {
  position: absolute;
  bottom: -6%;
  right: -20%;
  width: 27.9%;
  max-width: 329px;
  transform: translateX(50px);
}
.idx-concept .decoration_concept--4.show {
  opacity: 1;
  transform: scale(1) translateX(0);
}
@media screen and (max-width: 1200px) {
  .idx-concept .decoration_concept--1 {
    right: -8%;
  }
  .idx-concept .decoration_concept--2 {
    right: -13%;
  }
}
@media screen and (max-width: 850px) {
  .idx-concept .decoration_concept--1 {
    right: -10%;
  }
  .idx-concept .decoration_concept--2 {
    right: -19%;
  }
}
@media screen and (max-width: 767px) {
  .idx-concept .decoration_concept--1 {
    top: inherit;
    bottom: -51%;
    right: -16.5%;
    width: 80.9%;
  }
  .idx-concept .decoration_concept--2 {
    top: inherit;
    bottom: -36%;
    right: 14%;
    width: 111%;
  }
  .idx-concept .decoration_concept--3 {
    bottom: -51%;
    left: 4%;
    width: 26.9%;
  }
  .idx-concept .decoration_concept--4 {
    bottom: -19%;
    right: -17%;
    width: 45.9%;
  }
}

@keyframes bounceIn {
  0% {
    transform: scale(0);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes bounceIn_cando {
  0% {
    transform: scale(0);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
.idx-cando {
  margin-top: 126px;
  padding-bottom: 100px;
}
.idx-cando .cando_container {
  width: 89.82%;
  max-width: 1572px;
  margin: 0 auto;
  padding-top: 115px;
  padding-bottom: 70px;
  background: url(../img/concept/bg_cando.png) no-repeat center center;
  background-size: cover;
  border-radius: 40px;
}
.idx-cando .cando_container h2 {
  width: 668px;
  margin-inline: auto;
}
.idx-cando .cando_container h2 + p {
  text-align: center;
  margin-top: 15px;
}
.idx-cando .cando_container h2 + p img {
  width: 17%;
  max-width: 264px;
  display: inline-block;
}
.idx-cando .cando_container--box {
  width: 81.93%;
  max-width: 1288px;
  margin: 55px auto 68px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.idx-cando .cando_container--box .items {
  width: 32.22%;
  color: #eefa7f;
  font-size: clamp(1.6rem, 2.1vw, 2.4rem);
  font-weight: 600;
  position: relative;
}
.idx-cando .cando_container--box .items img {
  width: 100%;
}
.idx-cando .cando_container--box .items p {
  text-align: center;
  margin-top: 2.6rem;
  position: relative;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.6s ease-out 0.6s; /* 文字は1秒後にフェードイン */
}
@media screen and (max-width: 767px) {
  .idx-cando .cando_container--box .items p {
    margin-top: 3.6rem;
  }
}
.idx-cando .cando_container--box .items .pic {
  opacity: 0;
  transform: scale(0.5) translateY(20px); /* 左下からスケールアップ */
  transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
  transform-origin: bottom right;
}
.idx-cando .cando_container--box .items.show .pic {
  opacity: 1;
  transform: scale(1) translateY(0); /* 左下からスムーズにスケールアップ */
  animation: bounceIn_cando 0.6s forwards;
}
.idx-cando .cando_container--box .items.show p {
  opacity: 1;
}
.idx-cando .cando_container--btn {
  margin-top: 68px;
  text-align: center;
}
.idx-cando .cando_container--btn a {
  display: inline-block;
  border-radius: 50px;
  border: solid 3px #fbf2ca;
  font-size: 1.8rem;
  font-weight: 600;
  color: #fff;
  padding: 1.8rem 2.5rem 1.5rem;
  width: 280px;
  position: relative;
}
.idx-cando .cando_container--btn a:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 30px;
  transform: translateY(-50%);
  width: 10px;
  height: 17px;
  background: url(../img/common/icon_btn.svg) no-repeat center center;
  background-size: 100%;
}
.idx-cando .decoration_cando--1 {
  position: absolute;
  bottom: 1%;
  left: -6%;
  width: 26.9%;
  max-width: 108px;
}
.idx-cando .decoration_cando--2 {
  position: absolute;
  bottom: 0;
  right: 1%;
  width: 21.9%;
  max-width: 88px;
}
.idx-cando .decoration_cando--3 {
  position: absolute;
  bottom: 20px;
  left: 6%;
  width: 28.9%;
  max-width: 114px;
}
.idx-cando .decoration_cando--4 {
  position: absolute;
  bottom: 0px;
  right: 3%;
  width: 18.9%;
  max-width: 73px;
}
.idx-cando .decoration_cando--5 {
  position: absolute;
  bottom: 5%;
  left: -2%;
  width: 24.9%;
  max-width: 104px;
}
.idx-cando .decoration_cando--6 {
  position: absolute;
  bottom: 4%;
  right: -2%;
  width: 22.9%;
  max-width: 95px;
}
@media screen and (max-width: 767px) {
  .idx-cando {
    margin-top: 50px;
  }
  .idx-cando .cando_container {
    width: 91.466%;
    padding-top: 85px;
    padding-bottom: 35px;
    border-radius: 20px;
    background: url(../img/concept/bg_cando_sp.png) no-repeat center center;
    background-size: cover;
  }
  .idx-cando .cando_container h2 {
    margin-left: 12px;
    width: 93.2944606414%;
    min-width: unset;
  }
  .idx-cando .cando_container h2 + p {
    text-align: left;
    padding: 0 15px;
    margin-top: 10px;
  }
  .idx-cando .cando_container h2 + p img {
    width: 65%;
  }
  .idx-cando .cando_container--box {
    flex-direction: column;
    width: 87.53%;
  }
  .idx-cando .cando_container--box .items {
    width: 100%;
    font-size: 2rem;
  }
  .idx-cando .cando_container--box .items + .items {
    margin-top: 45px;
  }
  .idx-cando .cando_container--box .items:nth-child(2) {
    margin-left: -3%;
  }
  .idx-cando .cando_container--btn {
    margin-top: 34px;
  }
  .idx-cando .cando_container--btn a {
    padding: 1.5rem 2.5rem 1.2rem;
    width: 80%;
  }
  .idx-cando .decoration_cando--1 {
    bottom: 4%;
    left: -6%;
    width: 27.9%;
  }
  .idx-cando .decoration_cando--2 {
    bottom: 3%;
    right: -4%;
    width: 22.9%;
  }
  .idx-cando .decoration_cando--3 {
    bottom: 6%;
    left: 2%;
    width: 28.9%;
  }
  .idx-cando .decoration_cando--4 {
    bottom: 0;
    right: 0;
    width: 18.9%;
  }
  .idx-cando .decoration_cando--5 {
    bottom: 7%;
    left: -2%;
    width: 26.9%;
  }
  .idx-cando .decoration_cando--6 {
    bottom: 6%;
    right: -10%;
    width: 24.9%;
  }
}

.idx-candofooter {
  padding: 125px 0 160px;
}
.idx-candofooter .candofooter_container {
  text-align: center;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
.idx-candofooter .candofooter_container--start {
  text-align: center;
}
.idx-candofooter .candofooter_container--start img {
  width: 40.66%;
  max-width: 488px;
}
.idx-candofooter .decoration_candofooter--1 {
  position: absolute;
  top: -440%;
  left: 7%;
  width: 14.9%;
  max-width: 172px;
}
.idx-candofooter .decoration_candofooter--2 {
  position: absolute;
  top: -440%;
  right: 10%;
  width: 15.9%;
  max-width: 181px;
}
@media screen and (max-width: 767px) {
  .idx-candofooter {
    padding: 45px 0 343px;
    background: url(../img/concept/concept_start_bg.jpg) no-repeat center bottom;
    background-size: 100%;
  }
  .idx-candofooter .candofooter_container--start img {
    width: 80%;
  }
  .idx-candofooter .decoration_candofooter--1 {
    top: 271%;
    left: 10%;
    width: 25.9%;
  }
  .idx-candofooter .decoration_candofooter--2 {
    top: 271%;
    right: 12%;
    width: 26.9%;
    max-width: 181px;
  }
}

.bg02_concept {
  background-image: url(../img/concept/bg_side_left.png), url(../img/concept/bg_side_right.png), url(../img/concept/bg_bottom.png);
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-size: 422px auto, 557px auto, 100% auto;
  background-position: left -250px, right -160px, center bottom;
}
@media screen and (max-width: 767px) {
  .bg02_concept {
    background: url(../img/concept/bg_sp.jpg) no-repeat center 52%;
    background-size: cover;
    background-color: #fbfbf9;
  }
}

.idx-concept-movie {
  padding-top: 60px;
  margin-top: 10px;
}
@media screen and (max-width: 767px) {
  .idx-concept-movie {
    padding-top: 40px;
    margin-top: calc(161% - 40px);
  }
}

.concept-movie_inner {
  max-width: 977px;
  margin-inline: auto;
  width: 100%;
  padding-inline: 20px;
}
@media screen and (max-width: 767px) {
  .concept-movie_inner {
    padding-inline: 16px;
  }
}

.concept-movie_wrap {
  position: relative;
  aspect-ratio: 937/527;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
}
@media (hover: hover) {
  .concept-movie_wrap:hover::after {
    width: 170px;
    height: 170px;
  }
}
.concept-movie_wrap video, .concept-movie_wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.concept-movie_wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.69);
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}
.concept-movie_wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: url("../img/concept/icon_play.png") no-repeat center/contain;
  width: 152px;
  height: 152px;
  z-index: 2;
  pointer-events: none;
  transition: width 0.3s, height 0.3s;
}
@media screen and (max-width: 767px) {
  .concept-movie_wrap::after {
    width: 101px;
    height: 101px;
    top: 47%;
  }
}

.concept-movie_title {
  margin-top: 20px;
  width: 409px;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .concept-movie_title {
    margin-top: 30px;
    width: 296px;
  }
}

.concept-movie_subtitle {
  margin-top: 24px;
  width: 206px;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .concept-movie_subtitle {
    margin-top: 13px;
    width: 149px;
  }
}

.concept-movie_container__comment {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  background-color: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px); /* Safari対応 */
  padding: 40px 20px;
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  box-sizing: border-box;
  z-index: 5000;
}
.concept-movie_container__comment:before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.concept-movie_container__comment.active {
  opacity: 1;
  visibility: visible;
}

.concept-movie_body__comment {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  max-width: 1117px;
  width: 90%;
}

.concept-movie_close__comment {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: -30px;
  right: -30px;
  width: 20px;
  height: 20px;
  color: #004831;
  cursor: pointer;
  font-size: 28px;
  font-weight: 700;
  z-index: 1;
}
.concept-movie_close__comment:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50px;
  width: 38px;
  height: 38px;
  border: solid 1px rgba(0, 72, 49, 0.3);
  background: #fff;
  z-index: -1;
}
.concept-movie_close__comment:hover:before {
  background: rgba(0, 72, 49, 0.3);
}
@media screen and (max-width: 767px) {
  .concept-movie_close__comment {
    top: -40px;
    right: -10px;
  }
}

.concept-movie_content__comment {
  box-shadow: 0 0 20px #999;
  border-radius: 10px;
}
.concept-movie_content__comment .concept-movie_movie {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
}
.concept-movie_content__comment iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}