.anim-fade-in {
  transform: translateY(calc(min(min(var(--vw, 1vw), var(--svh, 1vh)) * 40 / 768 * 100, 30px) * (1 - var(--progress, 0))));
  opacity: var(--progress, 0);
  --progress: 0
}

.anim-cover {
  position: relative;
  transition: -webkit-clip-path .8s cubic-bezier(.23, 1, .32, 1);
  transition: clip-path .8s cubic-bezier(.23, 1, .32, 1);
  transition: clip-path .8s cubic-bezier(.23, 1, .32, 1), -webkit-clip-path .8s cubic-bezier(.23, 1, .32, 1);
  -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%)
}

.anim-cover:before {
  content: "";
  background: linear-gradient(253.673deg, #a0b9e1, #64aadc);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: -webkit-clip-path .8s cubic-bezier(.23, 1, .32, 1) .2s;
  transition: clip-path .8s cubic-bezier(.23, 1, .32, 1) .2s;
  transition: clip-path .8s cubic-bezier(.23, 1, .32, 1) .2s, -webkit-clip-path .8s cubic-bezier(.23, 1, .32, 1) .2s
}

.anim-cover.is-active,
.anim-cover:before {
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%)
}

.anim-cover.is-active:before {
  -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%)
}

.page__body {
  display: grid;
  gap: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 100/768 * 100, 75px)
}

.requirements-table {
  display: grid;
  margin-top: min(var(--vw, 1vw)* 80 / 1280* 100, 80px);
}

.requirements-table-item {
  display: grid;
  border-top: 1px solid #d5e2ef;
  padding: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 48/768 * 100, 36px) 0;
  grid-template-columns: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 200/768 * 100, 150px) 1fr
}

.requirements-table-item:last-child {
  border-bottom: 1px solid #d5e2ef
}

.requirements-table-item-head {
  font-family: Noto Sans JP, sans-serif;
  font-style: normal;
  font-optical-sizing: auto;
  font-size: clamp(1.1666666667rem, calc(1.4rem + (min(var(--vw, 1vw), var(--svh, 1vh)) * 100 - 384px) * .0364583333), 2.1rem);
  font-weight: 700;
  line-height: 2;
  letter-spacing: .04em
}

.requirements-table-item-head:before {
  margin-top: -0.5em;
  content: "";
  display: block;
  width: 0;
  height: 0
}

.requirements-table-item-head:after {
  margin-bottom: -0.5em;
  content: "";
  display: block;
  width: 0;
  height: 0
}

.requirements-table-item-body__text {
  white-space: pre-line;
  font-weight: 400
}

.requirements-flow {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 40/768 * 100, 30px)
}

.requirements-flow-item {
  aspect-ratio: 96/192;
  border-radius: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 8/768 * 100, 6px);
  position: relative
}

.requirements-flow-item:last-child {
  background: #3c64aa;
  border-color: #3c64aa
}

.requirements-flow-item:last-child .requirements-flow-text {
  color: #fff
}

.requirements-flow-item:last-child .requirements-flow-item__label {
  color: #fff;
  background: #3c64aa;
  border: 1.5px solid #fff
}

.requirements-flow-item:last-child .requirements-flow-item__inner {
  border: 3px solid #3c64aa
}

.requirements-flow-item:not(:last-child):after {
  content: "";
  aspect-ratio: 20/32;
  background: url(../../../../../img/requirements/common/icon_requirements_flow_arrow.svg) 50%/contain no-repeat;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  -webkit-clip-path: url(#clipPath);
  clip-path: url(#clipPath);
  transform-origin: center;
  left: calc(100% + min(min(var(--vw, 1vw), var(--svh, 1vh)) * 6 / 768 * 100, 4.5px));
  width: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 20/768 * 100, 15px)
}

.hidden-path {
  opacity: 0;
  position: absolute;
  z-index: -9999
}

.requirements-flow-item__label {
  font-family: Noto Sans JP, sans-serif;
  font-style: normal;
  font-optical-sizing: auto;
  border: 2px solid transparent;
  color: #3c64aa;
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
  position: absolute;
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  padding: .2em;
  top: max(min(var(--vw, 1vw), var(--svh, 1vh)) * -28/768 * 100, -21px);
  border-radius: 50%;
  aspect-ratio: 1;
  width: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 56/768 * 100, 42px);
  display: flex;
  align-items: center;
  justify-content: center
}

.flow-item-label__small {
  font-size: clamp(.5rem, calc(.6rem + (min(var(--vw, 1vw), var(--svh, 1vh)) * 100 - 384px) * .015625), .9rem)
}

