@charset "utf-8";

/*
============================ BLACK FRIDAY CSS ============================
*/

/* ローディング画面 */
#loading {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: #000;
}
.loader {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 400px;
  height: 400px;
}

.loader img {
  width: 100%;
}

.loader h1 {
  position: absolute;
  top: 18%;
  left: 28%;
  z-index: 3;
  width: 90px;
  transform-origin: 50% 50%;
  animation: animate03 8s ease-in-out reverse infinite;
}

.loader p.icon02 {
  position: absolute;
  top: 18%;
  left: 28%;
  z-index: 4;
  width: 60px;
  transform-origin: 50% 50%;
  animation: animate03 8s ease-in-out infinite;
}

.loader p.icon03 {
  position: absolute;
  top: 5%;
  left: 55%;
  z-index: 1;
  width: 60px;
  transform-origin: 50% 50%;
  animation: animate03 5s ease-in-out reverse infinite;
}

.loader p.icon04 {
  position: absolute;
  top: 3%;
  left: 60%;
  z-index: 2;
  width: 50px;
  transform-origin: 50% 50%;
  animation: animate03 5s ease-in-out infinite;
}

.loader h2 {
  position: absolute;
  top: 51%;
  left: 18%;
  width: 270px;
}

.loaded {
  z-index: 0 !important;
  opacity: 0;
  transition: all 1s;
}

header,
.header,
article,
footer {
  visibility: hidden;
}
.header {
  padding: 0;
}

@keyframes animate03 {
  0% {
    transform: translateY(-5%);
  }
  20% {
    transform: translateY(7%);
  }
  40% {
    transform: translateY(-3%);
  }
  60% {
    transform: translateY(2%);
  }
  80% {
    transform: translateY(-7%);
  }
  100% {
    transform: translateY(0);
  }
}

article {
  position: relative;
  z-index: 2;
  overflow: hidden;
  font-family: "M PLUS Rounded 1c";
}
#kvArea {
  position: relative;
  z-index: 10;
  display: block;
  width: 100%;
  height: inherit;
  aspect-ratio: 765/840;
  padding: 15% 4% 0;
  margin: 0 auto;
  background: #000 url(../img/bg01.png) 0 0 no-repeat;
  background-size: 100% auto;
}
#kv {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0 auto;
}
#lottie {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 100%;
  margin: 0 auto 20px;
}
#kvDate,
.kvDatePC {
  position: relative;
  width: 50%;
  margin: 0 auto;
}
#kvImg {
  display: none;
  width: 100%;
  height: auto;
}
/* PC のみ表示: 左右固定の #kv / ナビとは別に、中央の枠内にも KV を出す */
#kvPC {
  display: none;
}
#lottiePC {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 100%;
  margin: 0 auto 20px;
}

ul.anchor {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  width: 100%;
  margin: 0 auto;
}
ul.anchor li {
  width: calc(50% - 10px);
}

