@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Oswald:wght@200..700&family=Zen+Antique&display=swap");

/* リセット
---------------------------------------------------------- */
html,
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
input,
textarea,
p,
table,
th,
td,
button,
a,
span {
  margin: 0;
  padding: 0;
  font-size: 100%;
  font-weight: normal;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
}

ol,
ul {
  list-style: none;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
  margin: 0;
  padding: 0;
  font-size: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
}

address {
  font-style: normal;
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

/* レイアウト
----------------------------------------*/
html {
  font-size: 1rem;
  font-size: 10px;
  height: 100%;
}

body {
  color: #1c2331;
  font-family: "Noto Sans JP", sans-serif;
  background: #fff;
  font-size: 1.6rem;
  letter-spacing: 0;
  font-weight: 400;
  line-height: 1.75;
  height: 100%;
  -webkit-text-size-adjust: 100%;
}

body.open,
body.reserve_open {
  width: 100%;
  height: 100%;
  position: fixed;
  overflow-y: scroll;
}

img {
  image-rendering: -webkit-optimize-contrast;
  display: block;
}

.wrapper {
  overflow: hidden;
}

a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}

table,
tbody,
thead,
tr,
th,
td {
  position: static;
}

@media (hover: hover) {
  a:hover {
    /* opacity: .6; */
  }
}

@media only screen and (max-width: 1350px) {
  html {
    font-size: 0.7407vw;
  }
}

@media only screen and (min-width: 769px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

@media only screen and (max-width: 768px) {
  img {
    width: 100%;
  }

  html {
    font-size: calc(10 / 400 * 100vw);
  }

  body {
    font-size: 0.9rem;
    line-height: 1.66;
  }
}

.eng {
  font-family: "Oswald", sans-serif;
}

.mincho {
  font-family: "Zen Antique", serif;
}

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

svg {
  display: inline-block;
  vertical-align: bottom;
}

/*表示
----------------------------------------*/
@media only screen and (min-width: 769px) {
  .sp {
    display: none !important;
  }
}

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

/*body
----------------------------------------*/
@media only screen and (max-width: 768px) {
  body.fixed {
    height: 100vh;
    overflow: hidden;
  }
}

/*header
----------------------------------------*/
.header {
  position: fixed;
  z-index: 20;
  width: 100%;
  padding: 4.4rem 0;
}

.header.show {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
}

.header_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 128rem;
  width: 90%;
  margin: 0 auto;
}

.header_logo {
  width: 24rem;
  opacity: 0;
  pointer-events: none;
  transition: 0.4s;
}

.show .header_logo {
  opacity: 1;
  pointer-events: auto;
}

.header_btn_wrap {
  display: flex;
  gap: 6rem;
  z-index: 2;
}

.header_btn_wrap>li {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 2.7rem;
  height: 4.5rem;
}

.header_btn_wrap>li:nth-child(2) {
  width: 2.4rem;
}

.header_btn_wrap li .header_btn {
  height: 2.7rem;
}

.header_btn_wrap li .btn_close {
  display: none;
}

.open .header_btn_wrap li .btn_menu {
  display: none;
}

.open .header_btn_wrap li .btn_close {
  display: block;
}

.header_btn_wrap li span {
  font-size: 1rem;
  color: #ffffff;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.nav_wrap {
  position: absolute;
  right: 0;
  top: 0;
  width: 35%;
  min-width: 42rem;
  background: linear-gradient(to right, #162c4c 0%, #162c4c 0%, #000 100%);
  padding: 12.1rem 0 0 4.5rem;
  height: 100vh;
  z-index: 0;
  transition: 0.4s;
  transform: translateX(100%);
}

.open .nav_wrap {
  transform: translateX(0);
}

.nav_wrap a {
  color: #ffffff;
  font-size: 2.8rem;
  font-weight: 300;
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
  transition: 0.4s;
}

.nav_wrap a:hover {
  opacity: 0.7;
}

.nav_wrap a small {
  font-size: 1.1rem;
  font-weight: 200;
}

.lang-switch-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  flex-direction: column;
  position: absolute;
  top: 100%;
  left: 50%;
  width: max-content;
  z-index: 1;
  background: #1b2e46;
  transform: translateX(-50%);
  padding: 2.2rem 1.6rem;
  margin-top: 1.5rem;
  white-space: nowrap;
  opacity: 0;
  transition: 0.4s;
}