.flow-item-label__num {
  font-size: clamp(.8333333333rem, calc(1rem + (min(var(--vw, 1vw), var(--svh, 1vh)) * 100 - 384px) * .0260416667), 1.5rem)
}

.requirements-flow-item__inner {
  display: flex;
  align-items: center;
  padding: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 32/768 * 100, 24px) 0 0;
  height: 100%;
  width: 100%;
  border: 2px solid #a0b9e1;
  border-radius: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 8/768 * 100, 6px);
  writing-mode: vertical-rl;
  text-orientation: upright;
  -webkit-clip-path: polygon(25% 10%, 75% 10%, 75% 0, 100% 0, 100% 100%, 0 100%, 0 0, 25% 0);
  clip-path: polygon(25% 10%, 75% 10%, 75% 0, 100% 0, 100% 100%, 0 100%, 0 0, 25% 0)
}

.requirements-flow-item__inner sup {
  vertical-align: baseline
}

.requirements-flow-text {
  color: #3c64aa;
  text-align: center;
  line-height: 1.5
}

.requirements-note {
  margin-top: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 48/768 * 100, 36px)
}

.requirements-contact {
  position: relative;
  overflow: hidden;
  background: #fff;
  display: grid;
  border-radius: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 8/768 * 100, 6px);
  margin-top: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 100/768 * 100, 75px);
  padding: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 84/768 * 100, 63px) min(min(var(--vw, 1vw), var(--svh, 1vh)) * 32/768 * 100, 24px) min(min(var(--vw, 1vw), var(--svh, 1vh)) * 32/768 * 100, 24px);
  gap: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 32/768 * 100, 24px)
}

.requirements-contact__label {
  position: absolute;
  left: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 32/768 * 100, 24px);
  top: 0
}

.requirements-contact__label:before {
  margin-bottom: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 16/768 * 100, 12px);
  content: "";
  height: 3px;
  width: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 48/768 * 100, 36px);
  display: block;
  background: #ff5b38
}

.requirements-contact__head {
  font-size: clamp(1.1666666667rem, calc(1.4rem + (min(var(--vw, 1vw), var(--svh, 1vh)) * 100 - 384px) * .0364583333), 2.1rem)
}

.requirements-button-wrap {
  display: grid;
  margin-top: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 48/768 * 100, 36px);
  gap: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 32/768 * 100, 24px)
}

.requirements-button {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #ff5b38;
  width: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 408/768 * 100, 306px);
  margin: auto;
  padding: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 16/768 * 100, 12px) min(min(var(--vw, 1vw), var(--svh, 1vh)) * 56/768 * 100, 42px);
  border-radius: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 8/768 * 100, 6px);
  transition: background .5s cubic-bezier(.23, 1, .32, 1)
}

.requirements-button .arrow-icon {
  transition: background-color 1s cubic-bezier(.23, 1, .32, 1)
}

.requirements-button .arrow-icon__inner {
  transition: transform 1s cubic-bezier(.23, 1, .32, 1)
}

.requirements-button .arrow-icon__fig path {
  transition: fill .5s cubic-bezier(.23, 1, .32, 1)
}

.requirements-button__text {
  font-size: clamp(1rem, calc(1.2rem + (min(var(--vw, 1vw), var(--svh, 1vh)) * 100 - 384px) * .03125), 1.8rem);
  font-family: Noto Sans JP, sans-serif;
  font-style: normal;
  font-optical-sizing: auto;
  font-weight: 700;
  letter-spacing: .02em;
  color: #fff
}

.requirements-button__icon {
  transform: rotate(-45deg)
}

.requirements-button__icon .arrow-icon--large {
  width: min(min(var(--vw, 1vw), var(--svh, 1vh)) * 56/768 * 100, 42px)
}

.contact {
  margin-top: min(var(--vw, 1vw)* 120 / 1280* 100, 120px);
}

.card {
  background-color: hsla(0,0%,100%,.15);
  padding: 0 min(min(var(--vw,1vw),var(--svh,1vh)) * 32/768 * 100,24px) min(min(var(--vw,1vw),var(--svh,1vh)) * 40/768 * 100,30px);
  border: 1px solid #d5e2ef;
  border-radius: min(min(var(--vw,1vw),var(--svh,1vh)) * 8/768 * 100,6px);
  -webkit-backdrop-filter: blur(15px);
  backdrop-filter: blur(15px)
}

.card__head {
  font-size: clamp(1.1666666667rem,calc(1.4rem + (min(var(--vw, 1vw), var(--svh, 1vh)) * 100 - 384px) * .0364583333),2.1rem);
  font-family: Roboto,Noto Sans JP,Helvetica Neue,Arial,游ゴシック体,YuGothic,游ゴシック Medium,Yu Gothic Medium,游ゴシック,Yu Gothic,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  margin-top: min(min(var(--vw,1vw),var(--svh,1vh)) * 16/768 * 100,12px);
  font-weight: 500
}

