@charset "utf-8";
/* CSS Document */

.service-img--wrap-sp {
  display: none;
}

.service-text--wrap-sp {
  display: none;
}

.feature--wrap {
  display: none;
}

/*--- TOPメインビジュアル ---*/

.main__visual-top {
  padding-top: 15rem;
  width: 100%;
  max-width: 1200px;
  height: 100%;
  min-height: 100vh;
  margin: 0 auto;
  text-align: center;

  position: relative;
}

h2 {
  font-size: 5rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  transition: 1s;
  position: relative;
  display: block;
  overflow: hidden;
  animation: opening 1.5s forwards;
  opacity: 0;
}

@keyframes opening {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

h2 span {
  font-size: 7.2rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;

  display: inline-block;

  position: relative;
  z-index: 5;
  transform: translateY(85px);
  opacity: 0;

  animation: opening2 1.5s forwards;
  animation-delay: 1s;
  transition: 1.5s;
}

h2 span::after {
  content: "";
  display: block;
  width: 100%;
  height: 30px;
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: #fff;
  z-index: -1;
  animation: opening3 1s forwards;
  animation-delay: 2.5s;
  transition: 1s;
}

@keyframes opening2 {
  0% {
    transform: translateY(85px);
    opacity: 0;
  }

  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}

@keyframes opening3 {
  0% {
    width: 100%;
  }

  100% {
    width: 0%;
  }
}

h2 span img {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
}

.top-anime--wrap {
  width: 100%;
  max-width: 1200px;

  margin: 6.7rem auto 0;
  position: relative;
}

.top-anime_heart {
  width: 125px;
  margin: 0 auto 2rem;
  animation: fuyofuyo 3s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
  transition: 3s;
  position: relative;
  top: 4rem;
}

@keyframes fuyofuyo {
  0% {
    top: -2rem;
  }

  100% {
    top: -1rem;
  }
}

.top-anime_monitor {
  width: 650px;
  margin: 0 auto;
  position: relative;
  z-index: 10;
  animation: opening4 1s forwards;
  animation-delay: 3s;
  transition: 1s;
  opacity: 0;
  bottom: -5rem;
}

@keyframes opening4 {
  0% {
    opacity: 0;
    bottom: -5rem;
  }

  100% {
    opacity: 1;
    bottom: 0rem;
  }
}

.top-anime_monitor::after {
  position: absolute;
  top: 25px;
  left: 49.7%;
  transform: translateX(-49.7%);
  -webkit-transform: translateX(-49.7%);
  -ms-transform: translateX(-49.7%);
  z-index: -3;

  content: "";
  width: 580px;
  height: 325px;
  border-radius: 7px;
  background-color: #ed7e84;
}

.top-anime_monitor::before {
  position: absolute;
  bottom: 135px;
  left: 49.7%;
  transform: translateX(-49.7%);
  -webkit-transform: translateX(-49.7%);
  -ms-transform: translateX(-49.7%);
  z-index: -2;

  content: "";
  width: 580px;
  height: 130px;
  border-radius: 7px;
  background-color: #bcbcbc;
}

.top-anime_monitor p {
  position: absolute;
  top: 25%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);

  color: #fff;
  font-size: 2.5rem;
  width: 100%;
}

.top-anime_monitor a {
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);

  color: #fff;
  font-size: 4rem;
  font-family: "Jost", sans-serif;
  width: 100%;

  display: block;
  border: solid 1px #fff;
  width: 100%;
  max-width: 300px;
  height: 80px;
  line-height: 8rem;
}

.top-anime_monitor a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 100%;

  z-index: -2;
  transition: 0.5s;
}

.top-anime_monitor a:hover {
  color: #ed7e84;
}

.top-anime_monitor a:hover::after {
  background-color: #fff;
  width: 100%;
}

.top-anime_lefthand {
  width: 100%;
  max-width: 318px;
  position: absolute;
  bottom: -8rem;
  left: 0;
  opacity: 0;

  z-index: 10;
  transition: 1.3s;
}

