@charset "UTF-8";
/* =========================
   Font Stacks
   ========================= */
/* =========================
   HTML
   ========================= */
html {
  font-size: 62.5%;
  color: #fff;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Noto Sans JP", Meiryo, "Yu Gothic Medium", sans-serif;
  letter-spacing: 0.05em;
  font-optical-sizing: auto;
  background: #000;
  scroll-behavior: smooth;
  scrollbar-gutter: stable; }
  @media (max-width: 768px) {
    html {
      letter-spacing: 0.06em; } }

body {
  background: #000;
  line-height: 2.0em; }
  body.is-modal-open {
    overflow: hidden; }

#loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  pointer-events: all; }
  #loader.is-open .loader-panel.top {
    transform: translateY(-100%); }
  #loader.is-open .loader-panel.bottom {
    transform: translateY(100%); }
  #loader.is-open .loader-center {
    opacity: 0; }
  #loader .loader-panel {
    position: absolute;
    left: 0;
    width: 100%;
    height: 50%;
    background: #000;
    transition: transform 0.8s cubic-bezier(0.77, 0, 0.18, 1); }
    #loader .loader-panel.top {
      top: 0;
      transform: translateY(0); }
    #loader .loader-panel.bottom {
      bottom: 0;
      transform: translateY(0); }
  #loader .loader-center {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    z-index: 2;
    transition: opacity .3s ease; }
    #loader .loader-center .loader-bar {
      width: 100%;
      height: 2px;
      background: rgba(255, 255, 255, 0.12);
      border-radius: 999px;
      overflow: hidden; }
      #loader .loader-center .loader-bar .loader-bar-inner {
        display: block;
        height: 100%;
        width: 0%;
        background: #fff;
        border-radius: 999px;
        transition: width .2s ease; }
    #loader .loader-center .loader-text {
      margin-top: 12px;
      font-size: 14px;
      letter-spacing: .08em;
      opacity: .7;
      text-align: center; }

#siteMain {
  opacity: 0;
  transition: opacity .6s ease; }

#siteMain.is-visible {
  opacity: 1; }

.page {
  width: 90%;
  max-width: 1100px;
  min-height: 80vh;
  margin: 60px auto; }
  @media (max-width: 768px) {
    .page {
      margin: 40px auto; } }
  .page p {
    font-size: 1.8em;
    line-height: 1.8em; }
  .page.notfound h1 {
    font-size: 4.0em;
    font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "HGS明朝E", "MS PMincho", "MS Mincho", "Noto Serif JP", serif;
    margin-bottom: 60px; }

.is-loading {
  overflow: hidden;
  height: 100%; }

html.is-loading,
body.is-loading {
  overflow: hidden;
  height: 100%; }

/* 下層用 Loading */
#preload {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 99999;
  transition: opacity .4s ease, visibility .4s ease; }

#preload.is-hide {
  opacity: 0;
  visibility: hidden; }

.loading-text {
  font-size: 14px;
  letter-spacing: .12em;
  animation: blink 1.2s ease-in-out infinite; }

@keyframes blink {
  0% {
    opacity: .2; }
  50% {
    opacity: 1; }
  100% {
    opacity: .2; } }
/* main フェードイン */
#siteMain {
  opacity: 0;
  transition: opacity .6s ease; }

#siteMain.is-visible {
  opacity: 1; }

img {
  width: 100%;
  max-width: 100%;
  display: block; }

a.link-box {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0; }

.fade-target {
  opacity: 0;
  transition: opacity 1.5s ease, transform 1.5s ease; }

.fade-target.is-visible {
  opacity: 1;
  transform: translateY(0); }

a:link,
a:visited {
  color: inherit; }

p {
  font-feature-settings: "palt";
  line-break: strict; }

strong {
  font-weight: bold; }

h1,
#message,
footer {
  width: 100%;
  margin: 0 auto; }

.visible-h1 {
  width: 100%;
  margin: 0 auto;
  text-align: center;
  margin-bottom: 0; }
  .visible-h1 img {
    display: block; }
  .visible-h1.logo-mini {
    width: 123px;
    height: auto;
    padding: 10px; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap; }