.card__line {
  background: #036eb7;
  width: min(min(var(--vw,1vw),var(--svh,1vh)) * 44/768 * 100,33px);
  height: min(min(var(--vw,1vw),var(--svh,1vh)) * 6/768 * 100,4.5px)
}

.card__body {
  display: flex;
  margin-top: min(min(var(--vw,1vw),var(--svh,1vh)) * 24/768 * 100,18px)
}

.card__heading {
  font-size: clamp(1.1666666667rem,calc(1.4rem + (min(var(--vw, 1vw), var(--svh, 1vh)) * 100 - 384px) * .0364583333),2.1rem);
  font-family: Noto Sans JP,Helvetica Neue,Arial,游ゴシック体,YuGothic,游ゴシック,Yu Gothic,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;
  font-weight: 700;
  flex-shrink: 0;
  width: min(min(var(--vw,1vw),var(--svh,1vh)) * 132/768 * 100,99px);
  letter-spacing: .04em
}

.card__heading--contact {
  width: min(min(var(--vw,1vw),var(--svh,1vh)) * 232/768 * 100,174px)
}

.card__text {
  font-size: clamp(1rem,calc(1.2rem + (min(var(--vw, 1vw), var(--svh, 1vh)) * 100 - 384px) * .03125),1.8rem);
  line-height: 2;
  letter-spacing: .04em;
  white-space: pre-line
}

.card__text:before {
  margin-top: -0.5em
}

.card__text:after,.card__text:before {
  content: "";
  display: block;
  width: 0;
  height: 0
}

.card__text:after {
  margin-bottom: -0.5em
}

.card-list__item:before {
  content: "・"
}

.contact__sections {
  padding-top: 0;
}

.arrow-icon {
  width: min(min(var(--vw, 1vw), var(--svh, 1vh))* 48 / 768* 100, 36px);
}

.contact-sections__head {
  width: 100%;
  padding: 0;
}