.bg01 {
  position: relative;
  z-index: 3;
  width: 100%;
  padding: 30px 0 60px;
  margin: 0 auto 40px;
  background: url(../img/bg01.png) 0 bottom repeat;
  background-size: 100% auto;
}
/* トップバナースライダー */
.topBnrSlider {
  position: relative;
  width: 100%;
  margin: 0 auto 20px;
}
.topBnrSlider .slick-list {
  margin: 0 11%;
}
.topBnrSlider .slick-slide img {
  width: 100%;
  height: auto;
}
.topBnrSlider .slick-prev,
.topBnrSlider .slick-next {
  top: 50%;
  z-index: 2;
  width: 8%;
  height: 0;
  padding-top: 8%;
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  background: url(../img/arrow.png) center center no-repeat;
  background-size: contain;
  transform: translateY(-50%);
}
.topBnrSlider .slick-prev {
  left: 1.5%;
  transform: translateY(-50%) scaleX(-1);
}
.topBnrSlider .slick-next {
  right: 1.5%;
}
.topBnrSlider .slick-prev:before,
.topBnrSlider .slick-next:before {
  content: none;
}
/* SNSスライダー(両隣をはみ出して見せる) */
.snsSlider {
  position: relative;
  width: 100%;
  padding-bottom: 36px;
  margin: 0 auto;
}
.snsSlider .slick-list {
  overflow: visible;
}
.snsSlider li {
  padding: 0 15px;
}
.snsSlider li img {
  width: 100%;
  height: auto;
}
/* ドット(CSSで作成) */
.snsSlider .slick-dots {
  bottom: 4px;
}
.snsSlider .slick-dots li {
  width: 12px;
  height: 12px;
  padding: 0;
  margin: 0 7px;
}
.snsSlider .slick-dots li button {
  width: 12px;
  height: 12px;
  padding: 0;
}
.snsSlider .slick-dots li button:before {
  top: 3px;
  left: 3px;
  width: 6px;
  height: 6px;
  content: "";
  background: #fff;
  border-radius: 50%;
  opacity: 0.6;
}
.snsSlider .slick-dots li.slick-active button:before {
  opacity: 1;
}
/* 左右ボタン(CSSで作成) */
.snsSlider .slick-prev,
.snsSlider .slick-next {
  top: auto;
  bottom: 2px;
  z-index: 2;
  width: 16px;
  height: 16px;
  font-size: 0;
  transform: none;
}
.snsSlider .slick-prev {
  left: calc(50% - 62px);
}
.snsSlider .slick-next {
  right: calc(50% - 62px);
}
.snsSlider .slick-prev:before,
.snsSlider .slick-next:before {
  position: absolute;
  top: 3px;
  width: 6px;
  height: 6px;
  content: "";
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  opacity: 1;
}
.snsSlider .slick-prev:before {
  left: 5px;
  transform: rotate(-135deg);
}
.snsSlider .slick-next:before {
  left: 1px;
  transform: rotate(45deg);
}
body {
  overflow-x: clip;
}
.bg02 {
  position: relative;
  z-index: 4;
  width: 100%;
  padding: 0 0 1px;
  margin: 0 auto;
  background: url(../img/bg02.png) 0 0 repeat;
  background-size: 100% auto;
}
.bg03 {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 25% 0 0;
  margin: 0 auto;
  overflow: hidden;
  background: url(../img/bg03.png) 0 bottom;
  background-size: 100% auto;
}
.bg03::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  aspect-ratio: 750/1843;
  content: "";
  background: url(../img/box01.png) 0 0 no-repeat;
  background-size: 100% auto;
}

.tit01 {
  position: relative;
  z-index: 1;
  aspect-ratio: 640/273;
  text-indent: -9999px;
}
.tit01::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 810/742;
  content: "";
  background: url(../img/tit01.png) center 0 no-repeat;
  background-size: 108% auto;
}
.tit02 {
  position: relative;
  width: 100%;
  margin: 0 auto 50px;
}
#titLottie {
  margin: -40px auto 0;
}
#titLottie svg {
  transform: translate3d(0px, -70px, 0px) !important;
}

.date02 {
  width: 50%;
  margin: 0 auto 20px;
}
.date03 {
  width: 50%;
  margin: 0 auto 20px;
}

.btnImg2 {
  display: block;
  width: 100%;
  margin: 0 auto;
}
.otoku {
  position: relative;
  padding: 0 0 0;
}
.wBox {
  position: relative;
  z-index: 3;
  width: 84%;
  padding: 30px 5%;
  margin: 0 auto 65px;
  text-align: center;
  background: linear-gradient(to bottom, #fbf0c9, #fffef2);
  border-radius: 6px;
  box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.7);
}
.wBox:nth-child(3) {
  z-index: 2;
}
.bg03 .wBox {
  margin: 0 auto 220px;
}

.img {
  position: relative;
  width: 100%;
  margin: 0 auto 20px;
}

.coution {
  font-size: 1.2rem;
  line-height: 1.6;
}