nav {
  position: sticky;
  top: 0;
  z-index: 98; }
  nav > .gnav-main {
    border-bottom: #3f3f3f 20px solid;
    background-image: url(../img/nav-bg.jpg);
    background-repeat: repeat-x;
    background-size: contain;
    position: sticky;
    top: 0;
    z-index: 99; }
    nav > .gnav-main ul {
      display: flex;
      max-width: 1100px;
      margin: 0 auto; }
      nav > .gnav-main ul > li {
        position: relative; }
        nav > .gnav-main ul > li > img {
          display: block; }
    nav > .gnav-main.yokohama {
      border-bottom: #be1919 20px solid; }
    nav > .gnav-main.tohoku-kanazawa {
      border-bottom: #097685 20px solid; }
  nav > .gnav-sub {
    background: rgba(0, 0, 0, 0.8);
    padding: 10px 40px 0 0; }
    @media (max-width: 768px) {
      nav > .gnav-sub {
        overflow-x: visible;
        overflow-y: visible;
        -webkit-overflow-scrolling: touch; } }
    nav > .gnav-sub ul {
      display: flex;
      flex-wrap: nowrap;
      width: 95%;
      margin: 0 auto;
      justify-content: space-between;
      align-items: center; }
      @media (max-width: 768px) {
        nav > .gnav-sub ul {
          justify-content: flex-start;
          gap: 16px;
          width: 768px;
          padding: 0 16px;
          margin: 0; } }
      nav > .gnav-sub ul li {
        padding: 10px 20px;
        position: relative; }
        @media (max-width: 768px) {
          nav > .gnav-sub ul li {
            flex: 0 1 auto;
            padding: 0 10px; } }
        nav > .gnav-sub ul li.junbichu > picture, nav > .gnav-sub ul li.junbichu img {
          opacity: 0.5; }
        nav > .gnav-sub ul li.junbichu::after {
          content: "";
          display: block;
          width: 27px;
          height: 14px;
          background-image: url(../img/nav_junbichu.png);
          background-size: contain;
          background-repeat: none;
          position: absolute;
          right: 0;
          top: 0; }
          @media (max-width: 768px) {
            nav > .gnav-sub ul li.junbichu::after {
              top: -6px;
              z-index: 2; } }
        nav > .gnav-sub ul li.selected::after {
          content: "";
          display: block;
          width: 0;
          height: 0;
          border-style: solid;
          border-right: 8px solid transparent;
          border-left: 8px solid transparent;
          border-bottom: 10px solid #be1919;
          border-top: 0;
          position: absolute;
          right: 0;
          left: 0;
          margin: auto;
          bottom: -5px; }
          @media (max-width: 768px) {
            nav > .gnav-sub ul li.selected::after {
              bottom: -13px; } }
    nav > .gnav-sub.tohoku-kanazawa ul > li.selected::after {
      border-bottom: 10px solid #097685; }

.gnav-sub {
  position: relative; }
  .gnav-sub::before, .gnav-sub::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 32px;
    pointer-events: none;
    z-index: 1;
    opacity: 1;
    transition: opacity .2s ease; }
  .gnav-sub::before {
    left: 0;
    background: linear-gradient(to right, rgba(0, 0, 0, 0.9), transparent); }
  .gnav-sub::after {
    right: 0;
    background: linear-gradient(to left, rgba(0, 0, 0, 0.9), transparent); }
  .gnav-sub .gnav-sub__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border: 0;
    background: rgba(0, 0, 0, 0.55);
    cursor: pointer;
    z-index: 3;
    display: grid;
    place-items: center;
    transition: opacity .2s ease, transform .2s ease;
    opacity: 1; }
    .gnav-sub .gnav-sub__arrow::before {
      content: "";
      width: 8px;
      height: 8px;
      border-top: 2px solid #e60021;
      border-right: 2px solid #e60021;
      display: block;
      z-index: 3; }
    .gnav-sub .gnav-sub__arrow.tohoku-kanazawa::before {
      border-top: 2px solid #097685;
      border-right: 2px solid #097685; }
    .gnav-sub .gnav-sub__arrow.is-prev {
      left: 0; }
      .gnav-sub .gnav-sub__arrow.is-prev::before {
        transform: rotate(-135deg);
        margin-left: 2px; }
    .gnav-sub .gnav-sub__arrow.is-next {
      right: 0; }
      .gnav-sub .gnav-sub__arrow.is-next::before {
        transform: rotate(45deg);
        margin-right: 2px; }
    .gnav-sub .gnav-sub__arrow:hover {
      transform: translateY(-50%) scale(1.03); }
    .gnav-sub .gnav-sub__arrow:active {
      transform: translateY(-50%) scale(0.98); }
  .gnav-sub .gnav-sub__scroller {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 10px 10px 10px; }
    .gnav-sub .gnav-sub__scroller::-webkit-scrollbar {
      display: none; }
    @media (max-width: 768px) {
      .gnav-sub .gnav-sub__scroller {
        padding: 10px 10px 13px 10px; } }
  .gnav-sub .gnav-sub__scroller ul {
    max-width: 1100px;
    display: flex; }
  .gnav-sub .gnav-sub__scroller li {
    flex: 0 0 auto; }
    .gnav-sub .gnav-sub__scroller li img {
      display: block;
      height: 100%;
      max-height: 20px;
      width: auto; }
  .gnav-sub.is-at-start::before {
    opacity: 0; }
  .gnav-sub.is-at-start .gnav-sub__arrow.is-prev {
    opacity: 0;
    pointer-events: none; }
  .gnav-sub.is-at-end::after {
    opacity: 0; }
  .gnav-sub.is-at-end .gnav-sub__arrow.is-next {
    opacity: 0;
    pointer-events: none; }
  .gnav-sub.is-not-scrollable::before, .gnav-sub.is-not-scrollable::after {
    opacity: 0; }
  .gnav-sub.is-not-scrollable .gnav-sub__arrow {
    opacity: 0;
    pointer-events: none; }

main {
  background-image: url(../img/bg.jpg);
  background-repeat: repeat; }

.btn-wrap {
  text-align: center; }

.more-btn {
  border: 1px #fff solid;
  min-width: 160px;
  padding: 14px 14px 14px 30px;
  position: relative;
  display: inline-block; }
  .more-btn p {
    width: 100%;
    color: #fff;
    font-size: 18px;
    text-align: center !important;
    padding-left: 5px;
    line-height: 1.0em !important;
    margin: 0 !important;
    padding: 0 !important; }
    @media (max-width: 768px) {
      .more-btn p {
        font-size: 14px; } }
  .more-btn::before {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 10px solid #e60021;
    border-right: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 10px;
    margin: auto;
    transition: 0.3s; }
  .more-btn:hover::before {
    left: 15px; }

.slick-arrow.thumb-next {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 10px solid #e60021;
  border-right: 0;
  position: absolute;
  top: 0;
  bottom: 0;
  right: -15px;
  margin: auto;
  background-color: transparent;
  color: transparent;
  z-index: 2; }
.slick-arrow.thumb-prev {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-right: 10px solid #e60021;
  border-left: 0;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -30px;
  margin: auto;
  background-color: transparent;
  color: transparent;
  z-index: 2; }
.slick-arrow.slick-disabled {
  opacity: 0; }

@media (min-width: 1001px) {
  #gallery .gallery-image-pc {
    display: inherit; }
  #gallery .gallery-image-sp {
    display: none; } }