.top-anime_lefthand.on {
  bottom: 0rem;
  opacity: 1;

  animation: fuyofuyo2 2s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.top-anime_lefthand img {
  width: 100%;
}

.top-anime_righthand {
  width: 100%;
  max-width: 318px;
  position: absolute;
  bottom: -8rem;
  right: 0;
  opacity: 0;

  z-index: 10;
  transition: 1.3s;
}

.top-anime_righthand.on {
  bottom: 0rem;
  opacity: 1;

  animation: fuyofuyo2 2s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.top-anime_righthand img {
  width: 100%;
}

@keyframes fuyofuyo2 {
  0% {
    bottom: 0rem;
  }

  100% {
    bottom: -5rem;
  }
}

.main_visual-bottom {
  width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 10;
  top: 50px;

  text-align: center;
}

.isms-mark {
  text-align: center;
  width: 175px;
  height: 175px;
  margin: 0 auto 3rem;
  background-color: #fff;
  border-radius: 88px;
  border: 3px solid #bcbcbc;
  padding-top: 3rem;
  position: relative;
  z-index: 3;
  transform: rotate(95deg);
  transform-origin: top;
  opacity: 0;
}

.isms-mark.on {
  animation: buranburan 1s forwards;
  transition: 0.3s;
  opacity: 1;
}

@keyframes buranburan {
  0% {
    transform: rotate(95deg);
  }

  30% {
    transform: rotate(-30deg);
  }

  50% {
    transform: rotate(20deg);
  }

  70% {
    transform: rotate(-5deg);
  }

  90% {
    transform: rotate(3deg);
  }

  100% {
    transform: rotate(0deg);
  }
}

.isms-mark > p {
  font-size: 1.4rem;
  font-weight: 300;
  margin-bottom: 1rem;
}

.isms-mark > img {
  width: 100px;
}

.gray__decoration {
  width: 100%;
  padding-top: 50px;
  position: relative;
  overflow: hidden;
  z-index: -1;
}

.gray__decoration::before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  top: 0;
  left: 0;
  border-bottom: 300px solid #bcbcbc;
  border-right: 100vw solid #fff;
  z-index: -1;
}

.gray__decoration::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  top: 0;
  left: 0;
  border-bottom: 300px solid #bcbcbc;
  border-left: 100vw solid transparent;
}

/*------------------------*/

/*----- maincontents -----*/

.contact-p {
  text-align: center;
  margin-bottom: 2rem;
}

.link-btn {
  display: block;
  width: 100%;
  height: 60px;
  line-height: 6rem;
  max-width: 500px;
  margin: 0 auto;
  text-align: center;
  border: 1px solid #000;
  background-color: #fff;
  font-size: 2.2rem;
  position: relative;
}

.link-btn::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  transition-delay: 0.1s;
}

.link-btn:hover::after {
  color: #fff;
}

.link-btn::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: #ec6d74;
  mix-blend-mode: multiply;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.5s;
}

.link-btn:hover::before {
  transform: scaleX(1);
  transform-origin: left;
}

.main_contents--wrap {
  width: 100%;
  margin: 0 auto;
  padding-bottom: 11rem;
  /* background-color: #bcbcbc; */
  position: relative;
  z-index: 10;
}

.contents__feature--wrap {
  width: 100%;
  margin: 0 auto 10rem;
  position: relative;
}

.feature--scroll {
  width: 4px;
  height: 0px;
  background-color: #fff;
  position: absolute;
  top: -250px;
  left: 20px;
  transition: 2s;
}

.feature--scroll.on {
  height: 750px;
}

.feature--scroll::after {
  content: "";
  width: 4px;
  height: 34px;
  background-color: #fff;
  position: absolute;
  left: 7px;
  bottom: 0;
  transform: skewY(1deg) rotate(24deg);
}

.contents__feature {
  width: 100%;
  max-width: 1400px;
  padding: 0 10rem;
  margin: 0 auto;
  position: relative;
}

.contents__feature h3 {
  font-size: 5rem;
  color: #303030;
  position: relative;
  display: inline-block;
  margin: 0 auto 4rem;
}

.contents__feature h3 .corporate-color {
  color: #ed7e84;
}

.contents__feature h3 .h3__resize {
  font-size: 3.5rem;
}

.contents__feature h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 3px;
  background-color: #303030;
}

.contents__feature h3::before {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  display: block;
  width: 34px;
  height: 3px;
  background-color: #ed7e84;
}

.feature-img--wrap {
  width: 100%;
  max-width: 1200px;
  margin: 10rem auto 3.5rem;

  display: flex;
  justify-content: space-between;
  align-items: center;
}

.img--wrap__box {
  width: 100%;
  max-width: 250px;
  text-align: center;
  position: relative;
  bottom: -3rem;
  opacity: 0;
  transition: 0.7s;
}

