body {
  background-color: #f2f2f2;
}
button {
  padding: 0;
}
.pc {
  display: block;
}
.sp {
  display: none;
}
.content-section {
  background-color: transparent;
}
.about .content-section__label,
.case .content-section__label {
  font-size: 0.97vw;
  letter-spacing: 0.05em;
}
.content-section__description {
  font-size: clamp(10px, 1.04vw, 18px);
  font-weight: 400;
  line-height: 1.9;
}
@media (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
  .fv .content-section__header,
  .about .content-section__header {
    gap: 4.27vw;
  }
  .about .content-section__label,
  .case .content-section__label {
    font-size: 3.2vw;
  }
  .content-section__description {
    font-size: 3.47vw;
    line-height: 1.8;
  }
}

/*fv*/
.page-mask {
  position: fixed;
  inset: 0;
  background: #303030;
  z-index: 9999;
  opacity: 1;
  pointer-events: none;
  height: 100vh; /* 古い端末用の初期値 */
  height: 100svh; /* “小さい”ビューポート */
  height: 100dvh; /* 実表示領域。対応端末ではこれが効く */
  height: -webkit-fill-available; /* さらに古いiOS向けフォールバック */
}
.fv {
  position: relative;
  overflow: hidden;
  /* ヘッダー高さ分だけ上に引き上げる */
  margin-top: -5.55vw;
  /* 高さをその分足して全体の縦量をキープ */
  height: calc(56.9vw + 5.55vw);
}
.fv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.fv__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.is-ready .page-mask {
  animation: pageMaskFade 1s ease-out forwards;
}
@keyframes pageMaskFade {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.fv .content-section {
  padding: 27.4vw 0 0 8.61vw;
  position: relative;
  z-index: 2;
}
.fv .content-section__label-wrapper {
  margin-bottom: 0.56vw;
}
.fv .content-section__label-wrapper .content-section__icon {
  width: 0.97vw;
}
.fv .content-section__label-wrapper .content-section__label {
  font-size: 1.39vw;
  font-weight: 500;
}
.fv .content-section__title {
  font-size: 2.22vw;
  font-weight: 700;
  margin-bottom: 2.78vw;
  line-height: 1.6;
  letter-spacing: 0.03em;
  color: #fff;
}
.fv .btn__link-header {
  margin: 0;
}
@media (max-width: 767px) {
  .fv {
    margin-top: -15.7vw;
    height: calc(156vw + 15.7vw);
  }
  .fv .content-section {
    padding: 90vw 0 0 12.8vw;
  }
  .fv .content-section__header {
    width: 65.1vw;
  }
  .fv .content-section__label-wrapper {
    margin-bottom: 0;
  }
  .fv .content-section__label-wrapper .content-section__icon {
    width: 2.13vw;
  }
  .fv .content-section__label-wrapper .content-section__label {
    font-size: 4vw;
  }
  .fv .content-section__title {
    font-size: 4.8vw;
    margin-bottom: 3.2vw;
    white-space: nowrap;
  }
  .fv .btn__link {
    width: fit-content;
    white-space: nowrap;
  }
  .fv .btn__link-header {
    margin: 0 6.4vw 0 0;
    padding: 16px 28px;
    opacity: 1;
  }
  body.is-ready .page-mask {
    animation: pageMaskFade 0.5s ease-out forwards;
  }
}

/*about*/
.about {
  margin: 6.67vw auto 0;
}
.about__wrapper {
  width: 68.1vw;
  padding: 3.05vw 4.17vw 3.05vw 3.89vw;
  margin: 0 auto;
  position: relative;
  display: flex;
  gap: 4.86vw;
  --gap: 0; /* 白枠を内側に入れる距離 */
  --thick: 2px; /* 線の太さ */
  --len: 16px; /* L字の長さ */
  --green: #19b83a; /* 緑の色 */
}
.about__wrapper::after {
  content: "";
  position: absolute;
  inset: var(--gap);
  pointer-events: none;
  z-index: 1;
  /* 8本のバーを多重backgroundで配置（左上/右上/左下/右下 × 縦横） */
  background:
    /* 左上：縦 */ linear-gradient(var(--green), var(--green)) left
      0 top 0 / var(--thick) var(--len) no-repeat,
    /* 左上：横 */ linear-gradient(var(--green), var(--green)) left 0 top 0 /
      var(--len) var(--thick) no-repeat,
    /* 右上：縦 */ linear-gradient(var(--green), var(--green)) right 0 top 0 /
      var(--thick) var(--len) no-repeat,
    /* 右上：横 */ linear-gradient(var(--green), var(--green)) right 0 top 0 /
      var(--len) var(--thick) no-repeat,
    /* 左下：縦 */ linear-gradient(var(--green), var(--green)) left 0 bottom 0 /
      var(--thick) var(--len) no-repeat,
    /* 左下：横 */ linear-gradient(var(--green), var(--green)) left 0 bottom 0 /
      var(--len) var(--thick) no-repeat,
    /* 右下：縦 */ linear-gradient(var(--green), var(--green)) right 0 bottom 0 /
      var(--thick) var(--len) no-repeat,
    /* 右下：横 */ linear-gradient(var(--green), var(--green)) right 0 bottom 0 /
      var(--len) var(--thick) no-repeat;
}
.about .content-section {
  padding: 0;
  width: 28.8vw;
}
.about .content-section__header {
  margin-top: 2.78vw;
}
.about .content-section__label-wrapper {
  margin-bottom: 1.67vw;
}
.about .content-section__title {
  font-size: 2.22vw;
  margin-bottom: 1.11vw;
  line-height: 1.5;
}
.about__img {
  width: 26.4vw;
  height: 29.5vw;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 767px) {
  /*about*/
  .about {
    margin: 10.6vw auto 0;
  }
  .about__wrapper {
    width: 87.2vw;
    padding: 9.6vw 4.27vw;
    flex-direction: column;
    gap: 4.27vw;
    --gap: 0; /* 白枠を内側に入れる距離 */
    --thick: 2px; /* 線の太さ */
    --len: 12px; /* L字の長さ */
    --green: #19b83a; /* 緑の色 */
  }
  .about .content-section {
    padding: 0;
    width: 100%;
  }
  .about .content-section__label-wrapper {
    margin-bottom: 2.13vw;
  }
  .about .content-section__title {
    font-size: 5.87vw;
    margin-bottom: 2.13vw;
    line-height: 1.6;
  }
  .about__img {
    width: 72.8vw;
    height: 81.6vw;
    object-fit: cover;
    object-position: center;
    margin: auto;
  }
  .about .content-section__description {
    margin-top: 0;
  }
}

/*case*/
.case {
  margin: 5vw auto 6.67vw;
}
.case__wrapper {
  width: 81.9vw;
  padding: 4.44vw;
  margin: 0 auto;
  display: flex;
  gap: 4.44vw;
  background-color: #fdfdfd;
  border: 1px solid #f6f6f6;
  border-radius: 2.22vw;
}
.case__img {
  width: 29.7vw;
  height: 32.1vw;
  object-fit: cover;
  object-position: center;
}
.case .content-section {
  width: 38.9vw;
  padding: 1.9vw 0;
}
.case .content-section__header {
  gap: 0;
  margin-bottom: 0.55vw;
}
.case .content-section__label-wrapper {
  margin-bottom: 0.56vw;
}
.case .content-section__icon {
  background-color: #989898;
}
.case .content-section__label {
  color: #989898;
}
.case .content-section__subtitle {
  font-size: 1.39vw;
  font-weight: 700;
  color: #1dd421;
  margin-bottom: 1.67vw;
}
.case .content-section__title {
  font-size: 1.81vw;
  font-weight: 700;
  line-height: 1.5;
  color: #000;
  margin-bottom: 1.67vw;
}
.case .content-section__description {
  margin-bottom: 1.11vw;
}
.case .content-section .btn--0302H.btn-normal .btn__link {
  margin: 0;
}
.case .btn--0302H.btn-normal .btn__link {
  margin: 3.33vw auto 0;
}
.btn-normal .--green path {
  opacity: 1;
}
.btn-normal .btn__link-arrow-inner {
  padding: 0;
}
.btn-normal .btn__link {
  display: flex;
  align-items: center;
  column-gap: 32px;
  padding: 16px 32px;
  border: 1px solid #f1f1f1;
  background-color: #555555; /* ボタン全体の色 */
  border-radius: 96px;
  width: fit-content;
  transition: background 0.3s ease;
  overflow: hidden;

  /* hover時 */
  @media (any-hover: hover) {
    &:hover {
      background-color: #1dd421;
      opacity: 1;

      .btn__link-arrow-wrap {
        translate: 90% 0;
      }
      .btn__link-arrow {
        &.--green {
          opacity: 1;
        }
        &.--green path {
          fill: #fff;
          opacity: 1;
        }
      }
    }
  }
}
.btn-normal .btn__link-arrow {
  margin-top: 0; /* ← まず余計なmarginを外す */
  display: flex;
  align-items: center; /* 矢印アイコンを縦中央に */
  justify-content: center;
  width: 12px;
  height: 10px;
  path {
    transition: fill 0.1s ease, opacity 0.1s ease-in-out;
    font-weight: bold;
  }

  &.--green {
    position: relative;
    top: 0%;
    left: -45%;
    padding-top: 0.1vw;
    opacity: 0;
  }
}
@media (max-width: 767px) {
  .case {
    margin: 8.53vw auto 14.9vw;
  }
  .case__wrapper {
    width: 91.5vw;
    padding: 8.53vw 8.53vw 10.7vw;
    flex-direction: column-reverse;
    gap: 4.27vw;
    border-radius: 4.27vw;
  }
  .case__img {
    width: 74.4vw;
    height: 38.4vw;
  }
  .case .content-section {
    width: 100%;
    padding: 0;
  }
  .case .content-section__header {
    margin-bottom: 0;
  }
  .case .content-section__label-wrapper {
    margin-bottom: 1.6vw;
  }
  .case .content-section__subtitle {
    font-size: 4.27vw;
    margin-bottom: 6.4vw;
  }
  .case .content-section__title {
    font-size: 5.33vw;
  }
  .case .content-section__description {
  }
  .case .btn--0302H.btn-normal .btn__link {
    margin: 0;
  }
  .case .btn--0302H.btn-normal:nth-child(2) .btn__link {
    margin: 8.53vw auto 0;
  }
}

/*function*/
.function {
  background-color: #fff;
  padding: 8.89vw 3.89vw 5vw;
}
.function__wrapper {
  margin: 0 auto;
  width: 75vw;
}
.function .content-section {
  padding: 0;
}
.function .content-section__label {
  font-size: 0.97vw;
}
.function .content-section__title {
  font-size: 2.22vw;
}
.function__list {
  margin-top: 2.22vw;
}
.function__list-item {
  display: flex;
  justify-content: space-between;
  padding: 3.89vw 0;
  border-top: 1px solid #efefef;
}
.function__list-item:first-child {
  padding-top: 5vw;
}
.function__item-main {
  width: 44.4vw;
}
.function__item-num {
  font-size: 0.83vw;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #15c913;
  margin-bottom: 1.11vw;
}
.function__item-name__wrapper {
  display: flex;
  align-items: center;
  gap: 1.11vw;
  margin-bottom: 1.94vw;
}
.function .function__list .content-section__icon {
  width: 0.76vw;
  height: 0.28vw;
}
.function__item-name {
  font-size: 1.52vw;
  font-weight: 700;
  line-height: 1.45;
}
.item-description {
  font-size: clamp(10px, 1.04vw, 18px);
  font-weight: 400;
  line-height: 1.9;
  margin-bottom: 1.94vw;
}
.item-example span:first-child {
  border-right: 1px solid #989898;
  padding-right: 0.69vw;
}
.item-example span:nth-child(2) {
  padding-left: 0.69vw;
  color: #575757;
}
.item-example {
  font-size: 0.83vw;
  font-weight: 400;
  line-height: 1.83;
  background: linear-gradient(to right, #efefef 15%, #fff 100%);
  border-radius: 3.89vw;
  border: 1px solid #f2f2f2;
  padding: 0.63vw 1.67vw;
}
.function__item-imgs {
  --gap: 0; /* 白枠を内側に入れる距離 */
  --thick: 2px; /* 線の太さ */
  --len: 16px; /* L字の長さ */
  --green: #19b83a; /* 緑の色 */
  position: relative;
  width: 27.8vw;
  height: 17vw;
}
.function__item-imgs::after {
  content: "";
  position: absolute;
  inset: var(--gap);
  pointer-events: none;
  z-index: 5;
  /* 8本のバーを多重backgroundで配置（左上/右上/左下/右下 × 縦横） */
  background:
    /* 左上：縦 */ linear-gradient(var(--green), var(--green)) left
      0 top 0 / var(--thick) var(--len) no-repeat,
    /* 左上：横 */ linear-gradient(var(--green), var(--green)) left 0 top 0 /
      var(--len) var(--thick) no-repeat,
    /* 右上：縦 */ linear-gradient(var(--green), var(--green)) right 0 top 0 /
      var(--thick) var(--len) no-repeat,
    /* 右上：横 */ linear-gradient(var(--green), var(--green)) right 0 top 0 /
      var(--len) var(--thick) no-repeat,
    /* 左下：縦 */ linear-gradient(var(--green), var(--green)) left 0 bottom 0 /
      var(--thick) var(--len) no-repeat,
    /* 左下：横 */ linear-gradient(var(--green), var(--green)) left 0 bottom 0 /
      var(--len) var(--thick) no-repeat,
    /* 右下：縦 */ linear-gradient(var(--green), var(--green)) right 0 bottom 0 /
      var(--thick) var(--len) no-repeat,
    /* 右下：横 */ linear-gradient(var(--green), var(--green)) right 0 bottom 0 /
      var(--len) var(--thick) no-repeat,
    linear-gradient(var(--green), var(--green)) left 0 center / 10px
      var(--thick) no-repeat,
    linear-gradient(var(--green), var(--green)) right 0 center / 10px
      var(--thick) no-repeat;
}
.function__item-imgs {
  position: relative;
  overflow: hidden;
}
.function__item-img {
  width: 27.8vw;
  height: 17vw;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  transition: opacity 0.4s ease;
}
/* 初期は1枚目だけ表示 */
.function__item-img.first {
  opacity: 1;
  z-index: 1;
}
.function__item-img.second {
  opacity: 0;
  z-index: 2;
}
/* hover時に2枚目をフェードイン */
.mode-hover .function__item-imgs:hover .first {
  opacity: 0;
}
.mode-hover .function__item-imgs:hover .second {
  opacity: 1;
}
@media (hover: hover) and (pointer: fine) {
  .mode-auto .function__item-imgs:hover .first,
  .mode-auto .function__item-imgs:hover .second {
    opacity: unset !important;
  }
}
.mode-auto .function__item-imgs {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
@media (max-width: 767px) {
  .function {
    padding: 14.9vw 6.4vw 4.27vw;
  }
  .function__wrapper {
    margin: 0 auto;
    width: 87.2vw;
  }
  .function .content-section__label {
    font-size: 2.93vw;
  }
  .function .content-section__title {
    font-size: 5.87vw;
    line-height: 1.4;
    white-space: nowrap;
  }
  .function__list {
    margin: 6.4vw auto 0;
    width: 82.9vw;
  }
  .function__list-item {
    flex-direction: column;
    gap: 5.33vw;
    padding: 12.8vw 0;
  }
  .function__list-item:first-child {
    padding-top: 10.7vw;
  }
  .function__item-main {
    width: 100%;
  }
  .function__item-num {
    font-size: 3.2vw;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: #15c913;
    margin-bottom: 3.2vw;
  }
  .function__item-name__wrapper {
    display: flex;
    align-items: center;
    gap: 4.27vw;
    margin-bottom: 4.27vw;
  }
  .function .function__list .content-section__icon {
    width: 2.93vw;
    height: 1.07vw;
  }
  .function__item-name {
    font-size: 5.33vw;
  }
  .item-description {
    font-size: 3.47vw;
    line-height: 1.8;
    margin-bottom: 5.33vw;
  }
  .item-example span:first-child {
    border-right: none;
    padding-right: 0;
    text-align: center;
    font-weight: 500;
  }
  .item-example span:first-child::after {
    content: "";
    display: block;
    width: 4.27vw; /* 線の長さ（短め） */
    height: 1px;
    background: #989898; /* 線の色（薄めのグレー） */
    margin: 2.13vw auto 0; /* 上下中央寄せ */
  }
  .item-example span:nth-child(2) {
    padding-left: 0;
    padding-top: 2.13vw;
  }
  .item-example {
    font-size: 3.2vw;
    border-radius: 2.13vw;
    border: 1px solid #f2f2f2;
    padding: 3.2vw 5.33vw 4.27vw;
    display: flex;
    flex-direction: column;
  }
  .function__item-imgs {
    --gap: 0; /* 白枠を内側に入れる距離 */
    --thick: 2px; /* 線の太さ */
    --len: 8px; /* L字の長さ */
    --lens: 6px;
    --green: #19b83a; /* 緑の色 */
    position: relative;
    width: 100%;
    height: 44.8vw;
  }
  .function__item-imgs::after {
    content: "";
    position: absolute;
    inset: var(--gap);
    pointer-events: none;
    z-index: 1;
    /* 8本のバーを多重backgroundで配置（左上/右上/左下/右下 × 縦横） */
    background:
      /* 左上：縦 */ linear-gradient(var(--green), var(--green))
        left 0 top 0 / var(--thick) var(--len) no-repeat,
      /* 左上：横 */ linear-gradient(var(--green), var(--green)) left 0 top 0 /
        var(--len) var(--thick) no-repeat,
      /* 右上：縦 */ linear-gradient(var(--green), var(--green)) right 0 top 0 /
        var(--thick) var(--len) no-repeat,
      /* 右上：横 */ linear-gradient(var(--green), var(--green)) right 0 top 0 /
        var(--len) var(--thick) no-repeat,
      /* 左下：縦 */ linear-gradient(var(--green), var(--green)) left 0 bottom 0 /
        var(--thick) var(--len) no-repeat,
      /* 左下：横 */ linear-gradient(var(--green), var(--green)) left 0 bottom 0 /
        var(--len) var(--thick) no-repeat,
      /* 右下：縦 */ linear-gradient(var(--green), var(--green)) right 0 bottom
        0 / var(--thick) var(--len) no-repeat,
      /* 右下：横 */ linear-gradient(var(--green), var(--green)) right 0 bottom
        0 / var(--len) var(--thick) no-repeat,
      linear-gradient(var(--green), var(--green)) left 0 center / 6px
        var(--thick) no-repeat,
      linear-gradient(var(--green), var(--green)) right 0 center / 6px
        var(--thick) no-repeat;
  }
  .function__item-img {
    width: 100%;
    height: 44.8vw;
    object-fit: cover;
  }
}

/*use-case*/
.use-case {
  background-color: #e4e4e4;
}
.use-case__wrapper {
  width: 75vw;
  margin: 0 auto;
}
.use-case .content-section {
  padding: 7.22vw 0 2.8vw;
  border-bottom: 1px solid #f2f2f2;
}
.use-case .content-section__label {
  font-size: 0.97vw;
}
.use-case .content-section__title {
  font-size: 2.22vw;
}
.use-case .card-list__item {
  margin: 3.33vw 0 4.2vw;
}
.use-case .btn-normal {
  padding-bottom: 8.26vw;
}
.use-case .btn-normal .btn__link {
  margin: 0 auto;
}
.card__after {
  height: auto;
}
.card__after.is-open {
  height: auto;
}
.top-card-list {
  display: flex;
  gap: 2.78vw;
  justify-content: center;
  align-items: flex-start;
}
.card__after-wrapper.is-open .card__after {
  max-height: 1000px; /* 十分大きい値。中身の高さより大きければOK */
}
@media (max-width: 767px) {
  .use-case__wrapper {
    width: 87.2vw;
    margin: 0 auto;
  }
  .use-case .content-section {
    padding: 14.9vw 2.13vw 6.4vw;
    border-bottom: 1px solid #f2f2f2;
  }
  .use-case .content-section__label {
    font-size: 2.93vw;
  }
  .use-case .content-section__title {
    font-size: 5.87vw;
    line-height: 1.4;
  }
  .use-case .card-list__item {
    margin: 0;
  }
  .use-case .card-list__item:first-child {
    margin: 0;
    margin-top: 6.4vw;
  }
  .use-case .card-list__item:last-child {
    margin-bottom: 6.4vw;
  }
  .use-case .btn-normal {
    padding-bottom: 14.9vw;
  }
  .use-case .btn-normal .btn__link {
    margin: 0 auto;
  }
  .top-card-list {
    display: flex;
    flex-direction: column;
    gap: 6.4vw;
    justify-content: center;
  }
  .card__after {
    height: auto;
  }
}

/*reason*/
.reason__vector {
  background-color: #e4e4e4;
}
.reason {
  background-color: #fff;
}
.reason__wrapper {
  width: 75vw;
  margin: 5.56vw auto 0;
}
.reason .content-section {
  padding: 0;
  padding-bottom: 2.22vw;
  border-bottom: 1px solid #e9e9e9;
}
.reason .content-section__label {
  font-size: 0.97vw;
}
.reason .content-section__title {
  font-size: 2.22vw;
}
.reason .content-section__description {
  font-size: 1.25vw;
}
.reason__list {
  padding-top: 3.33vw;
}
.reason__list-item {
  display: flex;
  gap: 5vw;
  margin-bottom: 2.22vw;
}
.reason__list-item:last-child {
  padding-bottom: 6.67vw;
  margin-bottom: 0;
}
.reason__item-img {
  width: 25vw;
  height: 25vw;
  object-fit: cover;
  object-position: center;
  border-radius: 1.11vw;
}
.reason__item-main {
  padding: 6.74vw 6.74vw 0 0;
}
.reason__item-title--wrapper {
  display: flex;
  align-items: center;
  padding-bottom: 2.22vw;
}
.reason__item-num {
  font-size: 1.11vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #989898;
  padding-right: 1.67vw;
}
.reason__item-name {
  font-size: 1.94vw;
  font-weight: 700;
  line-height: 1.4;
  padding-left: 1.67vw;
  border-left: 2px solid #d9d9d9;
}
.green {
  color: #15c913;
}
.reason__item-description {
  font-size: clamp(10px, 1.04vw, 18px);
  font-weight: 400;
  line-height: 1.9;
  color: #575757;
}
@media (max-width: 767px) {
  .reason__wrapper {
    width: 82.9vw;
    margin: 12.8vw auto 0;
  }
  .reason .content-section {
    padding-bottom: 6.4vw;
  }
  .reason .content-section__label {
    font-size: 2.93vw;
  }
  .reason .content-section__title {
    font-size: 5.87vw;
  }
  .reason .content-section__description {
    font-size: 3.47vw;
  }
  .reason__list {
    padding-top: 10.7vw;
  }
  .reason__list-item {
    flex-direction: column-reverse;
    gap: 5.33vw;
    margin-bottom: 12.8vw;
  }
  .reason__list-item:last-child {
    padding-bottom: 12.8vw;
    margin-bottom: 0;
  }
  .reason__item-img {
    width: 100%;
    height: 53.3vw;
    border-radius: 2.13vw;
  }
  .reason__item-main {
    padding: 0;
  }
  .reason__item-title--wrapper {
    align-items: center;
    padding-bottom: 4.8vw;
  }
  .reason__item-num {
    font-size: 3.47vw;
    padding-right: 6.4vw;
    border-right: none;
  }
  .reason__item-name {
    font-size: 5.33vw;
    padding-left: 6.4vw;
    border-left: 2px solid #d9d9d9;
  }
  .green {
    color: #15c913;
  }
  .reason__item-description {
    font-size: 3.4vw;
  }
}

/*solution*/
.solution {
  background-color: #e4e4e4;
  padding: 6.67vw 0 5vw;
  border-radius: 5vw 5vw 0 0;
}
.solution__wrapper {
  width: 75vw;
  margin: 0 auto;
}
.solution .content-section {
  padding: 0;
  padding-bottom: 2.22vw;
  border-bottom: 1px solid #f2f2f2;
}
.solution .content-section__label {
  font-size: 0.97vw;
}
.solution .content-section__title {
  font-size: 2.22vw;
}
.solution .content-section__description {
  font-size: 1.25vw;
}
.solution__flex {
  display: flex;
  gap: 2.22vw;
  padding-top: 2.78vw;
}
.solution__flex--item {
  padding: 3.33vw;
  background-color: #fff;
  border-radius: 1.11vw;
}
.solution__item-title {
  font-size: 1.39vw;
  font-weight: 700;
  line-height: 1.3;
  padding-bottom: 1.11vw;
}
.solution__item-description {
  font-size: clamp(10px, 1.04vw, 18px);
  font-weight: 400;
  line-height: 1.9;
  color: #575757;
  padding-top: 1.11vw;
}
.solution__feature {
  padding: 2.78vw 3.33vw;
  background-color: #fff;
  border-radius: 1.11vw;
  margin-top: 2.22vw;
}
.solution__feature--title {
  background-color: #f2f2f2;
  border: 1px solid #e4e4e4;
  border-radius: 3.89vw;
  font-size: 0.97vw;
  font-weight: 600;
  line-height: 1.71;
  text-align: center;
  padding: 8px 0;
}
.solution__feature--card-list {
  margin-top: 1.11vw;
  display: flex;
  gap: 1.67vw;
}
.solution__card {
  width: 21.7vw;
  border-radius: 1.11vw;
  padding: 2.22vw;
  background-color: #fff;
  display: flex;
  gap: 1.39vw;
  border: 1px solid #f2f2f2;
  align-items: center;
}
.solution__card-icon {
  width: 3.33vw;
  height: 3.33vw;
}
.solution__card-text {
  font-size: 1.11vw;
  font-weight: 600;
  line-height: 1.5;
}
.solution__underline {
  width: 100%;
  height: 1px;
  background-image: repeating-linear-gradient(
    to right,
    #d9d9d9 0,
    #d9d9d9 2px,
    transparent 2px,
    transparent 4px
  );
}
@media (max-width: 767px) {
  .solution {
    padding: 12.8vw 0 10.7vw;
    border-radius: 7vw 7vw 0 0;
  }
  .solution__wrapper {
    width: 87.2vw;
  }
  .solution .content-section {
    padding-bottom: 6.4vw;
  }
  .solution .content-section__label {
    font-size: 2.93vw;
  }
  .solution .content-section__title {
    font-size: 5.87vw;
    line-height: 1.4;
  }
  .solution .content-section__description {
    font-size: 3.47vw;
  }
  .solution__flex {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    padding-top: 6.4vw;
  }
  .solution__flex--item {
    padding: 8.53vw;
    border-radius: 4.27vw;
  }
  .solution__item-title {
    font-size: 4.8vw;
    padding-bottom: 4.27vw;
    line-height: 1.5;
  }
  .solution__item-description {
    font-size: 3.47vw;
    color: #575757;
    padding-top: 4.27vw;
  }
  .solution__feature {
    padding: 4.27vw 4.27vw 6.4vw 4.27vw;
    background-color: #fff;
    border-radius: 4.27vw;
    margin-top: 6.4vw;
  }
  .solution__feature--title {
    border-radius: 4.27vw;
    font-size: 3.73vw;
  }
  .solution__feature--card-list {
    margin-top: 4.27vw;
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
  }
  .solution__card {
    width: 100%;
    border-radius: 4.27vw;
    padding: 4.27vw;
    gap: 4.27vw;
  }
  .solution__card-icon {
    width: 11.7vw;
    height: 11.7vw;
  }
  .solution__card-text {
    font-size: 3.73vw;
  }
}

/*flow*/
.flow {
  background-color: #575757;
  position: relative;
}
.flow__vector {
  position: absolute;
  left: 0;
  right: 0;
  top: -2px;
  height: 4.51vw;
  background: url("../images/flow_vector.png") no-repeat center bottom;
  background-size: 100% auto; /* 100% で良ければ 100% auto でもOK */
  /* アンチエイリアスの縁消し：下に1pxだけかぶせる */
  pointer-events: none;
}
.flow__wrapper {
  width: 75vw;
  margin: 0 auto;
  padding: 10.5vw 0 7.22vw;
  position: relative;
}
.flow .content-section {
  padding: 0;
  padding-bottom: 3.3vw;
  border-bottom: 1px solid #e9e9e9;
}
.flow .content-section__header {
  gap: 1.11vw;
}
.flow .content-section__icon {
  background-color: #fff;
}
.flow .content-section__label {
  font-size: 0.97vw;
  color: #fff;
}
.flow .content-section__title {
  font-size: 2.22vw;
  color: #fff;
}
.flow__list {
  margin-top: 3.33vw;
  display: flex;
  flex-direction: column;
  gap: 1.11vw;
}
.flow__list--item {
  background-color: #fff;
  padding: 2.5vw 2.78vw;
  border-radius: 1.11vw;
}
.flow__list .content-section {
  padding: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.flow__list .content-section__header {
  display: flex;
  flex-direction: row;
  gap: 1.11vw;
  margin-bottom: 1.11vw;
}
.flow__list .content-section__icon {
  background-color: #15c913;
}
.flow__list .content-section__label {
  font-size: 0.83vw;
  color: #15c913;
}
.flow__list .content-section__title {
  font-size: 1.25vw;
  color: #181818;
}
.content-section__description {
  color: #575757;
  font-size: clamp(10px, 1.04vw, 18px);
  font-weight: 400;
  line-height: 1.9;
}
@media (max-width: 767px) {
  .flow__wrapper {
    width: 87.2vw;
    padding: 12.8vw 0;
  }
  .flow .content-section {
    padding-bottom: 6.4vw;
  }
  .flow .content-section__icon {
    background-color: #fff;
  }
  .flow .content-section__label {
    font-size: 2.93vw;
  }
  .flow .content-section__title {
    font-size: 5.87vw;
    padding-top: 4.27vw;
  }
  .flow__list {
    margin-top: 8.53vw;
    gap: 3.2vw;
  }
  .flow__list--item {
    padding: 6.4vw 7.47vw;
    border-radius: 2.13vw;
  }
  .flow__list .content-section {
    padding: 0;
    padding-bottom: 0;
    border-bottom: none;
  }
  .flow__list .content-section__header {
    display: flex;
    flex-direction: column;
    gap: 2.13vw;
    margin-bottom: 0;
  }
  .flow__list .content-section__icon {
    background-color: #15c913;
  }
  .flow__list .content-section__label {
    font-size: 2.93vw;
  }
  .flow__list .content-section__title {
    font-size: 4.27vw;
    padding-top: 0;
  }
  .content-section__description {
    font-size: 3.47vw;
    margin-top: 2.13vw;
  }
}
.cta .btn__link-arrow {
  width: 12px;
  height: 10px;
}
