@charset "UTF-8";

/* ------------------------
base
------------------------ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html, body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, table, thead, tbody, tfoot, tr, th, td, figure, blockquote, pre {
  margin: 0;
  padding: 0;
}

ul, ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

html {
  margin: 0;
  padding: 0;
  font-size: 62.5%;
}

body {
  width: 100%;
  color: #000;
  font-size: 16px;
  line-height: 1.7;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  margin: 0 auto;
  position: relative;
}

img {
  width: 100%;
  vertical-align: top;
}

@media screen and (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .pc-only {
    display: none !important;
  }
}

@media print {
  .sp-only {
    display: none;
  }
}

/* margin */
.mt-0 { margin-top: 0!important; }
.mt-10 { margin-top: 10px; }
.mt-20 { margin-top: 20px; }
.mt-30 { margin-top: 30px; }
.mt-40 { margin-top: 40px; }
.mt-50 { margin-top: 50px; }
.mt-60 { margin-top: 60px; }
.mt-70 { margin-top: 70px; }
.mt-80 { margin-top: 80px; }
.mt-90 { margin-top: 90px;}
.mt-100 { margin-top: 100px; }
.mt-120 { margin-top: 120px; }
.mt-140 { margin-top: 140px; }
.mt-160 { margin-top: 160px; }
.mt-180 { margin-top: 180px; }
.mt-200 { margin-top: 200px }
.mb-0 { margin-bottom: 0!important; }
.mb-10 { margin-bottom: 10px; }
.mb-20 { margin-bottom: 20px; }
.mb-30 { margin-bottom: 30px; }
.mb-40 { margin-bottom: 40px; }
.mb-50 { margin-bottom: 50px; }
.mb-60 { margin-bottom: 60px; }
.mb-70 { margin-bottom: 70px; }
.mb-80 { margin-bottom: 80px; }
.mb-90 { margin-bottom: 90px; }
.mb-100 { margin-bottom: 100px; }
.mb-120 { margin-bottom: 120px; }
.mb-140 { margin-bottom: 140px; }
.mb-160 { margin-bottom: 160px; }
.mb-180 { margin-bottom: 180px; }
.mb-200 { margin-bottom: 200px; }
@media screen and (max-width: 767px) {
  .spmt-0 { margin-top: 0!important; }
  .spmt-10 { margin-top: 10px; }
  .spmt-20 { margin-top: 20px; }
  .spmt-30 { margin-top: 30px; }
  .spmt-40 { margin-top: 40px; }
  .spmt-50 { margin-top: 50px; }
  .spmt-60 { margin-top: 60px; }
  .spmt-70 { margin-top: 70px; }
  .spmt-80 { margin-top: 80px; }
  .spmt-90 { margin-top: 90px;}
  .spmt-100 { margin-top: 100px; }
  .spmt-120 { margin-top: 120px; }
  .spmt-140 { margin-top: 140px; }
  .spmt-160 { margin-top: 160px; }
  .spmt-180 { margin-top: 180px; }
  .spmt-200 { margin-top: 200px }
  .spmb-0 { margin-bottom: 0!important; }
  .spmb-10 { margin-bottom: 10px; }
  .spmb-20 { margin-bottom: 20px; }
  .spmb-30 { margin-bottom: 30px; }
  .spmb-40 { margin-bottom: 40px; }
  .spmb-50 { margin-bottom: 50px; }
  .spmb-60 { margin-bottom: 60px; }
  .spmb-70 { margin-bottom: 70px; }
  .spmb-80 { margin-bottom: 80px; }
  .spmb-90 { margin-bottom: 90px; }
  .spmb-100 { margin-bottom: 100px; }
  .spmb-120 { margin-bottom: 120px; }
  .spmb-140 { margin-bottom: 140px; }
  .spmb-160 { margin-bottom: 160px; }
  .spmb-180 { margin-bottom: 180px; }
  .spmb-200 { margin-bottom: 200px; }
}