.img--wrap__box.on {
  opacity: 1;
  bottom: 0;
}

.feature-img--wrap .img--wrap__box:nth-of-type(2) {
  transition-delay: 0.4s;
}

.feature-img--wrap .img--wrap__box:nth-of-type(3) {
  transition-delay: 0.6s;
}

.feature-img--wrap .img--wrap__box:nth-of-type(1) img {
  width: 100%;
  max-width: 233px;
}

.feature-img--wrap .img--wrap__box:nth-of-type(2) img {
  width: 100%;
  max-width: 200px;
}

.feature-img--wrap .img--wrap__box:nth-of-type(3) img {
  width: 100%;
  max-width: 228px;
}

.feature-text--wrap {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;

  display: flex;
  justify-content: space-between;
}

.text--wrap__box {
  width: 100%;
  max-width: 260px;
}

.text--wrap__box h4 {
  text-align: center;
  font-size: 2rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  margin-bottom: 1rem;
}

.text--wrap__box p {
  line-height: 2.8rem;
}

.contents__service--wrap {
  width: 100%;
  margin: 0 auto 10rem;
  position: relative;
  padding-bottom: 8.7rem;
}

.contents__service--wrap::after {
  content: "";
  width: 95%;
  height: 100%;
  background-color: #e8e8e8;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -12;
}

.contents__service--wrap::before {
  content: "";
  width: 100%;
  max-width: 300px;
  height: calc(100% + 150px);
  background-color: rgba(255, 255, 255, 0.5);
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -11;
}

.contents__service {
  width: 100%;
  max-width: 1400px;
  padding: 0 10rem;
  margin: 0 auto;
  position: relative;
}

.contents__service h3 {
  font-size: 5rem;
  color: #303030;
  position: relative;
  display: inline-block;
  margin: 0 auto 4rem;
}

.contents__service h3 .corporate-color {
  color: #ed7e84;
}

.contents__service h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 3px;
  background-color: #303030;
}

.contents__service h3::before {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  display: block;
  width: 34px;
  height: 3px;
  background-color: #ed7e84;
}

.service--scroll {
  width: 4px;
  height: 0px;
  background-color: #bcbcbc;
  position: absolute;
  top: 0;
  right: 20px;
  transition: 2s;
}

.service--scroll.on {
  height: 750px;
}

.service--scroll::after {
  content: "";
  width: 4px;
  height: 34px;
  background-color: #bcbcbc;
  position: absolute;
  left: 7px;
  bottom: 0;
  transform: skewY(1deg) rotate(24deg);
}

.contents__service-top {
  width: 100%;
  max-width: 760px;
  margin: 9rem auto 0;
  position: relative;
  left: -3rem;
  opacity: 0;
  transition: 0.8s;
  transition-delay: 0.5s;
}

.contents__service-top.on {
  opacity: 1;
  left: 0;
}

.contents__service-bottom {
  width: 100%;
  margin: 7rem auto 6.5rem;
  position: relative;
  right: -3rem;
  opacity: 0;
  transition: 0.8s;
  transition-delay: 0.7s;
}

.contents__service-bottom.on {
  opacity: 1;
  right: 0;
}