.lang-switch-container.active {
  opacity: 1;
}

.lang-switch-container li {
  line-height: 1;
}

.lang-switch-container button {
  background: none;
  border: none;
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
  padding: 0.5rem 1rem;
  width: 100%;
  text-align: left;
  transition: background-color 0.3s ease;
}

.lang-switch-container button:hover {
  background-color: #ffffff1a;
}

.side_btn {
  position: fixed;
  top: 12.6rem;
  right: 0;
  width: 6.7rem;
}

@media (hover: hover) {

  .header_btn_wrap a:hover,
  .header_btn_wrap button:hover,
  .side_btn a:hover {
    opacity: 0.6;
  }
}

@media only screen and (max-width: 768px) {
  .header {
    padding: 1.7rem 0;
  }

  .header.show {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
  }

  .header_inner {
    width: 90%;
  }

  .header_logo {
    width: 15rem;
  }

  .header_btn_wrap {
    gap: 3.2rem;
  }

  .header_btn_wrap>li {
    width: 2.8rem;
    height: 4rem;
  }

  .header_btn_wrap>li:nth-child(2) {
    width: 2.66rem;
  }

  .header_btn_wrap li .header_btn {
    height: 2.46rem;
  }

  .header_btn_wrap li .btn_close {
    display: none;
  }

  .open .header_btn_wrap li .btn_menu {
    display: none;
  }

  .open .header_btn_wrap li .btn_close {
    display: block;
  }

  .header_btn_wrap li span {
    font-size: 0.9rem;
    line-height: 1;
  }

  .nav_wrap {
    width: 100%;
    min-width: auto;
    padding: 10.9rem 0 0 4.5rem;
  }

  .nav_wrap a {
    font-size: 2.6rem;
    column-gap: 0.35rem;
  }

  .lang-switch-container {
    gap: 0.5rem;
    padding: 1.1rem 0.8rem;
    margin-top: 0.8rem;
  }

  .lang-switch-container button {
    font-size: 1.2rem;
  }

  .side_btn {
    top: 7.9rem;
    width: 4rem;
  }
}

/* mv
----------------------------------------*/
.mv {
  background: url(../img/bg_mv.jpg) no-repeat center top / cover;
  max-height: 144.333rem;
  padding: 0 0 17rem;
  text-align: center;
}

.mv::before {
  content: "";
  width: 100%;
  height: 20.9rem;
  background: url(../img/bg_mv_top.png) no-repeat left top / 100% 100%;
  position: absolute;
  left: 0;
  top: 0;
  mix-blend-mode: multiply;
  z-index: 0;
}

.mv::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.1rem;
  background: url(../img/bg_mv_bottom.png) no-repeat center top / 100% 100%;
  width: 100%;
  height: 34rem;
  mix-blend-mode: multiply;
  z-index: 0;
}

.mv>* {
  position: relative;
  z-index: 1;
}

.mv .site_logo {
  padding-top: max(calc(137 / 1980 * 100vw), 9.1rem);
}

.mv .site_logo img {
  width: 98rem;
  margin: 0 auto;
}

.mv .schedule {
  margin-top: max(calc(98 / 1980 * 100vw), 6.5rem);
}

.mv .schedule img {
  width: 81.2rem;
  margin: 0 auto;
}

.mv .price {
  margin-top: max(calc(23 / 1980 * 100vw), 1.4rem);
}

.mv .price img {
  width: 57.3rem;
  background: #000000;
  margin: 0 auto;
  transform: translateX(3.9rem);
}

