body {
    font-family: 'Noto Sans KR', sans-serif;
    color: #111;
    overflow-x: hidden;
    /* 가로 스크롤 방지 */
}

/* --- [색상 변수] --- */
:root {
    --saeum-blue: #009fe2;
    --saeum-text: #1a1a1a;
}

.text-saeum {
    color: var(--saeum-blue);
}

.bg-saeum {
    background-color: var(--saeum-blue);
}

.border-saeum {
    border-color: var(--saeum-blue);
}

/* --- [1. 기본 애니메이션 (Scroll Reveal)] --- */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 1s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* --- [2. 메인 비주얼 줌인 효과] --- */
@keyframes zoomInOut {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(1.1);
    }
}

.animate-zoom {
    animation: zoomInOut 20s infinite alternate linear;
}

/* --- [3. 강사진 마퀴 (Marquee) 애니메이션] --- */
.marquee-container {
    overflow: hidden;
    white-space: nowrap;
    position: relative;
}

.marquee-track {
    display: inline-flex;
    gap: 2rem;
    /* 카드 사이 간격 */
    animation: scroll 30s linear infinite;
}

/* 마우스 올리면 멈춤 */
.marquee-container:hover .marquee-track {
    animation-play-state: paused;
}

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

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

    /* 트랙 길이의 절반만큼 이동 */
}

/* --- [카드 호버 효과] --- */
.card-hover:hover {
    box-shadow: 0 15px 35px rgba(0, 86, 179, 0.15);
    transform: translateY(-10px);
    border-color: var(--saeum-blue);
}

/* --- [Scrollbar Hide Utility] --- */
.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    /* IE and Edge */
    scrollbar-width: none;
    /* Firefox */
}

/* --- [4. 배너 슬라이더 페이지네이션 스타일] --- */
.heroBannerSwiper .swiper-pagination-bullet {
    background: #444 !important;
    opacity: 0.3;
}

.heroBannerSwiper .swiper-pagination-bullet-active {
    background: #a11 !important; /* 참고 이미지 스타일 */
    opacity: 1;
    width: 10px;
    height: 10px;
}
