@import url('https://cdn.jsdelivr.net/gh/fonts-archive/Paperlogy/Paperlogy.css');
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");

/* 폰트 정의 생략 (기존과 동일) */
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzzuozeLQ.ttf) format('truetype'); }
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 200; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzzmoyeLQ.ttf) format('truetype'); }
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzzrQyeLQ.ttf) format('truetype'); }
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzzuoyeLQ.ttf) format('truetype'); }
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzztgyeLQ.ttf) format('truetype'); }
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 600; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzzjQ1eLQ.ttf) format('truetype'); }
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzzg01eLQ.ttf) format('truetype'); }
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 800; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzzmo1eLQ.ttf) format('truetype'); }
@font-face { font-family: 'Noto Sans KR'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/notosanskr/v38/PbyxFmXiEBPT4ITbgNA5Cgms3VYcOA-vvnIzzkM1eLQ.ttf) format('truetype'); }

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    word-break: keep-all;
}

img {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: none;
    user-select: none;
}

body {
    font-family: "Pretendard Variable", sans-serif;
    background-color: #13524A;
}

a {
    text-decoration-line: none;
}

p,
h3 {
    margin: 0;
    padding: 0;
}

#special-event {
    position: relative;
    overflow-x: hidden; /* 가로 스크롤 방지 */
}

/* --- 공통 레이아웃 클래스 --- */
.w1900 { max-width: 1900px; width: 100%; margin: 0 auto; position: relative; text-align: center; }
.w1700 { max-width: 1700px; width: 100%; margin: 0 auto; position: relative; text-align: center; }
.w1600 { max-width: 1600px; width: 100%; margin: 0 auto; position: relative; text-align: center; }
.block-img { display: block; margin: 0 auto; width: 100%; pointer-events: none; }


