@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
:root {
  /* color */
  --base-color: #101932;
  --main-color: #fff;
  --accent-color: #03b8e5;
  --accent2-color: #0296bb;
}

/* -- FOUNDATION -- */
html {
  font-size: clamp(0px, 0.9090909091vw, 10px);
}

body {
  position: relative;
  width: 100%;
  font-family: sans-serif;
  font-size: 1.75rem;
  font-weight: 400;
  font-style: normal;
  font-feature-settings: "palt";
  color: var(--main-color);
  line-height: 1;
  background: var(--base-color);
}

@media (max-width:768px) {
  body {
    font-size: 1.4rem;
  }
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  text-decoration: none;
  color: var(--main-color);
  transition: opacity 0.2s;
}

@media (min-width:769px) {
  a:hover {
    opacity: 0.7;
  }
}
/* -- LAYOUT -- */
.header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.header_tfm {
  position: absolute;
  top: 2.5rem;
  left: 3.7rem;
  width: 18.8rem;
}
@media (max-width:768px) {
  .header_tfm {
    top: 3.3333vw;
    left: 2.8vw;
    width: 25.0667vw;
  }
}

.about {
  position: relative;
  padding: 3rem 0 10.4rem;
  border-bottom: 1px solid #fff;
}
.about:before {
  position: absolute;
  bottom: 4px;
  display: block;
  width: 100%;
  height: 1px;
  background: #fff;
  pointer-events: none;
  content: "";
}
@media (max-width:768px) {
  .about {
    padding: 0 0 8.8vw;
  }
  .about:before {
    bottom: 0.5333vw;
  }
}

.about_txt-01 {
  font-size: 3rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.4333;
  text-shadow: 0 0 1.8rem rgba(255, 255, 255, 0.47), 0 0 1.8rem rgba(255, 255, 255, 0.35);
}
@media (max-width:768px) {
  .about_txt-01 {
    font-size: 5.4787vw;
    line-height: 1.3385;
    text-shadow: 0 0 2.4vw rgba(255, 255, 255, 0.47), 0 0 2.4vw rgba(255, 255, 255, 0.35);
  }
}

.about_txt-02 {
  margin-top: 1.5rem;
  color: var(--accent-color);
  font-size: 3.7rem;
  text-align: center;
}
@media (max-width:768px) {
  .about_txt-02 {
    margin-top: 5.8667vw;
    font-size: 6.7707vw;
    line-height: 1.2926;
  }
}

.about_box {
  width: 100rem;
  margin: 6.5rem auto 0;
  padding: 2.5rem 3rem;
  font-size: 1.8rem;
  box-sizing: border-box;
  border: 1px solid #fff;
}
@media (max-width:768px) {
  .about_box {
    width: 90.5333vw;
    margin: 7.3333vw auto 0;
    padding: 3.7333vw 2.9333vw;
    font-size: 2.4vw;
    line-height: 1.5833;
  }
}

.about_boxHeading {
  display: flex;
  justify-content: center;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  height: 2.6rem;
  padding: 0 1.5rem;
  background: var(--accent2-color);
  border-radius: 1.3rem;
}
@media (max-width:768px) {
  .about_boxHeading {
    height: 3.4667vw;
    padding: 0 2vw;
    border-radius: 1.7333vw;
  }
}

.about_boxTxt {
  margin: 1.5rem auto 0;
  line-height: 1.6667;
}
@media (max-width:768px) {
  .about_boxTxt {
    margin: 3.2vw auto 0;
    font-size: 3.2vw;
    line-height: 1.5833;
  }
}

.contents {
  position: relative;
  padding: 7.7rem 0 10.4rem;
  border-bottom: 1px solid #fff;
}
.contents:before {
  position: absolute;
  bottom: 4px;
  display: block;
  width: 100%;
  height: 1px;
  background: #fff;
  pointer-events: none;
  content: "";
}
@media (max-width:768px) {
  .contents {
    padding: 11.3333vw 0 12.9333vw;
  }
  .contents:before {
    bottom: 0.5333vw;
  }
}

.contents_heading {
  color: var(--accent-color);
  font-size: 3.6rem;
  line-height: 1.2222;
  text-align: center;
}
@media (max-width:768px) {
  .contents_heading {
    font-size: 6.7707vw;
    line-height: 1.1816;
  }
}

.contents_txt {
  max-width: 100rem;
  margin: 7rem auto 0;
  line-height: 1.7143;
}
@media (max-width:768px) {
  .contents_txt {
    width: 84.8vw;
    margin: 9.2vw auto 0;
    font-size: 3.7333vw;
    line-height: 1.5714;
  }
}

.contents_box {
  width: 100rem;
  margin: 6.5rem auto 0;
  padding: 2.5rem 2.3rem;
  font-size: 1.8rem;
  background: #0e2b47;
  box-sizing: border-box;
}
@media (max-width:768px) {
  .contents_box {
    width: 84.8vw;
    padding: 5.4667vw 2.8vw;
    background: #0b4e6e;
  }
}

