/*---------- reset ----------*/
.main-inner {
  width: 100% !important;
}

.main-area {
  overflow-x: visible;
}

/*---------- reset ----------*/
/*---------- all common ----------*/
html {
  font-size: 62.5%;
  box-sizing: border-box;
}

.LB0418 img {
  width: 100%;
  height: auto;
}
.LB0418 a, .LB0418 picture {
  display: block;
}
.LB0418 .pc-only {
  display: none;
}
@media screen and (min-width: 768px) {
  .LB0418 .pc-only {
    display: block;
  }
}
@media screen and (min-width: 768px) {
  .LB0418 .sp-only {
    display: none;
  }
}

/*---------- all common ----------*/
/*---------- animation ----------*/
.js-fade-Vr-first,
.js-fade-Vr {
  opacity: 0;
  transition-duration: 1.5s;
}

.js-fade-Vr-first.active,
.js-fade-Vr.active {
  opacity: 1;
}

.sec-image304 {
  transition-delay: 1.3s;
}

.border-animation::before, .border-animation::after {
  transition-duration: 0.8s;
  transition-delay: 0.5s;
}
.border-animation::before {
  transform: scale(1, 0);
  transform-origin: top right;
}
.border-animation::after {
  transform: scale(0, 1);
  transform-origin: left bottom;
}
.border-animation .js-fade-Vr {
  transition-delay: 1s;
}

.border-animation.active::before, .border-animation.active::after {
  transform: scale(1, 1);
}

.firstviewArea__subTtl {
  animation: rotate_anime 6s ease infinite;
}

