@charset "utf-8";

main {
  padding-bottom: 0;
}

/* visal section */
.sec-mv {
  position: relative;
  background-color: #F0F0F0;
  padding-block: 46px;
}

.sec-mv::after {
  content: '';
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: url(/img/index/bg_mask.png);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
  z-index: 1;
  pointer-events: none;
}

.mv-inner {
  display: grid;
  align-items: center;
  grid-template-columns: auto 63%;
  gap: 15px;
}

.mv-right {
  position: relative;
  flex-shrink: 1;
  overflow: hidden;
  padding-bottom: 40px;
}

.mv-left {
  max-width: 400px;
  flex-shrink: 0;
}

.mv-swiper .swiper-slide a {
  height: 100%;
  width: 100%;
}

.mv-inner .besper-btn a {
  box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.16);
}

.mv-swiper-slide {
  aspect-ratio: 1.27/1;
  display: flex;
  background-color: var(--clr-neutral-100);
}

.mv-swiper-slide p {
  margin: auto;
}

.mv-inner .besper-btn {
  z-index: 100;
  aspect-ratio: 1;
  transition: bottom 0.5s ease, opacity 0.5s ease;
}

.besper-btn.absolute {
  position: absolute;
  bottom: -60px;
  right: 3%;
}

.besper-btn.fixed {
  position: fixed;
  bottom: 30px;
  right: 3%;
}

.besper-btn.hide {
  opacity: 0;
  pointer-events: none;
}

.besper-btn.show {
  opacity: 1;
}

.besper-btn a:not(.disabled):hover {
  opacity: 1;
}

.besper-btn a:not(.disabled):hover::before {
  opacity: .2;
}

.besper-btn a {
  position: relative;
  border-radius: 50%;
  display: inline-block;
}

.besper-btn a::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background-color: var(--clr-neutral-100);
  opacity: 0;
  transition: opacity .5s;
}

.mv-inner .besper-btn.absolute {
  bottom: -5.859vw;
}

.besper-btn a::after {
  content: '';
  display: block;
  background: url(/img/index/ico_down_arw.svg) no-repeat center / cover;
  width: 30px;
  height: 15px;
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  animation: bounce 1.5s ease-in-out infinite;
  will-change: transform;
}

@keyframes bounce {

  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }

  50% {
    transform: translateX(-50%) translateY(-7px);
  }
}

/* page link container */
.page-link-container {
  display: none;
  position: fixed;
  top: 50%;
  right: 0;
  height: 323px;
  padding: 30px 14px;
  border-radius: 21px 0 0 21px;
  transform: translateY(-50%);
  z-index: 10;
  background-color: var(--clr-primary);
  letter-spacing: 0.3px;
  writing-mode: vertical-lr;
  gap: 12px;
  transition: opacity .5s ease;
}

.page-link {
  color: #898989;
  transition: color 0.3s ease-in-out;
}

.page-link.active,
.page-link-dash {
  color: var(--clr-neutral-100);
}

.page-link-dash {
  display: inline-block;
  width: 1px;
  height: 30px;
  background-color: #898989;
}

.fade-out {
  opacity: 0;
}

/* scroll line */
.scroll-down-box {
  position: absolute;
  width: 24px;
  height: 223px;
  right: 2%;
  top: 43%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 96px;
  justify-content: center;
  align-items: center;
}

.scroll-down-box span {
  display: block;
}

.scroll-down {
  overflow: hidden;
  transform: rotate(90deg);
  font-family: var(--font-quaternary);
  font-size: 16px;
  z-index: 99;
  text-transform: uppercase;
  width: 100px;
}

.hscroll-line {
  display: inline-block;
  width: 120px;
  height: 2px;
  overflow: hidden;
  transform: rotate(90deg);
  z-index: 99;
}

.hscroll-line::before,
.hscroll-line::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: "";
}

.hscroll-line:before {
  background: var(--clr-border-500);
}

.hscroll-line::after {
  background: var(--clr-primary);
  animation: move 3s infinite;
}

@keyframes move {
  0% {
    transform: translate3d(-200%, 0, 0);
  }

  60% {
    transform: translate3d(100%, 0, 0);
  }

  100% {
    transform: translate3d(100%, 0, 0);
  }
}

.sec-news {
  padding-block: 100px;
}

.sec-video {
  background-color: var(--clr-primary);
}

.video-content .video {
  width: 100%;
  height: 631px;
}

.video-content .video iframe {
  width: 100% !important;
  height: 100% !important;
}

.sec-video {
  z-index: 99;
}

.sec-ttl {
  margin-bottom: 10px;
}

.sec-ttl.video-ttl {
  padding-block: 25px;
  color: var(--clr-neutral-100);
}

