body {
  font-family: YuGothic;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1 0 auto;
}

.header__contents {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  height: 80px;
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  .header__contents {
    height: calc(56 / 375 * 100vw);
    justify-content: center;
  }
}

.container {
  text-align: center;
  margin-inline: auto;
  max-width: 1024px;
  margin-top: 80px;
}
@media (max-width: 768px) {
  .container {
    padding: 0 calc(16 / 375 * 100vw);
    margin-top: calc(56 / 375 * 100vw);
  }
}

.flex {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
}

.flex img {
  width: 94px;
}

@media (max-width: 768px) {
  .flex {
    flex-direction: column;
    gap: calc(18 / 375 * 100vw);
  }
  .flex img {
    width: calc(51 / 375 * 100vw);
  }
}

.title {
  font-size: 30px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.006em;
  text-align: left;
  color: #004e98;
}

@media (max-width: 768px) {
  .title {
    text-align: center;
    font-size: calc(20 / 375 * 100vw);
  }
}

.description {
  margin-block: 48px;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
}
.description a {
  text-decoration: underline;
}
@media (max-width: 768px) {
  .description {
    font-size: calc(14 / 375 * 100vw);
    margin-block: calc(32 / 375 * 100vw);
    text-align: left;
  }
}

.banner {
  position: relative;
  border-radius: 6px;
  background: linear-gradient(90deg, #004e98 0%, #3596f1 100%);
  /* 02_document shadow */
  box-shadow: 4px 4px 10px 0 rgba(0, 56, 109, 0.15);
  width: 480px;
  height: 100px;
  color: #fff;
  margin-inline: auto;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: center;
}

.banner > span {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  border-radius: 6px 0;
  background: #86b1d8;
  padding: 3px 14px 3px 10px;
}

.banner p {
  font-size: 28.036px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.005em;
}

.banner p span {
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.004em;
}

.num {
  color: #fff;
  font-family:
    "sofia-pro", "Helvetica Neue", "Yu Gothic", "YuGothic",
    "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Verdana, Meiryo,
    sans-serif;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.004em;
}

.arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 30px;
  width: 10px;
}

.arrow img {
  width: 100%;
}

@media (max-width: 768px) {
  .banner {
    width: calc(297 / 375 * 100vw);
    height: calc(80 / 375 * 100vw);
    padding-top: calc(7 / 375 * 100vw);
  }
  .banner > span {
    font-size: calc(10 / 375 * 100vw);
    padding: calc(1 / 375 * 100vw) calc(9 / 375 * 100vw);
  }

  .banner p {
    font-size: calc(20 / 375 * 100vw);
  }

  .banner p span,
  .num {
    font-size: calc(16 / 375 * 100vw);
  }

  .arrow {
    width: calc(7 / 375 * 100vw);
    right: calc(13 / 375 * 100vw);
  }
}

.footer__contents {
  font-size: 14px;
  color: #b5b5b5;
  border-top: 1px solid #e3e3e3;
  padding-block: 53px;
}

@media (max-width: 768px) {
  .footer__contents {
    font-size: calc(12 / 375 * 100vw);
    padding-block: calc(32 / 375 * 100vw);
  }
}

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