@charset "UTF-8";
/* CSS Document */

body {
  margin: 0;
  padding: 0;
  background-color: #09080d;
  font-size: 18px;
  line-height: 1.66em;
  color: #0e0e0e;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "游ゴシック体",
    "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  background-image: image-set(
    url("../images/johatsu_art_pc.webp") type("image/webp"),
    url("../images/johatsu_art_pc.png") type("image/png")
  );
  background-position: center top;
  background-repeat: no-repeat;
  background-size: min(1400px, 100%) auto;
}

p {
  margin-bottom: 1.5em;
}

span {
  display: inline-block;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

.font60 {
  font-size: 0.6em;
}

/* -------------------------------------------------
LOADING
-------------------------------------------------*/
#loading {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(9, 8, 13, 1);
  z-index: 2147483647;
  display: flex;
  justify-content: center;
  align-items: center;
}

#loading picture {
  margin: 0 auto;
  display: block;
  width: 50px;
  height: auto;
  user-select: none;
  animation: 2s linear infinite rotation1;
}

#loading picture img {
  width: 100%;
  height: auto;
  display: block;
}

@keyframes rotation1 {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(-360deg);
  }
}

/* -------------------------------------------------
OVERLAY
-------------------------------------------------*/
#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #fff;
  z-index: 14;
  display: none;
}

/* -------------------------------------------------
TRAILER MODAL
-------------------------------------------------*/

#trailer-ol-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #000;
  z-index: 20;
  display: none;
  opacity: 1.0;
}

#trailer-ol-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 25;
  display: none;
}

#trailer-ol-flex {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  text-align: center;
}

#trailer-ol-inner {
  width: 96%;
  max-width: 1100px;
  margin: 0 2%;
}

#trailer-ol-wrapper h2 {
  color: #fff;
  font-size: 20px;
  font-family: "TazuganeGothicStdN-Thin";
  line-height: 1;
  margin: 1.0em 0 1.0em 0;
}

.youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

.closeButton {
  color: #fff;
  line-height: 1;
  font-size: 18px;
  font-family: "TazuganeGothicStdN-Thin";
  border:solid 1px #fff;
  border-radius: 100px;
  padding:0.7em 2em;
  cursor: pointer;
}

/* Chromeのフォーカス枠を消す（必要ならデザイン側で :focus-visible を作る） */
.videoButton:focus,
.closeButton:focus {
  outline: none;
}

/* ボタンリセットの影響で出ることがある影も念のため */
.videoButton::-moz-focus-inner,
.closeButton::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/* -------------------------------------------------
TRAILER BUTTON
-------------------------------------------------*/
.trailer-btn {
  width: 100%;
  margin-bottom: 55px;
  text-align: center;
}

.videoButton {
  color: #fff;
  font-size: 22px;
  line-height: 1;
  font-family: "TazuganeGothicStdN-Thin";
  border:solid 1px #fff;
  border-radius: 100px;
  padding:0.8em 2em;
  cursor: pointer;
}

/* -------------------------------------------------
CONTAINT,MAIN
-------------------------------------------------*/

#content-container {
  max-width: 1400px;
  height: auto;
  margin: 0 auto;
}

.main {
  position: relative;
  width: min(100%, 1400px);
  aspect-ratio: 1400 / 1234;
}

.main h1 {
  position: absolute;
  top: 296px;
  left: 363px;
  width: 649px;
}

.main h2 {
  position: absolute;
  top: 751px;
  left: 492px;
  width: 64px;
}

.main h3 {
  position: absolute;
  top: 30px;
  left: 147px;
  width: 1105px;
}

.main h1 picture img,
.main h2 picture img,
.main h3 picture img {
  width: 100%;
  height: auto;
  display: block;
}

/* ぼけた状態がデフォルト（まだロードが終わってない想定） */
.main h1 img {
  filter: blur(30px);
  transform: scale(1.2);
  opacity: 0.3;
  transition:
    filter 3.2s ease,
    transform 3.2s ease,
    opacity 3.2s ease;
  will-change: filter, transform, opacity;
}

/* ロード後：ピンが合う */
body.is-loaded .main h1 img {
  filter: blur(0);
  transform: scale(1);
  opacity: 1;
}

/* 動きが苦手な人向け（保険） */
@media (prefers-reduced-motion: reduce) {
  .main h1 img {
    transition: none;
    filter: none;
    transform: none;
    opacity: 1;
  }
}

/* -------------------------------------------------
BELING
-------------------------------------------------*/
.beling {
  text-align: center;
  color: #e4e4e4;
}

.beling h4 {
  font-size: 22px;
  font-family: "TazuganeGothicStdN-Heavy";
  margin-bottom: 30px;
}

.beling #beling {
  font-size: 13px;
  font-family: "TazuganeGothicStdN-Thin";
  margin-bottom: 30px;
  line-height: 1.7;
}

.beling #beling span {
  display: inline-block;
  margin: 0 0.5em;
}

.beling #credit {
  display: inline-block;
  width: 1127px;
  margin-bottom: 50px;
}

.beling #credit picture img {
  width: 100%;
  height: auto;
  display: block;
}

#roadshow {
  font-family: "TazuganeGothicStdN-Heavy";
  margin-bottom: 50px;
}

#roadshow .roadshow-day {
  font-size: 56px;
  margin-right: 0.2em;
}

#roadshow .roadshow-theater {
  font-size: 40px;
}

#roadshow .roadshow-day,
#roadshow .roadshow-theater {
  display: inline-block;
}

/* -------------------------------------------------
FOOTER
-------------------------------------------------*/

.footer {
  margin-bottom: 100px;
}