@media only screen and (max-width: 1280px) {
  .mv {
    aspect-ratio: 320 / 361;
    max-height: none;
  }
}

@media only screen and (max-width: 768px) {
  .mv {
    background: url(../img/bg_mv_sp.jpg) no-repeat center top / cover;
    max-height: none;
    padding: 0 0 2.1rem;
  }

  .mv::before {
    height: 11.7rem;
  }

  .mv::after {
    bottom: -3rem;
    height: 15.7rem;
  }

  .mv>* {
    position: relative;
    z-index: 1;
  }

  .mv .site_logo {
    padding-top: max(calc(8.4 / 400 * 100vw), 8.4rem);
  }

  .mv .site_logo img {
    width: 32.3rem;
    transform: translateX(-1rem);
  }

  .mv .schedule {
    margin-top: max(calc(15 / 400 * 100vw), 1.5rem);
  }

  .mv .schedule img {
    width: 33.9rem;
  }

  .mv .price {
    margin-top: max(calc(8 / 400 * 100vw), 0.8rem);
  }

  .mv .price img {
    width: 33.7rem;
    transform: translateX(0);
  }
}

/*共通
----------------------------------------*/
.inner {
  max-width: 85.4rem;
  width: 90%;
  margin: 0 auto;
  z-index: 10;
}

h2 {
  line-height: 1.2;
  transform: translateX(-3.8rem);
  margin-bottom: 4rem;
}

h2::before {
  content: "";
  display: block;
  width: 5.7rem;
  height: 5.7rem;
  background: url(../img/bg_h2.png) no-repeat left top / 100% auto;
  position: absolute;
  bottom: -7px;
  left: 0;
  transform: translateX(-50%);
  z-index: 0;
}

h2 .eng {
  font-size: 5.2rem;
  font-weight: 300;
}

h2 small {
  display: block;
  font-size: 1.3rem;
  position: relative;
}

.bnr_tour {
  width: 100%;
  z-index: 10;
}

.mv .bnr_tour {
  width: 85.4rem;
  margin: 33.8rem auto 0;
}

.bnr_tour a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  transition: 0.4s;
}

.bnr_tour a:hover {
  background: #0b192bb3;
}

.bnr_tour a p {
  color: #ffffff;
  font-size: 2.4rem;
  letter-spacing: 0.05em;
  opacity: 0;
  transition: 0.4s;
}

.bnr_tour a:hover p {
  opacity: 1;
}

@media only screen and (max-width: 768px) {
  .inner {
    max-width: 34rem;
  }

  h2 {
    transform: translateX(0);
    line-height: 1.2;
    margin-bottom: 1.8rem;
  }

  h2::before {
    width: 4.4rem;
    height: 4.4rem;
  }

  h2 .eng {
    font-size: 3.6rem;
  }

  h2 small {
    font-size: 1rem;
  }

  .mv .bnr_tour {
    width: 27rem;
    margin: 14rem auto 0;
  }
}

/*news
----------------------------------------*/
.news_wrap {
  color: #ffffff;
  background: #0a1428;
  padding: 7.1rem 0 7.2rem;
  position: relative;
  z-index: 2;
}

.news_wrap::before {
  content: "";
  width: 163.6rem;
  height: 112.8rem;
  background: url(../img/bg_news.png) no-repeat left top / 100% auto;
  position: absolute;
  left: 50%;
  top: -53rem;
  transform: translateX(calc(-50% - 16rem));
}

.news_wrap .inner {
  display: flex;
  align-items: flex-start;
  gap: 12.8rem;
}

.news_wrap dl {
  display: flex;
  font-size: 1.6rem;
  margin-top: 1.6rem;
}

.news_wrap dt {
  width: 14.6rem;
}

.news_wrap dd {
  flex: 1;
}

.news_wrap dd a {
  color: #ffffff;
  text-decoration: none;
  transition: all 0.3s ease;
  border-bottom: 1px solid transparent;
}