.contents_boxHeading {
  display: flex;
  justify-content: start;
  align-items: center;
  gap: 0.7rem;
}
.contents_boxHeading > .head {
  display: flex;
  justify-content: center;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  height: 2.6rem;
  padding: 0 1.7rem;
  font-weight: 700;
  background: #0cb3de;
  border-radius: 1.3rem;
}
@media (max-width:768px) {
  .contents_boxHeading {
    gap: 2.5333vw;
    font-size: 3.5907vw;
  }
  .contents_boxHeading > .head {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 4.8vw;
    padding: 0 3.3333vw;
    font-size: 3.5907vw;
    border-radius: 2.4vw;
  }
}

.contents_guests {
  margin: 1.5rem auto 0;
  font-weight: bold;
  line-height: 1.6667;
}
@media (max-width:768px) {
  .contents_guests {
    margin: 3.8667vw auto 0;
    font-size: 2.9787vw;
    line-height: 1.7395;
  }
}

.bonus {
  position: relative;
  padding: 7.6rem 0 8.9rem;
  border-bottom: 1px solid #fff;
}
.bonus:before {
  position: absolute;
  bottom: 4px;
  display: block;
  width: 100%;
  height: 1px;
  background: #fff;
  pointer-events: none;
  content: "";
}
@media (max-width:768px) {
  .bonus {
    padding: 10.4vw 0 7.0667vw;
  }
  .bonus:before {
    bottom: 0.5333vw;
  }
}

.bonus_heading {
  color: var(--accent-color);
  font-size: 3.6rem;
  text-align: center;
}
@media (max-width:768px) {
  .bonus_heading {
    font-size: 6.7707vw;
  }
}

.bonus_container {
  display: flex;
  justify-content: space-between;
  align-items: start;
  flex-flow: wrap;
  row-gap: 12.5rem;
  width: 100rem;
  margin: 6.8rem auto 0;
}
@media (max-width:768px) {
  .bonus_container {
    justify-content: start;
    align-items: center;
    flex-flow: column nowrap;
    -moz-column-gap: 10.8vw;
         column-gap: 10.8vw;
    width: 93.3333vw;
    margin: 11.2vw auto 0;
  }
}

.bonus_subHeading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 2.4rem;
  font-size: 3rem;
  font-weight: 700;
  border-bottom: 0.6rem solid #fff;
}
@media (max-width:768px) {
  .bonus_subHeading {
    padding-bottom: 2.9333vw;
    font-size: 4.4vw;
    border-bottom: 0.8vw solid #fff;
  }
}

.bonus_subTxt {
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
}
@media (max-width:768px) {
  .bonus_subTxt {
    margin-top: 2.8vw;
    font-size: 3.3333vw;
  }
}

.bonus_sticker {
  width: 100%;
}

.bonus_stickerContainer {
  display: flex;
  justify-content: space-between;
  align-items: start;
  margin: 4.8rem auto 0;
}
@media (max-width:768px) {
  .bonus_stickerContainer {
    justify-content: space-around;
    flex-flow: wrap;
    row-gap: 8.1333vw;
    margin: 6.6667vw auto 0;
  }
}

.bonus_stickerBox {
  display: flex;
  align-items: center;
  justify-content: start;
  flex-flow: column;
  width: 33%;
}
@media (max-width:768px) {
  .bonus_stickerBox {
    width: 50%;
  }
}

.bonus_stickerColor {
  font-weight: 700;
}
@media (max-width:768px) {
  .bonus_stickerColor {
    font-size: 2.5613vw;
  }
}

.bonus_stickerImg {
  display: block;
  width: 22.4rem;
  margin: 1.4rem auto 0;
}
@media (max-width:768px) {
  .bonus_stickerImg {
    width: 29.8667vw;
    margin: 2.4vw auto 0;
  }
}

.bonus_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 27rem;
  height: 4.4rem;
  margin: 2.5rem auto 0;
  padding-right: 1rem;
  font-size: 1.8rem;
  font-weight: 700;
  font-feature-settings: nomal;
  border-radius: 2.2rem;
  background-image: url(../img/arrow.png);
  background-position: right 1.3rem center;
  background-size: 1.8rem;
  background-repeat: no-repeat;
  border: 1px solid #fff;
}
@media (max-width:768px) {
  .bonus_btn {
    width: 36vw;
    height: 6.4vw;
    margin: 2.8vw auto 0;
    padding-right: 3vw;
    font-size: 2.4493vw;
    background-position: right 2.1333vw center;
    background-size: 2.4vw;
    border-radius: 3.2vw;
  }
}
.bonus_btn.-tfm {
  font-size: 1.5rem;
}
@media (max-width:768px) {
  .bonus_btn.-tfm {
    font-size: 2.2vw;
  }
}

.bonus_card {
  width: 46rem;
}
@media (max-width:768px) {
  .bonus_card {
    width: 100%;
  }
}