.service-img--wrap {
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.s_img--wrap__box {
  width: 100%;
  text-align: center;
}

.service-img--wrap .s_img--wrap__box:nth-of-type(1) img {
  width: 100%;
  max-width: 224px;
}

.service-img--wrap .s_img--wrap__box:nth-of-type(2) img {
  width: 100%;
  max-width: 196px;
}

.contents__service-bottom
  .service-img--wrap
  .s_img--wrap__box:nth-of-type(1)
  img {
  width: 100%;
  max-width: 178px;
}

.contents__service-bottom
  .service-img--wrap
  .s_img--wrap__box:nth-of-type(2)
  img {
  width: 100%;
  max-width: 186px;
}

.contents__service-bottom
  .service-img--wrap
  .s_img--wrap__box:nth-of-type(3)
  img {
  width: 100%;
  max-width: 187px;
}

.service-text--wrap {
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.s_text--wrap__box {
  width: 100%;
  max-width: 300px;
  margin: 0 auto;
}

.s_text--wrap__box h4 {
  text-align: center;
  font-size: 2rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  margin-top: 1.5rem;
  margin-bottom: 1rem;
}

.s_text--wrap__box p {
  line-height: 2.8rem;
}

.service__multiple-words {
  width: 100%;
  max-width: 500px;
  height: 80px;
  margin: 8.5rem auto 15rem;
  position: relative;
  text-align: center;
  background-color: #fff;
}

.service__multiple-words h4 {
  text-align: center;
  font-size: 2rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  position: relative;
  top: -15px;
}

.works--title {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}

.works--title h3 {
  font-size: 5rem;
  color: #303030;
  position: relative;
  top: -140px;
  display: inline-block;
  margin: 0 auto 4rem;
}

.works--title h3 .corporate-color {
  color: #ed7e84;
}

.works--title h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 3px;
  background-color: #303030;
}

.works--title h3::before {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  display: block;
  width: 34px;
  height: 3px;
  background-color: #ed7e84;
}

.contents__works--wrap {
  width: 100%;
  background-color: #fff;
  padding: 10rem 0 6rem;
  margin: 0 auto;
}

.contents__works {
  width: 100%;
  width: 1355px;
  margin: 0 auto;
}

.contents__works-banner {
  width: 100%;
  max-width: 680px;
  padding: 0 5rem;
}

.contents__works-banner p {
  display: block;
  width: 100%;
  max-width: 490px;
  margin: 3.5rem auto 2.2rem;
  padding-bottom: 1rem;
  text-align: center;
  border-bottom: 0.75px solid #000;
}

.contents__works-banner a {
  display: block;
  width: 100%;
  max-width: 238px;
  height: 40px;
  line-height: 4rem;
  margin: 0 auto;
  text-align: center;
  border: 0.75px solid #000;
  background-color: #fff;
  font-size: 2.4rem;
  font-weight: 100;
}

.contents__price--wrap {
  width: 100%;
  margin: 0 auto;
  position: relative;
  padding: 7.3rem 0 13rem;
}

.contents__price--wrap::after {
  content: "";
  width: 100%;
  height: 60%;
  background-color: #bcbcbc;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -11;
}

.contents__price--wrap::before {
  content: "";
  width: 0%;
  height: 100%;
  background-color: #e8e8e8;
  position: absolute;
  top: 0;
  right: 0;
  z-index: -10;
  transition: 1.3s;
}

.contents__price--wrap.on::before {
  width: 95%;
}

.white-bar {
  content: "";
  width: 100%;
  max-width: 300px;
  height: calc(100% + 150px);
  background-color: rgba(255, 255, 255, 0.5);
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 10;
}

.contents__price {
  width: 100%;
  max-width: 1400px;
  padding: 0 10rem;
  margin: 0 auto;
  position: relative;
  z-index: 11;
}

.contents__price h3 {
  font-size: 5rem;
  color: #303030;
  position: relative;
  display: inline-block;
  margin: 0 auto 4rem;
}

.contents__price h3 .corporate-color {
  color: #ed7e84;
}

.contents__price h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 3px;
  background-color: #303030;
}

.contents__price h3::before {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  display: block;
  width: 34px;
  height: 3px;
  background-color: #ed7e84;
}

.price-box {
  width: 100%;
  max-width: 500px;
  margin: 7.7rem auto 0;
  text-align: center;
}

.price-box p {
  font-size: 3.2rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
}

.price-box p > span {
  position: relative;
  font-size: 6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  margin-left: 2rem;
  overflow: hidden;
}

.price-box p > span::after {
  content: "";
  width: 100%;
  height: 100%;
  background-color: #e8e8e8;
  position: absolute;
  left: 0;
  top: 5px;
  z-index: -2;
  transition: 0.7s;
  transition-delay: 0.5s;
}

.price-box p.on > span::after {
  width: 0%;
}

.price-box p > span img {
  position: absolute;
  left: 0;
  bottom: -5px;
  z-index: -3;
  width: 100%;
  max-width: 296px;
}

.price-box .under-arrow {
  font-size: 5rem;
  font-family: "Noto Sans JP", sans-serif;
  color: #303030;
  margin: 8rem auto 6.5rem;
  position: relative;
}

.price-box .under-arrow.on {
  animation: kakukaku 0.5s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
  animation-timing-function: steps(2, jump-none);
  animation-delay: 0.5s;
  top: 0.5rem;
}

@keyframes kakukaku {
  0% {
    top: 0.5rem;
  }

  100% {
    top: 0;
  }
}

.contents__contact--wrap {
  width: 100%;
  margin: 0 auto;
  position: relative;
  text-align: center;
}