.snsList {
  text-align: center;
}

.snsList li {
  display: inline-block;
  margin: 0 10px;
}

.snsList li.x {
  margin: 0 6px;
}

.snsList li picture {
  margin: 0 auto;
  display: block;
  height: 40px;
}

.snsList li img {
  width: auto;
  height: 100%;
  display: block;
}

/* -------------------------------------------------
SNS SHARE
-------------------------------------------------*/

#sns-container {
  width: 100%;
  background-color: #323131;
  text-align: center;
  position: fixed;
  left: 0;
  bottom: 0;
  padding: 4px;
  z-index: 3;
}

ul#social {
  width: 100%;
  align-items: center;
}

#social li {
  display: inline-block;
  height: 27px;
  vertical-align: bottom;
  padding: 0 0;
  margin: 5px 2px 0 2px;
  overflow: hidden;
}

/* -------------------------------------------------
1400
-------------------------------------------------*/

@media only screen and (max-width: 1400px) and (min-width: 641px) {
  /* -------------------------------------------------
LOADING 1400
-------------------------------------------------*/

  #loading picture {
    width: 3.57vw;
  }

  /* -------------------------------------------------
TRAILER MODAL 1400
-------------------------------------------------*/

#trailer-ol-wrapper h2 {
  font-size: 1.42vw;
}

.closeButton {
  font-size: 1.28vw;
}

/* -------------------------------------------------
TRAILER BUTTON 1400
-------------------------------------------------*/
.trailer-btn {
  margin-bottom: 3.92vw;
}

.videoButton {
  font-size: 1.57vw;
}

  
  /* -------------------------------------------------
CONTAINT,MAIN 1400
-------------------------------------------------*/

  .main h1 {
    position: absolute;
    top: 21.14vw;
    left: 25.92vw;
    width: 46.35vw;
  }

  .main h2 {
    position: absolute;
    top: 53.64vw;
    left: 35.14vw;
    width: 4.57vw;
  }

  .main h3 {
    position: absolute;
    top: 2.14vw;
    left: 10.5vw;
    width: 78.92vw;
  }

  /* -------------------------------------------------
BELING 1400
-------------------------------------------------*/
  .beling h4 {
    font-size: 1.57vw;
    font-family: "TazuganeGothicStdN-Heavy";
    margin-bottom: 2.14vw;
  }

  .beling #beling {
    font-size: 0.92vw;
    margin-bottom: 2.14vw;
  }

  .beling #credit {
    width: 80.5vw;
    margin-bottom: 3.57vw;
  }

  #roadshow {
    margin-bottom: 3.57vw;
  }

  #roadshow .roadshow-day {
    font-size: 4vw;
  }

  #roadshow .roadshow-theater {
    font-size: 2.85vw;
  }

  /* -------------------------------------------------
FOOTER 1400
-------------------------------------------------*/
  .footer {
    margin-bottom: 7.14vw;
  }

  .snsList li {
    margin: 0 0.71vw;
  }

  .snsList li.x {
    margin: 0 0.42vw;
  }

  .snsList li picture {
    height: 2.85vw;
  }
}

/* -------------------------------------------------
640
-------------------------------------------------*/

@media only screen and (max-width: 640px) {
  body {
    font-size: 2vw;
    background-image: image-set(
      url("../images/johatsu_art_sp.webp") type("image/webp"),
      url("../images/johatsu_art_sp.png") type("image/png")
    );
    background-size: 100% auto;
  }

  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  /* -------------------------------------------------
LOADING 640
-------------------------------------------------*/

  #loading picture {
    width: 10vw;
  }

    /* -------------------------------------------------
TRAILER MODAL 640
-------------------------------------------------*/

#trailer-ol-wrapper h2 {
  font-size: 4vw;
  margin: 1.5em 0 2em 0;
}

.closeButton {
  font-size: 3.5vw;
}

/* -------------------------------------------------
TRAILER BUTTON 640
-------------------------------------------------*/
.trailer-btn {
  margin-bottom: 10vw;
}

.videoButton {
  font-size: 4.2vw;
}
  
  /* -------------------------------------------------
CONTAINT,MAIN 640
-------------------------------------------------*/

  .main {
    width: 100%;
    height: 170vw;
  }

  .main h1 {
    position: absolute;
    top: 51.4vw;
    left: 10.3vw;
    width: 76.9vw;
  }

  .main h2 {
    position: absolute;
    top: 105.8vw;
    left: 28.3vw;
    width: 9vw;
  }

  .main h3 {
    position: absolute;
    top: 3.4vw;
    left: 1.7vw;
    width: 96.7vw;
  }

  /* -------------------------------------------------
BELING 640
-------------------------------------------------*/

  .beling h4 {
    font-size: 3.6vw;
    margin-bottom: 6vw;
  }

  .beling #beling {
    font-size: 2.18vw;
    margin-bottom: 6vw;
    width: 90%;
    display: inline-block;
  }

  .beling #credit {
    width: 89.5vw;
    margin-bottom: 14vw;
  }

  #roadshow {
    margin-bottom: 10vw;
  }

  #roadshow .roadshow-day {
    font-size: 7.53vw;
    margin-bottom: 6vw;
  }

  #roadshow .roadshow-theater {
    font-size: 5.38vw;
  }

  /* -------------------------------------------------
FOOTER 640
-------------------------------------------------*/

  .footer {
    margin-bottom: 22vw;
  }

  .snsList li {
    margin: 0 2vw;
  }

  .snsList li.x {
    margin: 0 1.5vw;
  }

  .snsList li picture {
    height: 7.5vw;
  }
}