/**
* Font
**/

@font-face {
  font-family: "Avenir";
  src: url("../fonts/Avenir.ttf") format("truetype");
  src: url("../fonts/Avenir.woff") format("woff");
  font-display: swap;
}

@font-face {
  font-family: "Avenir-Black";
  src: url("../fonts/Avenir-Black.otf") format("truetype");
  src: url("../fonts/Avenir-Black.woff") format("woff");
  font-display: swap;
}


/**
* Default
**/

html {
  font-size: 100%;
}

@media screen and (max-width: 1200px) {
  html {
    font-size: 88%;
  }
}

@media screen and (max-width: 767px) {
  html {
    font-size: 76%;
  }
}

@media screen and (max-width: 767px) {
  html {
    font-size: 100%;
  }
}

body {
    position: relative;
    background: var(--color_bg);
    color: var(--color_main);
    line-height: var(--line_height);
    letter-spacing: var(--letter_spacing);
    font-family: var(--font_family);
}

a {
    transition-duration: 0.5s;
}


/**
* Situation
**/

.s-pc {
    display: block !important;
}

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

.s-sp {
    display: none !important;
}

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

.s-pc__inline {
    display: inline !important;
}

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

.s-sp__inline {
    display: none !important;
}

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

.s-pc__inlineBlock {
    display: inline-block !important;
}

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

.s-sp__inlineBlock {
    display: none !important;
}

@media only screen and (max-width: 767px) {
    .s-sp__inlineBlock {
        display: inline-block !important;
    }
}


/**
* Utility
**/

.u-txt__xxxs {
  font-size: var(--fz_xxxs);
}

@media screen and (max-width: 767px) {
  .u-txt__xxxs {
    font-size: min(var(--fz_xxxs--sp), var(--fz_xxxs));
  }
}

.u-txt__xxs {
  font-size: var(--fz_xxs);
}

@media screen and (max-width: 767px) {
  .u-txt__xxs {
    font-size: min(var(--fz_xxs--sp), var(--fz_xxs));
  }
}

.u-txt__xs {
  font-size: var(--fz_xs);
}

@media screen and (max-width: 767px) {
  .u-txt__xs {
    font-size: min(var(--fz_xs--sp), var(--fz_xs));
  }
}

.u-txt__s {
  font-size: var(--fz_s);
}

@media screen and (max-width: 767px) {
  .u-txt__s {
    font-size: min(var(--fz_s--sp), var(--fz_s));
  }
}

.u-txt__s2 {
  font-size: var(--fz_s2);
}

@media screen and (max-width: 767px) {
  .u-txt__s2 {
    font-size: min(var(--fz_s2--sp), var(--fz_s2));
  }
}

.u-txt__n {
  font-size: var(--fz_n);
}

@media screen and (max-width: 767px) {
  .u-txt__n {
    font-size: min(var(--fz_n--sp), var(--fz_n));
  }
}

.u-txt__n2 {
  font-size: var(--fz_n2);
}

@media screen and (max-width: 767px) {
  .u-txt__n2 {
    font-size: min(var(--fz_n2--sp), var(--fz_n2));
  }
}

.u-txt__m {
  font-size: var(--fz_m);
}

@media screen and (max-width: 767px) {
  .u-txt__m {
    font-size: min(var(--fz_m--sp), var(--fz_m));
  }
}

.u-txt__m2 {
  font-size: var(--fz_m2);
}

@media screen and (max-width: 767px) {
  .u-txt__m2 {
    font-size: min(var(--fz_m2--sp), var(--fz_m2));
  }
}

.u-txt__m3 {
  font-size: var(--fz_m3);
}

@media screen and (max-width: 767px) {
  .u-txt__m3 {
    font-size: min(var(--fz_m3--sp), var(--fz_m3));
  }
}

.u-txt__l {
  font-size: var(--fz_l);
}

@media screen and (max-width: 767px) {
  .u-txt__l {
    font-size: min(var(--fz_l--sp), var(--fz_l));
  }
}

.u-txt__xl {
  font-size: var(--fz_xl);
}

@media screen and (max-width: 767px) {
  .u-txt__xl {
    font-size: min(var(--fz_xl--sp), var(--fz_xl));
  }
}

.u-txt__xl2 {
  font-size: var(--fz_xl2);
}

@media screen and (max-width: 767px) {
  .u-txt__xl2 {
    font-size: min(var(--fz_xl2--sp), var(--fz_xl2));
  }
}

