@charset "UTF-8";
/* ==========================================================
  フォント
========================================================== */
/* ==========================================================
  EXTEND
========================================================== */
/* ===================================================================
CSS information
 file name  :top.css
 style info :トップのスタイル
=================================================================== */
#visual {
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  #visual {
    background: url(../img/top/bg_visual-rep.webp) repeat-x center top/auto 100%;
    height: min(54.8rem, 56vw);
  }
}
#visual:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0.4rem;
  background-image: -webkit-gradient(linear, left top, right top, from(#ffeab1), color-stop(15%, #dba309), color-stop(33%, #ffeab1), color-stop(50%, #dba309), color-stop(67%, #ffeab1), color-stop(85%, #dba309), to(#ffeab1));
  background-image: linear-gradient(90deg, #ffeab1, #dba309 15%, #ffeab1 33%, #dba309 50%, #ffeab1 67%, #dba309 85%, #ffeab1);
  border-top: solid 0.2rem #3d2b19;
  border-bottom: solid 0.2rem #3d2b19;
}
#visual .inner {
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #visual .inner {
    background: url(../img/top/bg_visual.webp) no-repeat center top;
    background-size: 100%;
    position: absolute;
    left: 50%;
    margin-left: max(-49rem, -50vw);
    width: min(98rem, 100vw);
    aspect-ratio: 1600/896;
  }
}
@media screen and (max-width: 767px) {
  #visual .inner {
    background: url(../img/top/bg_visual.webp) no-repeat left 40% top;
    background-size: 240%;
    padding-top: 14vw;
    height: 133vw;
  }
}
#visual .inner .logoPlatform {
  position: absolute;
}
@media screen and (min-width: 768px) {
  #visual .inner .logoPlatform {
    top: 1rem;
    right: 1rem;
    width: min(24rem, 30vw);
  }
}
@media screen and (max-width: 767px) {
  #visual .inner .logoPlatform {
    top: 2vw;
    right: 2vw;
    width: 52vw;
  }
}
#visual .inner .mainBox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column;
          flex-flow: column;
}
@media screen and (min-width: 768px) {
  #visual .inner .mainBox {
    position: absolute;
    top: min(10rem, 10vw);
    right: 1rem;
    width: min(31rem, 37vw);
  }
}
@media screen and (max-width: 767px) {
  #visual .inner .mainBox {
    width: 74%;
    margin-inline: auto;
  }
}
#visual .inner .mainBox .date {
  position: relative;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #visual .inner .mainBox .date {
    width: 60%;
  }
}
@media screen and (max-width: 767px) {
  #visual .inner .mainBox .date {
    width: 74%;
  }
}
:lang(en) #visual .inner .mainBox .date {
  width: 90%;
}
@media screen and (min-width: 768px) {
  #visual .inner .bnrBox {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: absolute;
    bottom: 2rem;
    right: 1.5rem;
    gap: 0 1rem;
    width: min(44rem, 46vw);
  }
}
@media screen and (min-width: 768px) {
  #visual .inner .bnrBox .bnr {
    width: calc((100% - 1rem) / 2);
  }
}
@media screen and (min-width: 768px) {
  #visual .inner .bnrBox .bnr a {
    display: block;
    border-radius: 0.5rem;
    overflow: hidden;
  }
}
@media screen and (min-width: 768px) {
  #visual .inner .bnrBox .bnr.new:before {
    width: 4rem;
  }
}

