/* swiper */
html,
body {
  height: 100%;
}

/* visual======================================================= */
.swiper {
  /* position: relative; */
  /* width: 100%; */
  /* height: 100vh; */
  margin-left: auto;
  margin-top: auto;
  overflow: hidden;
  list-style: none;
  padding: 0;
  z-index: 1;
  display: block;
}
.swiper-horizontal {
  touch-action: pan-y;
}
.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  transition-property: transform;
  transition-timing-function: ease;
  box-sizing: content-box;
  z-index: 1;
}
.swiper-slide {
  position: relative;
  width: 100%;
  height: 100%;
  transition-property: transform;
  display: block;
  flex-shrink: 0;
}

.swiper-slide img {
  /* display: block; */
  width: 100vw;
  height: 100vh;
  object-fit: cover;
}

/* text */
/* 슬라이드가 활성화되었을 때만 텍스트가 올라옴 */
.swiper-slide-active .visual-content .text {
  transform: translateY(0%);
}
/* 순차 등장용 */
.visual-content .tex {
  transition-delay: calc(var(--i) * 0.1s);
}
.swiper-fade .swiper-slide {
  pointer-events: none;
  transition-property: opacity;
}
.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* progress bar */
.autoplay-progress {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 10;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  color: var(--swiper-theme-color);
}

.autoplay-progress svg {
  --progress: 0;
  position: absolute;
  left: 0;
  top: 0px;
  z-index: 10;
  width: 100%;
  height: 100%;
  stroke-width: 4px;
  stroke: var(--swiper-theme-color);
  fill: none;
  stroke-dashoffset: calc(125.6px * (1 - var(--progress)));
  stroke-dasharray: 125.6;
  transform: rotate(-90deg);
}

.progress-bar {
  position: absolute;
  /* top: 20%; */
  bottom: 10vh;
  left: 100px;
  transform: translateY(-50%);
  width: 200px;
  height: 4px;
  background: none;
  z-index: 10;
  /* background-color: red; */
}
.progress-track {
  /* 연한 선 */
  position: absolute;
  width: 100%;
  height: 100%;
  /* background-color: #888;  */
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 4px;
}
.progress-fill {
  /* 진한 선 */
  position: absolute;
  height: 100%;
  width: 0%;
  background-color: #fff;
  border-radius: 4px;
  transition: width 0.25s linear;
}
.plane-icon {
  position: absolute;
  top: -30px;
  left: 0%;
  font-size: 20px;
  transition: left 0.25s linear;
}
/* progress bar end */

/* 일시정지 */
.swiper-toggle-btn {
  position: absolute;
  bottom: 8.5vh;
  left: 320px;
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 10;
}
.swiper-toggle-btn::before,
.swiper-toggle-btn::after {
  content: "";
  position: absolute;
  top: 6px;
  bottom: 6px;
  width: 4px;
  background-color: #fff;
  transition: all 0.3s ease;
}
/* Pause 아이콘 (두 줄) */
.swiper-toggle-btn::before {
  left: 8px;
}
.swiper-toggle-btn::after {
  right: 8px;
}
/* ▶️ 재생 아이콘 (삼각형) 상태 */
.swiper-toggle-btn.playing::before {
  left: 12px;
  top: 6px;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 12px solid #fff;
  background: none;
}
.swiper-toggle-btn.playing::after {
  display: none;
}
/* 일시정지 end */

/* visual end ==================================================*/

/* brand =======================================================*/
.brand-swiper {
  width: 100%;
  height: 100%;
}
.brand-swiper .swiper-slide {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  /* background: #444; */
  width: auto;
  flex-shrink: 0;
}
.main-brand .swiper-slide .slide-content {
  position: relative;
  width: 100%;
  height: 320px;
  margin: 0 12px;
  text-align: center;
}
/* 비활성 상태: 로고를 슬라이드 중앙에 완전 고정 */
.swiper-slide:not(.swiper-slide-active) {
  justify-content: center; /* 세로 중앙 정렬 */
}
.brand-img-product {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  scale: 0.8;
  transform-origin: center center;
  transition: opacity 0.5s ease, transform 0.5s ease;
  transform-origin: center center;
  pointer-events: none;

  overflow: hidden;
}
.brand-img-product img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background-repeat: no-repeat;
}
/* 제품 이미지가 나올 때는 보이도록 */
.swiper-slide-active .brand-img-product {
  opacity: 1;
  scale: 1;
  pointer-events: auto;
}
/* 로고 기본 스타일 */
.brand-img-logo {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  width: 208px;
  height: 104px;
  transform: translateY(-50%);

  transition: transform 0.7s ease, opacity 0.7s ease;
}
.brand-img-logo a {
  /* color: var(--gray4-, #4a4f55); */
  color: #fff;
  font-family: Pretendard, sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  line-height: normal;
  opacity: 0.7;
}
/* 비활성 슬라이드일 때는 로고를 슬라이드 중앙에 띄우기 위해 절대 위치 조정 */
.swiper-slide:not(.swiper-slide-active) .brand-img-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* transform: translateX(-50%); */
  opacity: 1;
  pointer-events: none;
  z-index: 10;
}
/* 활성 슬라이드일 땐 상대 위치로 돌아가서 이미지 아래로 내려감 */
.swiper-slide-active .brand-img-logo {
  position: absolute;
  top: 60%;
  left: 50%;
  transform: translateX(-50%);
  opacity: 1;
  pointer-events: auto;
  z-index: 1;
  transition: all 0.5s ease-in-out;
}
/* brand end================================================== */

/* news======================================================= */
.swiperNews {
  width: 100%;
  height: 100%;
}

.swiperNews .swiper-slide {
  text-align: center;
  font-size: 18px;
  background: #eee;
  display: flex;
  justify-content: center;
  align-items: center;
}

.swiperNews .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* news end======================================================= */
