/* 01.SP */
/* common */
/* ------------------------------- */
main {
  font-style: normal;
  font-weight: 500;
  font-size: 16px;
  line-height: 160%;
  color: #222222;
}

/* 全体左右に余白を生成 */
.service_01-body {
  padding: 0 16px 64px;
  max-width: 532px;
  margin: 0 auto;
}

.only-pc {
  display: none;
}

/* top-title */
/* ------------------------------- */
.top-title-style {
  margin: 44px 0 32px;
}

.ja-title {
  font-family: 'Cormorant', sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 100%;
  color: #77807B;
  letter-spacing: 0.04em;
}

.en-title {
  font-weight: 700;
  font-size: 24px;
  line-height: 140%;
  letter-spacing: 0.04em;
  margin-top: 8px;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}

/* lineup */
/* ------------------------------- */
.lineup {
  padding-top: 32px;
}

.lineup-body-description {
  margin-top: 32px;
}

.lineup-body-description h3 {
  font-weight: 700;
  font-size: 20px;
  line-height: 150%;
}

.lineup-body-description p {
  margin-top: 16px;
  line-height: 160%;
}

.lineup-body-items {
  margin-top: 32px;
}

.lineup-body-item {
  display: flex;
  gap: 12px;
}

.lineup-body-item+.lineup-body-item {
  margin-top: 32px;
}

.lineup-body-item p {
  background: #31883E;
  width: 28px;
  height: 28px;
  padding: 0 3px 1px 4px;
  color: #FFFFFF;
  text-align: center;
  font-weight: 700;
  font-size: 18px;
}

.lineup-body-item h3 {
  font-weight: 700;
  font-size: 20px;
  line-height: 140%;
  letter-spacing: 0.04em;
}

.lineup-body-pie-chart img {
  margin-top: 32px;
}

.lineup-body-flow-chart img {
  margin-top: 80px;
}

/* solution */
/* ------------------------------- */
.solution {
  margin-top: 80px;
}

.solution-body {
  margin-top: 32px;
}

.solution-body-item+.solution-body-item {
  margin-top: 64px;
}

.solution-body-item-problem {
  background: #094C34;
  padding: 8px;
}

.solution-body-item-problem-inner {
  padding: 12px;
  border: 1px solid #FFFFFF;
}

.solution-body-item-problem-inner p {
  font-weight: 700;
  color: #FFFFFF;
  line-height: 160%;
}

.solution-body-item-arrow img {
  margin: 8px auto;
}

.solution-body-item-solution {
  background: #EEF3EF;
  border: 1px solid #094C34;
  padding: 16px;
}

.solution-body-item-solution h3,
.solution-body-item-solution h4 {
  color: #094C34;
  font-weight: 700;
  font-size: 20px;
  line-height: 140%;
  text-align: center;
}

.solution-body-item-solution p {
  margin-top: 8px;
  line-height: 160%;
}

.solution-body-item-arrow img {
  height: 30px;
  width: 6.24px;
}

/* flow */
/* ------------------------------- */
.flow {
  margin-top: 80px;
}

.flow-body-description {
  margin-top: 32px;
}

.flow-body-description h3 {
  font-weight: 700;
  font-size: 20px;
  line-height: 150%;
}

.flow-body-description p {
  margin-top: 16px;
  line-height: 160%;
}

.flow-body-table-wrapper {
  display: flex;
  margin: 32px 0 0;
  align-items: flex-start;
}

.flow-body-table-th {
  width: 76px;
}

.flow-body-table-th img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.flow-body-table-inner {
  flex: 1 1 10%;
  min-width: 0;
  overflow-x: scroll;
}

.flow-body-table-inner__image {
  min-width: 1167px;
  margin-bottom: 4px;
}

/* value */
/* ------------------------------- */
.value {
  margin-top: 80px;
}

.value-body {
  margin-top: 32px;
}

.value-body-item+.value-body-item {
  margin-top: 40px;
}

.value-body-item-text__heading p {
  width: 28px;
  height: 28px;
  font-weight: 700;
  font-size: 18px;
  line-height: 160%;
  background: #31883E;
  color: #FFFFFF;
  text-align: center;
}

.value-body-item-text h3 {
  font-weight: 700;
  font-size: 18px;
  line-height: 160%;
  margin-top: 12px;
  position: relative;
}

.value-body-item-text h3::after {
  content: "";
  background: #31883E;
  width: 64px;
  height: 1px;
  position: absolute;
  bottom: -9px;
  left: 0;
}

.value-body-item-text__description p {
  margin-top: 22px;
  line-height: 160%;
}

.value-body-item-image img {
  margin-top: 16px;
}

.value-body-table-container {
  overflow-x: scroll;
}

.value-body-table-inner {
  margin: 16px 0 4px;
  min-width: 1040px;
}

/* ::-webkit-scrollbar {
  width: 6.07px;
  height: 6.07px;
}

::-webkit-scrollbar-track {
  background-color: #FFFFFF;
}

::-webkit-scrollbar-thumb {
  background-color: #77807B;
  border-radius: 6.07211px;
} */

/* exit */
/* ------------------------------- */
.exit {
  margin-top: 80px;
}

