@charset "UTF-8";
main {
  margin: 0 auto;
  padding-top: 0;
  padding-bottom: 26.6666666667vw;
}

section .inner {
  margin: 0 auto;
}

/*-----------------------------------------------------------------
xxx
-----------------------------------------------------------------*/
#main-image.front {
  display: block;
  position: relative;
}
#main-image.front .copy {
  width: 90.6666666667vw;
  position: absolute;
  top: 39.3333333333vw;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 4vw;
  line-height: 1.4666666667;
  z-index: 100;
}
#main-image.front .copy p {
  font-size: 2.2vw;
  line-height: 1;
  font-weight: bold;
  color: #0099ff;
  letter-spacing: 0.22vw;
  margin-bottom: 2.9333333333vw;
}
#main-image.front .copy h2 {
  font-weight: bold;
  font-size: 5.3333333333vw;
  line-height: 1.5;
}
#main-image.front .copy h2 img {
  width: 90.6666666667vw;
}
#main-image.front .slider {
  position: relative;
}
#main-image.front .slider ul li .img {
  width: 100%;
}
#main-image.front .slider ul li .img img {
  width: 100%;
  display: block;
}
#main-image.front .swiper {
  width: 100%;
  height: 100%;
}
#main-image.front .swiper .swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
}
#main-image.front .swiper .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#main-image.front .swiper .swiper-pagination {
  bottom: 6.5333333333vw;
}
#main-image.front .swiper .swiper-pagination .swiper-pagination-bullet {
  width: 10.6666666667vw;
  height: 1.3333333333vw;
  border-radius: 0;
  opacity: 1;
  background: #fff;
  margin: 0 1.3333333333vw;
}
#main-image.front .swiper .swiper-pagination .swiper-pagination-bullet-active {
  background: #0099ff;
}
#main-image.front .scroll {
  position: absolute;
  bottom: -4.4vw;
  left: 5.3333333333vw;
  width: 1.7333333333vw;
}
#main-image.front .scroll:before {
  content: "";
  position: absolute;
  transform: translateX(-50%);
  bottom: 9.3333333333vw;
  left: 50%;
  width: 0.1333333333vw;
  height: 13.3333333333vw;
  background: #fff;
  -webkit-animation: scroll 1.5s cubic-bezier(1, 0, 0, 1) infinite;
          animation: scroll 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}

@-webkit-keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
#message {
  background: url(../img/top/message-bg-dot.png) left top no-repeat, url(../img/top/message-bg-cloud.png) right top no-repeat;
  background-size: 50vw auto, 333.3333333333vw auto;
  padding-top: 13.3333333333vw;
}
#message .inner {
  position: relative;
  padding-top: 86vw;
  padding-bottom: 46vw;
}
#message .inner h3 {
  font-size: 6.6666666667vw;
  line-height: 1;
  font-weight: bold;
  letter-spacing: 0.6666666667vw;
  color: #09f;
  margin-bottom: 5.3333333333vw;
  text-align: center;
}
#message .inner .message {
  padding: 0 4vw;
}
#message .inner .message p {
  font-size: 3.7333333333vw;
  line-height: 1.4285714286;
}
#message .inner .message p + p {
  margin-top: 4.6666666667vw;
}
#message .inner .btns {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 8vw;
}
#message .inner .btns .btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 57.3333333333vw;
  height: 12.6666666667vw;
  border: solid 0.2666666667vw #09f;
  color: #0099ff;
  font-weight: bold;
  background-color: #fff;
  text-decoration: none;
  font-size: 3.7333333333vw;
  line-height: 1;
}
#message .inner .btns .btn:hover {
  background-color: #cdebff;
  opacity: 1;
}
#message .inner .btns .btn + .btn {
  margin-top: 3.7333333333vw;
}
#message .inner .btns .btn:after {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 2.6666666667vw;
  content: "";
  display: block;
  width: 4vw;
  height: 1.6vw;
  background: url(../img/common/arrow-s-blue.png) center center no-repeat;
  background-size: contain;
}
#message .inner .imgs .img:nth-of-type(1) {
  position: absolute;
  top: 0;
  left: 4vw;
  width: 92vw;
}
#message .inner .imgs .img:nth-of-type(2) {
  position: absolute;
  bottom: 15.8666666667vw;
  left: 0;
  width: 31.3333333333vw;
}
#message .inner .imgs .img:nth-of-type(3) {
  position: absolute;
  width: 62.8vw;
  bottom: 15.8666666667vw;
  left: 34.5333333333vw;
}
#message .inner .imgs .img img {
  width: 100%;
}

#company {
  display: flex;
  height: 115.2vw;
  background: url(../img/top/company-bg-sp@2x.jpg) center top no-repeat;
  background-size: cover;
  padding: 12.2666666667vw 4vw 0;
  position: relative;
}
#company h3 {
  font-size: 4.5333333333vw;
  line-height: 1;
  color: #fff;
  text-align: center;
  margin-bottom: 4.6666666667vw;
}
#company h3:after {
  content: "";
  display: block;
  width: 0.2666666667vw;
  height: 9.3333333333vw;
  background-color: #09f;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}
#company h3 span {
  font-size: 2.4vw;
  line-height: 1;
  font-family: "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho", serif;
  letter-spacing: 0.24vw;
  color: #0099ff;
  display: block;
  margin-top: 2vw;
}
#company p {
  margin: 0 auto 8vw;
  font-size: 3.7333333333vw;
  line-height: 1.6;
  text-align: left;
  color: #fff;
}
#company .btns {
  display: flex;
  justify-content: center;
}
#company .btns .btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 77.4666666667vw;
  height: 12.5333333333vw;
  border: solid 0.2666666667vw #fff;
  color: #fff;
  font-weight: bold;
  background-color: transparent;
  text-decoration: none;
  font-size: 3.7333333333vw;
  line-height: 1;
}
#company .btns .btn:hover {
  background: rgba(255, 255, 255, 0.3);
  opacity: 1;
}
#company .btns .btn:after {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 2.9333333333vw;
  content: "";
  display: block;
  width: 4vw;
  height: 1.6vw;
  background: url(../img/common/arrow-s-white@2x.png) center center no-repeat;
  background-size: contain;
}

#news {
  z-index: 100;
  min-height: 26.6666666667vw;
  margin-top: -26.6666666667vw;
}
#news .copy {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  font-size: 3.7333333333vw;
  font-family: "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho", serif;
  line-height: 0.63;
  text-align: center;
  color: #fff;
}
#news .inner {
  position: relative;
  background: #fff;
  padding: 0 4vw;
  width: 92vw;
}
#news .description .link a {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-size: 3.2vw;
  text-decoration: none;
  background: url(../img/common/arrow-l-blue.png) center bottom no-repeat;
  background-image: -webkit-image-set(url(../img/common/arrow-l-blue.png) 1x, url(../img/common/arrow-l-blue@2x.png) 2x);
  background-image: image-set(url(../img/common/arrow-l-blue.png) 1x, url(../img/common/arrow-l-blue@2x.png) 2x);
  background-size: 34.6666666667vw auto;
  width: 34.6666666667vw;
  padding-bottom: 1.6vw;
  padding-left: 1.3333333333vw;
}