.u-txt__xxl {
  font-size: var(--fz_xxl);
}

@media screen and (max-width: 767px) {
  .u-txt__xxl {
    font-size: min(var(--fz_xxl--sp), var(--fz_xxl));
  }
}

.u-txt__xxl2 {
  font-size: var(--fz_xxl2);
}

@media screen and (max-width: 767px) {
  .u-txt__xxl2 {
    font-size: min(var(--fz_xxl2--sp), var(--fz_xxl2));
  }
}

.u-txt__xxl3 {
  font-size: var(--fz_xxl2);
}

@media screen and (max-width: 767px) {
  .u-txt__xxl3 {
    font-size: min(var(--fz_xxl2--sp), var(--fz_xxl2));
  }
}

.u-txt__huge {
  font-size: var(--fz_huge);
}

@media screen and (max-width: 767px) {
  .u-txt__huge {
    font-size: min(var(--fz_huge--sp), var(--fz_huge));
  }
}

.u-en {
    font-family: var(--font_family--en);
    letter-spacing: 0.025em;
}

.u-strong {
  font-weight: bold;
}

.u-underline {
  text-decoration: underline;
}


.u-mt0 {
  margin-top: 0px;
}
@media screen and (max-width: 767px) {
  .u-mt0 {
    margin-top: 0;
  }
}

.u-mt4 {
  margin-top: 4px;
}
@media screen and (max-width: 767px) {
  .u-mt4 {
    margin-top: 1.8vw;
  }
}

.u-mt8 {
  margin-top: 8px;
}
@media screen and (max-width: 767px) {
  .u-mt8 {
    margin-top: 2.2vw;
  }
}

.u-mt12 {
  margin-top: 12px;
}
@media screen and (max-width: 767px) {
  .u-mt12 {
    margin-top: 2.6vw;
  }
}

.u-mt16 {
  margin-top: 16px;
}
@media screen and (max-width: 767px) {
  .u-mt16 {
    margin-top: 3vw;
  }
}

.u-mt24 {
  margin-top: 24px;
}
@media screen and (max-width: 767px) {
  .u-mt24 {
    margin-top: 3.4vw;
  }
}

.u-mt28 {
  margin-top: 28px;
}
@media screen and (max-width: 767px) {
  .u-mt28 {
    margin-top: 3.8vw;
  }
}

.u-mt32 {
  margin-top: 32px;
}
@media screen and (max-width: 767px) {
  .u-mt32 {
    margin-top: 4.2vw;
  }
}

.u-mt36 {
  margin-top: 36px;
}
@media screen and (max-width: 767px) {
  .u-mt36 {
    margin-top: 4.6vw;
  }
}

.u-mt38 {
  margin-top: 38px;
}
@media screen and (max-width: 767px) {
  .u-mt38 {
    margin-top: 5vw;
  }
}

.u-mt40 {
  margin-top: 40px;
}
@media screen and (max-width: 767px) {
  .u-mt40 {
    margin-top: 5.4vw;
  }
}

.u-mt44 {
  margin-top: 44px;
}
@media screen and (max-width: 767px) {
  .u-mt44 {
    margin-top: 5.8vw;
  }
}

.u-mt48 {
  margin-top: 48px;
}
@media screen and (max-width: 767px) {
  .u-mt48 {
    margin-top: 6.2vw;
  }
}

.u-mt52 {
  margin-top: 52px;
}
@media screen and (max-width: 767px) {
  .u-mt52 {
    margin-top: 6.6vw;
  }
}

.u-mt56 {
  margin-top: 56px;
}
@media screen and (max-width: 767px) {
  .u-mt56 {
    margin-top: 7vw;
  }
}

.u-mt60 {
  margin-top: 60px;
}
@media screen and (max-width: 767px) {
  .u-mt60 {
    margin-top: 8vw;
  }
}

.u-mb4 {
  margin-bottom: 4px;
}
@media screen and (max-width: 767px) {
  .u-mb4 {
    margin-bottom: 1.8vw;
  }
}

.u-mb8 {
  margin-bottom: 8px;
}
@media screen and (max-width: 767px) {
  .u-mb8 {
    margin-bottom: 2.6vw;
  }
}

.u-mb12 {
  margin-bottom: 12px;
}
@media screen and (max-width: 767px) {
  .u-mb12 {
    margin-bottom: 3vw;
  }
}

