/*----------
 common
 ----------*/
body {
  font-family: 'Noto Sans JP', sans-serif;
  background-image: url(../../assets/img/common/main-bg.jpg);
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-blend-mode: multiply, normal;
}

/*----------
 utility 
 ----------*/

.u-sp-only {
  display: none;
}
.u-pc-only {
  display: block;
}

@media screen and (max-width: 1200px) {
  .u-pc-lg-only {
    display: none;
  }
}

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

a {
  transition: all 0.4s;
}

a:hover {
  opacity: 0.8;
}

.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  z-index: 3000;
  background-image: url(../../assets/img/common/loading.jpg);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 1;
  transition: opacity 0.8s ease;
  pointer-events: all;
  border: 5px solid #e1c069;
  padding: 4px;
}

.loading-side-text img {
  width: 20px;
  /* width: 1.04vw;
  min-width: 20px; */
  position: fixed;
}
.loading-side-text-r {
  top: 50%;
  transform: translateY(-50%);
  right: 15px;
}
.loading-side-text-l {
  top: 50%;
  transform: translateY(-50%);
  left: 15px;
}

.loading-deco img {
  width: 70px;
  position: fixed;
}

.loading-deco-tr {
  top: 15px;
  right: 15px;
}
.loading-deco-tl {
  top: 15px;
  left: 15px;
}
.loading-deco-br {
  bottom: 15px;
  right: 15px;
}
.loading-deco-bl {
  bottom: 15px;
  left: 15px;
}

.loading-inner {
  border: 1px solid #e1c069;
  width: 100%;
  height: 100%;
  padding: 4px;
}

.loading.loaded {
  opacity: 0;
  pointer-events: none;
}

.loading-icon {
  position: absolute;
  width: 170px;
  height: 190px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: fadeIn 1.2s ease-out 0.2s forwards;
  opacity: 0;
}

.loading-text {
  position: absolute;
  width: 375px;
  height: 375px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: fadeIn 1.2s ease-out 0.2s forwards, rotate 10s linear infinite; /* 無限回転 */
  opacity: 0;
}

@media screen and (max-width: 767px) {
  .loading-icon {
    width: 120px;
    height: 134.12px;
  }

  .loading-text {
    width: 280px;
    height: 280px;
  }
  .loading-deco img {
    width: 40px;
  }
}
@media screen and (max-width: 1600px) {
  .loading-side-text img {
    width: 12px;
  }
}

/* 共通：非表示からふわっと */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

/* 回転アニメーション */
@keyframes rotate {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

.mv {
  position: relative;
}

.mv-bg {
}

.mv-bg-002 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.mv-text {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
}

.mv-img {
  position: absolute;
  top: 0;
  left: 0;
}
.mv-001 {
  z-index: 1;
}

.mv-img,
.mv-text {
  opacity: 0;
  transform: translateY(-30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.mv-img.is-shown,
.mv-text.is-shown {
  opacity: 1;
  transform: translateY(0);
}