.contents__contact--wrap .under-arrow-2 {
  font-size: 5rem;
  font-family: "Noto Sans JP", sans-serif;
  color: #e8e8e8;
  position: relative;
  top: -71px;
  transition: 0.5s;
}

.contents__contact--wrap .under-arrow-2.on {
  top: -21px;
}

.under-arrow-3 {
  font-size: 5rem;
  font-family: "Noto Sans JP", sans-serif;
  color: #ec6d74;
  position: relative;
  top: -71px;
  transition: 0.5s;
  transition-delay: 0.4s;
}

.under-arrow-3.on {
  top: -21px;
}

.contents__contact {
  width: 100%;
  max-width: 666px;
  display: flex;
  margin: 0 auto;
  align-items: flex-end;
  background-color: #fff;
  position: relative;
  z-index: 1;
}

.contents__contact img {
  max-width: 100px;
}

.contents__contact p {
  font-size: 3.2rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  position: relative;
}

.contents__contact p::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  height: 4px;
  background-color: #ec6d74;
  width: 100%;
}

.contents__contact p > span {
  position: relative;
  font-size: 6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  margin: 0 1.5rem;
  color: #ec6d74;
}

.contents__contact--wrap .contact-p {
  font-weight: 400;
  font-size: 2.4rem;
  opacity: 0;
  transition: 0.6s;
}

.contents__contact--wrap .contact-p.on {
  opacity: 1;
}

.contents__contact--wrap .contact-p > span {
  color: #ec6d74;
}