/* padding */
.pt-0 { padding-top: 0!important; }
.pt-10 { padding-top: 10px; }
.pt-20 { padding-top: 20px; }
.pt-30 { padding-top: 30px; }
.pt-40 { padding-top: 40px; }
.pt-50 { padding-top: 50px; }
.pt-60 { padding-top: 60px; }
.pt-70 { padding-top: 70px; }
.pt-80 { padding-top: 80px; }
.pt-90 { padding-top: 90px;}
.pt-100 { padding-top: 100px; }
.pt-120 { padding-top: 120px; }
.pt-140 { padding-top: 140px; }
.pt-160 { padding-top: 160px; }
.pt-180 { padding-top: 180px; }
.pt-200 { padding-top: 200px; }
.pb-0 { padding-bottom: 0!important; }
.pb-10 { padding-bottom: 10px; }
.pb-20 { padding-bottom: 20px; }
.pb-30 { padding-bottom: 30px; }
.pb-40 { padding-bottom: 40px; }
.pb-50 { padding-bottom: 50px; }
.pb-60 { padding-bottom: 60px; }
.pb-70 { padding-bottom: 70px; }
.pb-80 { padding-bottom: 80px; }
.pb-90 { padding-bottom: 90px; }
.pb-100 { padding-bottom: 100px; }
.pb-120 { padding-bottom: 120px; }
.pb-140 { padding-bottom: 140px; }
.pb-160 { padding-bottom: 160px; }
.pb-180 { padding-bottom: 180px; }
.pb-200 { padding-bottom: 200px; }
@media screen and (max-width: 767px) {
  .sppt-0 { padding-top: 0!important; }
  .sppt-10 { padding-top: 10px; }
  .sppt-20 { padding-top: 20px; }
  .sppt-30 { padding-top: 30px; }
  .sppt-40 { padding-top: 40px; }
  .sppt-50 { padding-top: 50px; }
  .sppt-60 { padding-top: 60px; }
  .sppt-70 { padding-top: 70px; }
  .sppt-80 { padding-top: 80px; }
  .sppt-90 { padding-top: 90px;}
  .sppt-100 { padding-top: 100px; }
  .sppt-120 { padding-top: 120px; }
  .sppt-140 { padding-top: 140px; }
  .sppt-160 { padding-top: 160px; }
  .sppt-180 { padding-top: 180px; }
  .sppt-200 { padding-top: 200px; }
  .sppb-0 { padding-bottom: 0!important; }
  .sppb-10 { padding-bottom: 10px; }
  .sppb-20 { padding-bottom: 20px; }
  .sppb-30 { padding-bottom: 30px; }
  .sppb-40 { padding-bottom: 40px; }
  .sppb-50 { padding-bottom: 50px; }
  .sppb-60 { padding-bottom: 60px; }
  .sppb-70 { padding-bottom: 70px; }
  .sppb-80 { padding-bottom: 80px; }
  .sppb-90 { padding-bottom: 90px; }
  .sppb-100 { padding-bottom: 100px; }
  .sppb-120 { padding-bottom: 120px; }
  .sppb-140 { padding-bottom: 140px; }
  .sppb-160 { padding-bottom: 160px; }
  .sppb-180 { padding-bottom: 180px; }
  .sppb-200 { padding-bottom: 200px; }
}
.ptpb-100 {
  padding-top: 100px;
  padding-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .ptpb-100 {
    padding-top: 50px;
    padding-bottom: 50px;
  }
}
.plpr-20 {
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 767px) {
  .sp-plpr-20 {
    padding-left: 20px;
    padding-right: 20px;
  }
}

.left {
  text-align: left;
}
.center {
  text-align: center;
}
.right {
  text-align: right;
}

.flex {
  display: flex;
  flex-wrap: wrap;
}

.grid {
  display: grid;
}

.opa {
  transition: opacity 0.3s ease;
}
.opa:hover {
  opacity: .7;
}

.inner-1000 {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.inner-1100 {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.inner-1200 {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}


/* ------------------------
common
------------------------ */
.btn {
  box-shadow: #000;
}
.btn a {
  display: inline-block;
  transition: transform 0.3s ease, filter 0.3s ease;
}
.btn a:hover {
  transform: translateY(-5px);
  filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.3));
}
.btn img {
  display: block;
  filter: drop-shadow(0 8px 8px rgba(0, 0, 0, .16));
}