.bonus_cardImg {
  display: block;
  width: 26rem;
  margin: 2.4rem auto 0;
}
@media (max-width:768px) {
  .bonus_cardImg {
    width: 37.9436vw;
    margin: 2.9333vw auto 0;
  }
}

.bonus_cover {
  width: 46rem;
}
@media (max-width:768px) {
  .bonus_cover {
    width: 100%;
  }
}

.bonus_coverTxt {
  margin: 2rem auto 0;
  font-size: 1.9rem;
  line-height: 1.5;
}
.bonus_coverTxt > a.link {
  font-weight: bold;
  text-decoration: underline;
}
@media (max-width:768px) {
  .bonus_coverTxt {
    margin: 4.4vw auto 0;
    font-size: 3.3333vw;
    line-height: 1.44;
  }
}

.bonus_coverNote {
  margin-top: 2rem;
  font-size: 1.376rem;
  line-height: 1.4535;
}
@media (max-width:768px) {
  .bonus_coverNote {
    margin-top: 2.6667vw;
    font-size: 2.4053vw;
    line-height: 1.8753;
  }
}

.bonus_coverImg {
  display: block;
  width: 45.5rem;
  margin: 1rem auto 0;
}
@media (max-width:768px) {
  .bonus_coverImg {
    width: 68.1333vw;
    margin: 1.5vw auto 0;
  }
}

.bonus_coverBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 45.3rem;
  height: 4.4rem;
  margin: 2.5rem auto 0;
  color: #000033;
  font-size: 2.2rem;
  font-weight: 700;
  font-feature-settings: nomal;
  border-radius: 2.2rem;
  background-color: #fff;
  background-image: url(../img/arrow_black.png);
  background-position: right 1.3rem center;
  background-size: 1.8rem;
  background-repeat: no-repeat;
}
@media (max-width:768px) {
  .bonus_coverBtn {
    width: 80.2613vw;
    height: 8.152vw;
    margin: 4.6667vw auto 0;
    font-size: 3.8987vw;
    background-size: 3.1893vw;
    background-position: right 3.3333vw center;
    border-radius: 4.076vw;
  }
}

.bonus_note {
  margin: 1.7rem auto 0;
  color: #ff0000;
  font-size: 1.6rem;
  text-align: center;
}
@media (max-width:768px) {
  .bonus_note {
    margin: 3.0667vw auto 0;
    font-size: 2.5133vw;
  }
}

.bonus_bnr {
  display: block;
  width: 95.1rem;
  margin: 9.1rem auto 0;
}
.bonus_bnr:hover {
  opacity: 0.85 !important;
}
@media (max-width:768px) {
  .bonus_bnr {
    width: 79.8667vw;
    margin: 9.7333vw auto 0;
  }
}

.program {
  padding: 5rem 0 5.6rem;
}
@media (max-width:768px) {
  .program {
    padding: 6.8vw 0 7.0667vw;
  }
}

.program_logo {
  display: block;
  width: 21.5rem;
  margin: 0 auto;
}
@media (max-width:768px) {
  .program_logo {
    width: 38.6667vw;
  }
}

@media (max-width:768px) {
  .footer_common {
    border: none;
  }
}

.footer_common-sp {
  display: none;
}

@media (max-width: 1000px) {
  .footer_common-pc {
    display: none;
  }
  .footer_common-sp {
    display: block;
  }
}
.footer_bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 3.3rem 2rem 4.8rem 3.4rem;
}
@media (max-width:768px) {
  .footer_bottom {
    flex-flow: column;
    padding: 7.8667vw;
  }
}

.footer_left {
  display: flex;
  justify-content: start;
  align-items: center;
  gap: 2.6rem;
}
@media (max-width:768px) {
  .footer_left {
    gap: 4.4vw;
  }
}

.footer_tfm {
  display: block;
  width: 14.9rem;
}
@media (max-width:768px) {
  .footer_tfm {
    width: 24.8vw;
  }
}

.footer_sns {
  display: flex;
  justify-content: start;
  align-items: center;
  gap: 1.2rem;
}
.footer_sns > a {
  display: block;
  width: 3.8rem;
}
@media (max-width:768px) {
  .footer_sns {
    gap: 2.1333vw;
  }
  .footer_sns > a {
    width: 6.2667vw;
  }
}

.footer_copy {
  font-size: 1.2rem;
}
@media (max-width:768px) {
  .footer_copy {
    margin-top: 6.2667vw;
    font-size: 1.8667vw;
  }
}

/* -- UTILITY -- */
.u-fadeIn, .u-fadeInUp {
  opacity: 0;
  will-change: opacity, transform, filter;
}

/* 共通フッター用 もしくはブレイクポイントごとの表示指定 */
.pc {
  display: block;
}

.sp {
  display: none;
}

@media (max-width:768px) {
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
}/*# sourceMappingURL=style.css.map */