@media (max-width: 1000px) {
  #gallery .gallery-image-pc {
    display: none; }
  #gallery .gallery-image-sp {
    display: inherit; } }

@media (min-width: 1400px) {
  #gallery {
    width: 100%;
    margin: 4em auto 0; } }
  @media (min-width: 1400px) and (min-width: 1001px) {
    #gallery {
      background: url(../img/picture.jpg) repeat-x;
      background-size: contain; } }
@media (min-width: 1400px) {
    #gallery .gallery-strip {
      height: 420px; }
      #gallery .gallery-strip img {
        display: none; } }
#partners {
  width: 100%;
  margin: 0 auto;
  padding: 1em 0;
  background: rgba(255, 255, 255, 0.08); }

.daisakusen-logo {
  margin: 4em auto;
  max-width: 400px; }
  @media (max-width: 768px) {
    .daisakusen-logo {
      margin: 2em auto;
      max-width: 250px; } }

ul.venue-logos {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 400px;
  margin: 20px auto 40px; }
  @media (max-width: 768px) {
    ul.venue-logos {
      max-width: 250px; } }
  ul.venue-logos li {
    width: 30%; }
  ul.venue-logos li.blue-resistance {
    width: 20%; }

.ticket-info {
  font-size: 1.2em;
  font-family: "Yu Gothic Medium", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Meiryo", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  text-align: center;
  margin: 2em auto; }

ul.social-links {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.2);
  border-bottom: 4px solid #c91414;
  padding: 20px; }
  ul.social-links li {
    width: 120px;
    margin: 0 15px; }
    @media (max-width: 768px) {
      ul.social-links li {
        width: 90px; } }
    ul.social-links li.icon {
      width: 40px; }
      @media (max-width: 768px) {
        ul.social-links li.icon {
          width: 30px; } }

p.copyright {
  font-size: 1.2em;
  font-family: "Yu Gothic Medium", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Meiryo", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  margin: 4em;
  text-align: center; }
  @media (max-width: 768px) {
    p.copyright {
      font-size: 0.8em; } }

@media (min-width: 1001px) {
  br.pc {
    display: inherit; } }
@media (max-width: 768px) {
  br.pc {
    display: none; } }
@media (min-width: 1001px) {
  br.sp {
    display: none; } }
@media (max-width: 768px) {
  br.sp {
    display: inherit; } }

/*# sourceMappingURL=common.css.map */