.exit-body {
  margin-top: 32px;
}

.exit-body__chart img {
  margin-top: 32px;
}


/* achievement */
/* ------------------------------- */
.achievement {
  margin-top: 80px;
}

.achievement-body__description,
.achievement-body-charts {
  margin-top: 32px;
}

.achievement-body-chart-item+.achievement-body-chart-item {
  margin-top: 32px;
}

.achievement-body-chart-item h5 {
  font-weight: 700;
  font-size: 18px;
  line-height: 100%;
  text-align: center;
}

.achievement-body-chart-item img {
  margin: 16px auto 0;
  width: 73.4%;
}

/* contact */
/* ------------------------------- */
.contact {
  margin-top: 80px;
  text-align: center;
  display: block;
}

.contact .primary-button-link {
  width: 100%;
  font-size: 16px;
  box-shadow: 4px 4px 8px rgba(214, 219, 214, 0.75);
}

@media screen and (min-width: 1064px) {

  /* common */
  /* ------------------------------- */
  .only-sp {
    display: none;
  }

  .only-pc {
    display: block;
  }

  .service_01-body {
    padding: 0 16px 80px;
    max-width: 1072px;
    margin: 4px auto;
  }

  .title-box {
    padding: 0;
  }

  /* top-title */
  /* ------------------------------- */
  .top-title-style {
    margin: 50px 0 34px;
  }

  .ja-title {
    font-size: 20px;
  }

  .en-title {
    font-size: 40px;
    line-height: 100%;
    margin-top: 12px;
  }

  /* lineup */
  /* ------------------------------- */
  .lineup {
    margin-top: 4px;
  }

  .line-up-body-inner {
    margin-top: 32px;
    display: flex;
    gap: 80px;
    align-items: flex-start;
  }

  .line-up-body-inner-text {
    max-width: 506px;
  }

  .lineup-body-description {
    margin-top: 0px;
  }

  .lineup-body-description p {
    margin-top: 24px;
  }

  .lineup-body-item {
    gap: 16px;
  }

  .lineup-body-item p {
    width: 32px;
    height: 32px;
    padding: 1px 4px;
    font-size: 20px;
  }

  .lineup-body-item h3 {
    font-size: 24px;
  }

  .lineup-body-pie-chart img {
    max-width: 400px;
    margin-top: 0;
  }

  .lineup-body-flow-chart img {
    margin-top: 64px;
  }

  /* solution */
  /* ------------------------------- */
  .solution {
    margin-top: 96px;
  }

  .solution-body {
    display: flex;
    gap: 40px;
  }

  .solution-body-item {
    width: calc((100% - 80px) / 3);
    min-height: 336px;
  }

  .solution-body-item+.solution-body-item {
    margin-top: 0;
  }

  .solution-body-item-problem {
    min-height: 118px;
  }

  .solution-body-item-problem-inner {
    min-height: 102px;
    position: relative;
  }

  .solution-body-item-problem-inner p {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }

  .solution-body-item-solution {
    min-height: 172px;
  }

  /* flow */
  /* ------------------------------- */
  .flow {
    margin-top: 96px;
  }

  .flow-body img {
    margin-top: 40px;
  }

  /* value */
  /* ------------------------------- */
  .value {
    margin-top: 96px;
  }

  .value-body-item {
    display: flex;
    align-items: center;
    gap: 40px;
  }

  .value-body-item+.value-body-item {
    margin-top: 48px;
  }

  .value-body-item-text {
    max-width: 700px;
  }

  .value-body-item-text__heading p {
    width: 32px;
    height: 32px;
    font-size: 20px;
    line-height: 140%;
    padding: 2px 4px;
  }

  .value-body-item-text h3 {
    font-size: 20px;
    margin-top: 16px;
  }

  .value-body-item-text h3::after {
    width: 80px;
    bottom: -13px;
  }

  .value-body-item-text__description p {
    margin-top: 30px;
  }

  .value-body-item-text__description p+p {
    margin-top: 16px;
  }

  .value-body-item-image img {
    max-width: 300px;
    margin-top: 0;
  }

  .value-body-table-inner {
    margin-top: 32px;
    min-width: initial;
    width: 100%;
  }

  /* exit */
  /* ------------------------------- */
  .exit {
    margin-top: 96px;
  }

  /* achievement */
  /* ------------------------------- */
  .achievement {
    margin-top: 96px;
  }

  .achievement-body__description {
    margin-top: 30px;
  }

  .achievement-body-charts {
    margin-top: 48px;
    display: flex;
    gap: 48px 24px;
    flex-wrap: wrap;
  }

  .achievement-body-chart-item {
    width: calc((100% - 48px) / 3);
  }

  .achievement-body-chart-item+.achievement-body-chart-item {
    margin-top: 0px;
  }

  .achievement-body-chart-item img {
    max-width: 252px;
  }

  /* contact */
  /* ------------------------------- */
  .contact {
    margin-top: 96px;
  }

  .contact .primary-button-link {
    max-width: 340px;
    font-size: 20px;
    margin: 0 auto;
    padding: 20px 32px;
  }
}