.news_wrap dd a:hover {
  color: #ffffff;
  text-decoration: none;
  border-bottom: 1px solid #ffffff;
}

@media only screen and (max-width: 768px) {
  .news_wrap {
    padding: 3.5rem 0 4.9rem;
  }

  .news_wrap::before {
    width: 32.3rem;
    height: 20.7rem;
    background: url(../img/bg_news_sp.png) no-repeat left top / 100% auto;
    left: auto;
    right: 0;
    top: 4rem;
    transform: translateX(0);
  }

  .news_wrap .inner {
    flex-direction: column;
    gap: 0;
  }

  .news_wrap dl {
    font-size: 1.4rem;
    margin-top: 0;
  }

  .news_wrap dl+dl {
    margin-top: 0.76rem;
  }

  .news_wrap dt {
    width: 9.3rem;
  }
}

/*about
----------------------------------------*/
.about_wrap {
  padding: 13.1rem 0 10.7rem;
}

.about_wrap .inner div {
  display: flex;
  gap: 6rem;
}

.about_wrap .inner h3 {
  width: 27rem;
  font-size: 2.2rem;
  line-height: 2;
}

.about_wrap .inner p {
  width: 52.2rem;
  font-size: 1.6rem;
}

@media only screen and (max-width: 768px) {
  .about_wrap {
    padding: 5.4rem 0 4.8rem;
  }

  .about_wrap .inner div {
    flex-direction: column;
    gap: 2rem;
  }

  .about_wrap .inner h3 {
    width: 100%;
    font-size: 2rem;
    line-height: 1.6;
    letter-spacing: -0.04em;
  }

  .about_wrap .inner p {
    width: 100%;
    font-size: 1.4rem;
  }
}