.u-mb16 {
  margin-bottom: 16px;
}
@media screen and (max-width: 767px) {
  .u-mb16 {
    margin-bottom: 3.4vw;
  }
}

.u-mb24 {
  margin-bottom: 24px;
}
@media screen and (max-width: 767px) {
  .u-mb24 {
    margin-bottom: 3.8vw;
  }
}

.u-mb28 {
  margin-bottom: 28px;
}
@media screen and (max-width: 767px) {
  .u-mb28 {
    margin-bottom: 4.2vw;
  }
}

.u-mb32 {
  margin-bottom: 32px;
}
@media screen and (max-width: 767px) {
  .u-mb32 {
    margin-bottom: 4.6vw;
  }
}

.u-mb36 {
  margin-bottom: 36px;
}
@media screen and (max-width: 767px) {
  .u-mb36 {
    margin-bottom: 5vw;
  }
}

.u-mb38 {
  margin-bottom: 38px;
}
@media screen and (max-width: 767px) {
  .u-mb38 {
    margin-bottom: 5.4vw;
  }
}

.u-mb40 {
  margin-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .u-mb40 {
    margin-bottom: 6vw;
  }
}

.u-mb44 {
  margin-bottom: 44px;
}
@media screen and (max-width: 767px) {
  .u-mb44 {
    margin-bottom: 6.4vw;
  }
}

.u-mb48 {
  margin-bottom: 48px;
}
@media screen and (max-width: 767px) {
  .u-mb48 {
    margin-bottom: 6.8vw;
  }
}

.u-mb52 {
  margin-bottom: 52px;
}
@media screen and (max-width: 767px) {
  .u-mb52 {
    margin-bottom: 7.2vw;
  }
}

.u-mb56 {
  margin-bottom: 56px;
}
@media screen and (max-width: 767px) {
  .u-mb56 {
    margin-bottom: 7.6vw;
  }
}

.u-mb60 {
  margin-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .u-mb60 {
    margin-bottom: 8vw;
  }
}

.u-pt4 {
  padding-top: 4px;
}
@media screen and (max-width: 767px) {
  .u-pt4 {
    padding-top: 1.8vw;
  }
}

.u-pt8 {
  padding-top: 8px;
}
@media screen and (max-width: 767px) {
  .u-pt8 {
    padding-top: 2.2vw;
  }
}

.u-pt12 {
  padding-top: 12px;
}
@media screen and (max-width: 767px) {
  .u-pt12 {
    padding-top: 2.6vw;
  }
}

.u-pt16 {
  padding-top: 16px;
}
@media screen and (max-width: 767px) {
  .u-pt16 {
    padding-top: 3vw;
  }
}

.u-pt24 {
  padding-top: 24px;
}
@media screen and (max-width: 767px) {
  .u-pt24 {
    padding-top: 3.4vw;
  }
}

.u-pt28 {
  padding-top: 28px;
}
@media screen and (max-width: 767px) {
  .u-pt28 {
    padding-top: 3.8vw;
  }
}

.u-pt32 {
  padding-top: 32px;
}
@media screen and (max-width: 767px) {
  .u-pt32 {
    padding-top: 4.2vw;
  }
}

.u-pt36 {
  padding-top: 36px;
}
@media screen and (max-width: 767px) {
  .u-pt36 {
    padding-top: 4.6vw;
  }
}

.u-pt38 {
  padding-top: 38px;
}
@media screen and (max-width: 767px) {
  .u-pt38 {
    padding-top: 5vw;
  }
}

.u-pt40 {
  padding-top: 40px;
}
@media screen and (max-width: 767px) {
  .u-pt40 {
    padding-top: 5.4vw;
  }
}

.u-pt44 {
  padding-top: 44px;
}
@media screen and (max-width: 767px) {
  .u-pt44 {
    padding-top: 5.8vw;
  }
}

.u-pt48 {
  padding-top: 48px;
}
@media screen and (max-width: 767px) {
  .u-pt48 {
    padding-top: 6.2vw;
  }
}

.u-pt52 {
  padding-top: 52px;
}
@media screen and (max-width: 767px) {
  .u-pt52 {
    padding-top: 6.6vw;
  }
}

.u-pt56 {
  padding-top: 56px;
}
@media screen and (max-width: 767px) {
  .u-pt56 {
    padding-top: 7vw;
  }
}

