@charset "UTF-8";
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video,
input, select, textarea {
  box-sizing: border-box;
}

html {
  /* Sets a specific default `font-size` for user with `rem` type scales.*/
  font-size: 100%;
  /* Changes the default tap highlight to be completely transparent in iOS.*/
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  color: #4e0104;
  line-height: 1.6;
  background: url(../img/bg_body.png) center center/auto repeat;
  font-family: "Noto Sans JP", 游ゴシック体, "Yu Gothic", YuGothic, "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", Avenir, "Helvetica Neue", Helvetica, Arial, Verdana, Roboto, sans-serif;
  font-weight: 400;
}

img {
  vertical-align: bottom;
}

strong {
  font-weight: bold;
}

img {
  max-width: 100%;
  height: auto;
}

a:hover {
  opacity: .8;
}

.contain {
  width: 1100px;
  margin: 0 auto;
  min-width: 1100px;
}

.sp {
  display: none;
}

.logo {
  margin: 15px 0 0 15px;
  position: relative;
  z-index: 4;
}

.mainttl {
  text-align: center;
  margin-top: -18px;
  position: relative;
  z-index: 3;
}

#mainVisual {
  background-image: url(../img/bg_key.png?20191011), url(../img/line_shikaku.png), url(../img/line_shikaku.png);
  background-position: center 46px, center top, center bottom;
  background-size: auto,auto,auto;
  background-repeat: no-repeat,no-repeat,no-repeat;
  height: 914px;
  position: relative;
  z-index: 2;
  text-align: center;
  margin-top: -38px;
}

#mainVisual .contain {
  position: relative;
}

.mainVisual_inner {
  position: relative;
}

.mainVisual_left {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.mainVisual_left img {
  margin-left: -28px;
  max-width: inherit;
}

.mainVisual_right {
  position: absolute;
  top: 0;
  right: 0;
}

.mainVisual_right img {
  margin-right: -41px;
  max-width: inherit;
}

.mainVisual_counter {
  background: url(../img/bg_counter.png) center 132px/auto no-repeat;
  width: 560px;
  height: calc(268px + 132px);
  margin: 0 auto 50px;
  position: relative;
}

.mainVisual_total {
  text-align: center;
  padding-top: 82px;
}

.mainVisual_num {
  font-family: "Oswald", sans-serif;
  font-size: 11.875rem;
  color: #fff;
  line-height: 1.2;
}

.mainVisual_num span {
  width: 102px;
  margin: 0 24px;
  display: inline-block;
}

.mainVisual_line {
  position: absolute;
  left: 0;
  right: 0;
  top: 244px;
}

.mainVisual_kai {
  position: absolute;
  right: 28px;
  bottom: -8px;
  z-index: 2;
}

.mainVisual_card {
  position: absolute;
  bottom: 134px;
  right: 0;
  margin-right: -29px;
}

.mainVisual_rank {
  margin-bottom: 10px;
}

.mainVisual_copy {
  margin-bottom: 4px;
}

.mainVisual_text {
  position: relative;
  z-index: 2;
  margin-left: -85px;
}

footer {
  background: url(../img/bg_footer.png) center bottom/auto no-repeat;
  font-size: 0.6875rem;
  text-align: center;
  padding: 164px 0 44px;
}

.footer_link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  margin-bottom: 20px;
}

.footer_link img {
  vertical-align: middle;
}

.footer_link li + li {
  margin-left: 15px;
}

.wrapper {
  position: relative;
  min-width: 1100px;
  overflow: hidden;
}

.hanabi {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
  text-align: center;
}

.hanabi img {
  max-width: inherit;
  margin-left: -110px;
  margin-right: -110px;
}

.present {
  margin: -10px 0 48px;
}

.present .contain {
  position: relative;
  z-index: 2;
}

.present_ttl {
  text-align: center;
  margin-top: -4px;
  margin-bottom: 48px;
}

.present_chara {
  position: absolute;
  top: -97px;
  left: 0;
  margin-left: -38px;
}

.present_obo img {
  margin-right: -39px;
  max-width: inherit;
}

.schedule {
  position: relative;
  z-index: 2;
}

.schedule_ttl {
  text-align: center;
  margin-top: -4px;
  margin-bottom: 48px;
}

.schedule_inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.schedule_box {
  width: 540px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  position: relative;
  background: #fff68d;
  border: 2px solid #ffcc00;
  border-radius: 20px;
  margin-bottom: 50px;
}

.schedule_box.end {
  background: rgba(54, 38, 0, 0.45);
  border: 2px solid rgba(54, 38, 0, 0);
}