/*story
----------------------------------------*/
.story_wrap {
  color: #ffffff;
  background: linear-gradient(135deg, #0a1428 24.88%, #040912 50.25%, #010204 76.09%, #000 98.32%);
  padding: 7.1rem 0 7.2rem;
  position: relative;
  z-index: 2;
}

.story_wrap::before {
  content: "";
  width: 144.8rem;
  height: 148.3rem;
  background: url(../img/bg_story.png) no-repeat left top / 100% auto;
  position: absolute;
  left: 50%;
  top: -42rem;
  transform: translateX(-53%);
}

.story_wrap::after {
  content: "";
  width: 39.4rem;
  height: 43.8rem;
  background: url(../img/img_akari.svg) no-repeat left top / 100% auto;
  position: absolute;
  right: 10rem;
  top: -7.3rem;
}

.story_wrap p {
  font-size: 1.8rem;
  line-height: 2;
}

@media only screen and (max-width: 768px) {
  .story_wrap {
    padding: 5rem 0 4rem;
  }

  .story_wrap h2 {
    margin-bottom: 1.4rem;
  }

  .story_wrap::before {
    width: 44.2rem;
    height: 45.2rem;
    left: 50%;
    top: -12rem;
    transform: translateX(-53%);
  }

  .story_wrap::after {
    width: 13.43rem;
    height: 14.8rem;
    right: 4.08rem;
    top: -5.7rem;
  }

  .story_wrap p {
    font-size: 1.6rem;
  }
}

/*takeakari
----------------------------------------*/
.takeakari_wrap {
  color: #ffffff;
  background: url(../img/bg_takeakari.jpg) no-repeat left top / cover;
  padding: 14rem 0;
  position: relative;
}

.takeakari_wrap h3 {
  font-size: 3rem;
  margin-bottom: 2.6rem;
}

.takeakari_wrap p {
  font-size: 1.6rem;
}

@media only screen and (max-width: 768px) {
  .takeakari_wrap {
    background: url(../img/bg_takeakari.jpg) no-repeat left top / cover;
    padding: 5rem 0 4rem;
  }

  .takeakari_wrap h2 {
    margin-bottom: 2rem;
  }

  .takeakari_wrap h3 {
    font-size: 2rem;
    margin-bottom: 1.2rem;
  }

  .takeakari_wrap p {
    width: 32.7rem;
    font-size: 1.4rem;
  }
}

/*archive
----------------------------------------*/
.archive_wrap {
  color: #ffffff;
  background: linear-gradient(135deg, #0a1428 24.88%, #040912 50.25%, #010204 76.09%, #000 98.32%);
  padding: 11rem 0 13.3rem;
  position: relative;
}

/* .archive_wrap::before {
  content: "";
  width: 16.2rem;
  height: 44.1rem;
  background: url(../img/bg_archive.png) no-repeat left top / 100% auto;
  position: absolute;
  right: 0;
  top: 9.6rem;
} */

.archive_wrap h2 {
  margin-bottom: 5.4rem;
}

.archive_movie {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 2rem;
}

.archive_movie iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.archive_movie+p {
  font-size: 1.4rem;
}

@media only screen and (max-width: 768px) {
  .archive_wrap {
    padding: 5rem 0;
  }

  .archive_wrap::before {
    display: none;
  }

  .archive_wrap h2 {
    margin-bottom: 2.1rem;
  }

  .archive_movie {
    border-radius: 0;
  }

  .archive_movie+p {
    font-size: 1.1rem;
  }
}

/*map
----------------------------------------*/
.map_wrap {
  padding: 13rem 0;
}

@media only screen and (max-width: 768px) {
  .map_wrap {
    padding: 5.2rem 0 5rem;
  }
}

/* parking info */
.parking_info {
  margin-top: 4rem;
}

.parking_info h3 {
  font-size: 2.3rem;
  margin-bottom: 3rem;
}

.parking_details {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}

.parking_item h4 {
  font-size: 1.7rem;
  margin-bottom: 1rem;
}

.parking_item p {
  font-size: 1.6rem;
  line-height: 1.75;
}

.parking_item ul {
  margin: 0;
  padding: 0;
}

.parking_item li {
  font-size: 1.6rem;
  line-height: 1.75;
  margin-bottom: 0.5rem;
  position: relative;
  padding-left: 1.2rem;
}

.parking_item li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

@media only screen and (max-width: 768px) {
  .parking_info {
    margin-top: 2rem;
  }
  
  .parking_info h3 {
    font-size: 2rem;
    margin-bottom: 2rem;
  }
  
  .parking_details {
    gap: 2rem;
  }
  
  .parking_item h4 {
    font-size: 1.6rem;
    margin-bottom: 0.8rem;
  }
  
  .parking_item p,
  .parking_item li {
    font-size: 1.4rem;
  }
}

/*tickets
----------------------------------------*/
.tickets_wrap {
  background: linear-gradient(to bottom, #fee3ca 0%, #e3a49f 43.35%, #6e4664 64.04%, #09162e 100%);
  padding: 12.9rem 0 13rem;
}

.tickets_wrap h3 {
  font-size: 3rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2.6rem;
}

.tickets_wrap h3:nth-of-type(2) {
  color: #ffffff;
  margin: 10.2rem 0 1rem;
}

.tickets_wrap h3::before {
  content: "";
  display: block;
  width: 1.3rem;
  height: 4rem;
  background: url(../img/bg_h3.png) no-repeat left top / 100% 100%;
}

.tickets_wrap p {
  color: #ffffff;
  font-size: 1.6rem;
  margin: 0 0 4rem;
}

@media only screen and (max-width: 768px) {
  .tickets_wrap {
    padding: 5rem 0;
  }

  .tickets_wrap h2 {
    margin-bottom: 2.8rem;
  }

  .tickets_wrap h3 {
    font-size: 1.9rem;
    gap: 1.2rem;
    margin-bottom: 2.3rem;
  }

  .tickets_wrap h3:nth-of-type(2) {
    margin: 4.8rem 0 1.7rem;
  }

  .tickets_wrap h3::before {
    width: 0.92rem;
    height: 3.5rem;
  }

  .tickets_wrap p {
    font-size: 1.4rem;
    margin: 0 0 2.5rem;
  }
}

/*access
----------------------------------------*/
.access_wrap {
  padding: 12.4rem 0 13rem;
}

.access_wrap .inner>div {
  display: flex;
  justify-content: space-between;
}

.access_wrap .inner>div dt {
  font-size: 2.3rem;
}

.access_wrap .inner>div dd+dt {
  margin-top: 4rem;
}

.access_wrap .inner>div dd {
  font-size: 1.3rem;
}

.access_wrap .inner>div>div {
  width: 41.8rem;
}

.access_wrap .inner>div>div .gmap {
  width: 100%;
  height: 23.4rem;
  margin: 1.4rem 0 3.6rem;
}

.access_wrap .inner>div>div .gmap iframe {
  width: 100%;
  height: 100%;
  border: none;
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}

.arrow_gmap {
  display: flex;
  justify-content: flex-end;
  transition: 0.4s;
}

.arrow_gmap:hover {
  opacity: 0.7;
  transform: translateX(4px);
}

@media only screen and (max-width: 768px) {
  .access_wrap {
    padding: 5rem 0;
  }

  .access_wrap h2 {
    margin-bottom: 2.4rem;
  }

  .access_wrap .inner>div {
    display: block;
  }

  .access_wrap .inner>div dt {
    font-size: 2rem;
  }

  .access_wrap .inner>div dd+dt {
    margin-top: 2.2rem;
  }

  .access_wrap .inner>div dd {
    font-size: 1.4rem;
  }

  .access_wrap .inner>div>div {
    width: 100%;
  }

  .access_wrap .inner>div>div .gmap {
    height: 20.6rem;
    margin: 3rem 0 1.5rem;
  }

  .arrow_gmap img {
    width: 17.2rem;
  }
}

/*faq
----------------------------------------*/
.faq_wrap {
  background: linear-gradient(to bottom, #065091 0%, #00203d 100%);
  padding: 13rem 0;
}

.faq_wrap h2 {
  color: #ffffff;
}

.faq_box {
  background: #ffffff;
  border-radius: 1.6rem;
  padding: 7.2rem 5.3rem 13rem;
}

.faq_box h3 {
  font-size: 2.3rem;
  text-align: center;
  margin-bottom: 5.2rem;
}

.faq_box h3:nth-of-type(n + 2) {
  margin-top: 5.2rem;
}

.faq_box dl+dl {
  margin-top: 5.6rem;
}

.faq_box dt {
  font-size: 1.7rem;
  letter-spacing: -0.02em;
  background: url(../img/bg_faq_dt.png) repeat-x left bottom / auto 0.3rem;
  padding-bottom: 1.5rem;
  margin-bottom: 2rem;
}

.faq_box dd {
  font-size: 1.3rem;
}

@media only screen and (max-width: 768px) {
  .faq_wrap {
    padding: 4.7rem 0 5rem;
  }

  .faq_wrap h2 {
    margin-bottom: 2.8rem;
  }

  .faq_box {
    border-radius: 0.8rem;
    padding: 2.7rem 2.9rem 3rem;
  }

  .faq_box h3 {
    font-size: 2rem;
    margin-bottom: 2.4rem;
  }

  .faq_box dl+dl {
    margin-top: 2.4rem;
  }

  .faq_box dt {
    font-size: 1.4rem;
    letter-spacing: 0;
    background: url(../img/bg_faq_dt.png) repeat-x left bottom / auto 0.2rem;
    padding-bottom: 0.8rem;
    margin-bottom: 0.6rem;
  }

  .faq_box dd {
    font-size: 1.4rem;
  }
}

/*bnr
----------------------------------------*/
.bnr_wrap {
  padding: 6.6rem 0;
}

.bnr_wrap ul {
  max-width: 95.2rem;
  width: 90%;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 3.4rem 1.8rem;
  margin: 0 auto;
}

.bnr_wrap ul li {
  width: calc((100% - 5.4rem) / 4);
}

@media only screen and (max-width: 768px) {
  .bnr_wrap {
    padding: 5rem 0;
  }

  .bnr_wrap ul {
    max-width: 28rem;
    width: 90%;
    flex-direction: column;
    gap: 1.8rem;
    margin: 0 auto;
  }

  .bnr_wrap ul li {
    width: 100%;
  }
}

/*contact
----------------------------------------*/
.contact_wrap {
  color: #ffffff;
  background: linear-gradient(to top, #fee3ca 0%, #e3a49f 0%, #6e4664 43.35%, #09162e 100%);
  padding: 14.4rem 11.3rem;
}

.contact_wrap dl+dl {
  margin: 2.8rem 0 3.4rem;
}

.contact_wrap dt {
  font-size: 2.3rem;
}

.contact_wrap dd {
  font-size: 2rem;
}

.contact_wrap dd a {
  font-size: 3.3rem;
}

.contact_wrap dl+a {
  width: 40rem;
  height: 3.6rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.2rem;
  font-size: 1.8rem;
  letter-spacing: 0.032em;
  border: 0.1rem solid #ffffff;
  transition: 0.4s;
}

.contact_wrap dl+a::after {
  content: "";
  width: 1.29rem;
  height: 1.26rem;
  background: url(../img/icon_blank.svg) no-repeat left top / 100% auto;
}

.contact_wrap dl+a:hover {
  opacity: 0.7;
}

@media only screen and (max-width: 768px) {
  .contact_wrap {
    padding: 4.5rem 0 5.4rem;
  }

  .contact_wrap dl {
    text-align: center;
  }

  .contact_wrap dl+dl {
    margin: 3.2rem 0;
  }

  .contact_wrap dt {
    font-size: 1.6rem;
  }

  .contact_wrap dd {
    font-size: 1.7rem;
  }

  .contact_wrap dd a {
    font-size: 3.5rem;
    padding-left: 0.5rem;
  }

  .contact_wrap dd br+span {
    font-size: 1.5rem;
  }

  .contact_wrap dl+a {
    width: 34rem;
    height: 5.3rem;
    gap: 1.1rem;
    font-size: 1.6rem;
    letter-spacing: -0.02em;
  }
}

/*page_top
----------------------------------------*/
#page_top {
  width: 8rem;
  display: none;
  position: fixed;
  right: 6.6rem;
  bottom: 6rem;
  z-index: 10;
}

@media only screen and (max-width: 768px) {
  #page_top {
    width: 2.7rem;
    right: 1.8rem;
    bottom: 3rem;
  }
}

/*footer
----------------------------------------*/
.footer {
  color: #ffffff;
  background: #1c2331;
  padding: 13.2rem 0 6.4rem;
}

.footer h3 {
  font-size: 2.6rem;
  text-align: center;
  margin-bottom: 6.6rem;
}

.footer_inner {
  max-width: 86.6rem;
  width: 90%;
  border: 0.2rem solid #ffffff;
  border-radius: 1.6rem;
  padding: 7.2rem 5.3rem 6.3rem;
  margin: 0 auto 13.3rem;
}

.footer_inner h4 {
  font-size: 2.3rem;
  text-align: center;
  margin-bottom: 5.2rem;
}

.footer_inner dt {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1.2rem;
  font-size: 1.7rem;
  margin-bottom: 1rem;
}

.footer_inner dt::before {
  content: "";
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 50%;
  background: #ffffff;
  /* border: .1rem solid #656565; */
}

.footer_inner dd+dt {
  margin-top: 3rem;
}

.footer_inner dd {
  font-size: 1.3rem;
}

.footer ul {
  max-width: 86.6rem;
  width: 90%;
  margin: 0 auto;
}

.footer li {
  font-size: 1.3rem;
}

@media only screen and (max-width: 768px) {
  .footer {
    padding: 5rem 0 2.6rem;
  }

  .footer h3 {
    font-size: 2rem;
    margin-bottom: 3.8rem;
  }

  .footer_inner {
    max-width: 32.8rem;
    border: 0.1rem solid #ffffff;
    border-radius: 0.8rem;
    padding: 2.7rem 2.9rem 4.2rem;
    margin: 0 auto 3.9rem;
  }

  .footer_inner h4 {
    font-size: 1.8rem;
    margin-bottom: 2.4rem;
  }

  .footer_inner dt {
    gap: 0.7rem;
    font-size: 1.6rem;
    margin-bottom: 0.5rem;
  }

  .footer_inner dt::before {
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    /* border: .05rem solid #656565; */
  }

  .footer_inner dd+dt {
    margin-top: 2.4rem;
  }

  .footer_inner dd {
    font-size: 1.4rem;
  }

  .footer ul {
    max-width: 34rem;
    width: 90%;
    margin: 0 auto;
  }

  .footer li {
    font-size: 1.2rem;
  }
}

.copyright {
  text-align: center;
  font-size: 1.2rem;
  padding: 3.4rem 0 0;
}

@media only screen and (max-width: 768px) {
  .copyright {
    font-size: 1rem;
    padding: 3.5rem 0 0;
  }
}

canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
}

html.has-hover body {
  cursor: none;
}

/* 非ホバー（タッチ）環境ではカーソルなし */
@media (hover: none), (pointer: coarse) {
  html.has-hover {
    /* no-op */
  }

  html:not(.has-hover) body {
    cursor: auto;
  }

  html:not(.has-hover) .cursor-dot,
  html:not(.has-hover) .cursor-ring,
  html:not(.has-hover) .particle {
    display: none !important;
  }
}

/* 追加コンテンツ */

#park_map {
  background: linear-gradient(135deg, #0a1428 24.88%, #040912 50.25%, #010204 76.09%, #000 98.32%);
  padding: 14rem 0 13rem;

  @media screen and (max-width: 768px) {
    padding: 5rem 0 5rem;
  }

  h2 {
    color: #fff;
  }

  .main_map {
    margin-bottom: 7.6rem;

    @media screen and (max-width: 768px) {
      margin-bottom: 4rem;
    }
  }

  .facility_list {
    display: flex;
    flex-flow: column;
    gap: 7.2rem 0;
    color: #fff;

    @media screen and (max-width: 768px) {
      gap: 3.2rem 0;
    }

    .facility00 {
      display: flex;
      justify-content: space-between;
      align-items: center;

      @media screen and (max-width: 768px) {
        flex-flow: column;
        align-items: flex-start;
      }

      .facility_text {
        width: 47.875%;

        @media screen and (max-width: 768px) {
          display: contents;
        }

        h3 {
          display: flex;
          align-items: baseline;

          font-size: 4rem;
          margin-bottom: 0.8rem;

          @media screen and (max-width: 768px) {
            font-size: 2.4rem;
            margin-bottom: 0.8rem;
          }

          .dec_no {
            font-family: "Oswald", sans-serif;
            font-size: 3.6rem;
            font-weight: 600;
            background: url(../img/bg_h2.png) no-repeat left top / 100% auto;
            width: 5.2rem;
            border-radius: 999px;
            display: flex;
            justify-content: center;
            align-items: center;
            align-self: center;
            line-height: 0;
            aspect-ratio: 1;
            color: #000;
            margin-right: 1.5rem;

            @media screen and (max-width: 768px) {
              font-size: 1.8rem;
              width: 3rem;
              margin-right: 1rem;
            }
          }

          .size_s {
            font-size: 3rem;
          }

          @media screen and (max-width: 768px) {
            order: 1;
          }
        }

        p {
          font-size: 1.34rem;
          line-height: 2.4;

          @media screen and (max-width: 768px) {
            order: 3;
          }
        }
      }

      .facility_img {
        width: 48.4375%;

        @media screen and (max-width: 768px) {
          width: 80.5%;
          order: 2;
          margin: 1rem auto 1rem;
        }
      }
    }
  }
}