@media screen and (min-width:960px) {
  .anim-fade-in {
    transform: translateY(calc(min(var(--vw, 1vw) * 40 / 1280 * 100, 50px) * (1 - var(--progress, 0))))
  }

  .page__body {
    gap: min(var(--vw, 1vw) * 120/1280 * 100, 150px)
  }

  .requirements-table {
    margin-top: min(var(--vw, 1vw)* 64 / 1280* 100, 80px);
  }

  .requirements-table-item {
    grid-template-columns: min(var(--vw, 1vw) * 176/1280 * 100, 220px) 1fr;
    padding: min(var(--vw, 1vw) * 40/1280 * 100, 50px) 0
  }

  .requirements-table-item-head {
    font-size: min(calc(1.6rem + 2 * (var(--vw, 1vw) * 100 - 1280px) / 320), 1.8rem)
  }

  .requirements-table-item-head:before {
    margin-top: -0.5em
  }

  .requirements-table-item-head:after {
    margin-bottom: -0.5em
  }

  .requirements-table-item-body__text {
    font-size: min(calc(1.4rem + 1.75 * (var(--vw, 1vw) * 100 - 1280px) / 320), 1.575rem)
  }

  .requirements-flow {
    gap: min(var(--vw, 1vw) * 32/1280 * 100, 40px)
  }

  .requirements-flow-item {
    border-radius: min(var(--vw, 1vw) * 8/1280 * 100, 10px);
    aspect-ratio: 144/128
  }

  .requirements-flow-item:last-child .requirements-flow-item__label {
    border: 2px solid #fff
  }

  .requirements-flow-item:not(:last-child):after {
    left: calc(100% + min(var(--vw, 1vw) * 6 / 1280 * 100, 7.5px));
    width: min(var(--vw, 1vw) * 20/1280 * 100, 25px)
  }

  .requirements-flow-item__label {
    line-height: 1;
    top: max(var(--vw, 1vw) * -28/1280 * 100, -35px);
    padding: 1em;
    width: min(var(--vw, 1vw) * 56/1280 * 100, 70px)
  }

  .flow-item-label__small {
    font-size: min(calc(1.2rem + 1.5 * (var(--vw, 1vw) * 100 - 1280px) / 320), 1.35rem)
  }

  .flow-item-label__num {
    font-size: min(calc(2rem + 2.5 * (var(--vw, 1vw) * 100 - 1280px) / 320), 2.25rem)
  }

  .requirements-flow-item__inner {
    padding: 0;
    justify-content: center;
    writing-mode: unset;
    text-orientation: unset;
    -webkit-clip-path: polygon(35% 10%, 65% 10%, 65% 0, 100% 0, 100% 100%, 0 100%, 0 0, 35% 0);
    clip-path: polygon(35% 10%, 65% 10%, 65% 0, 100% 0, 100% 100%, 0 100%, 0 0, 35% 0);
    border-radius: min(var(--vw, 1vw) * 8/1280 * 100, 10px);
    border: 3px solid #a0b9e1
  }

  .requirements-flow-item__inner sup {
    vertical-align: super
  }

  .requirements-note {
    margin-top: min(var(--vw, 1vw) * 48/1280 * 100, 60px)
  }

  .requirements-contact {
    gap: 0;
    border-radius: min(var(--vw, 1vw) * 8/1280 * 100, 10px);
    grid-template-columns: min(var(--vw, 1vw) * 236/1280 * 100, 295px) 1fr;
    padding: min(var(--vw, 1vw) * 48/1280 * 100, 60px) min(var(--vw, 1vw) * 24/1280 * 100, 30px);
    margin-top: min(var(--vw, 1vw) * 96/1280 * 100, 120px)
  }

  .requirements-contact__label {
    left: min(var(--vw, 1vw) * 24/1280 * 100, 30px)
  }

  .requirements-contact__label:before {
    height: 4px;
    width: min(var(--vw, 1vw) * 32/1280 * 100, 40px);
    margin-bottom: min(var(--vw, 1vw) * 8/1280 * 100, 10px)
  }

  .requirements-contact__head {
    font-size: min(calc(1.6rem + 2 * (var(--vw, 1vw) * 100 - 1280px) / 320), 1.8rem)
  }

  .requirements-contact__content .text {
    font-size: min(calc(1.4rem + 1.75 * (var(--vw, 1vw) * 100 - 1280px) / 320), 1.575rem)
  }

  .requirements-button-wrap {
    margin-top: min(var(--vw, 1vw) * 48/1280 * 100, 60px);
    gap: min(var(--vw, 1vw) * 32/1280 * 100, 40px);
    grid-template-columns: 1fr 1fr
  }

  .requirements-button {
    width: 100%;
    padding: min(var(--vw, 1vw) * 16/1280 * 100, 20px) min(var(--vw, 1vw) * 56/1280 * 100, 70px);
    border-radius: min(var(--vw, 1vw) * 8/1280 * 100, 10px)
  }

  .requirements-button__text {
    font-size: min(calc(2.4rem + 3 * (var(--vw, 1vw) * 100 - 1280px) / 320), 2.7rem)
  }

  .requirements-button__icon .arrow-icon--large {
    width: min(var(--vw, 1vw) * 56/1280 * 100, 70px)
  }

  .card {
    width: 100%;
    padding: 0 min(var(--vw,1vw) * 24/1280 * 100,30px) min(var(--vw,1vw) * 40/1280 * 100,50px);
    border-radius: min(var(--vw,1vw) * 8/1280 * 100,10px)
  }

  .card__head {
      font-size: min(calc(2rem + 2.5 * (var(--vw, 1vw) * 100 - 1280px) / 320),2.25rem);
      margin-top: min(var(--vw,1vw) * 8/1280 * 100,10px)
  }

  .card__line {
      width: min(var(--vw,1vw) * 32/1280 * 100,40px);
      height: min(var(--vw,1vw) * 4/1280 * 100,5px)
  }

  .card__body {
      margin-top: min(var(--vw,1vw) * 12/1280 * 100,15px)
  }

  .card__heading {
      font-size: min(calc(2rem + 2.5 * (var(--vw, 1vw) * 100 - 1280px) / 320),2.25rem);
      width: min(var(--vw,1vw) * 94/1280 * 100,117.5px)
  }

  .card__heading--contact {
      font-size: min(calc(1.6rem + 2 * (var(--vw, 1vw) * 100 - 1280px) / 320),1.8rem);
      width: min(var(--vw,1vw) * 152/1280 * 100,190px)
  }

  .card__text {
      font-size: min(calc(1.4rem + 1.75 * (var(--vw, 1vw) * 100 - 1280px) / 320),1.575rem);
      line-height: 2.2857142857
  }

  .card__text:before {
      margin-top: -0.64286em
  }

  .card__text:after {
      margin-bottom: -0.64286em
  }

}

@media(any-hover:hover) {
  .requirements-button:hover {
    background: #00196e
  }

  .requirements-button:hover .arrow-icon {
    background: #fff
  }

  .requirements-button:hover .arrow-icon__inner {
    transform: translateX(100%)
  }

  .requirements-button:hover .arrow-icon__fig path {
    fill: #00196e
  }
}