@charset "UTF-8";

.mainvis {
  position: relative;
  height: 81.4rem;
  background: url(../images/index/mainvis-bg.jpg) no-repeat center top/cover;
  font-family: "M PLUS Rounded 1c", sans-serif;
}

@media screen and (max-width: 768px) {
  .mainvis {
    height: calc(100vh + 10rem);
  }
}

.mainvis .tagline {
  font-weight: 700;
  letter-spacing: 0.075em;
  position: absolute;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mainvis .tagline-first {
  padding-left: 3.25rem;
  font-size: 6.5rem;
  line-height: 1.3;
}

@media screen and (max-width: 768px) {
  .mainvis .tagline-first {
    margin-top: -10vh;
    font-size: 4rem;
    padding-left: 2rem;
    padding-bottom: 4rem;
  }
}

.mainvis .tagline-second {
  font-size: 4.2rem;
  height: 100%;
  opacity: 0;
  writing-mode: vertical-rl;
  text-orientation: upright;
  display: flex;
  align-items: center;
  justify-self: center;
  flex-direction: column;
}

.mainvis .tagline-second span {
  display: block;
  font-weight: bold;
  padding-left: 2rem;
  padding-right: 2rem;
}

@media screen and (max-width: 768px) {
  .mainvis .tagline-second {
    /* margin-top: 18rem; */
    margin-top: -5rem;
    font-size: 4rem;
    width: 100%;
    line-height: initial;
  }
  .mainvis .tagline-second span {
  display: block;
  font-weight: bold;
  padding-left: 0;
  padding-right: 4rem;
}

}

.mainvis .news {
  display: block;
  padding-left: 3rem;
  border-radius: 2.5rem;
  background-color: #fafffb;
  width: fit-content;
  height: 5.2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: absolute;
  right: 4.7rem;
  bottom: 11.6rem;
}

.mainvis .news time {
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  margin-right: 1.5rem;
}

.mainvis .news a {
  font-size: 1.4rem;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 768px) {
  .mainvis .news a {
    line-height: 1.2;
  }
}

.mainvis .news img {
  margin-left: 2.5rem;
  width: 5rem;
  aspect-ratio: 1/1;
}

@media screen and (max-width: 768px) {
  .mainvis .news {
    right: unset;
    left: 50%;
    transform: translateX(-50%);
    width: 95%;
  }
}

.more-btn {
  border-radius: 2.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  width: 14.3rem;
  height: 4.2rem;
  color: #fff;
  background-color: #2a4198;
}

.more-btn::before {
  content: "●　";
  font-size: 1.1rem;
  font-weight: 500;
  color: #fff;
}

.aboutus {
  position: relative;
  margin-top: -9.6rem;
  border-radius: 3.2rem 3.2rem 0 0;
  padding-top: 6.6rem;
  padding-right: 3.2rem;
  padding-left: 3.2rem;
  background-color: #f6fdf5;
}

@media screen and (max-width: 768px) {
  .aboutus {
    padding-top: 3rem;
    padding-left: 1.6rem;
    padding-right: 1.6rem;
  }
}

.aboutus-inner {
  background-color: #fff;
  border-radius: 2rem;
}

.aboutus-head {
  border-radius: 2rem 2rem 0 0;
  padding-top: 19rem;
  padding-left: 8rem;
  height: 37.6rem;
  background: url(../images/index/aboutus-head.png) no-repeat right bottom/cover;
}

@media screen and (max-width: 768px) {
  .aboutus-head {
    padding-top: 2.2rem;
    padding-left: 3rem;
    height: 20rem;
  }
}

.aboutus-column {
  padding-right: 2.2rem;
  padding-left: 2.2rem;
  padding-bottom: 15.4rem;
  margin-top: 7.3rem;
  display: flex;
  gap: 8.7%;
}

@media screen and (max-width: 768px) {
  .aboutus-column {
    margin-top: 3rem;
    flex-direction: column;
    padding-right: 1.6rem;
    padding-left: 1.6rem;
    padding-bottom: 5rem;
  }
}

.aboutus-left {
  width: 46%;
}

@media screen and (max-width: 768px) {
  .aboutus-left {
    width: 70%;
  }
}

.aboutus-left img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.aboutus-right {
  margin-top: 19.8rem;
  width: 34%;
}

@media screen and (max-width: 768px) {
  .aboutus-right {
    margin-top: 3rem;
    width: 100%;
  }
}

.aboutus-title {
  font-size: 3rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

@media screen and (max-width: 768px) {
  .aboutus-title {
    font-size: 2.4rem;
  }
}

.aboutus-txt {
  margin-top: 5.7rem;
  line-height: 1.785;
  letter-spacing: 0;
}

@media screen and (max-width: 768px) {
  .aboutus-txt {
    margin-top: 1.6rem;
  }
}

.aboutus-btn {
  margin-top: 3.2rem;
  margin-right: 0;
  margin-left: auto;
}

.service {
  position: relative;
  padding-right: 3.2rem;
  padding-left: 3.2rem;
  background-color: #f6fdf5;
}

@media screen and (max-width: 768px) {
  .service {
    padding-right: 1.6rem;
    padding-left: 1.6rem;
  }
}

.service-inner {
  background-color: #fff;
  border-radius: 2rem;
}

.service-head {
  border-radius: 2rem 2rem 0 0;
  padding-top: 19rem;
  padding-left: 8rem;
  height: 35.8rem;
  background: url(../images/index/service-head.png) no-repeat right bottom/cover;
}

.service-head .head-en,
.service-head .head-jp {
  color: #000;
}

@media screen and (max-width: 768px) {
  .service-head {
    height: 20rem;
    padding-top: 2.2rem;
    padding-left: 3rem;
  }
}

.service-column {
  padding-right: 2.2rem;
  padding-left: 2.2rem;
  padding-bottom: 11.8rem;
  margin-top: 12.2rem;
  display: flex;
  gap: 8.7%;
}

@media screen and (max-width: 768px) {
  .service-column {
    flex-direction: column;
    padding-right: 1.6rem;
    padding-left: 1.6rem;
    margin-top: 3rem;
    padding-bottom: 4rem;
  }
}

.service-left {
  width: 50%;
}

@media screen and (max-width: 768px) {
  .service-left {
    width: 100%;
  }
}

.service-left img:nth-child(1) {
  width: 89%;
}

.service-left img:nth-child(2) {
  width: 63%;
  display: block;
  margin-top: -4.8rem;
  margin-left: auto;
  margin-right: 0;
}

.service-right {
  margin-top: 2.2rem;
  width: 34%;
}

@media screen and (max-width: 768px) {
  .service-right {
    width: 100%;
  }
}

.service-wrap+.service-wrap {
  margin-top: 4.8rem;
}

@media screen and (max-width: 768px) {
  .service-wrap+.service-wrap {
    margin-top: 3rem;
  }
}

.service-title {
  display: flex;
  align-items: center;
  gap: 2rem;
  font-size: 3rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.service-title--flow::before {
  display: block;
  content: "";
  width: 4.1rem;
  aspect-ratio: 41/35;
  background: url(../images/index/service-icon01.png) no-repeat center center/cover;
}

@media screen and (max-width: 768px) {
  .service-title--flow::before {
    width: 3rem;
  }
}

.service-title--product::before {
  display: block;
  content: "";
  width: 5.6rem;
  aspect-ratio: 56/47;
  background: url(../images/index/service-icon02.png) no-repeat center center/cover;
}

@media screen and (max-width: 768px) {
  .service-title--product::before {
    width: 3.6rem;
  }
}

@media screen and (max-width: 768px) {
  .service-title {
    font-size: 2.4rem;
  }
}

.service-txt {
  margin-top: 2rem;
  line-height: 1.785;
  letter-spacing: 0;
}

@media screen and (max-width: 768px) {
  .service-txt {
    margin-top: 1rem;
  }
}

.service-btn {
  margin-top: 11.1rem;
  margin-right: 0;
  margin-left: auto;
}

@media screen and (max-width: 768px) {
  .service-btn {
    margin-top: 3rem;
  }
}

.product {
  position: relative;
  padding-right: 3.2rem;
  padding-left: 3.2rem;
  background-color: #f6fdf5;
}

@media screen and (max-width: 768px) {
  .product {
    padding-right: 1.6rem;
    padding-left: 1.6rem;
  }
}

.product-inner {
  background-color: #fff;
  border-radius: 2rem;
}

.product-head {
  border-radius: 2rem 2rem 0 0;
  padding-top: 19rem;
  padding-left: 8rem;
  height: 35.8rem;
  background: url(../images/index/product-head.png) no-repeat right bottom/cover;
}

.product-head .head-en,
.product-head .head-jp {
  color: #000;
}

@media screen and (max-width: 768px) {
  .product-head {
    height: 20rem;
    padding-top: 2.2rem;
    padding-left: 3rem;
  }
}

.product-column {
  padding-right: 2.2rem;
  padding-left: 2.2rem;
  padding-bottom: 15.4rem;
  margin-top: 7.3rem;
  display: flex;
  gap: 8.7%;
}

@media screen and (max-width: 768px) {
  .product-column {
    margin-top: 3rem;
    flex-direction: column;
    padding-right: 1.6rem;
    padding-left: 1.6rem;
    padding-bottom: 5rem;
  }
}

.product-left {
  width: 50%;
  position: relative;
}

@media screen and (max-width: 768px) {
  .product-left {
    width: 100%;
  }
}

.product-left img:nth-child(1) {
  width: 70%;
}

@media screen and (max-width: 768px) {
  .product-left img:nth-child(1) {
    width: 70%;
    margin-left: 0;
    margin-right: auto;
  }
}

.product-left img:nth-child(2) {
  width: 50%;
  display: block;
  margin-left: auto;
  margin-right: 0;
}

@media screen and (max-width: 768px) {
  .product-left img:nth-child(2) {
    width: 70%;
    margin-top: inherit;
    margin-left: auto;
    margin-right: 0;
  }
}

.product-left img:nth-child(3) {
  width: 50%;
  display: block;
  position: absolute;
  top: 50px;
  right: -80px;
}

@media screen and (max-width: 768px) {
  .product-left img:nth-child(3) {
    width: 70%;
    margin-top: inherit;
    margin-left: 0;
    margin-right: auto;
    position: initial;
  }
}

.product-right {
  margin-top: 7rem;
  width: 34%;
}

@media screen and (max-width: 768px) {
  .product-right {
    margin-top: 3rem;
    width: 100%;
  }
}

.product-title {
  font-size: 3rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

@media screen and (max-width: 768px) {
  .product-title {
    font-size: 2.4rem;
  }
}

.product-txt {
  margin-top: 5.7rem;
  line-height: 1.785;
  letter-spacing: 0;
}

@media screen and (max-width: 768px) {
  .product-txt {
    margin-top: 1.6rem;
  }
}

.product-btn {
  margin-top: 3.2rem;
  margin-right: 0;
  margin-left: auto;
}

/* 追加（非アクティブ非表示） */
.product-right .product-content {
  display: none;
}

.product-right .product-content.is-active {
  display: block;
}

/*# sourceMappingURL=index.css.map */