.bold {
  font-weight: bold;
}

.is-visible-sd {
  display: none;
}
@media only screen and (max-width: 640px) {
  .is-visible-sd {
    display: block;
  }
}

@media only screen and (max-width: 640px) {
  .is-hidden-sd {
    display: none;
  }
}

body {
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
  font-size: 14px;
  line-height: 1.74;
}
@media only screen and (max-width: 640px) {
  body {
    font-size: 14px;
    font-size: 3.7333333333vw;
  }
}

img {
  max-width: 100%;
  vertical-align: middle;
}

sup {
  font-size: 70%;
}

.container {
  margin: 0 auto;
  max-width: 950px;
}
@media only screen and (max-width: 1024px) {
  .container {
    max-width: 100%;
    padding: 0 20px;
  }
}
@media only screen and (max-width: 640px) {
  .container {
    padding: 0 4.2666666667vw;
  }
}

.btn {
  display: block;
  width: 340px;
  text-align: center;
  padding: 14px;
  color: #000;
  font-size: 14px;
  font-weight: 700;
  background: #fff;
  border: 1px solid #082960;
  border-radius: 6px;
}
@media only screen and (max-width: 640px) {
  .btn {
    width: 53.3333333333vw;
    padding: 3.7333333333vw;
    font-size: 3.7333333333vw;
  }
}
.btn__anchor {
  display: inline-block;
  width: 22.9166666667vw;
  text-align: center;
  font-weight: 700;
  padding: 14px;
  font-size: 1.0416666667vw;
  color: #fff;
  background: url(../img/icon_arrow.svg) no-repeat 95% center, -webkit-gradient(linear, left top, right top, from(#CA0003), to(#F93231));
  background: url(../img/icon_arrow.svg) no-repeat 95% center, linear-gradient(to right, #CA0003, #F93231);
  border-radius: 6px;
}
@media only screen and (max-width: 640px) {
  .btn__anchor {
    width: 51.2vw;
    padding: 3.7333333333vw;
    font-size: 3.7333333333vw;
  }
}
.btn__blank {
  display: block;
  margin: 20px auto 0;
  width: 200px;
  text-align: center;
  padding: 14px;
  color: #000000;
  font-size: 14px;
  background: #DDDDDD url(../img/icon_blank.png) no-repeat 95% center;
  background-size: 12px;
  border-radius: 6px;
}
@media only screen and (max-width: 640px) {
  .btn__blank {
    width: 53.3333333333vw;
    padding: 3.7333333333vw;
    font-size: 3.7333333333vw;
  }
}
.btn__red {
  display: block;
  width: 400px;
  text-align: center;
  padding: 20px;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  background: #c00 url(../img/icon_arrow_right.svg) no-repeat 95% center;
  border-radius: 6px;
}
@media only screen and (max-width: 640px) {
  .btn__red {
    width: 100%;
    padding: 3.7333333333vw;
    font-size: 4.2666666667vw;
  }
}
.btn.is-coming {
  font-size: 22px;
  width: 400px;
  color: #fff;
  background: #ABABAB;
  border: none;
  pointer-events: none;
}
@media only screen and (max-width: 640px) {
  .btn.is-coming {
    width: 100%;
    font-size: 4.2666666667vw;
  }
}

.note {
  margin-top: 10px;
}
@media only screen and (max-width: 640px) {
  .note {
    font-size: 3.2vw;
  }
}

header {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
}

.header__logo {
  margin: 20px 0 0 20px;
}
@media only screen and (max-width: 640px) {
  .header__logo {
    margin: 2.6666666667vw 2.6666666667vw 0;
  }
}
.header__logo img {
  width: 180px;
  height: auto;
}
@media only screen and (max-width: 640px) {
  .header__logo img {
    width: 26.6666666667vw;
  }
}

/************************
MV
*************************/
.mv {
  position: relative;
  padding: 5.1875vw 0 3.75vw;
  background: transparent;
}
@media only screen and (max-width: 640px) {
  .mv {
    padding: 53.8666666667vw 0 5.3333333333vw;
    background: url(../img/mv_bg_sp.jpg) no-repeat top center;
    background-size: cover;
  }
}

.mv__bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
}
@media only screen and (max-width: 640px) {
  .mv__bg {
    display: none;
  }
}

.mv__head {
  text-align: center;
}
.mv__head img {
  width: 53.8125vw;
}
@media only screen and (max-width: 640px) {
  .mv__head img {
    width: 100%;
  }
}

.mv__lead {
  text-align: center;
  margin-top: 40px;
  font-size: 18px;
  line-height: 1.77778;
}
@media only screen and (max-width: 640px) {
  .mv__lead {
    margin-top: 3.7333333333vw;
    font-size: 3.2vw;
  }
}

.mv__cardlist {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 11px;
  margin-top: 40px;
}
@media only screen and (max-width: 640px) {
  .mv__cardlist {
    margin-top: 2.6666666667vw;
  }
}
.mv__cardlist li {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 15.3125%;
          flex: 0 1 15.3125%;
}

/************************
anchor
************************/
.anchor_link__area {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 10px 0;
  background: rgba(94, 198, 64, 0.8);
}
@media only screen and (max-width: 640px) {
  .anchor_link__area {
    padding: 2.6666666667vw 0;
  }
}

.anchor_link__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0 10px;
}
.anchor_link__list li {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 calc(33.3333333333% - 10px);
          flex: 0 1 calc(33.3333333333% - 10px);
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  background: #47AB2A;
  border-radius: 5px;
}
@media only screen and (max-width: 640px) {
  .anchor_link__list li {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 33.3333333333%;
            flex: 0 1 33.3333333333%;
  }
}
.anchor_link__list li::after {
  position: absolute;
  bottom: 10px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  content: "";
  display: inline-block;
  width: 20px;
  height: 12px;
  background: url(../img/icon_arrow_down.svg) no-repeat center center;
  background-size: contain;
}
@media only screen and (max-width: 640px) {
  .anchor_link__list li::after {
    width: 3.7333333333vw;
    height: 2.1333333333vw;
    bottom: 10px;
  }
}
.anchor_link__list li a {
  display: block;
  padding: 26px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-align: center;
}
@media only screen and (max-width: 640px) {
  .anchor_link__list li a {
    padding: 5.3333333333vw 1.3333333333vw;
    font-size: 2.4vw;
  }
}

/************************
info
*************************/
.info {
  padding: 50px 0 110px;
  background: -webkit-gradient(linear, left top, right top, from(#FFECCD), to(#D6FFE0));
  background: linear-gradient(90deg, #FFECCD 0%, #D6FFE0 100%);
}
@media only screen and (max-width: 640px) {
  .info {
    padding: 8vw 0 16vw;
  }
}

.info__box {
  background: #fff;
  border-radius: 20px;
}
.info__box .btn__red {
  margin: 36px auto 0;
}
.info__box .btn.is-coming {
  margin: 30px auto 0;
}
.info__box:not(:first-of-type) {
  margin-top: 50px;
}

.info__head {
  padding: 24px;
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  color: #fff;
  border-radius: 20px 20px 0px 0px;
  background: -webkit-gradient(linear, left top, right top, from(#FEAC5E), color-stop(50%, #C779D0), to(#4BC0C8));
  background: linear-gradient(90deg, #FEAC5E 0%, #C779D0 50%, #4BC0C8 100%);
}
@media only screen and (max-width: 640px) {
  .info__head {
    padding: 5.3333333333vw;
    font-size: 5.3333333333vw;
  }
}

.info__box__inner {
  padding: 40px 20px 50px;
}
@media only screen and (max-width: 640px) {
  .info__box__inner {
    padding: 7.4666666667vw 2.6666666667vw 13.3333333333vw;
  }
}

.info__intro {
  text-align: center;
  font-size: 28px;
}
@media only screen and (max-width: 640px) {
  .info__intro {
    font-size: 5.3333333333vw;
  }
}

.info__present {
  max-width: 720px;
  margin: 26px auto 0;
  padding: 34px;
  text-align: center;
  background: #FFECFC;
  border-radius: 10px;
}
@media only screen and (max-width: 768px) {
  .info__present {
    max-width: 100%;
  }
}
@media only screen and (max-width: 640px) {
  .info__present {
    margin: 6.9333333333vw auto 0;
    padding: 8vw 2.6666666667vw;
  }
}

.info__present__txt {
  font-size: 34px;
  font-weight: 900;
}
@media only screen and (max-width: 640px) {
  .info__present__txt {
    font-size: 6.9333333333vw;
  }
}
.info__present__txt .num {
  font-size: 44px;
}
@media only screen and (max-width: 640px) {
  .info__present__txt .num {
    font-size: 9.6vw;
  }
}
.info__present__txt .small {
  font-size: 20px;
}
@media only screen and (max-width: 640px) {
  .info__present__txt .small {
    font-size: 4.8vw;
  }
}

.info__date {
  margin-top: 36px;
  text-align: center;
  font-size: 18px;
}
@media only screen and (max-width: 640px) {
  .info__date {
    margin-top: 8vw;
    font-size: 3.7333333333vw;
  }
}
.info__date span {
  color: #F17930;
}

.info__cp {
  margin-top: 36px;
  padding: 30px 55px;
  background: #F5F5F5;
  border-radius: 10px;
}
@media only screen and (max-width: 640px) {
  .info__cp {
    margin-top: 8vw;
    padding: 8vw 2.6666666667vw;
  }
}

.info__cp__head {
  margin: 0 auto;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
}
@media only screen and (max-width: 640px) {
  .info__cp__head {
    font-size: 4.2666666667vw;
  }
}

.info__cp__head {
  --r: .8em; /* control the ribbon shape */
  padding-inline: calc(var(--r) + 1em);
  line-height: 2;
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--r)) 50%, 100% 100%, 0 100%, var(--r) 50%);
  background: #F17930;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.info__cp__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 20px;
  padding: 13px 0;
  border-bottom: 1px solid #D5D5D5;
}
@media only screen and (max-width: 640px) {
  .info__cp__item {
    display: block;
    gap: 0;
    padding: 8vw 0;
  }
}
.info__cp__item:last-of-type {
  border: none;
}

.info__cp__item--cardface {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 20%;
          flex: 0 1 20%;
  text-align: center;
}
@media only screen and (max-width: 640px) {
  .info__cp__item--cardface img {
    width: 49.6vw;
  }
}

.info__cp__item__cardname {
  font-weight: 700;
}
@media only screen and (max-width: 640px) {
  .info__cp__item__cardname {
    font-size: 3.7333333333vw;
  }
}

.info__cp__item__txt {
  font-size: 22px;
  font-weight: 900;
}
@media only screen and (max-width: 640px) {
  .info__cp__item__txt {
    font-size: 5.3333333333vw;
    text-align: center;
  }
}
.info__cp__item__txt .num {
  font-size: 34px;
}
@media only screen and (max-width: 640px) {
  .info__cp__item__txt .num {
    font-size: 5.8666666667vw;
  }
}

.info_change {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 10px;
  margin-top: 40px;
}
@media only screen and (max-width: 640px) {
  .info_change {
    margin-top: 9.6vw;
  }
}

.info_change__cardface {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 19.4736842105%;
          flex: 0 1 19.4736842105%;
}
@media only screen and (max-width: 640px) {
  .info_change__cardface {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 23.7333333333%;
            flex: 0 1 23.7333333333%;
  }
}

@media only screen and (max-width: 640px) {
  .info_change__arrow {
    text-align: center;
  }
  .info_change__arrow img {
    width: 4.8vw;
  }
}

.info__table {
  width: 100%;
}
.info__table th, .info__table td {
  padding: 12px;
  font-size: 18px;
  border: 1px solid #F17930;
}
@media only screen and (max-width: 640px) {
  .info__table th, .info__table td {
    font-size: 3.7333333333vw;
  }
}
.info__table th {
  color: #fff;
  width: 50%;
  background: #F17930;
}
.info__table th:first-of-type {
  border-right: 1px solid #fff;
}
.info__table th:last-of-type {
  text-align: center;
}
.info__table td {
  background: #fff;
}
.info__table td:nth-of-type(2n) {
  text-align: center;
}

.info_present__list {
  display: -ms-grid;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(208px, 1fr));
  gap: 18px;
  margin-top: 26px;
}
@media only screen and (max-width: 640px) {
  .info_present__list {
    -ms-grid-columns: 49% 1.6vw 49%;
    grid-template-columns: repeat(2, 49%);
    margin-top: 6.9333333333vw;
    gap: 1.6vw;
  }
}
.info_present__list li {
  display: -ms-grid;
  display: grid;
  -ms-grid-rows: subgrid;
  grid-template-rows: subgrid;
  -ms-grid-row-span: 4;
  grid-row: span 4;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  row-gap: 10px;
  text-align: center;
  padding-bottom: 30px;
  color: #fff;
  font-weight: 700;
  background: #F17930;
  border: 1px solid #F17930;
  border-radius: 10px;
}
@media only screen and (max-width: 640px) {
  .info_present__list li {
    padding-bottom: 5.3333333333vw;
  }
}
.info_present__list .present__list__head {
  font-size: 26px;
  line-height: 1;
}
@media only screen and (max-width: 640px) {
  .info_present__list .present__list__head {
    font-size: 6.9333333333vw;
  }
}
.info_present__list .present__list__head span {
  font-size: 46px;
}
@media only screen and (max-width: 640px) {
  .info_present__list .present__list__head span {
    font-size: 12.2666666667vw;
  }
}
.info_present__list .present__list__num {
  font-size: 20px;
}
@media only screen and (max-width: 640px) {
  .info_present__list .present__list__num {
    font-size: 5.3333333333vw;
  }
}
.info_present__list .present__list__num span {
  font-size: 30px;
}
@media only screen and (max-width: 640px) {
  .info_present__list .present__list__num span {
    font-size: 8vw;
  }
}

/************************
footer
*************************/
.footer {
  padding: 14px;
  background: #000000;
}

.copyright {
  text-align: center;
  font-size: 10px;
  color: #7E7E7E;
}
@media only screen and (max-width: 640px) {
  .copyright {
    font-size: 2.6666666667vw;
  }
}