@charset "utf-8";

/*----------
KV
----------*/
.kv {
  background-color: #ffffff;
}

.kv .container {
  width: 100%;
  margin: 60px auto 0;
}

@media only screen and (min-width: 768px) {
  .kv .container {
    max-width: 900px;
  }
}


/*----------
LEAD
----------*/
.lead .container {
  width: 100%;
  margin: 60px auto 0;
}

.lead p {
  font-size: min(2.7906976744186047vw, 12px);
  line-height: 2;
  color: #000000;
  text-align: center;
  margin-block: var(--leading-trim);
}

@media only screen and (min-width: 768px) {
  .lead .container {
    width: 900px;
    margin: 120px auto 0;
  }
}


/*----------
SERVICE
----------*/
.service {
  width: 100%;
  margin: 60px auto 0;
  padding: 50px 20px;
  background-color: #CC0000;
}

.service .service-area {
  position: relative;
  overflow: hidden;
}

.service .service-area:nth-of-type(n+2) {
  margin-top: 50px;
}

.service .bg img {
  border: 1px solid #000000;
  border-radius: 10px;
}

.service .number {
  position: absolute;
  top: 10%;
  left: 0%;
  width: 100%;
  font-size: min(5.5813953488372094vw, 24px);
  line-height: 1.5;
  color: #000000;
  text-align: center;
  margin-block: var(--leading-trim);
}

.service .service-img {
  position: absolute;
  top: 17%;
  left: 50%;
  transform: translateX(-50%);
  width: 89.74%;
}

.service .service-txt {
  position: absolute;
  top: 65%;
  left: 50%;
  transform: translateX(-50%);
  width: 89.74%;
}

.service .service-txt h4 {
  font-size: min(3.7209302325581395vw, 16px);
  line-height: 1.5;
  color: #000000;
  text-align: center;
  margin-block: var(--leading-trim);
}

.service .service-txt p {
  padding-top: 20px;
  font-size: min(2.7906976744186047vw, 12px);
  line-height: 2;
  color: #000000;
  text-align: center;
  margin-block: var(--leading-trim);
}

.service .service-txt p a {
  text-decoration: underline;
}

@media only screen and (min-width: 768px) {
  .service {
    margin: 120px auto 0;
    padding: 100px 0;
  }

  .service .container {
    width: 900px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: flex-start;
    gap: 40px;
  }

  .service .service-area:nth-of-type(n+2) {
    margin-top: 0;
  }
}


/*----------
FOOTER
----------*/
.footer {
  margin: 0 auto;
}

@media only screen and (min-width: 768px) {
  .footer {
    margin: 0 auto;
  }
}


/*----------
ANIMATION
----------*/
/* フェードイン */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

.fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}