/*------- 背景の動く飾り -------*/
.back-img_1 {
  width: 100%;
  max-width: 360px;
  position: absolute;
  top: -80px;
  left: 10px;
  z-index: -1;
  animation: fuwafuwa 1.5s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.back-img_2 {
  width: 100%;
  max-width: 260px;
  position: absolute;
  bottom: -50px;
  right: 200px;
  z-index: -10;
  animation: fuwafuwa 1.5s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.back-img_3 {
  width: 100%;
  max-width: 360px;
  position: absolute;
  bottom: -150px;
  right: 200px;
  z-index: -10;
  animation: fuwafuwa 1.5s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.back-img_4 {
  width: 100%;
  max-width: 360px;
  position: absolute;
  top: -100px;
  left: 10px;
  z-index: 10;
  animation: fuwafuwa 1.5s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.back-img_5 {
  width: 100%;
  max-width: 360px;
  position: absolute;
  top: -80px;
  right: 200px;
  z-index: 10;
  animation: fuwafuwa 1.5s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

@keyframes fuwafuwa {
  0% {
    transform: translateY(10px);
  }

  100% {
    transform: translateY(-10px);
  }
}

/*========================================================*/

@media screen and (max-width: 1400px) {
  main {
    overflow: hidden;
  }

  .contents__works {
    width: 1000px;
  }

  .contents__works--wrap {
    padding: 4rem 0 6rem;
  }

  .contents__works-banner {
    max-width: 500px;
  }

  .works--title h3 {
    top: -80px;
  }

  .slick-dots {
    bottom: -55px !important;
  }
}

@media screen and (max-width: 1200px) {
  .works--title h3 {
    left: 100px;
  }
}

@media screen and (max-width: 1000px) {
  .contents__works {
    width: 620px;
  }

  .contents__works-banner {
    max-width: 600px;
  }
}

@media screen and (max-width: 800px) {
  .feature--scroll {
    display: none;
  }

  .gray-diagonal::before {
    transform: skewY(-25deg);
    bottom: -300px;
  }

  .gray-diagonal::after {
    transform: skewY(25deg);
    bottom: -300px;
  }

  .top-anime_monitor {
    width: 480px;
  }

  .top-anime_monitor::after {
    top: 20px;
    width: 420px;
    height: 240px;
  }

  .top-anime_monitor::before {
    bottom: 100px;
    content: "";
    width: 420px;
    height: 100px;
  }

  .top-anime_lefthand {
    max-width: 210px;
    bottom: -100px;
    left: 110px;
  }

  .top-anime_righthand {
    max-width: 210px;
    bottom: -100px;
    right: 110px;
  }

  .main_visual-bottom {
    top: 240px;
  }

  .bottom__ISMS--wrap {
    max-width: 500px;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    height: auto;
    border-radius: inherit;
    background-color: transparent;
  }

  .bottom__ISMS--wrap > div {
    width: 100%;
    max-width: 140px;
    height: 140px;
    line-height: 100px;
    border-radius: 70px;
    background-color: #fff;
  }

  .bottom__ISMS--wrap p {
    margin-bottom: 0;
  }

  /*Dooの特徴　mobile*/
  .contents__feature {
    padding: 0 5rem;
  }

  .contents__feature P {
    margin-bottom: 10rem;
  }

  .feature--wrap {
    width: 100%;
    margin: 0 auto;
    display: block;
  }

  .feature--wrap h4 {
    text-align: center;
    font-size: 2.5rem;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
    margin-bottom: 1rem;
  }

  .feature--flex {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5rem;
    opacity: 0;
    position: relative;
    right: -3rem;
  }

  .feature--flex.on {
    animation: slidein 0.7s forwards;
  }

  @keyframes slidein {
    0% {
      opacity: 0;
      right: -3rem;
    }

    100% {
      opacity: 1;
      right: 0;
    }
  }

  .feature--flex img {
    max-width: 190px;
    margin-right: 2rem;
  }

  .feature--wrap .feature--flex:nth-of-type(1) img {
    width: 100%;
    max-width: 190px;
  }

  .feature--wrap .feature--flex:nth-of-type(2) img {
    width: 100%;
    max-width: 144px;
  }

  .feature--wrap .feature--flex:nth-of-type(3) img {
    width: 100%;
    max-width: 160px;
  }

  .feature--text-box {
    width: 100%;
    max-width: 400px;
  }

  .feature--text-box p {
    margin: 0;
  }

  /*service mobile*/
  .contents__service-top {
    transition-delay: 0.2s;
  }

  .contents__service-bottom {
    transition-delay: 0.3s;
  }

  .contents__service {
    padding: 0 5rem;
  }

  .service-img--wrap-sp {
    display: flex;
  }

  .service-text--wrap-sp {
    display: flex;
  }

  .s_img--wrap__box {
    max-width: 180px;
    margin: 0 auto;
  }

  .s_text--wrap__box {
    max-width: 190px;
    margin-bottom: 8rem;
  }

  .contents__service-bottom {
    margin: 0 auto 6.5rem;
  }
}

@media screen and (max-width: 600px) {
  .contents__works {
    width: 420px;
  }

  .contents__works-banner {
    max-width: 400px;
  }
}

@media screen and (max-width: 540px) {
  main {
    padding-bottom: 7rem;
  }

  .main__visual-top {
    padding-top: 9rem;
    min-height: calc(100vh - 90px);
  }

  .main__visual-top h2 {
    font-size: 2.2rem;
    display: block;
    width: 320px;
    margin: 0 auto;
    text-align: left;
  }

  .main__visual-top h2 > span {
    font-size: 3.5rem;
  }

  .top-anime--wrap {
    margin: 5rem auto 0;
  }

  .top-anime_heart {
    width: 110px;
    position: absolute;
    top: -140px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    z-index: -20;
  }

  .top-anime_monitor {
    width: 315px;
  }

  .top-anime_monitor::after {
    top: 10px;
    width: 280px;
    height: 160px;
  }

  .top-anime_monitor::before {
    bottom: 65px;
    width: 280px;
    height: 80px;
  }

  .top-anime_monitor p {
    font-size: 1.4rem;
  }

  .top-anime_monitor a {
    font-size: 2.8rem;
    max-width: 170px;
    height: 50px;
    line-height: 5rem;
  }

  .top-anime_lefthand {
    max-width: 140px;
    bottom: -80px;
    left: 10px;
  }

  .top-anime_righthand {
    max-width: 140px;
    bottom: -80px;
    right: 10px;
  }

  /*ISMS*/
  .bottom__ISMS--wrap {
    max-width: 340px;
  }

  .bottom__ISMS--wrap > div {
    max-width: 120px;
    height: 120px;
    line-height: 85px;
  }

  .bottom__ISMS--wrap img {
    width: 100%;
    max-width: 80px;
  }

  .bottom__ISMS--wrap p {
    font-size: 12px;
  }

  /*feature*/
  .contents__feature {
    padding: 0 1.5rem;
  }

  .contents__feature P {
    margin-bottom: 4rem;
  }

  .contents__feature h3 {
    font-size: 3.4rem;
  }

  .contents__feature h3 .h3__resize {
    font-size: 2.2rem;
  }

  .feature--wrap .feature--flex:nth-of-type(1) img {
    max-width: 100px;
  }

  .feature--wrap .feature--flex:nth-of-type(2) img {
    max-width: 100px;
  }

  .feature--wrap .feature--flex:nth-of-type(3) img {
    max-width: 100px;
  }

  /*service*/
  .contents__service--wrap::before {
    max-width: 100px;
    height: calc(100% + 90px);
  }

  .contents__service--wrap::after {
    width: 100%;
  }

  .service--scroll {
    display: none;
  }

  .contents__service {
    padding: 0 1rem;
    padding-top: 5rem;
  }

  .contents__service h3 {
    font-size: 3.4rem;
  }

  .contents__service-top {
    margin: 3rem auto 0;
  }

  .contents__service-bottom {
    margin: 0 auto 3.5rem;
  }

  .s_img--wrap__box {
    max-width: 100px;
  }

  .s_text--wrap__box {
    max-width: 150px;
    margin-bottom: 4rem;
  }

  .s_text--wrap__box h4 {
    font-size: 1.8rem;
  }

  .s_text--wrap__box p {
    font-size: 1.3rem;
  }

  .s_text--wrap__box .s_text__adjustment {
    margin-top: 4rem;
  }

  .service__multiple-words {
    max-width: 325px;
    height: 60px;
    line-height: 2rem;
    margin: 3.5rem auto 7rem;
  }

  .service__multiple-words h4 {
    top: -10px;
  }

  .service__multiple-words p {
    font-size: 1.3rem;
  }

  .contact-p {
    font-size: 1.3rem;
  }

  .link-btn {
    height: 50px;
    line-height: 4.5rem;
    max-width: 280px;
  }

  .contents__service--wrap {
    margin: 0 auto 0rem;
  }

  /*works*/
  .contents__works--wrap {
    padding: 0rem 0 6rem;
  }

  .works--title h3 {
    top: -10px;
    left: 10px;
    font-size: 3.4rem;
  }

  .contents__works-banner p {
    font-size: 1.3rem;
  }

  .white-bar {
    content: "";
    width: 100%;
    max-width: 100px;
    height: calc(100% + 60px);
  }

  .contents__works {
    width: 320px;
  }

  .contents__works-banner {
    max-width: 320px;
    padding: 0;
  }

  /*price*/
  .contents__price--wrap.on::before {
    width: 100%;
  }

  .contents__price--wrap {
    padding: 3rem 0 13rem;
  }

  .contents__price {
    padding: 0 1rem;
  }

  .contents__price h3 {
    font-size: 3.4rem;
  }

  .price-box {
    margin-top: 3rem;
  }

  .price-box p {
    font-size: 2.4rem;
  }

  .price-box p > span {
    font-size: 4rem;
  }

  /*contact*/
  .contents__contact {
    display: block;
  }

  .contents__contact img {
    max-width: 70px;
  }

  .contents__contact p {
    font-size: 2.4rem;
  }

  .contents__contact p::after {
    display: inline-block;
    bottom: auto;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    z-index: -20;
    width: 270px;
  }

  .contents__contact p::before {
    content: "";
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    z-index: 10;
    width: 160px;
    height: 4px;
    background-color: #ec6d74;
  }

  .contents__contact p > span {
    font-size: 4rem;
  }

  .back-img_5 {
    max-width: 180px;
    right: 10px;
  }

  /*footer*/
  footer {
    margin: 0rem auto 0;
  }

  footer ul {
    max-width: 320px;
  }

  footer p {
    font-size: 1.2rem;
  }

  /*背景装飾*/

  .back-img_1 {
    max-width: 180px;
    top: -30px;
    left: -20px;
  }

  .back-img_2 {
    max-width: 150px;
    bottom: -130px;
    right: 230px;
  }

  .back-img_3 {
    max-width: 150px;
    bottom: 0px;
    right: 0px;
  }

  .back-img_4 {
    max-width: 180px;
    top: -160px;
  }

  /*アニメーションの変更*/
  @keyframes fuyofuyo {
    0% {
      top: -12rem;
    }

    100% {
      top: -13rem;
    }
  }

  .top-anime_lefthand.on,
  .top-anime_righthand.on {
    animation: fuyofuyo2 2.5s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
  }

  @keyframes fuyofuyo2 {
    0% {
      bottom: -10rem;
    }

    100% {
      bottom: -12rem;
    }
  }
}