.u-pt60 {
  padding-top: 60px;
}
@media screen and (max-width: 767px) {
  .u-pt60 {
    padding-top: 8vw;
  }
}

.u-pb4 {
  padding-bottom: 4px;
}
@media screen and (max-width: 767px) {
  .u-pb4 {
    padding-bottom: 1.8vw;
  }
}

.u-pb8 {
  padding-bottom: 8px;
}
@media screen and (max-width: 767px) {
  .u-pb8 {
    padding-bottom: 2.6vw;
  }
}

.u-pb12 {
  padding-bottom: 12px;
}
@media screen and (max-width: 767px) {
  .u-pb12 {
    padding-bottom: 3vw;
  }
}

.u-pb16 {
  padding-bottom: 16px;
}
@media screen and (max-width: 767px) {
  .u-pb16 {
    padding-bottom: 3.4vw;
  }
}

.u-pb24 {
  padding-bottom: 24px;
}
@media screen and (max-width: 767px) {
  .u-pb24 {
    padding-bottom: 3.8vw;
  }
}

.u-pb28 {
  padding-bottom: 28px;
}
@media screen and (max-width: 767px) {
  .u-pb28 {
    padding-bottom: 4.2vw;
  }
}

.u-pb32 {
  padding-bottom: 32px;
}
@media screen and (max-width: 767px) {
  .u-pb32 {
    padding-bottom: 4.6vw;
  }
}

.u-pb36 {
  padding-bottom: 36px;
}
@media screen and (max-width: 767px) {
  .u-pb36 {
    padding-bottom: 5vw;
  }
}

.u-pb38 {
  padding-bottom: 38px;
}
@media screen and (max-width: 767px) {
  .u-pb38 {
    padding-bottom: 5.4vw;
  }
}

.u-pb40 {
  padding-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .u-pb40 {
    padding-bottom: 6vw;
  }
}

.u-pb44 {
  padding-bottom: 44px;
}
@media screen and (max-width: 767px) {
  .u-pb44 {
    padding-bottom: 6.4vw;
  }
}

.u-pb48 {
  padding-bottom: 48px;
}
@media screen and (max-width: 767px) {
  .u-pb48 {
    padding-bottom: 6.8vw;
  }
}

.u-pb52 {
  padding-bottom: 52px;
}
@media screen and (max-width: 767px) {
  .u-pb52 {
    padding-bottom: 7.2vw;
  }
}

.u-pb56 {
  padding-bottom: 56px;
}
@media screen and (max-width: 767px) {
  .u-pb56 {
    padding-bottom: 7.6vw;
  }
}

.u-pb60 {
  padding-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .u-pb60 {
    padding-bottom: 8vw;
  }
}

.u-zindex01 {
    position: relative;
    z-index: 1;
}

.u-zindex02 {
    position: relative;
    z-index: 2;
}

.u-zindex03 {
    position: relative;
    z-index: 3;
}

.u-align__left {
   text-align: left;
}

.u-align__center {
   text-align: center;
}

.u-align__right {
   text-align: right;
}

/**
* Layout
**/

.l-body.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}

.l-content__f {
    width: var(--size_content--full);
    overflow: hidden;
}

.l-content__l {
    position: relative;
    max-width: var(--size_content--l);
    width: 100%;
    margin: 0 auto;
    padding: 0 70px;
}

@media only screen and (max-width: 767px) {
    .l-content__l {
        width: 100%;
        padding: 0 4vw;
    }
}

.l-content__m {
    position: relative;
    max-width: var(--size_content--m);
    width: 100%;
    margin: 0 auto;
    padding: 0 70px;
}

@media only screen and (max-width: 767px) {
    .l-content__m {
        width: 100%;
        padding: 0 4vw;
    }
}

.l-content__s {
    position: relative;
    max-width: var(--size_content--s);
    width: 100%;
    margin: 0 auto;
    padding: 0 70px;
}

@media only screen and (max-width: 767px) {
    .l-content__s {
        width: 100%;
        padding: 0 5vw;
    }
}

.l-content__second {
  margin: 160px auto 120px;
  min-height: calc(100vh - 620px);
}

@media only screen and (max-width: 767px) {
  .l-content__second {
    margin: 17vw auto 20vw;
    min-height: calc(100vh - 630px);
  }
}

.l-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 3;
    color: var(--color_header);
    background: var(--bg_header);
    opacity: 0;
}