#content {
  position: relative;
  border-top: solid 0.2rem #49120d;
}
#content .bg {
  background: url(../img/top/bg_stoy.webp) no-repeat center top/cover;
  position: sticky;
  top: 0;
  z-index: -1;
  width: 100%;
  height: 100vh;
}
@media screen and (max-width: 767px) {
  #content .bnrBox {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 4vw 0;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column;
            flex-flow: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-top: 6vw;
    margin: -100vh auto 6vw;
  }
}
@media screen and (max-width: 767px) {
  #content .bnrBox .bnr {
    width: 80%;
  }
}
@media screen and (max-width: 767px) {
  #content .bnrBox .bnr a {
    display: block;
    border-radius: 0.5rem;
    overflow: hidden;
  }
}
@media screen and (max-width: 767px) {
  #content .bnrBox .bnr.new:before {
    width: 4rem;
  }
}
#content .movieArea {
  background: url(../img/top/bg_movie.webp) no-repeat center top/cover;
}
@media screen and (min-width: 768px) {
  #content .movieArea {
    padding: 3rem 0;
    margin-top: -100vh;
  }
}
@media screen and (max-width: 767px) {
  #content .movieArea {
    background: #330000;
    padding: 6vw;
  }
}
#content .movieArea .movie {
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #content .movieArea .movie {
    width: min(32rem, 40vw);
  }
}
#content .movieArea .movie a figure {
  position: relative;
  overflow: hidden;
  border-radius: 2rem;
  border: solid 0.2rem #330000;
}
@media screen and (min-width: 768px) {
  #content .movieArea .movie a figure {
    margin-bottom: min(0.5rem, 0.5vw);
  }
}
@media screen and (max-width: 767px) {
  #content .movieArea .movie a figure {
    margin-bottom: 2vw;
  }
}
#content .movieArea .movie a figure:after {
  display: block;
  content: "";
  position: absolute;
  background: url(../img/shared/icn_play.webp) no-repeat center center/100%;
  pointer-events: none;
  z-index: 2;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 24%;
  height: 100%;
}
#content .movieArea .movie a p {
  color: #ffffcc;
  text-shadow: 0.1rem 0.1rem 0.1rem #000;
  line-height: 1.3;
}
@media screen and (min-width: 768px) {
  #content .movieArea .movie a p {
    font-size: min(1.5rem, 2.2vw);
  }
}
#content #storyArea {
  padding: 3.5rem 0;
}
@media screen and (min-width: 768px) {
  #content #storyArea {
    margin-bottom: 4rem;
  }
}
#content #storyArea h2 {
  color: #fff4db;
  font-weight: 900;
  line-height: 1.3;
  background: url(../img/top/bg_tit_2-line.webp) no-repeat center center/100%;
  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;
  padding: 0 1em 0.2em;
  margin-inline: auto;
  aspect-ratio: 1011/160;
}
@media screen and (min-width: 768px) {
  #content #storyArea h2 {
    font-size: min(2.5rem, 4vw);
    width: min(96%, 56rem);
    margin-bottom: 4rem;
  }
}
@media screen and (max-width: 767px) {
  #content #storyArea h2 {
    font-size: 4.4vw;
    width: 90%;
    margin-bottom: 8vw;
  }
}
#content #storyArea .storyBox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #content #storyArea .storyBox {
    width: min(90rem, 96%);
  }
}
@media screen and (max-width: 767px) {
  #content #storyArea .storyBox {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column;
            flex-flow: column;
    gap: 6vw 0;
  }
}
@media screen and (min-width: 768px) {
  #content #storyArea .storyBox .main {
    width: 42%;
  }
}
@media screen and (max-width: 767px) {
  #content #storyArea .storyBox .main {
    width: 70%;
    margin-inline: auto;
  }
}
#content #storyArea .storyBox .txtBox {
  text-align: left;
}
@media screen and (min-width: 768px) {
  #content #storyArea .storyBox .txtBox {
    width: 54%;
  }
}
@media screen and (max-width: 767px) {
  #content #storyArea .storyBox .txtBox {
    width: 90%;
    margin-inline: auto;
  }
}
#content #storyArea .storyBox .txtBox p {
  color: #663333;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.25);
  padding: 1.5em;
}
@media screen and (min-width: 768px) {
  #content #storyArea .storyBox .txtBox p {
    font-size: min(1.25rem, 2vw);
    margin-bottom: 2rem;
  }
}
@media screen and (max-width: 767px) {
  #content #storyArea .storyBox .txtBox p {
    font-size: 3.6vw;
    margin-bottom: 4vw;
  }
}
#content #storyArea .storyBox .txtBox figure {
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #content #storyArea .storyBox .txtBox figure {
    width: 90%;
  }
}
#content #point {
  margin-bottom: 6rem;
}
#content #point h2 {
  color: #fff4db;
  font-weight: 900;
  line-height: 1.3;
  background: url(../img/top/bg_tit_1-line.webp) no-repeat center center/100%;
  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;
  padding-bottom: 0.2em;
  margin-inline: auto;
  aspect-ratio: 1011/120;
}
@media screen and (min-width: 768px) {
  #content #point h2 {
    font-size: min(2.5rem, 4vw);
    width: min(96%, 56rem);
    margin-bottom: 4rem;
  }
}
@media screen and (max-width: 767px) {
  #content #point h2 {
    font-size: 4.4vw;
    width: 90%;
    margin-bottom: 8vw;
  }
}
#content #point .box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column;
          flex-flow: column;
}
@media screen and (min-width: 768px) {
  #content #point .box {
    gap: 4rem 0;
  }
}
@media screen and (max-width: 767px) {
  #content #point .box {
    gap: 8vw 0;
  }
}
#content #point .box .sec {
  background: #f8f8f8;
  border-radius: 2rem;
  padding: 0.2rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #content #point .box .sec {
    width: min(96%, 80rem);
  }
}
@media screen and (max-width: 767px) {
  #content #point .box .sec {
    width: 90%;
  }
}
#content #point .box .sec .inner {
  text-align: center;
  border-radius: 1.8rem;
  border: solid 0.25rem #e0cb97;
}
@media screen and (min-width: 768px) {
  #content #point .box .sec .inner {
    padding: 3rem;
  }
}
@media screen and (max-width: 767px) {
  #content #point .box .sec .inner {
    padding: 4vw;
  }
}
#content #point .box .sec .inner h3 {
  color: #541b01;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: 900;
  height: 4rem;
}
@media screen and (min-width: 768px) {
  #content #point .box .sec .inner h3 {
    font-size: min(2.25rem, 3vw);
    margin-bottom: 2rem;
  }
}
@media screen and (max-width: 767px) {
  #content #point .box .sec .inner h3 {
    font-size: 4vw;
    line-height: 1.4;
    margin-bottom: 4vw;
  }
}
@media screen and (min-width: 768px) {
  :lang(en) #content #point .box .sec .inner h3 {
    font-size: min(2rem, 2.2vw);
  }
}
@media screen and (max-width: 767px) {
  :lang(en) #content #point .box .sec .inner h3 {
    font-size: 3.7vw;
  }
}
#content #point .box .sec .inner h3:before {
  display: block;
  content: "";
  background: url(../img/top/bg_tit_h3_left.webp) no-repeat left bottom/100%;
  height: 4rem;
  aspect-ratio: 1/1;
}
#content #point .box .sec .inner h3 span {
  line-height: 1.2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: url(../img/top/bg_tit_h3_rep.webp) repeat-x left bottom/auto 100%;
  height: 4rem;
  padding: 0 1rem;
  position: relative;
  left: -0.1rem;
}
#content #point .box .sec .inner p {
  color: #663333;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  #content #point .box .sec .inner p {
    font-size: 1.25rem;
    margin-bottom: 2rem;
  }
}
@media screen and (max-width: 767px) {
  #content #point .box .sec .inner p {
    margin-bottom: 4vw;
  }
}
#content #point .box .sec .inner figure {
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #content #point .box .sec .inner figure {
    width: min(90%, 56rem);
  }
}
#content #point .box .sec .inner .slideArea {
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #content #point .box .sec .inner .slideArea {
    width: min(90%, 60rem);
  }
}
#content #point .box .sec .inner .slideArea .slider-for {
  border: solid 0.35rem #fff;
  outline: solid 0.2rem #ffcc00;
  outline-offset: -0.2rem;
}
#content #point .box .sec .inner .slideArea .slider-nav {
  margin: 1rem auto 0;
}
@media screen and (min-width: 768px) {
  #content #point .box .sec .inner .slideArea .slider-nav {
    width: min(40rem, 48vw);
  }
}
@media screen and (max-width: 767px) {
  #content #point .box .sec .inner .slideArea .slider-nav {
    width: 70%;
  }
}
#content #point .box .sec .inner .slideArea .slider-nav .slick-slide {
  cursor: pointer;
  position: relative;
}
@media screen and (min-width: 768px) {
  #content #point .box .sec .inner .slideArea .slider-nav .slick-slide {
    margin: 0 0.4rem;
  }
}
@media screen and (max-width: 767px) {
  #content #point .box .sec .inner .slideArea .slider-nav .slick-slide {
    margin: 0 1vw;
  }
}
#content #point .box .sec .inner .slideArea .slider-nav .slick-slide img {
  border: solid 0.25rem #fff;
  outline: solid 0.15rem #330000;
  outline-offset: -0.15rem;
}
#content #point .box .sec .inner .slideArea .slider-nav .slick-slide.slick-current img {
  outline: solid 0.15rem #ffcc00;
}
#content #nazoArea {
  position: relative;
  background: #eacd9a;
  border-bottom: solid 0.2rem #330000;
  padding: 6rem 0;
}
#content #nazoArea:before, #content #nazoArea:after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2rem;
}
#content #nazoArea:before {
  background: url(../img/top/bg_tago_rep_t.webp) repeat-x center top/auto 100%;
  top: 0;
}
@media screen and (max-width: 767px) {
  #content #nazoArea:before {
    background-position: left top;
  }
}
#content #nazoArea:after {
  background: url(../img/top/bg_tago_rep_b.webp) repeat-x center bottom/auto 100%;
  bottom: 0;
}
@media screen and (max-width: 767px) {
  #content #nazoArea:after {
    background-position: right top;
  }
}
#content #nazoArea .inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #content #nazoArea .inner {
    width: min(50rem, 96%);
  }
}
@media screen and (max-width: 767px) {
  #content #nazoArea .inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column;
            flex-flow: column;
    gap: 6vw 0;
  }
}
@media screen and (min-width: 768px) {
  #content #nazoArea .inner figure {
    width: 34%;
  }
}
@media screen and (max-width: 767px) {
  #content #nazoArea .inner figure {
    width: 50%;
    margin-inline: auto;
  }
}
#content #nazoArea .inner .tagoBox {
  text-align: left;
}
@media screen and (min-width: 768px) {
  #content #nazoArea .inner .tagoBox {
    width: 60%;
  }
}
@media screen and (max-width: 767px) {
  #content #nazoArea .inner .tagoBox {
    width: 80%;
    margin-inline: auto;
  }
}
#content #nazoArea .inner .tagoBox h3 {
  color: #541b01;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: 900;
  height: 4rem;
  margin-bottom: 1.2rem;
}
@media screen and (min-width: 768px) {
  #content #nazoArea .inner .tagoBox h3 {
    font-size: min(2rem, 3.2vw);
  }
}
@media screen and (max-width: 767px) {
  #content #nazoArea .inner .tagoBox h3 {
    font-size: 6vw;
  }
}
#content #nazoArea .inner .tagoBox h3:before {
  display: block;
  content: "";
  background: url(../img/top/bg_tit_h3_left.webp) no-repeat left bottom/100%;
  height: 4rem;
  aspect-ratio: 1/1;
}
#content #nazoArea .inner .tagoBox h3 span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: url(../img/top/bg_tit_h3_rep.webp) repeat-x left bottom/auto 100%;
  height: 4rem;
  padding: 0 0.5rem 0 1rem;
  position: relative;
  left: -0.1rem;
}
#content #nazoArea .inner .tagoBox .box {
  padding-left: 1rem;
}
#content #nazoArea .inner .tagoBox .box span {
  display: block;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 0.2rem;
}
@media screen and (min-width: 768px) {
  #content #nazoArea .inner .tagoBox .box span {
    font-size: min(1.125rem, 1.8vw);
  }
}
#content #nazoArea .inner .tagoBox .box h4 {
  font-weight: 900;
  line-height: 1;
  margin-bottom: 1rem;
}
@media screen and (min-width: 768px) {
  #content #nazoArea .inner .tagoBox .box h4 {
    font-size: min(1.25rem, 2vw);
  }
}
@media screen and (max-width: 767px) {
  #content #nazoArea .inner .tagoBox .box h4 {
    font-size: 4vw;
  }
}
#content #nazoArea .inner .tagoBox .box h4 em {
  font-weight: 900;
}
@media screen and (min-width: 768px) {
  #content #nazoArea .inner .tagoBox .box h4 em {
    font-size: min(2.5rem, 4vw);
  }
}
@media screen and (max-width: 767px) {
  #content #nazoArea .inner .tagoBox .box h4 em {
    font-size: 7vw;
  }
}
#content #nazoArea .inner .tagoBox .box p {
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  #content #nazoArea .inner .tagoBox .box p {
    font-size: min(1.125rem, 1.8vw);
  }
}