:root {
  --logoSize: 238px;
}
@media (min-width: 768px) {
  :root {
    --logoSize: 320px;
  }
}

body {
  background: url(../img/background_wallpaper@sp.webp) repeat-y;
  background-size: contain;
}
@media (min-width: 768px) {
  body {
    background: url(../img/background_wallpaper.webp) repeat-y;
    background-size: contain;
  }
}

body:has(.loading-wait) {
  height: 100dvh;
  overflow: hidden;
}

.wrapper {
  padding-top: 0;
}

.loading {
  background: white;
  width: 100%;
  height: 100dvh;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 300;
  animation: fadeOut 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  animation-delay: 1s;
}
.loading__logo {
  width: var(--logoSize);
  position: absolute;
  left: 0;
  right: 0;
  top: 50vh;
  transform: translateY(-50%);
  margin: auto;
}

.logo {
  display: none !important;
}

.header-banner {
  position: relative;
  z-index: 200;
}

.header {
  transform: translateY(-100%);
  transition: transform 0.3s ease;
  background: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.header.show {
  opacity: 1;
  transform: translateY(0);
  position: fixed;
}
.header.show .header__nav {
  position: absolute;
  left: 0;
  top: var(--promotionalBannerHeight);
  width: 100%;
  transition: top 0.3s ease;
}
.header a {
  color: white;
}
.header .header_cart_count {
  color: #FFF;
}
.header__nav {
  display: flex;
  justify-content: space-between;
}
@media (min-aspect-ratio: 1/0.99) {
  .header.header--landscape-black a {
    color: black;
  }
  .header.header--landscape-black .header_cart_count {
    color: black;
  }
}

.topContents.loading-wait {
  height: 100dvh;
  overflow: hidden;
}
.topContents .kv {
  background: white;
}
.topContents .kv__content {
  position: relative;
  height: 100vh;
  overflow: hidden;
}
.topContents .kv__img {
  display: block;
  max-width: 100%;
  width: auto;
  height: 100vh;
  object-fit: cover;
  object-position: top center;
  margin: auto;
}
@media (max-width: 767px) {
  .topContents .kv__img {
    object-position: bottom center;
  }
}
.topContents .kv__ttl {
  width: var(--logoSize);
  position: absolute;
  left: 0;
  right: 0;
  top: 50vh;
  transform: translateY(-50%);
  margin: auto;
  animation: fadeOut 2s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  animation-delay: 2s;
  z-index: 1;
  filter: brightness(0) invert(1);
}
.topContents .kv__more {
  display: grid;
  place-content: center;
  position: absolute;
  bottom: 0;
  width: 109px;
  height: 58px;
  left: 0;
  right: 0;
  margin: auto;
}
@media (max-width: 767px) {
  .topContents .kv__more {
    bottom: 126px;
  }
}
.topContents .kv video {
  display: block;
  width: 100%;
  height: 100vh;
  object-fit: cover;
}
.topContents .new-section {
  margin-top: 34px;
}
.topContents .new-section__ttl {
  padding-left: 20px;
  font-size: 1em;
  line-height: 1;
  margin-bottom: 1em;
}
.topContents .new-section__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.topContents .new-section__list img {
  width: 100%;
}
.topContents .new-section__list a:hover {
  opacity: 1;
}
.topContents .kv a:hover {
  opacity: 1;
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    pointer-events: none;
  }
}
.sound-play-area {
  position: fixed;
  right: 15px;
  bottom: 15px;
  display: flex;
  align-items: center;
  width: fit-content;
  gap: 10px;
  color: white;
}
@media (min-width: 768px) {
  .sound-play-area {
    right: 20px;
    bottom: 20px;
  }
}
.sound-play-area.color--black {
  filter: brightness(0);
  color: black;
}
.sound-play-area.position--bottom {
  position: absolute;
  bottom: 40px;
}

.sound-play {
  border: none;
  padding: 0;
  width: 25px;
  height: 20px;
  background: url(/assets/front/img/icon/ico-sound.svg) no-repeat right top;
  background-size: contain;
  cursor: pointer;
  display: block;
}
@media (min-width: 768px) {
  .sound-play {
    width: 18px;
    height: 17px;
  }
}
.sound-play--mute {
  background: url(/assets/front/img/icon/ico-mute.svg) no-repeat right top;
  background-size: contain;
}

.scroll-trigger {
  position: absolute;
  bottom: 26px;
}
@media (max-width: 767px) {
  .scroll-trigger {
    bottom: 40px;
  }
}