@media only screen and (max-width: 767px) {
    .l-header {
      z-index: 5;
    }
    .l-header.is-active {
      height: 100%;
    }
}

.l-footer {
    border-top: 10px solid #a82bda;
    border-image: linear-gradient(to right, #a82bda 0%, #013dc1 100%);
    border-image-slice: 1;
    color: var(--color_footer);
    background: var(--bg_footer);
}

@media only screen and (max-width: 767px) {
  .l-footer {
      border-top: 4px solid #a82bda;
  }
}


/**
* Project
**/

.p-fixed__ticket {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 190px;
    height: 190px;
    z-index: 3;
    opacity: 0;
}

@media only screen and (max-width: 767px) {
  .p-fixed__ticket {
      bottom: 4vw;
      right: 4vw;
      width: 30vw;
      height: 30vw;
  }
}

.p-fixed__ticket a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

.p-fixed__ticket--btn {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 52%;
    margin-top: 3px;
    transform: translate(-50%,-50%);
    z-index: 1;
}

@keyframes rotation {
  0% {
    transform: translate(-50%,-50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%,-50%) rotate(360deg);
  }
}

.p-fixed__ticket--txt {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    transform: translate(-50%,-50%);
    animation: 12s linear infinite rotation;
}

.p-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: min(2vw,40px);
    max-width: 100%;
    margin: 0 auto;
    padding: 30px min(2vw,40px);
    animation-name: fadeInAnime;
    animation-fill-mode:forwards;
    animation-duration:0.8s;
    animation-iteration-count:1;
    animation-timing-function:ease;
    animation-delay: 0.5s;
    animation-direction:normal;
    opacity: 0;
}