.sec-video .video-ttl {
  margin-bottom: unset;
}

.news-content {
  margin-top: 0;
}

.video-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--clr-neutral-100);
  padding-block: 27px;
  gap: 30px;
}

.sec-video .video-link {
  flex-wrap: nowrap;
  position: relative;
  z-index: 5;
}

.video-link .all-video {
  flex-shrink: 0;
}

.more-video {
  color: var(--clr-neutral-100);
  font-family: var(--font-secondary);
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 3px;
  line-height: 1.4;
}

.more-video {
  position: relative;
}

/* Discography */
.sec-discography {
  position: relative;
  z-index: 1;
  padding-block: 100px 136px;
  overflow: hidden;
}

.sec-discography .sec-ttl {
  margin-bottom: 40px;
}

.sec-discography::after {
  position: absolute;
  top: 0;
  right: 0;
  content: '';
  background-image: url(/img/index/bg_discography.png);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: bottom left;
  width: 600px;
  height: 100%;
  z-index: -1;
}

.discography-music-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  column-gap: 40px;
  row-gap: 10px;
  padding-top: 85px;
}

.discography-music-list .music-item {
  display: flex;
}

.discography-content {
  margin-bottom: 50px;
}

/* Offical Fanclub */
.sec-official-fanclub {
  background-color: var(--clr-primary);
  position: relative;
  z-index: 1;
}

.sec-official-fanclub::before {
  position: absolute;
  top: 0;
  background-image: url(/img/index/img_bg_official_left.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom left;
  content: '';
  width: 743px;
  height: 1454px;
  z-index: -1;
}

.official-fanclub-list {
  position: relative;
  z-index: 1;
}

.official-header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 77px;
}

/* fanclub-login */
.fanclub-login-box {
  display: flex;
  width: fit-content;
  margin-top: 45px;
  padding: 10px 50px;
  border-radius: 100vw;
  background-color: var(--clr-blue-500);
  text-transform: uppercase;
  margin-inline: auto;
  letter-spacing: 1.6px;
  font-weight: 500;
}

.fanclub-login-box a {
  color: var(--clr-neutral-100);
}

.fanclub-login-box .join-txt {
  padding-right: 20px;
  border-right: 1px solid var(--clr-neutral-100);
}

.fanclub-login-box .login-txt {
  padding-left: 20px;
}

.sec-official-fanclub .news-link {
  color: var(--clr-neutral-100);
}

.sec-official-fanclub .sec-new-content {
  padding-block: 133px 100px;
}

.sec-official-fanclub .new-ttl {
  color: var(--clr-blue-500);
}

.sec-official-fanclub .video-ttl {
  color: var(--clr-blue-500);
  margin-bottom: 20px;
  padding-block: 0;
}

.sec-official-fanclub .video-link {
  padding-block: 30px 0px;
}

.sec-blog {
  background-color: var(--clr-primary);
  padding-block: 100px;
}

.sec-blog .news-content .news-link {
  flex-direction: row;
  align-items: center;
}

.sec-blog .news-content .news-ttl {
  margin-top: 0;
}

.blog-content {
  position: relative;
  z-index: 99;
}

.blog-ttl {
  color: var(--clr-blue-500);
}

.blog-ttl {
  color: var(--clr-neutral-100);
}

.sec-mov-gallery .support-club {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  text-align: center;
}

.sec-mov-gallery .support-club iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.mov-gallery-link:not(.disabled):hover {
  opacity: 1;
}

.mov-gallery-link .video-wrapper {
  width: 100%;
  height: 100%;
}

.mov-gallery-link .player-content-ttl {
  font-size: 60px;
  letter-spacing: 6px;
}

.mov-gallery-link:hover::before {
  z-index: 1;
  background-color: rgb(0, 0, 0, 0.5);
}

/* gallery */
.gallery-ttl {
  color: var(--clr-blue-500);
  position: relative;
  z-index: 1;
}

.sec-gallery {
  overflow: hidden;
  padding-bottom: 200px;
  position: relative;
  background-color: var(--clr-primary);
}

.sec-gallery::after {
  position: absolute;
  bottom: 0;
  content: '';
  border-bottom: 1px solid #fff;
  width: 100%;
  height: 3px;
  z-index: 1;
}

/* swiper css */
.disco-next,
.disco-prev {
  top: 50%;
  transform: translateY(-50%);
}

.disco-prev {
  left: -15%;
}

.disco-next {
  right: -15%;
}

.swiper-wrapper {
  transition-timing-function: linear !important;
}

/* discography section*/
.sec-discography .discography-swiper {
  overflow: visible;
}

.sec-discography .disco-slide {
  max-width: 294px;
  margin-right: 40px;
}

