.flow .heading-component {
  @media (min-width: 769px) {
    padding-top: min(calc(100vw * (160 / 1280)), 160px);
  }
  .english {
    font-size: min(calc(100vw * (180 / 1280)), 180px);
    @media (max-width: 768px) {
      font-size: calc(100vw * (88 / 375));
      top: calc(100vw * (20 / 375));
      line-height: 1;
    }
  }
}

#flow {
  width: 100%;
  padding-top: 64px;

  @media (max-width: 768px) {
    padding: calc(100vw * (40 / 375)) calc(100vw * (20 / 375)) calc(100vw * (56 / 375));
  }

  .flow-list {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(4, min(calc(100vw * (210 / 1024)), 210px));
    justify-content: space-between;
    padding-inline: 40px;

    @media (max-width: 768px) {
      padding-inline: 0;
      grid-template-columns: auto;
      grid-template-rows: repeat(4, auto);
      justify-content: initial;
      gap: 30px;
    }

    .flow {
      display: flex;
      flex-direction: column;
      gap: 20px;

      @media (max-width: 768px) {
        display: grid;
        grid-template-columns: calc(100vw * (100 / 375)) auto;
        align-items: center;
        gap: 20px;
      }

      .flow-image {
        width: 100%;
      }

      .flow-contents {
        display: flex;
        flex-direction: column;
        gap: 10px;
        width: 100%;

        @media (max-width: 768px) {
          gap: calc(100vw * (5 / 375));
        }

        .-ttl {
          font-size: 1.6rem;
          font-weight: bold;
          line-height: 1.3em;
          letter-spacing: 0;
          color: #333678;
          text-align: center;

          @media (max-width: 768px) {
            text-align: left;
            font-size: calc(100vw * (16 / 375));
          }
        }

        .-detail {
          font-size: 1.2rem;
          font-weight: bold;
          line-height: 1.6em;
          letter-spacing: 0;
          color: #000000;
          text-align: center;

          @media (max-width: 768px) {
            text-align: left;
            font-size: calc(100vw * (12 / 375));
          }

          span {
            color: #333678;
          }

          span.normal {
            font-size: 1.2rem;
            font-weight: 400;
            line-height: 1.6em;
            letter-spacing: 0;
            color: #000000;
            @media (max-width: 768px) {
              text-align: left;
              font-size: calc(100vw * (12 / 375));
            }
          }

          .pc-none {
            display: none;

            @media (max-width: 768px) {
              display: block;
            }
          }

          .sp-none {
            display: block;

            @media (max-width: 768px) {
              display: none;
            }
          }
        }

        & > a {
          font-size: 1.2rem;
          font-weight: bold;
          line-height: 22px;
          letter-spacing: 0;
          height: 25px;
          text-align: center;
          border-radius: 9999px;
          background-color: #333678;
          border-color: #333678;
          color: #fff;

          @media (max-width: 768px) {
            width: fit-content;
            padding-inline: calc(100vw * (12 / 375));
            font-size: calc(100vw * (12 / 375));
            height: calc(100vw * (25 / 375));
            line-height: calc(100vw * (25 / 375));
          }
        }
      }
    }
  }
}