@keyframes fadeInAnime{
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@media only screen and (max-width: 767px) {
    .p-header {
        padding: 12px 4vw 12px;
    }
}

.p-header__inner {
  width: 60%;
}

@media only screen and (max-width: 767px) {
    .p-header__inner {
        display: flex;
        justify-content: space-between;
        gap: 0 2vw;
        width: 100%;
        z-index: 2;
    }
}

.p-header__logo {
    max-width: var(--size_headerlogo--pc);
    mix-blend-mode: difference;
}

@media only screen and (max-width: 767px) {
    .p-header__logo {
        display: flex;
        align-items: center;
        max-width: var(--size_headerlogo--sp);
    }
}

.p-header__logo img,
.p-header__logo svg {
    width: 100%;
    vertical-align: middle;
}

.p-header__hamburger {
    display: none;
    position: relative;
    width: 25px;
    height: 30px;
}

@media only screen and (max-width: 767px) {
    .p-header__hamburger {
        display: block;
    }
}

.p-header__hamburger span {
    position: absolute;
    display: inline-block;
    width: 100%;
    height: 1px;
    background: var(--color_hamburger);
    transition-duration: 0.3s;
}

.p-header__hamburger span:first-child  {
    top: 5px;
}

.p-header__hamburger.is-active span:first-child  {
    top: 14px;
    transform: rotate(45deg);
}

.p-header__hamburger span:nth-child(2) {
    top: 15px;
}

.p-header__hamburger.is-active span:nth-child(2)  {
    opacity: 0;
}

.p-header__hamburger span:nth-child(3) {
    bottom: 5px;
}

.p-header__hamburger.is-active span:nth-child(3)  {
    bottom: 15px;
    transform: rotate(-45deg);
}

.p-header__nav {

}

@media only screen and (max-width: 767px) {
    .p-header__nav {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #0c1654;
        z-index: 1;
    }
}

.p-header__nav--inner {
    display: flex;
    gap: min(3vw,44px);
}

@media only screen and (max-width: 767px) {
  .p-header__nav--inner {
    height: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
}

.p-header__nav--list {
    display: flex;
    align-items: center;
    gap: min(2vw,30px);
}

@media only screen and (max-width: 767px) {
  .p-header__nav--list {
      display: block;
      text-align: center;
  }
}

@media only screen and (max-width: 767px) {
  .p-header__nav--list li {
      margin: 5.8vw 0;
  }
}

.p-header__nav--list li a,
.p-header__nav--list li span {
    font-size: .875rem;
    font-weight: 400;
    cursor: pointer;
    white-space: nowrap;
    font-family: "Avenir";
}

@media only screen and (max-width: 767px) {
  .p-header__nav--list li a,
  .p-header__nav--list li span {
      font-size: 4.4vw;
  }
}

.p-header__nav--list li a:hover,
.p-header__nav--list li span:hover {
    color:  var(--color_accent);
    text-shadow:0 0 3px #ff0a6f;
}

.p-header__ticket {
    max-width: 120px;
    text-align: center;
}

@media only screen and (max-width: 767px) {
  .p-header__nav .p-header__ticket {
      max-width: 100%;
      width: 60%;
      margin: 5vw auto 0;
  }
}

@media only screen and (max-width: 767px) {
  .l-header.is-active .p-header__inner .p-header__ticket {
      display: none;
  }
}

.p-header__ticket a {
    display: block;
    width: 100%;
    font-size: 0.875rem;
    padding: 6px 20px 8px;
    background: var(--color_accent);
    border: 1px solid var(--color_accent);
}

@media only screen and (max-width: 767px) {
    .p-header__ticket a {
      margin-top: 1px;
      font-size: 0.8rem;
      padding: 2px 12px 3.5px;
    }
}

@media only screen and (max-width: 767px) {
  .p-header__nav .p-header__ticket a {
      padding: 16px 28px;
      font-size: 4vw;
  }
}

.p-header__ticket a:hover {
  background: inherit;
  color:  var(--color_accent);
  border: 1px solid var(--color_accent);
}

@media only screen and (max-width: 767px) {
    .p-header__sp {
      display: flex;
      gap: 20px;
    }
}

.p-footer {
    position: relative;
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    padding: 60px 70px;
    color: var(--color_footer);
    background: var(--bg_footer);
}

@media only screen and (max-width: 767px) {
    .p-footer {
        flex-direction: column-reverse;
        padding: 0 4vw 8vw;
    }
}

.p-footer__left {
    max-width: 880px;
    width: 70%;
}

@media only screen and (max-width: 767px) {
  .p-footer__left {
      max-width: 100%;
      width: 100%;
  }
}

.p-footer__right {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    max-width: 450px;
    width: 42%;
}

@media only screen and (max-width: 767px) {
  .p-footer__right {
      display: block;
      max-width: 100%;
      width: 100%;
      margin-bottom: 6vw;
  }
}

.p-footer__global {
}

@media only screen and (max-width: 767px) {
    .p-footer__global {
    }
}

.p-footer__nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    margin-bottom: 36px;
}

@media only screen and (max-width: 767px) {
    .p-footer__nav {
    display: block;
      margin-bottom: 5vw;

    }
        .p-footer__nav  li{
          border-bottom: 1px solid #293269;
        }
        .p-footer__nav  li a,.p-footer__nav li span{
          display: block;
          padding: 15px 10px;
        }
}

.p-footer__nav li a,
.p-footer__nav li span {
    font-size: 0.875rem;
    transition-duration: 0.3s;
    font-family: "Avenir";
    cursor: pointer;
    white-space: nowrap;
}

.p-footer__nav li a:hover,
.p-footer__nav li span:hover {
    color:  var(--color_accent);
    text-shadow:0 0 3px #ff0a6f;
}

@media only screen and (max-width: 767px) {
    .p-footer__nav li a,
    .p-footer__nav li span {
        font-size: 3.2vw;
    }
}

.p-footer__logo {
    margin-bottom: 20px;
    max-width: var(--size_footerlogo--pc);
}

@media only screen and (max-width: 767px) {
    .p-footer__logo {
        margin-bottom: 2.2vw;
        max-width: var(--size_footerlogo--sp);
    }
}

.p-footer__info {
  font-size: min(var(--fz_s--sp),var(--fz_n2));
  line-height: 2em;
}

.p-footer__logo img {
    vertical-align: middle;
}

.p-footer__sns {
    display: flex;
    justify-content: flex-end;
    gap: 20px;
}

@media only screen and (max-width: 767px) {
    .p-footer__sns {
        gap: 18px;
        justify-content: center;
    }
}

.p-footer__sns li {
    max-width: 32px;
}

@media only screen and (max-width: 767px) {
    .p-footer__sns li {
        max-width: 36px;
    }
}

.p-footer__sns li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--color_main);
    border-radius: 50px;
    font-size: 1.2rem;
    transition-duration: 0.3s;
}

.p-footer__sns li:hover a {
    border: 1px solid var(--color_accent);
    color:  var(--color_accent);
    text-shadow:0 0 3px #ff0a6f;
}