.stit01 {
  width: 80%;
  margin: 0 auto 10px;
}
.stit02 {
  width: 80%;
  margin: 0 auto 15px;
}
.stit03 {
  width: 90%;
  margin: 0 auto 30px;
}
.stit04 {
  width: 88%;
  margin: 0 auto 25px;
}
.stit05 {
  position: relative;
  z-index: 3;
  width: 78%;
  margin: 0 auto 30px;
}
.stit06 {
  width: 68%;
  margin: 0 auto 20px;
}
.stit07 {
  position: relative;
  width: 80%;
  margin: 0 auto 50px;
}

.txt01 {
  margin: 0 auto 20px;
  font-size: clamp(11px, 3.6vw, 16px);
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.date04 {
  width: 55%;
  margin: 0 auto 20px;
}
.date05 {
  width: 95%;
  margin: 0 auto 20px;
}

.clumnBox {
  margin: 0 auto 25px;
}

/* IE11 */
@media all and (-ms-high-contrast: none) {
  svg {
    display: none;
  }
}

@media (max-width: 768px) {
  #stickyNav {
    display: none;
  }
}

/* PC のみ: #kv を元サイズのまま画面左へ固定し、上下中央に配置。
   右端を .wrap(max-width:750px)左端の 50px 手前に合わせ、左へはみ出す
   (ウィンドウ幅が狭いと左が画面外に見切れる) */
@media (min-width: 769px) {
  #kv {
    position: fixed;
    top: 55%;
    right: calc(
      50% + 230px + 80px
    ); /* .wrap 左端(50% - 230px)の 50px 手前に #kv 右端を合わせる */
    z-index: 100;
    width: 340px;
    height: auto;
    margin: 0;
    transform: translateY(-50%);
  }
  /* 左の固定 KV はアニメではなく画像を表示 */
  #kv #lottie {
    display: none;
  }
  #kvImg {
    display: block;
    order: -1;
    margin-bottom: 10px;
  }

  #kvPC {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0 auto;
  }

  /* #stickyNav を #rightRail に内包し、.wrap の右・上下中央に固定。
     #rightRail は JS で生成し、内包要素は #stickyNav のみ。 */
  #rightRail {
    position: fixed;
    top: 50%;
    left: calc(
      50% + 230px + 80px
    ); /* .wrap 右端(50% + 230px)の 50px 先に左端を合わせる */
    z-index: 100;
    display: flex;
    flex-direction: column;
    align-items: center;
    transform: translateY(-50%);
  }
  #stickyNav {
    position: relative;
    flex-direction: column; /* ボタン縦並び */
    gap: 10px;
    width: 320px; /* anchor ボタン実寸 */
    margin: 0;
  }
  #stickyNav li {
    width: 100%;
    margin: 0;
  }
  #stickyNav:before {
    position: absolute;
    top: -50px;
    right: -70px;
    display: block;
    width: 86px;
    height: 70px;
    content: "";
    background: url(../img/pic05.png) 0 0 no-repeat;
    background-size: 100% auto;
  }
  #stickyNav li a:hover {
    opacity: 0.8;
  }
  /* #kv / #stickyNav を流し出した分、KV領域の正方形(aspect-ratio)を解除して余白を詰める */
  #kvArea {
    aspect-ratio: auto;
  }
}

.pic01 {
  position: absolute;
  right: 0;
  bottom: -80px;
  left: 0;
  z-index: 2;
  width: 10%;
  margin: 0 auto;
}

.pic02 {
  position: absolute;
  top: -50px;
  right: -10%;
  z-index: 2;
  width: 25%;
}
.pic03 {
  position: absolute;
  right: 1.5%;
  bottom: 23%;
  z-index: 1;
  width: 8%;
}
.pic04 {
  position: absolute;
  bottom: -50px;
  left: 0;
  z-index: 1;
  width: 17%;
}
.pic05 {
  position: absolute;
  top: -60%;
  right: -12.5%;
  z-index: 1;
  width: 20%;
}
.pic06 {
  position: absolute;
  bottom: -5%;
  left: -12.5%;
  z-index: 1;
  width: 15%;
}