.schedule_box.end .schedule_text {
  bottom: 132px;
}

.schedule_box.end .schedule_times dd {
  background: #fff;
  border: 2px solid #ffd200;
  color: #ff0000;
}

.schedule_box.jissen {
  background: url(../img/bg_schedule_jissen.png) repeat;
  border: 2px solid #7bcdff;
}

.schedule_box.jissen .schedule_times dd {
  background: #fff;
  border: 2px solid #ffd200;
  color: #ff0000;
}

.schedule_box-info {
  width: 252px;
}

.schedule_box-info + .schedule_box-info {
  margin-left: 10px;
}

.schedule_person {
  margin-bottom: 5px;
  margin-top: -13px;
}

.schedule_times {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.schedule_times dt img {
  vertical-align: middle;
}

.schedule_times dd {
  background: #f0e676;
  border: 2px solid #f0e676;
  border-radius: 6px;
  font-family: "Oswald", sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  width: 100px;
  height: 28px;
  line-height: 24px;
  text-align: center;
  color: #e4aa3a;
  margin-bottom: 3px;
  margin-left: 3px;
}

.schedule_times dd small {
  font-size: .7777em;
}

.schedule_btn {
  text-align: center;
  margin-bottom: 30px;
}

.schedule_text {
  position: absolute;
  bottom: -22px;
  left: 0;
  right: 0;
  text-align: center;
}

.campaign {
  margin-bottom: -120px;
}

.campaign .contain {
  position: relative;
}

.campaign_chara-left {
  position: absolute;
  left: -4px;
  bottom: -17px;
  z-index: 3;
}

.campaign_chara-right {
  position: absolute;
  top: 10px;
  right: 0;
  margin-right: -78px;
  z-index: 1;
}

.campaign_ttl {
  text-align: center;
  margin-bottom: -24px;
  position: relative;
  z-index: 3;
}

.campaign_inner {
  background: url(../img/bg_campaign.png) no-repeat;
  width: 900px;
  height: 333px;
  margin: 0 auto;
  font-size: 0.8125rem;
  text-shadow: 2px 2px 0 #ff7404, -2px -2px 0 #ff7404, -2px 2px 0 #ff7404, 2px -2px 0 #ff7404, 0px 2px 0 #ff7404,  0 -2px 0 #ff7404, -2px 0 0 #ff7404, 2px 0 0 #ff7404;
  color: #fff;
  padding: 30px 30px 20px;
  position: relative;
  z-index: 2;
}

.campaign_inner p, .campaign_inner dl {
  margin-bottom: 10px;
}

.campaign_inner ol {
  list-style: decimal;
  margin-left: 1em;
}

.campaign_inner li {
  margin-left: 1em;
}

.campaign_info {
  height: 283px;
  overflow-y: scroll;
}

/* デフォルト：1380px以上用（PC用）の記述 */
@media screen and (max-width: 1099px) {
  /* 1099px以下用（PC用）の記述 */
}

@media screen and (max-width: 768px) {
  /* 768px以下用（タブレット／スマートフォン用）の記述 */
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
  .wrapper {
    min-width: inherit;
  }
  .contain {
    width: 94%;
    min-width: inherit;
  }
  .hanabi {
    top: 315vw;
    width: calc(714/750*100%);
    margin: 0 auto;
  }
  .hanabi img {
    max-width: 100%;
  }
  .logo {
    width: calc(213/750*100%);
    margin: 0 3vw 0 auto;
    padding-top: 2.5vw;
  }
  .mainttl {
    width: calc(743/750*100%);
    margin: -3.5vw 0 0 auto;
  }
  #mainVisual {
    background-image: url(../img/bg_key_sp.png), url(../img/line_shikaku_sp.png), url(../img/line_shikaku_sp.png);
    background-position: center 6vw, center top, center bottom;
    background-size: 100%,100%,100%;
    height: inherit;
    padding-bottom: 22vw;
    margin-top: -3vw;
  }
  #mainVisual .contain {
    width: 100%;
  }
  .mainVisual_left {
    margin-top: 16vw;
    width: 100%;
  }
  .mainVisual_left img {
    margin-left: 0;
    max-width: 100%;
  }
  .mainVisual_total {
    width: calc(511/750*100%);
    margin: 0 auto;
    padding-top: 13vw;
  }
  .mainVisual_counter {
    background: url(../img/bg_counter_sp.png) center 18vw/100% no-repeat;
    width: calc(610/750*100%);
    height: inherit;
    padding-bottom: 5vw;
    margin-bottom: 17vw;
  }
  .mainVisual_num {
    font-size: 32vw;
    line-height: 1.1;
  }
  .mainVisual_num span {
    width: 18vw;
    margin: 0 2.5vw;
  }
  .mainVisual_line {
    width: 100%;
    margin: 0 auto;
    top: 18vw;
  }
  .mainVisual_kai {
    right: -2vw;
    bottom: 6vw;
    width: calc(88/750*100%);
  }
  .mainVisual_rank {
    margin: 0 auto 3vw;
    position: relative;
    z-index: 3;
  }
  .mainVisual_copy {
    width: calc(633/750*100%);
    margin: 0 auto 4vw;
  }
  .mainVisual_text {
    width: calc(719/750*100%);
    margin: 40vw auto 0;
  }
  .mainVisual_card {
    width: calc(736/750*100%);
    bottom: 77vw;
    left: 0;
    margin: 0 auto;
  }
  .present {
    margin: -1vw 0 0;
  }
  .present_ttl {
    margin-top: 27vw;
    margin-bottom: 7.4vw;
    position: relative;
    z-index: 1;
  }
  .present_chara {
    top: -46vw;
    right: 0;
    left: 0;
    margin: 0 auto;
    width: calc(348/750*100%);
  }
  .present_obo {
    margin-bottom: 7.4vw;
    margin-right: 0;
    max-width: 100%;
  }
  .schedule_ttl {
    margin-top: -1vw;
    margin-bottom: 9.4vw;
  }
  .schedule_inner {
    display: block;
  }
  .schedule_box {
    width: 100%;
    padding: 0 2vw;
    margin-bottom: 9.4vw;
  }
  .schedule_box.end .schedule_text {
    bottom: 34vw;
    width: calc(297/710*100%);
  }
  .schedule_box.jissen .schedule_text {
    width: calc(570/710*100%);
  }
  .schedule_box-info {
    width: 47.5vw;
  }
  .schedule_box-info + .schedule_box-info {
    margin-left: 1vw;
  }
  .schedule_person {
    margin-bottom: .5vw;
    margin-top: -2vw;
  }
  .schedule_times dt {
    width: calc(125/330*100%);
    line-height: 6vw;
  }
  .schedule_times dd {
    width: 24vw;
    font-size: 5vw;
    line-height: 6vw;
    height: 7vw;
    margin-bottom: 1vw;
  }
  .schedule_btn {
    width: calc(310/330*100%);
    margin: 1vw auto 7vw;
  }
  .schedule_text {
    width: calc(407/710*100%);
    margin: 0 auto;
  }
  #schedule_box01 .schedule_text, #schedule_box02 .schedule_text, #schedule_box03 .schedule_text {
    width: calc(379/710*100%);
  }
  #schedule_box01.end .schedule_text, #schedule_box02.end .schedule_text, #schedule_box03.end .schedule_text {
    width: calc(297/710*100%);
  }
  #schedule_box01.jissen .schedule_text, #schedule_box02.jissen .schedule_text, #schedule_box03.jissen .schedule_text {
    width: calc(570/710*100%);
  }
  #schedule_box08 .schedule_text {
    width: calc(471/710*100%);
  }
  #schedule_box08.end .schedule_text {
    width: calc(297/710*100%);
  }
  #schedule_box08.jissen .schedule_text {
    width: calc(570/710*100%);
  }
  .campaign {
    margin-top: 27vw;
    margin-bottom: -39vw;
  }
  .campaign_chara-left {
    left: 28vw;
    top: -20.5vw;
    z-index: 2;
    width: calc(326/750*100%);
  }
  .campaign_inner {
    background: url(../img/bg_campaign_sp.png) center top/100% no-repeat;
    width: 100%;
    height: 65vw;
    padding: 6vw 4vw;
    font-size: 0.6875rem;
  }
  .campaign_info {
    height: 53vw;
  }
  .campaign_ttl {
    width: calc(375/710*100%);
    margin: 0 auto -4vw;
  }
  footer {
    background: url(../img/bg_footer_sp.png) center bottom/100% no-repeat;
    font-size: 0.625rem;
    padding: 42vw 0 3vw;
  }
  .footer_link {
    margin-bottom: 4vw;
  }
  .footer_link li:first-of-type {
    width: calc(242/710*100%);
  }
  .footer_link li:last-of-type {
    width: calc(186/710*100%);
  }
  .footer_link li + li {
    margin-left: 2vw;
  }
}

@media screen and (max-width: 639px) {
  /* 639px以下用（タブレット／スマートフォン用）の記述 */
}

@media screen and (max-width: 479px) {
  /* 479px以下用（スマートフォン用）の記述 */
  .mainVisual_counter {
    margin-bottom: 19vw;
  }
}