.p-footer__copyright {
    text-align: right;
    font-size: .875rem;
    letter-spacing: 0.08em;
}

@media only screen and (max-width: 767px) {
    .p-footer__copyright {
        padding: 0 4vw 16px;
        font-size: 2.8vw;
        text-align: left;
    }
}

/*カーソル要素*/
#cursor{
  position: fixed;
  background: rgba(255,255,255,0.5);
  border-radius:10px;
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  z-index: 10;
  pointer-events: none;
  opacity: 0;
}

#cursor.is-active {
  transform: scale(1.5);
}

@media only screen and (max-width: 767px) {
    #cursor{
        display: none;
    }
}

#stalker{
  position: fixed;
  border: 1px solid rgba(255,255,255,0.5);
  /*background: rgba(255,255,255,0.5);*/
  width: 30px;
  height: 30px;
  border-radius:30px;
  margin: -15px 0 0 -15px;
  z-index: 10;
  pointer-events: none;
  transition-duration: 0.2s;
  opacity: 0;
}

#stalker.is-active {
  transform: scale(1.8);
}

@media only screen and (max-width: 767px) {
    #stalker{
        display: none;
    }
}

.c-btn {
    position: relative;
    display: inline-block;
    max-width: 700px;
    width: 100%;
    color: var(--color_main);
    padding: 20px 12px;
    text-align: center;
    border: 1px solid var(--color_main);
    /*border-radius: 50px;*/
    background: var(--color_accent2);
    transition-duration: 0.3s;
}

@media only screen and (max-width: 767px) {
    .c-btn {
        width: 70%;
        padding: 2.8vw 8px;
    }
}

.c-btn:hover {
    color: var(--color_accent2);
    border: 1px solid var(--color_accent2);
    background: var(--color_main);
}

.c-btn__accord {
    margin: 43px 0 0;
    text-align: center;
}

@media only screen and (max-width: 767px) {
    .c-btn__accord {
        margin: 4vw 0 0;
    }
}

.c-btn__accord span {
    position: relative;
    padding-right: 35px;
}

.c-btn__accord span:after {
    position: absolute;
    content: "";
    right: 0;
    display: inline-block;
    width: 14px;
    height: 14px;
    margin: 0 10px;
    border-bottom: 1px solid var(--color_main);
    border-right: 1px solid var(--color_main);
    transform: rotate(45deg);
}

@media only screen and (max-width: 767px) {
    .c-btn__accord span:after {
        top: 0.3vw;
        width: 14px;
        height: 14px;
    }
}

.c-btn__accord.is-active span:after {
    transform: rotate(-135deg);
    top: 8px;
}

@media only screen and (max-width: 767px) {
    .c-btn__accord.is-active span:after {
        top: 6px;
    }
}

.c-link {
  margin-top: 60px;
  text-align: center;
}

@media only screen and (max-width: 767px) {
  .c-link {
    margin-top: 8vw;
    text-align: center;
  }
}

.c-link span {
  position: relative;
  padding: 12px 60px 13px;
  border: 1px solid #fff;
  border-radius: 50px;
  cursor: pointer;
  transition-duration: 0.3s
}

@media only screen and (max-width: 767px) {
  .c-link span {
    padding: 1.6vw 10vw 2.2vw;
  }
}

.c-link span:hover {
  opacity: 0.8;
}

.c-link span i {
  position: absolute;
      top: 52%;
      right: 12px;
      transform: translate(0,-50%);
      width: 20px;
}

@media only screen and (max-width: 767px) {
  .c-link span i {
    right: 2.2vw;
    width: 3.8vw;
    line-height: 1em;
  }
}

/*.c-btn span:after {
    position: absolute;
    top: 50%;
    right: 20px;
    content: "";
    width: 22px;
    height: 22px;
    background: url(../images/common/icon-plus.png) no-repeat;
    background-size: 100%;
    transform: translate(0,-50%);
}

@media only screen and (max-width: 767px) {
    .c-btn span:after {
        right: 4vw;
        width: 5vw;
        height: 5vw;
    }
}*/

@keyframes textUp{
  0% {
    transform: translateY(120px);
  }
  100% {
    transform: translateY(0);
  }
}

.js-up {
    overflow: hidden;
}

.js-up span {
    display: inline-block;
}

.js-up.is-up span {
    display: inline-block;
    animation: textUp 2s ease 1;
}

.js-glow.is-glow {
    text-shadow:0 0 10px #fff;
}