.sec-gallery .gallery-swiper {
  overflow: visible;
}

.sec-gallery .gallery-slide {
  max-width: 306px;
  margin-right: 40px;
}

.disc-date {
  font-size: 16px;
  letter-spacing: 1.6px;
  line-height: 1.5;
  font-family: var(--font-quaternary);
}

.sec-discography .btn-container {
  padding-top: 60px;
  justify-content: center;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
}

.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
  filter: brightness(0.8);
  transition: filter 0.3s;
}

.gallery-item:hover img {
  filter: brightness(1);
}

.gallery-overlay {
  position: absolute;
  bottom: 10px;
  left: 0;
  right: 0;
  padding: 10px;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
}

.gallery-date {
  font-weight: bold;
  color: #fff;
  font-size: 14px;
}

.gallery-text {
  font-size: 13px;
  color: #fff;
  margin-top: 4px;
}

.disc-title {
  letter-spacing: 1.6px;
  line-height: 1.2;
  padding-top: 5px;
  padding-bottom: 3px;
}

.album-desc .badge.black-badge {
  margin-left: unset;
}

.sec-discography .album-desc {
  margin-top: 15px;
}

.disc-item {
  position: relative;
  display: block;
  cursor: pointer;
}

.disc-txt-wrap {
  position: absolute;
  max-width: 240px;
  bottom: 50%;
  left: 50%;
  width: max-content;
  color: #fff;
  font-size: 30px;
  transform: translate(-50%, 50%);
  z-index: 2;
}

.disc-txt-wrap p {
  display: -webkit-box;
  line-height: 1.5;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.sec-gallery .disc-date {
  font-size: 30px;
  font-weight: bold;
}

.serect-live-content {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
}

.serect-ttl {
  flex: 1;
}

.is-index .main-footer {
  margin-top: 0;
}

.swiper-thumb {
  position: relative;
}

.swiper-thumb::before {
  background-color: rgb(112, 112, 112);
  mix-blend-mode: multiply;
  z-index: 1;
  opacity: 0;
  content: '';
  display: block;
  position: absolute;
  inset: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  transition:
    transform .3s ease-out,
    opacity .3s ease-out,
    background-color .3s ease-out;
}

a:hover .swiper-thumb::before {
  opacity: 1;
  transform: scale(1.08);
}

.swiper-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden;
}

.sec-discography .swiper-thumb {
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
}

.sec-gallery .swiper-thumb {
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
}

.swiper-thumb img {
  transition: transform .3s ease-out;
}

a:hover .swiper-thumb img {
  transform: scale(1.08);
}

a.disc-item:not(.disabled):hover {
  opacity: unset;
}

a.disc-item:not(.disabled):hover .album-desc {
  opacity: 0.7;
}

.mv-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mv-swiper-next,
.mv-swiper-prev {
  right: 20px;
  width: 48px;
  height: 48px;
  transform: translateY(-55%);
  color: var(--clr-neutral-100);
  background-color: rgba(0, 0, 0, 0.75);
  opacity: 0;
  transition: opacity .3s ease;
}

@media(hover: hover) {

  .mv-swiper:hover .mv-swiper-next,
  .mv-swiper:hover .mv-swiper-prev {
    opacity: 1;
  }
}

.mv-swiper-prev {
  left: 20px;
}

.mv-swiper-next::after,
.mv-swiper-prev::after {
  font-size: 25px;
}

.swiper-pagination {
  --swiper-theme-color: var(--clr-primary);
  --swiper-pagination-bullet-inactive-color: var(--clr-neutral-100);
  --swiper-pagination-bullet-inactive-opacity: 1;
}

.swiper-pagination-bullet {
  --swiper-pagination-bullet-size: 8px;
  border: 1px solid var(--clr-primary);
  border-radius: unset;
}

.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 6px);
}

.sec-official-fanclub .sec-blog.sec-fc-new {
  padding-block: 0;
}

.btn-more-video {
  padding-top: 0;
  z-index: 5;
}

.disc-txt-wrap .disc-txt {
  font-size: 18px;
}

.disc-txt-wrap .disc-date {
  font-size: 16px;
  font-weight: 400;
}

:is(.discography-swiper, .gallery-swiper) {
  overflow: hidden;
  width: 100%;
}

:is(.discography-swiper, .gallery-swiper) .swiper-wrapper {
  display: flex;
  width: max-content;
}

:is(.discography-swiper, .gallery-swiper) .swiper-slide {
  flex: 0 0 auto;
  margin-right: 40px;
}

:is(.discography-swiper, .gallery-swiper) .swiper-wrapper.auto-scroll {
  animation: marquee 40s linear infinite;
}