@keyframes rotate_anime {
  0% {
    transform: rotate(0deg);
  }
  33% {
    transform: rotate(0deg);
  }
  66% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*---------- animation ----------*/
/*---------- font ----------*/
.firstviewArea__lead {
  font-family: "zen-kaku-gothic-antique", sans-serif;
  color: #2B161E;
  font-weight: 400;
  font-style: normal;
  font-size: calc(26 *(100vw / 750));
  line-height: 1;
  letter-spacing: 0.025em;
  font-feature-settings: "palt";
}
@media screen and (min-width: 768px) {
  .firstviewArea__lead {
    font-size: 1.8rem;
  }
}

/*---------- font ----------*/
/*
//////////////////////////////////////////////////////////////////////////////////////////////
                                          for mobile
//////////////////////////////////////////////////////////////////////////////////////////////
*/
/*---------- image-size ----------*/
.firstviewArea__img {
  width: 100%;
}

.image-box101,
.image-box201,
.image-box301,
.image-box401 {
  width: 100%;
}

.image-box102 {
  width: 100%;
}

.sec-image103 {
  width: calc(500 *(100vw / 750));
}

.image-box202 {
  width: 100%;
}

.sec-image203 {
  width: calc(500 *(100vw / 750));
}

.sec-image204 {
  width: calc(450 *(100vw / 750));
}

.image-box302 {
  width: 100%;
}

.sec-image303 {
  width: calc(450 *(100vw / 750));
}

.sec-image304 {
  width: calc(264 *(100vw / 750));
}

.image-box402 {
  width: 100%;
}

.sec-image403 {
  width: calc(450 *(100vw / 750));
}

.footer-image {
  width: calc(280 *(100vw / 750));
}

/*---------- image-size ----------*/
/*---------- common ----------*/
.sec {
  margin-bottom: calc(220 *(100vw / 750));
}

.image-box {
  position: relative;
  box-sizing: border-box;
}

.sec-ttl,
.sec-subTtl {
  position: absolute;
  z-index: 10;
  pointer-events: none;
}

.sec-subTtl {
  width: calc(29 *(100vw / 750));
}

.sec-border {
  border-top: 1px solid #2B161E;
  border-bottom: 1px solid #2B161E;
}

.border-animation {
  position: relative;
  border-top: 1px solid #2B161E;
  border-left: 1px solid #2B161E;
}
.border-animation::before, .border-animation::after {
  display: block;
  position: absolute;
  content: "";
  z-index: 10;
  pointer-events: none;
}
.border-animation::before {
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  border-right: 1px solid #2B161E;
}
.border-animation::after {
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  border-bottom: 1px solid #2B161E;
}

.image-box102,
.sec-image103,
.image-box202,
.sec-image203,
.sec-image204,
.image-box302,
.sec-image303,
.image-box402,
.sec-image403 {
  margin-top: -1px;
}

/*---------- common ----------*/
.firstviewArea {
  position: sticky;
  top: 0;
}
.firstviewArea__img {
  position: relative;
}
.firstviewArea__subTtl {
  display: block;
  position: absolute;
  top: calc(325 *(100vw / 750));
  right: calc(48 *(100vw / 750));
  width: calc(185 *(100vw / 750));
}
.firstviewArea__txtArea {
  padding-top: calc(102 *(100vw / 750));
  padding-bottom: calc(124 *(100vw / 750));
}
.firstviewArea .sec-logo {
  margin: 0 auto;
  margin-bottom: calc(40 *(100vw / 750));
  width: calc(217 *(100vw / 750));
}
.firstviewArea__lead {
  text-align: center;
}

.main-contentArea {
  position: relative;
  padding-bottom: calc(230 *(100vw / 750));
  z-index: 100;
  background-color: #fff;
}

.sec01 .sec-ttl {
  top: calc(100 *(100vw / 750));
  left: 50%;
  transform: translateX(-50%);
  width: calc(518 *(100vw / 750));
}
.sec01 .sec-subTtl {
  right: calc(25 *(100vw / 750));
  bottom: calc(27 *(100vw / 750));
}
.sec01 .sec-image103 {
  margin-left: auto;
}
.sec01 .sec-image103::before {
  display: none;
}

.sec02 .sec-ttl {
  top: calc(154 *(100vw / 750));
  right: calc(122 *(100vw / 750));
  width: calc(152 *(100vw / 750));
}
.sec02 .sec-subTtl {
  left: calc(34 *(100vw / 750));
  bottom: calc(27 *(100vw / 750));
}
.sec02 .sec-image203 {
  border-left: none;
}
.sec02 .sec-image204 {
  margin-left: auto;
}
.sec02 .sec-image204::before {
  display: none;
}

.sec03 .sec-ttl {
  top: calc(225 *(100vw / 750));
  left: 50.5%;
  transform: translateX(-50%);
  width: calc(626 *(100vw / 750));
}
.sec03 .sec-subTtl {
  right: calc(25 *(100vw / 750));
  bottom: calc(-658 *(100vw / 750));
}
.sec03 .sec-imgWrap {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
}
.sec03 .sec-image303 {
  border-left: none;
}
.sec03 .sec-image304 {
  position: absolute;
  top: 0;
  right: calc(-262 *(100vw / 750));
  z-index: -1;
}

.sec04 {
  margin-bottom: calc(198 *(100vw / 750));
}
.sec04 .sec-ttl {
  top: calc(168 *(100vw / 750));
  left: 50%;
  transform: translateX(-50%);
  width: calc(437 *(100vw / 750));
}
.sec04 .sec-subTtl {
  left: calc(34 *(100vw / 750));
  bottom: calc(27 *(100vw / 750));
}
.sec04 .sec-image403 {
  border-left: none;
}

.LB0418__btn {
  margin: 0 auto;
  margin-bottom: calc(230 *(100vw / 750));
  width: calc(628 *(100vw / 750));
}

.footer-image {
  position: relative;
  margin: 0 auto;
}
.footer-image::after {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(332 *(100vw / 750));
  height: calc(475 *(100vw / 750));
  transform: translate(-50%, -50%);
  border: solid 1px #2B161E;
  z-index: 5;
  content: "";
  pointer-events: none;
}

/*
//////////////////////////////////////////////////////////////////////////////////////////////
                                          for desktop
//////////////////////////////////////////////////////////////////////////////////////////////
*/
@media screen and (min-width: 768px) {
  html {
    font-size: 62.5%;
  }
  /*---------- image-size ----------*/
  .firstviewArea__img {
    width: 69.6rem;
  }
  .image-box101,
  .image-box201,
  .image-box301,
  .image-box401 {
    width: 65rem;
  }
  .image-box102 {
    width: 47.5rem;
  }
  .sec-image103 {
    width: 38.2rem;
  }
  .image-box202 {
    width: 55rem;
  }
  .sec-image203 {
    width: 46rem;
  }
  .sec-image204 {
    width: 28rem;
  }
  .image-box302 {
    width: 51.6rem;
  }
  .sec-image303 {
    width: 33.2rem;
  }
  .sec-image304 {
    width: 20.2rem;
  }
  .image-box402 {
    width: 42.5rem;
  }
  .sec-image403 {
    width: 32rem;
  }
  .footer-image {
    width: 21rem;
  }
  /*---------- image-size ----------*/
  /*---------- common ----------*/
  .sec {
    margin-bottom: 20rem;
  }
  .sec-flexWrap {
    display: flex;
    align-items: flex-start;
  }
  .sec-subTtl {
    width: 2.24rem;
  }
  .sec-border {
    border: solid 1px #2B161E;
  }
  .image-box101,
  .image-box201,
  .image-box301,
  .image-box401 {
    margin: 0 auto;
  }
  /*---------- common ----------*/
  .firstviewArea {
    position: static;
  }
  .firstviewArea__img {
    margin: 0 auto;
  }
  .firstviewArea__subTtl {
    top: 30.3rem;
    right: 1.8rem;
    width: 15.8rem;
  }
  .firstviewArea__txtArea {
    padding-top: 8rem;
    padding-bottom: 10rem;
  }
  .firstviewArea .sec-logo {
    margin-bottom: 3.4rem;
    width: 17.1rem;
  }
  .firstviewArea__lead {
    text-align: center;
  }
  .main-contentArea {
    padding-bottom: 22.5rem;
  }
  .sec01__wrapper {
    margin: 0 auto;
    width: 65rem;
  }
  .sec01 .sec-ttl {
    top: 9rem;
    width: 43rem;
  }
  .sec01 .sec-subTtl {
    right: 1.2rem;
    bottom: 1.4rem;
  }
  .sec01 .sec-image103::before {
    display: block;
  }
  .sec02__wrapper {
    margin: 0 auto;
    width: 99rem;
  }
  .sec02 .sec-ttl {
    top: 14.5rem;
    right: 11rem;
    width: 14.3rem;
  }
  .sec02 .sec-subTtl {
    left: 1.5rem;
    bottom: 1.3rem;
  }
  .sec02 .image-box202 {
    margin-left: auto;
  }
  .sec02 .sec-image203 {
    border-left: solid 1px #2B161E;
  }
  .sec02 .sec-image204 {
    margin-top: 10rem;
    margin-left: -1px;
  }
  .sec02 .sec-image204::before {
    display: block;
  }
  .sec03 .sec-flexWrap {
    justify-content: center;
  }
  .sec03 .sec-ttl {
    top: 19.6rem;
    width: 52.6rem;
  }
  .sec03 .sec-subTtl {
    left: 10rem;
    right: auto;
    bottom: -13.8rem;
    width: 2.07rem;
    transform: rotate(-90deg);
  }
  .sec03 .sec-imgWrap {
    margin-top: 10rem;
    margin-left: -1px;
  }
  .sec03 .sec-image303 {
    border-left: solid 1px #2B161E;
  }
  .sec03 .sec-image304 {
    top: 25rem;
    right: auto;
    left: -20rem;
  }
  .sec04 {
    margin-bottom: 16rem;
  }
  .sec04__wrapper {
    margin: 0 auto;
    width: 65rem;
  }
  .sec04 .sec-ttl {
    top: 10.8rem;
    width: 36.5rem;
  }
  .sec04 .sec-subTtl {
    left: 2rem;
    bottom: 2.3rem;
    width: 2.07rem;
  }
  .sec04 .image-box402 {
    margin-left: auto;
  }
  .sec04 .sec-image403 {
    border-left: solid 1px #2B161E;
  }
  .LB0418__btn {
    margin-bottom: 18.3rem;
    width: 50rem;
  }
  .footer-image::after {
    width: 25.9rem;
    height: 35.1rem;
  }
}
/*
//////////////////////////////////////////////////////////////////////////////////////////////
                                          for tablet
//////////////////////////////////////////////////////////////////////////////////////////////
*/
@media (max-width: 1400px) and (min-width: 768px) {
  html {
    font-size: 0.7142857143vw;
  }
}/*# sourceMappingURL=style.css.map */