.btn01 {
  width: 100%;
  max-width: 536px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 767px) {
  .btn01 {
    max-width: 285px;
  }
}
.btn02 {
  width: 100%;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.btn02 img {
  display: block;
  filter: drop-shadow(0 20px 20px rgba(0, 0, 0, .56));
}
.btn03 {
  width: 100%;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

.bg-firework {
  background: url(./img/bg_firework.png) repeat top center / 100% auto;
}
@media (max-width: 767px) {
  .bg-firework {
    background: url(./img/bg_firework_sp.png) repeat top center / 100% auto;
  }
}

.deco-bottom {
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  z-index: 1;
}

/* ------------------------
contents
------------------------ */
main {
  background: #022056;
}

.sec01 {
  background: url(./img/sec01_bg.jpg) no-repeat center center / auto 100%;
}
@media (max-width: 767px) {
  .sec01 {
    background: url(./img/sec01_bg_sp.jpg) no-repeat center center / auto 100%;
  }
}
.sec01 .inner-1200 {
  position: relative;
}
.sec01 .inner-1200 .btn01 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 10%;
}
@media (max-width: 767px) {
  .sec01 .inner-1200 .btn01 {
    bottom: 25px;
  }
}

.sec02 {
  position: relative;
}
.sec02 .inner-1200 {
  position: relative;
  z-index: 2;
}
.sec02 h2 {
  max-width: 500px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .sec02 h2 {
    max-width: 285px;
  }
}
.sec02 .movie-list {
  grid-template-columns: repeat(2, 48%);
  gap: 40px;
}
@media (max-width: 767px) {
  .sec02 .movie-list {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.sec02 .movie-list .movie {
  position: relative;
}
.sec02 .movie-list .movie .btn02 {
  position: absolute;
  right: 3%;
  bottom: 6%;
  width: 34.4%;
}
@media (max-width: 767px) {
  .sec02 .movie-list .movie .btn02 {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 200px;
    bottom: 30px;
  }
}

.sec03 {
  position: relative;
  background: url(./img/sec03_bg.jpg) no-repeat top center / cover;
}
@media (max-width: 767px) {
  .sec03 {
    background: url(./img/sec03_bg_sp.jpg) no-repeat top center / cover;
  }
}
.sec03 .inner-1000 {
  position: relative;
  z-index: 2;
}
.sec03 .btn01 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 8%;
}
@media (max-width: 767px) {
  .sec03 .btn01 {
    bottom: 75px;
  }
}

.sec04 {
  position: relative;
  background: #183D8B;
}
.sec04 .inner-1000 {
  position: relative;
  z-index: 2;
}
.sec04 h2 {
  max-width: 580px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .sec04 h2 {
    max-width: 246px;
  }
}
.sec04 .event {
  position: relative;
}
.sec04 .event .btn01 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 5%;
}
.sec04 .event06 .btn01 {
  bottom: 12%;
}
@media (max-width: 767px) {
  .sec04 .event01 .btn01,
  .sec04 .event02 .btn01,
  .sec04 .event04 .btn01,
  .sec04 .event06 .btn01 {
    bottom: 20px;
  }
  .sec04 .event03 .btn01,
  .sec04 .event05 .btn01 {
    bottom: 10px;
  }
}

.sec05 {
  position: relative;
}
.sec05 .inner-1000 {
  position: relative;
  z-index: 2;
}
.sec05 h2 {
  max-width: 564px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .sec05 h2 {
    max-width: 234px;
  }
}
.sec05 .chick-theater {
  position: relative;
}
.sec05 .chick-theater .btn01 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 6.5%;
}
@media (max-width: 767px) {
  .sec05 .chick-theater .btn01 {
    bottom: 30px;
  }

}

.sec06 {
  background: url(./img/sec06_bg.jpg) no-repeat center / cover;
}
.sec06 img.copy {
  max-width: 572px;
}
@media (max-width: 767px) {
  .sec06 img.copy {
    max-width: 286px;
  }
}


/* ------------------------
footer
------------------------ */
footer {
  position: relative;
}
footer img.logo {
  max-width: 364px;
}
footer .totop {
  position: absolute;
  top: -50px;
  right: 9%;
  width: 100px;
  height: 100px;
}
@media (max-width: 767px) {
  footer .totop {
    top: -30px;
    right: 3.7%;
    width: 60px;
    height: 60px;
  }
}