:is(.discography-swiper, .gallery-swiper) .swiper-wrapper:not(.auto-scroll) {
  --max-width: 1000px;
  --padding: 80px;
  width: min(var(--max-width), 100% - var(--padding));
  margin-inline: auto;
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

@media (max-width : 1330px) {
  .scroll-down-box {
    right: 0.5%;
  }

  .besper-btn a::after {
    bottom: 23px;
  }
}

@media (max-width: 1024px) {
  .mv-inner {
    display: grid;
    grid-template-columns: 40% auto;
  }

  .mv-left {
    width: unset;
  }

  .mv-right {
    max-width: 100%;
    width: unset;
  }

  .besper-btn img {
    width: 22.461vw;
  }

  .besper-btn a::after {
    bottom: 1.953vw;
  }
}

@media (max-width: 768px) {
  .mv-inner {
    display: block;
  }

  .mv-left {
    display: none;
  }

  .sec-mv {
    padding-block: 30px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .mv-swiper-next,
  .mv-swiper-prev {
    display: none;
  }

  .besper-logo-sp .top-logo,
  .besper-logo-sp .bottom-logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    pointer-events: none;
    display: block;
  }

  .besper-logo-sp .top-logo {
    top: 31%;
    width: 100%;
  }

  .besper-logo-sp .bottom-logo {
    top: 60%;
    width: 56%;
  }

  .sec-ttl {
    margin-bottom: 20px;
  }

  .video-content .video {
    height: unset;
    aspect-ratio: 16/9;
  }

  .sec-mv::after {
    background-image: url(/img/index/bg_mask_sp.png);
  }

  .sec-official-fanclub::before {
    position: absolute;
    top: 0;
    background-image: url(/img/index/bg_official_left_sp.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top left;
    content: '';
    width: 246px;
    height: 657px;
    z-index: -1;
  }

  .sec-discography::after {
    position: absolute;
    right: 0;
    content: '';
    background-image: url(/img/index/bg_discography_sp.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom right;
    width: 100%;
    height: 100%;
    z-index: -1;
    top: 0;
  }

  .sec-discography {
    padding-block: 50px;
  }

  .sec-discography .btn-container {
    padding-top: 30px;
  }

  .video-link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .video-link .all-video {
    align-self: flex-end;
  }

  .video-link .video-label {
    font-size: 14px;
  }

  .video-link .square {
    width: 14px;
    height: 14px;
  }

  .more-video {
    font-size: 20px;
    letter-spacing: 2px;
    column-gap: 20px;
  }

  .video-link {
    padding-block: 8px 36px;
    gap: 40px;
  }

  .img-spotify {
    width: 119px;
    height: 40px;
  }

  .img-music-apple {
    width: 114px;
    height: 28px;
  }

  .img-line-music {
    width: 124px;
    height: 29px;
  }

  .img-youtube {
    width: 152px;
    height: 49px;
  }

  .discography-music-list {
    padding-top: 30px;
  }

  .fanclub-login-box {
    margin-top: 30px;
  }

  .official-header {
    padding-top: 50px;
  }

  .sec-official-fanclub .sec-new-content {
    padding-block: 50px 90px;
  }

  .sec-blog {
    padding-block: 45px;
  }

  .sec-gallery {
    padding-bottom: 200px;
  }

  .serect-live {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }

  .serect-live-content {
    gap: 15px;
    align-items: flex-start;
    font-size: 14px;
  }

  .sec-official-fanclub .video-link {
    padding-block: 20px 0px;
    gap: 30px;
  }

  .sec-news {
    padding-block: 50px;
  }

  .sec-ttl.video-ttl {
    padding-block: 40px 25px;
    margin-bottom: 0;
  }

  .music-video {
    font-size: 14px;
  }

  .sec-official-fanclub .video-ttl {
    padding-block: 0 20px;
  }

  .gallery-ttl {
    position: relative;
    z-index: 1;
  }

  .is-index main {
    padding-top: 60px;
  }

  .mv-swiper-slide {
    height: 507px;
  }

  .scroll-down-box {
    display: none;
  }

  .besper-btn img {
    width: 130px;
  }

  .besper-btn a::after {
    bottom: 10px;
  }

  .besper-btn a::after {
    width: 20px;
    height: 10px;
  }

  .swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
  .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
  }

  .sec-mov-gallery .player-content-ttl {
    font-size: 20px;
    letter-spacing: 2px;
  }

  .sec-blog .news-content .news-link {
    flex-direction: column;
    align-items: start;
  }

  .sec-discography .sec-ttl {
    margin-bottom: 20px;
  }
}

@media (max-width: 390px) {
  .sec-discography::after {
    width: 65%;
    height: 100%;
  }
}
