@charset "utf-8";

/* 슬라이더 기본 구조 */
.banner-slider-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  margin-top: 0;
}

.banner-slider {
  display: flex;
  transition: transform 0.5s ease-in-out;
  width: 100%;
  height: 100%;
}

.banner-slide {
  min-width: 100%;
  height: 100%;
  box-sizing: border-box;
  text-align: center;
  position: relative;
}

.banner-slide img,
.banner-slide video {
  width: 100%;
  height: 500px;
  object-fit: cover;
}

/* 좌/우 버튼 */
.banner-controls button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0,0,0,0.4);
  color: white;
  border: none;
  padding: 10px;
  cursor: pointer;
  z-index: 10;
}
.banner-prev { left: 50px; }
.banner-next { right: 50px; }

/* 도트 */
.banner-dots {
  text-align: center;
  position: absolute;
  bottom: 10px;
  width: 100%;
  z-index: 10;
}
.banner-dots span {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin: 0 4px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.3s;
}
.banner-dots span.active {
  background: rgb(255, 0, 0);
}

/* 텍스트 영역 */
.banner-text {
  position: absolute;
  top: 40%;
  left: 50%;
  width: 100%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: #fff;
  pointer-events: none;
}

.banner-title {
  font-size: 1.4rem;
  font-weight: bold;
  margin: 0 0 5px;   /* 위쪽 여백 제거, 아래쪽만 조금 */
  text-shadow:
    -1px -1px 0 rgb(63, 63, 63),
     1px -1px 0 rgb(63, 63, 63),
    -1px  1px 0 rgb(63, 63, 63),
     1px  1px 0 rgb(63, 63, 63);
  opacity: 0;
  transition: opacity 1.5s ease-in;
}

.banner-content {
  font-size: 2em;
  font-weight: bold;
  text-shadow:
    -1px -1px 0 rgb(63, 63, 63),
     1px -1px 0 rgb(63, 63, 63),
    -1px  1px 0 rgb(63, 63, 63),
     1px  1px 0 rgb(63, 63, 63);
  opacity: 0;
  transition: opacity 2s ease-in;
}

/* 활성화된 슬라이드에서만 텍스트 보이기 */
.banner-slide.active .banner-title,
.banner-slide.active .banner-content {
  opacity: 1;
}

/* 구분선 */
.banner-separator1 {
  height: 2px;
  background-color: rgba(255, 255, 255, 0.5);
  width: 70%;
  margin: 0 auto 10px; /* 위쪽 여백 제거, 아래쪽만 */
  transform-origin: center;
  animation: g-s-w 10s infinite;
}
@keyframes g-s-w {
  0%, 100% { transform: scaleX(1); }
  10% { transform: scaleX(0); }
}
.banner-separator {
    aspect-ratio: 1 / 1;
    width: 100px; /* 처음 크기 작게 */
    margin: 0px auto;
    border: 2px solid rgba(255,255,255,0.7);
    border-radius: 50%;
    animation: circle-expand 10s ease-in-out infinite;
}

@keyframes circle-expand {
    0%   { transform: scale(0.5); opacity: 0.8; }
    50%  { transform: scale(5); opacity: 0.5; }
    100% { transform: scale(10); opacity: 0; }
}

/* .banner-separator {
    position: relative;
    width: 100px;
    height: 90px;
    margin: 20px auto;
    background: red;
    transform: rotate(-45deg);
    animation: heart-expand 4s ease-in-out infinite;
}

.banner-separator::before,
.banner-separator::after {
    content: "";
    position: absolute;
    width: 100px;
    height: 90px;
    background: red;
    border-radius: 50%;
}

.banner-separator::before {
    top: -50px;
    left: 0;
}

.banner-separator::after {
    left: 50px;
    top: 0;
}

@keyframes heart-expand {
    0%   { transform: rotate(-45deg) scale(0.5); opacity: 0.8; }
    50%  { transform: rotate(-45deg) scale(3); opacity: 0.6; }
    100% { transform: rotate(-45deg) scale(6); opacity: 0; }
} */

/* 반응형 */
@media (max-width: 768px) {
  .banner-title { font-size: 1.1rem; }
  .banner-content { font-size: 1.5em; }
}
@media (max-width: 480px) {
  .banner-title { font-size: 1rem; }
  .banner-content { font-size: 1.2em; }
}