@media only screen and (max-width: 767px) {
    .js-glow.is-glow {
        text-shadow: 0 0 6px rgba(255,255,255,0.7);
    }
}

.js-logo__top,
.js-logo__btm,
.js-mv__top,
.js-mv__btm {
    opacity: 0;
}

.js-logo__top.is-done {
    opacity: 1 !important;
}


.p-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 8;
}

.p-modal__inner {
    max-height: calc(80vh - 110px);
    overflow: auto;
    padding: 0 min(4vw,55px);
}

@media only screen and (max-width: 767px) {
    .p-modal__inner {
        padding: 0 4vw;
    }
}

.p-modal figure {
    position: relative;
}

.p-modal__position {
    position: absolute;
    left: 0;
    top: 0;
    padding: 3px 16px 4px;
    background: #000;
    font-size: 0.925rem;
    color: #fff;
    z-index: 1;
}

@media only screen and (max-width: 767px) {
    .p-modal__position {
        font-size: 3.4vw;
        padding: 2px 10px 3px;
    }
}

.p-modal__overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
}

.p-modal__item {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    max-width: min(60vw,885px);
    max-height: 80vh;
    padding: min(2.8vw,55px) 0 min(4vw,55px);
    background: #fff;
}

@media only screen and (max-width: 767px) {
    .p-modal__item {
        max-width: 100%;
        width: 90vw;
        padding: 6vw 0;
    }
    .p-modal__item#modal-timetable, .p-modal__item#modal-areamap {
        width: 90vw !important;
    }
}

.p-modal__item#modal-timetable,
.p-modal__item#modal-areamap {
    padding: 0;
    width: min(55vw,800px);
    max-height: inherit;
    background: none;
}

@media only screen and (max-height: 900px) {
    .p-modal__item#modal-timetable, .p-modal__item#modal-areamap {
        /*max-width: min(50vw,420px);*/
    }
}


.p-modal__item#modal-areamap {
  width: min(60vw,765px);
}

.p-modal__item#modal-timetable .p-modal__inner,
.p-modal__item#modal-areamap .p-modal__inner {
    /*max-height: inherit;*/
    max-height: calc(84vh - 60px);
    padding: 0;
}
@media only screen and (max-width: 767px) {
  .p-modal__item#modal-timetable .p-modal__inner,
  .p-modal__item#modal-areamap .p-modal__inner{
    max-height: calc(84vh - 40px);
  }
}

.p-modal__txt {
    margin-top: 40px;
    color: #000;
    line-height: 1.6;
}

@media only screen and (max-width: 767px) {
    .p-modal__txt {
        margin-top: 5vw;
    }
}

.p-modal__desc {
    margin-bottom: 32px;
    line-height: 1.8;
}

@media only screen and (max-width: 767px) {
    .p-modal__desc {
        margin-bottom: 5vw;
    }
}

.p-modal__info {
    display: flex;
    gap: 20px;
    margin-bottom: 12px;
    word-wrap: break-word;
}

@media only screen and (max-width: 767px) {
    .p-modal__info {
        display: block;
        margin-bottom: 2.8vw;
    }
}

.p-modal__info:last-child {
    margin-bottom: 0;
}

.p-modal__info dt {
    white-space: nowrap;
}

.p-modal__info dd {
    word-break: break-word;
}

.p-modal__close {
    position: absolute;
    top: -54px;
    right: -54px;
    width: 60px;
    height: 60px;
}

@media only screen and (max-width: 767px) {
    .p-modal__close {
        top: -44px;
        right: 0;
        width: 40px;
        height: 40px;
    }
}

.p-modal__close:before,
.p-modal__close:after {
    content: "";
    position: absolute;
    display: inline-block;
    width: 100%;
    height: 1px;
    background: var(--color_main);
    transition-duration: 0.3s;
}

.p-modal__close:before {
    top: 14px;
    transform: rotate(45deg);
}

.p-modal__close:after {
    top: 14px;
    transform: rotate(-45deg);
}

.p-modal__info dt:after {
    content: ":";
    display: inline-block;
    margin-left: 6px;
}

@media only screen and (max-width: 767px) {
    .p-modal__info dt:after {
        display: none;
    }
}

.p-modal__name {
    margin-bottom: 20px;
}

@media only screen and (max-width: 767px) {
    .p-modal__name {
        margin-bottom: 2.4vw;
    }
}