/* --- SECTION 1 --- */
.section-1 {
    position: relative;
    font-size: 0;
    overflow: hidden;
    background: linear-gradient(180deg, #076A6C 0%, #222927 100%);
}

.section-1 .s1-title,
.section-1 .teacher,
.section-1 .s1-sub {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    z-index: 1100;
}

.section-1 .s1-title {
    top: 5%;
    max-width: 1049px;
    width: 55.3%;
    /* [수정] AOS 사용을 위해 기존 CSS 애니메이션 제거(주석처리) */
    /* opacity: 0; */
    /* animation: fade-up 0.8s forwards; */
    /* animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); */
    /* animation-delay: 0.8s; */
}

.section-1 .teacher {
    bottom: 0;
    max-width: 558px;
    width: 29.4%;
    /* AOS 제어 */
}

.section-1 .s1-sub {
    bottom: 3%;
    max-width: 1138px;
    width: 60%;
    /* [수정] AOS 사용을 위해 기존 CSS 애니메이션 제거 */
    /* opacity: 0; */
    /* animation: fade 0.8s forwards; */
    /* animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); */
    /* animation-delay: 1.4s; */
}

.section-1 .s1-btn-wrap {
    position: absolute;
    bottom: 6.5%;
    left: 0;
    width: 100%;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5%;
    /* [수정] AOS 사용을 위해 기존 CSS 애니메이션 제거 */
    /* opacity: 0; */
    /* animation: fade 0.8s forwards; */
    /* animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); */
    /* animation-delay: 1.4s; */
}

.section-1 .s1-btn-wrap a {
    display: block;
    width: 15%;
    max-width: 230px;
    /* [추가] 버튼 호버 시 부드러운 움직임 */
    transition: transform 0.3s ease, filter 0.3s ease;
}

/* [추가] 버튼 마우스 올렸을 때 둥둥 뜨는 효과 */
.section-1 .s1-btn-wrap a:hover {
    transform: translateY(-3px);
    filter: drop-shadow(0 10px 10px rgba(0,0,0,0.3));
}

.section-1 .s1-home,
.section-1 .s1-fp {
    display: block;
    width: 100%;
}

/* 기존 키프레임 (혹시 몰라 남겨둠) */
@keyframes fade-up {
    0% { transform: translateY(15px); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}
@keyframes fade {
    0% { opacity: 0; }
    100% { opacity: 1; }
}


/* --- SECTION 2 --- */
.section-2 {
    position: relative;
    font-size: 0;
    overflow: hidden;
    background: linear-gradient(180deg, #222927 0%, #124E46 100%);
    width: 100%;
}


/* --- SECTION 3 --- */
.section-3 {
    position: relative;
    font-size: 0;
    overflow: hidden;
    background: linear-gradient(180deg, #13524A 40%, #222 100%);
}

.section-3 .video-btn {
    cursor: pointer;
    position: absolute;
    top: 10.6%;
    left: 0;
    right: 0;
    width: 68%;
    height: 26%;
    max-width: 1150px;
    margin: 0 auto;
    /* [추가] 영상 버튼 숨쉬는 효과 */
    animation: pulseBtn 2s infinite; 
    border-radius: 20px; /* 펄스 효과가 둥글게 보이도록 */
}

/* [추가] 숨쉬는 효과 키프레임 */
@keyframes pulseBtn {
    0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.2); }
    70% { box-shadow: 0 0 0 20px rgba(255, 255, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}


/* --- SECTION 4 --- */
.section-4 {
    position: relative;
    font-size: 0;
    overflow: hidden;
    background: #222;
    padding: 200px 15px 100px;
}

.section-4 .s4-title {
    display: block;
    margin: 0 auto 40px;
    max-width: 1300px;
    width: 100%;
}


/* --- SECTION 5 --- */
.section-5 {
    position: relative;
    font-size: 0;
    overflow: hidden;
    background: #222222;
    background: linear-gradient(0deg, rgba(34, 34, 34, 1) 0%, rgba(81, 108, 104, 1) 50%, rgba(34, 34, 34, 1) 100%);
    padding: 100px 0;
}

.section-5 .s2-title {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto 60px;
}

.section-5 .swiper-point {
    position: relative;
    width: 100%;
    max-width: 1300px;
    padding: 40px 0;
    overflow: hidden;
}

.section-5 .swiper-point .swiper-wrapper {
    align-items: center;
}

.section-5 .swiper-point .swiper-slide {
    width: 550px;
    display: flex;
    justify-content: center;
    will-change: transform;
    transform: translateZ(0);
}

@media (max-width: 601px) {
    .section-5 .swiper-point .swiper-slide { width: 80%; }
}

.section-5 .swiper-point .swiper-slide img {
    display: block;
    width: 100%;
    border-radius: 18px;
    transition: transform 0.35s ease, opacity 0.35s ease, box-shadow 0.35s ease, filter 0.3s ease;
    transform-origin: center center;
    filter: brightness(0.55);
    transform: translateY(-54px) scale(0.95);
}

.section-5 .swiper-point .swiper-slide.swiper-slide-active {
    z-index: 3;
}

.section-5 .swiper-point .swiper-slide.swiper-slide-active img {
    filter: brightness(1);
    transform: translateY(0) scale(1);
}

.section-5 .swiper-point .swiper-slide.swiper-slide-prev,
.section-5 .swiper-point .swiper-slide.swiper-slide-next {
    z-index: 2;
}

.section-5 .swiper-point .swiper-slide.swiper-slide-prev img,
.section-5 .swiper-point .swiper-slide.swiper-slide-next img {
    filter: brightness(0.75);
    transform: translateY(-70px) scale(0.95);
}


/* --- SECTION 6 --- */
.section-6 {
    position: relative;
    font-size: 0;
    overflow: hidden;
    background: linear-gradient(180deg, #222 50%, #0E605C 100%);
}

.section-6 .s6-btn {
    position: absolute;
    top: 76.4%;
    left: 63.2%;
    width: 19.4%;
    max-width: 368px;
    /* [추가] 호버 효과 */
    transition: transform 0.3s ease, filter 0.3s ease;
}

/* [추가] 하단 버튼 마우스 올리면 뜸 */
.section-6 .s6-btn:hover {
    transform: translateY(-3px);
    filter: drop-shadow(0 10px 10px rgba(0,0,0,0.3));
}

.section-6 a {
    /* [수정] AOS 사용 시 충돌 방지용 주석 */
    /* opacity: 0; */
    /* animation: fade 0.8s forwards; */
    /* animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); */
    /* animation-delay: 1.4s; */
}


/* --- 커스텀 화살표 공통 --- */
.custom-prev,
.custom-next {
    position: absolute;
    top: 50%;
    width: 23px;
    height: 40px;
    transform: translateY(-50%);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    cursor: pointer;
    z-index: 10;
}

.custom-prev:after,
.custom-next:after { display: none; }

.custom-prev { left: 25%; background-image: url('../img/prev.png'); }
.custom-next { right: 25%; background-image: url('../img/next.png'); }

.custom-prev:hover,
.custom-next:hover { opacity: 0.8; }


/* --- TAB (탭) --- */
.tab-wrap {
    overflow: hidden;
    max-width: 1300px;
    width: 70.5%;
    margin: 0 auto;
}

.tab-wrap .tab-list {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
    border-radius: 50px;
    margin-bottom: 20px;
}

.tab-wrap .tab-btn:first-of-type { border-top-left-radius: 50px; border-bottom-left-radius: 50px; }
.tab-wrap .tab-btn:last-of-type { border-top-right-radius: 50px; border-bottom-right-radius: 50px; }

.tab-wrap .tab-btn {
    flex: 1 1 25%;
    position: relative;
    padding: 30px 5px;
    text-align: center;
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    background: #000;
    color: #CCCCCC;
    cursor: pointer;
    user-select: none;
    transition: background 0.2s ease;
}

.tab-wrap .tab-btn.active {
    background: #066C60;
    color: #fff;
}

.tab-wrap .tab-btn .top {
    display: block;
    text-align: center;
    margin-bottom: 5px;
    font-size: 24px;
}

.tab-wrap .tab-content-wrap {
    position: relative;
}

/* [수정] 탭 컨텐츠 스타일 및 애니메이션 추가 */
.tab-wrap .tab-content {
    background: linear-gradient(0deg, #0B655A 0%, #000 100%);
    padding: 60px 80px;
    border-radius: 8px;
    display: none;
    /* 애니메이션 준비 */
    opacity: 0;
    transform: translateY(20px); 
}

/* [수정] active 클래스가 붙으면 애니메이션 실행 */
.tab-wrap .tab-content.active {
    display: block;
    animation: tabSlideUp 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* [추가] 탭 애니메이션 키프레임 */
@keyframes tabSlideUp {
    to { opacity: 1; transform: translateY(0); }
}

.tab-wrap .tab-content img {
    width: 100%;
    max-width: 1180px;
    height: auto;
    display: block;
    margin: 0 auto;
}

.tab-wrap .tab-content .btn-wrap {
    margin-top: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2%;
    align-self: stretch;
}

.tab-wrap .tab-content .btn-wrap a {
    display: inline-block;
    max-width: 550px;
    width: 100%;
    padding: 20px 10px;
    font-size: 25px;
    font-weight: 400;
    cursor: pointer;
    border-radius: 16px;
    letter-spacing: -1px;
    /* [추가] 탭 내부 버튼 호버 효과 */
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tab-wrap .tab-content .btn-wrap a:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}

.tab-wrap .tab-content .btn-wrap .course-link {
    background: #A9E8D9;
    color: #000000;
    margin-right: 2%;
}

.tab-wrap .tab-content .btn-wrap .course-buy {
    background: #000000;
    color: #ffffff;
}


/* --- 팝업 커리큘럼 영상 --- */
.popup {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 95%;
    max-width: 1000px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    border: 2px solid #ffffff;
    z-index: 1000;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.popup.show {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.popup .video-container {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    height: 0;
}

.popup .video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.popup-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 999;
}


/* --- 반응형 미디어 쿼리 --- */
@media (max-width: 1921px) {
    .section-5 .review-swiper { top: 25%; left: 15.8%; width: 43.2%; height: 67.5%; }
    .section-5 .review-swiper .swiper-wrapper .swiper-slide { padding: 5%; background: rgba(0, 0, 0, 0.3); border-radius: 16px; margin-bottom: 5% !important; }
    .section-5 .review-swiper .swiper-wrapper .swiper-slide h3 { font-size: 2vw; margin-bottom: 3%; }
    .section-5 .review-swiper .swiper-wrapper .swiper-slide h3 span { font-size: 1.8vw; }
    .section-5 .review-swiper .swiper-wrapper .swiper-slide p { color: #fff; font-size: 1.3vw; font-weight: 400; line-height: 1.6; }
    .tab-wrap .tab-btn { font-size: 1.8vw; }
    .tab-wrap .tab-content { padding: 4% 4% 8% 4%; }
}

@media (max-width: 1300px) {
    .custom-prev, .custom-next { display: none; }
}

@media (max-width: 992px) {
    .section-1 .block-img { width: 180%; margin-left: -40%; }
    .section-1 .s1-title { top: 16%; width: 85%; }
    .section-1 .teacher { bottom: 0; width: 47%; }
    .section-1 .s1-sub { bottom: 3%; width: 90%; }

    .section-1 .s1-btn-wrap {
        bottom: 5.5%;
    }
    .section-1 .s1-btn-wrap a {
        display: block;
        width: 23%;
    }
    
    .section-5 .s2-title { margin: 0 auto 30px; }
    
    /* @keyframes fade-up { ... }
    기존 모바일용 키프레임 정의도 필요 시 주석처리 하거나 둡니다.
    AOS가 동작하면 무시됩니다.
    */
    
    .section-2 .block-img { width: 140%; margin-left: -20%; }
    .section-3 .block-img { width: 140%; margin-left: -20%; }
    .section-3 .video-btn {
        width: 95.5%;
    }
    .section-4 { padding: 5% 10px 10%; }
    .section-4 .block-img { width: 200%; margin-left: -50%; }
    .section-4 .s4-title { width: 140%; margin: 0 auto 4%; margin-left: -20%; }
    .section-5 { padding: 50px 0; }
    .section-5 .review-swiper { top: 25%; left: 1.8%; width: 72.2%; height: 67.5%; }
    .section-5 .review-swiper .swiper-wrapper .swiper-slide { padding: 5%; border: 2px solid #E3A500; border-radius: 16px; margin-bottom: 60px; }
    .section-5 .review-swiper .swiper-wrapper .swiper-slide h3 { font-size: 2.7vw; margin-bottom: 3%; }
    .section-5 .review-swiper .swiper-wrapper .swiper-slide h3 span { font-size: 2.5vw; }
    .section-5 .review-swiper .swiper-wrapper .swiper-slide p { font-size: 2.2vw; }
    .section-6 .block-img { width: 140%; margin-left: -20%; }
    .section-6 .s6-btn { left: 68%; width: 28%; }
    .video-btn { width: 95%; }
    .tab-wrap { border-radius: 10px; max-width: 1300px; width: 100%; margin: 0 auto; }
    .tab-wrap .tab-list { gap: 0; }
    .tab-wrap .tab-btn { font-size: 2.4vw; padding: 3% 5px; }
    .tab-wrap .tab-content { border-radius: 0 0 12px 12px; padding: 3% 3% 5%; }
    .tab-wrap .tab-content .btn-wrap { margin-top: 5%; }
    .tab-wrap .tab-content .btn-wrap a { font-size: 2.5vw; padding: 2% 10px; }
}

@media (max-width: 601px) {
    .custom-prev, .custom-next { display: block; top: 53%; }
    .custom-prev { left: 3%; }
    .custom-next { right: 3%; }
    .section-1 .s1-btn-wrap { bottom: 6% }
    .section-1 .s1-btn-wrap a { width: 20%; }
}

