*{
  margin: 0;
  padding: 0;
  p{
    margin: 0 ;
  }
}

.main_slides {
width: 100%;
height: 400px;
  img{
    width: 100%;
    object-fit: cover;
  }
}


.banner_controls .slick-prev, .banner_controls .slick-next{
  position: absolute;
  top: 0;
  transform: translateY(-50%);
  color: #ffffff;
  font-size: 1.5rem;
  border-style: none;
  background: transparent;
  width: 15px;
  height: 15px;
  z-index: 100;
  i{
    font-size: 15px;
    line-height: 15px;
  }
}

.main_notice .slick-prev , .main_notice .slick-next{
  color: rgba(0, 0, 0, 1);
  border-style: none;
  background: #fff;
  border: 1px solid #ebebeb;
  box-sizing: border-box;
  width: 27px;
  height: 27px;
  z-index: 100;
  i{
    font-weight: 600;
    font-size: 12px;
    line-height: 16px;
  }
} 
.banner{
  position: relative;
  border-bottom: 1px solid #ebebeb;
  margin-bottom: 120px;
}

.banner .banner_controls{
  position: relative;
  right: -100%;
  bottom: -15px;
  width: 80px;
  height: 30px;
  transform: translateX(-100%);
  background: #1E4DAC;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px; /* 버튼과 텍스트 사이의 간격 */
  span{
    color: #ffffff;
  }
}

.main_notice{
  /* border-bottom: 1px solid #ebebeb; */
  .notice_text {
    padding: 0 10px;
    width: 80%;
  }
  span{
    font-size: 16px;
  }
  .notice_controls{
    position: relative;
    
  }
}

.main_notice .slick-prev{
  top: 0;
}

.main_notice .slick-next{
  bottom: 0;
}


.banner .slick-prev{
  left: 3px;
}

.banner .slick-next{
  right: 3px;
}

.main_notice h2{
  width: 80px;
  font-size: 20px;
  padding: 10px 0 ;
  display: flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  flex-shrink: 0; /* 크기 압축 방지 */
  flex-grow: 0;   /* 크기 확장 방지 */
  i{
    padding-top: 2px;
  }
}

.notice_slides{
  padding: 10px 0 ;
}


.small-font{
  font-size: 14px;
  line-height: 19px;
}
.normal-font{
  font-size: 24px;
  line-height: 40px;
}
.font{
  font-size: 20px;
  line-height: 29px;
}
.slide ul{
  list-style: none;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap:5px;
}

.slide li{
  font-size: 12px;
}
.slide .like img{
  filter: invert(1);
  width: 15px;
  height: 15px;
}
.tag{
  display: flex;
  gap: 5px;
}

.tag span{
  color:#00894F;
  background: #E5F9F1;
  border-radius: 6px;
  padding: 2px 15px;
}

.custom{
  position: absolute;
  bottom: 90px;
  left: 15%;
}

.custom-pagination {
  display: flex;
  justify-content: space-between; /* 균등 배치 */
  align-items: center;
  position: absolute;
  width: 90%;
  box-sizing: border-box;
}

.custom-pagination .custom-dot {
  flex: 1; /* 너비를 균등하게 분배 */
  height: 3px;
  background: rgba(0, 0, 0, 0.3);
  transition: background 0.3s ease;
  cursor: pointer;

}

.custom-pagination .custom-dot.active {
  background: #fff;
}

.premium_slider img {
  width: 100%;
  height: auto;
}
.skill_tag{
  margin-bottom: 120px;
}
.skill_tag > div{
  display: flex;
  justify-content: center;
  gap: 55px;
  
}
.skill_tag figure{
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  cursor: pointer;
}

.skill_tag > div div{
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  margin: 0;
  width: 70px;
  height: 70px;
  background-color: #ebebeb;
  border-radius: 5px;
}
.skill_tag > div div.active{
  background-color: #c2c2c2;
}

.skill_cnt {
  margin: 20px;
}


.skill_tag figure img{
  width: 27px;
  height: 35px;
}
.skill_tag{
  position: relative;
  
}
.skill_tag #skill_filter {
  flex: 1;
  position: relative;
  margin-bottom: 120px;
  h5 {
    overflow: hidden;
    text-overflow: ellipsis;
    a{
      font-size: 16px;
      text-decoration: none;
      font-weight: 700;
      color: #000;
    }
  }
  .tuition p{
    margin-bottom: 0;
  }
  .info{
    margin: 10px;
    height: 130px;
  }
}
.skill_tag #skill_filter > div{
  width: 25%;
  display: flex;
  gap: 10px;
  flex-direction: column;
}

.skill_tag #skill_filter img{
  width: 100%;
  object-fit: cover;
}

.skill_tag #skill_filter ul{
  list-style: none;
  padding: 0;
  margin-bottom: 0;
  span{
    background:#E7F4FF;
    color: #2D81FF;
    border-radius: 6px;
    padding: 2px 15px;
  }
}

#skill_filter .slick-slide > div {
  background: #fff;
  display: flex;
  margin-bottom: 20px;
}
#skill_filter .slide{
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.08); /* 깊이 있는 그림자 */

  
}
#skill_filter .slide:hover {
  box-shadow: 
    0px 8px 16px rgba(0, 0, 0, 0.06); /* 더 부드러운 확산 */
  
}
.skill_tag .slick-slide:first-child{
  margin-left: 0; 
}

.skill_tag .slick-list {
  text-align: left; /* 슬라이더 전체를 왼쪽 정렬 */
}
/* recom_algorithm */
.recom_algorithm{
  position: relative;
  margin-bottom: 120px;
  .popular{
    display: flex;
    gap: 20px;
  }
  .info{
    margin: 10px;
    
  }
  .title h5 {
    height: 2.4rem;
    max-height: 2.4rem;
    overflow: hidden;
    text-overflow: ellipsis;
    a{
      font-weight: 700;
    }
  }
  .tuition p{
    margin-bottom: 0;
  }
}
.recom_algorithm > h6{
  text-transform: uppercase;
  color: #00894F;
}
.recom_algorithm > h3{
  font-size: 36px;
  font-weight: 700;
  line-height: 40px;
}
.recom_algorithm > p{
  font-size: 20px;
  line-height: 20px;
  font-weight: 400;
}
.algorithm_controls{
  display: flex;
  justify-content: center;
  gap: 35px;
  position: absolute;
  top: 18%;
  right: 2%;
  z-index: 100;
  button{
    width: 20px;
    height: 20px;
    border-style: none;
    background: transparent;
    i{
      font-size: 20px;
      line-height: 20px;
    }
  }
}

.recom_algorithm .slick-slide {

  margin: 15px 0 15px 24px; 
  a {
    text-decoration: none;
    color: #000;
  }
  .cover{
    overflow: hidden;
  }
}

.recom_algorithm .slick-slide:first-child{
  margin-left: 0; 
}

.recom_algorithm .slick-list {
  text-align: left; /* 슬라이더 전체를 왼쪽 정렬 */
}

.recom_algorithm .slick-track{
  display: flex;
  justify-content: flex-start;
} 
.algorithm{
  background: white;
  margin: 10px 0;
}
.recom_algorithm .slide{
  box-shadow: 
  0px 6px 12px rgba(0, 0, 0, 0.06); /* 더 부드러운 확산 */
}

.recom_algorithm .slide ul{
  list-style: none;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap:5px;
  margin-bottom: 0;
}

/* main_popular */
.main_popular{
  position: relative;
  margin-bottom: 120px;
  .popular{
    display: flex;
    gap: 20px;
  }
  .info{
    margin: 10px;
    
  }
  .title h5 {
    height: 2.4rem;
    max-height: 2.4rem;
    overflow: hidden;
    text-overflow: ellipsis;
    a{
      font-weight: 700;
    }
  }
  .tuition p{
    margin-bottom: 0;
  }
}
.cover img {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.cover img:hover{
  transition: 0.3s ease;
  transform: scale(110%);
}
.main_popular > h6{
  text-transform: uppercase;
  color: #00894F;
}
.main_popular > h3{
  font-size: 36px;
  font-weight: 700;
  line-height: 40px;
}
.main_popular > p{
  font-size: 20px;
  line-height: 20px;
  font-weight: 400;
}
.porpular_controls{
  display: flex;
  justify-content: center;
  gap: 35px;
  position: absolute;
  top: 18%;
  right: 2%;
  z-index: 100;
  button{
    width: 20px;
    height: 20px;
    border-style: none;
    background: transparent;
    i{
      font-size: 20px;
      line-height: 20px;
    }
  }
}

.main_popular .slick-slide {

  margin: 15px 0 15px 24px; 
  a {
    text-decoration: none;
    color: #000;
  }
  .cover{
    overflow: hidden;
  }
}

.main_popular .slick-slide:first-child{
  margin-left: 0; 
}

.main_popular .slick-list {
  text-align: left; /* 슬라이더 전체를 왼쪽 정렬 */
}

.main_popular .slick-track{
  display: flex;
  justify-content: flex-start;
} 
.popular{
  background: white;
  margin: 10px 0;
}
.main_popular .slide{
  box-shadow: 
  0px 6px 12px rgba(0, 0, 0, 0.06); /* 더 부드러운 확산 */
}

.main_popular .slide ul{
  list-style: none;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap:5px;
  margin-bottom: 0;
}

/* main_premium */
.main_premium{
  position: relative;
  margin-bottom: 120px;
}
.main_premium > h6{
  text-transform: uppercase;
  color: #00894F;
}
.main_premium > h3{
  font-size: 36px;
  font-weight: 700;
  line-height: 40px;
}
.main_premium > p{
  font-size: 20px;
  line-height: 20px;
  font-weight: 400;
  margin-bottom: 20px;
}
.main_premium .premium {
  flex: 1;
  h5 {
    margin-bottom: 10px;
    a{
      font-size: 16px;
      text-decoration: none;
      font-weight: 700;
      color: #000;
    }
  }
  .slide {
    position: relative;
    height: 450px;
  }
  .tuition p{
    margin-bottom: 0;
  }
  .info{
    position: absolute;
    padding: 16px;
    width: 100%;
    height: 185px;
    background: white;
    left: 0;
    right: 0;
    bottom: 0;
    gap: 10px;
   transition: all .3s ease;
    overflow: hidden;
  }
}
.main_premium .info > p {
  transition: opacity 0.3s ease, max-height 0.3s ease;;
  height: 56px;
  font-size: 12px;
  color: #797979;
  /* min-height: 56px;
  max-height: 56px; */
  overflow: hidden;
  max-height: 0;
  opacity: 0;
}
.main_premium .slide:hover .info{
  height: 241px;
}
.main_premium .slide:hover .info > p {
  max-height: 56px;
  opacity: 1;
}

.main_premium .premium > div{
  width: 100%;
  display: flex;
  gap: 10px;
  flex-direction: column;
}

.main_premium img{
  width: 100%;
  object-fit: cover;
  display: block;
}

.main_premium .premium ul{
  list-style: none;
  padding: 0;
  margin-bottom: 0;

  span{
    
    background:#FFE1F8;
    color: #D937FF;
    display: inline-block;
    border-radius: 6px;
    padding: 2px 15px;
  }
}

.premium .slick-slide > div {
  background: #fff;
  display: flex;
  margin-bottom: 20px;
}
.premium .slide {
  box-shadow: 
    0px 2px 4px rgba(0, 0, 0, 0.1),  /* 얕은 그림자 */
    0px 4px 8px rgba(0, 0, 0, 0.08), /* 깊이 있는 그림자 */
    0px 8px 16px rgba(0, 0, 0, 0.06);

  margin: 0 12px 15px 12px !important;
}

.premium_controls{
  position: absolute;
  top: 80px;
  right: 2%;
  display: flex;
  justify-content: center;
  gap: 30px;
  z-index: 100;
  button{
    width: 20px;
    height: 20px;
    border-style: none;
    background: transparent;
    i{
      font-size: 20px;
      line-height: 20px;
    }
  }
}



/* main_info */
.main_info{
  background: #F5F5F5;
}
.main_info > div{
  padding: 75px 0;
}
.main_info > div > *{
  margin: 0 auto;
}
.main_info h3{
  font-weight: 700;
  font-size: 30px;
  line-height: 36px;
}
.main_info h4{
  margin: 25px auto 40px;
  width: 700px;
  font-weight: 500;
  font-size: 16px;
  line-height: 24px;
}
.main_info ul{
  list-style: none;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-bottom: 48px;
}
.main_info ul li{
  padding: 25px;
  position: relative;
  width: 220px;
  height: 320px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 
  0px 2px 4px rgba(0, 0, 0, 0.1),  /* 얕은 그림자 */
  0px 4px 8px rgba(0, 0, 0, 0.08), /* 깊이 있는 그림자 */
  
}
.main_info ul li:hover{
  box-shadow: 
  0px 2px 4px rgba(0, 0, 0, 0.1),  /* 얕은 그림자 */
  0px 4px 8px rgba(0, 0, 0, 0.08), /* 깊이 있는 그림자 */
  0px 8px 16px rgba(0, 0, 0, 0.06); /* 더 부드러운 확산 */
}
.main_info ul li h6{
  width: 165px;
  text-align: left;
  font-size: 28px;
  line-height: 36px;
  font-weight: 700;
}
.main_info ul li p{
  text-align: left;
}
.main_info ul li img{
  position: absolute;
  bottom: 27px;
  right: 27px;
}
.main_info ul li:nth-child(1) h6{
  color: #0D6EFD;
}
.main_info ul li:nth-child(2) h6{
  color: #00894F;
}
.main_info ul li:nth-child(3) h6{
  color: #FF8645;
}
.main_info ul li:nth-child(4) h6{
  color: #FF668C;
}
.main_info button{
  padding: 10px 42px;
  background: var(--primary);
  color: var(--white);
  border: none;
  border-radius: 5px;
  font-weight: 700;
  font-size: 16px;
  line-height: 20px;
}
/* main_review */
.main_review{
  position: relative;
  margin-top: 130px;
  margin-bottom: 130px;
}
.main_review h3{
  margin: 0 auto;
  font-size: 36px;
  font-weight: 700;
  margin-bottom: 24px;
  a{
    text-decoration: none;
    font-size: 16px;
    color: #c2c2c2;
    font-weight: 400;
    margin-top: 30px;
    margin-right: 20px;
  }
}
.main_review figure{
  margin: 0;
  width: 500px;
  height: 160px;
  border: 1px solid var(--primary);
  border-radius: 5px;

}
.main_review figure img{
  width: 90px;
  height: 90px;
}
.main_review figure > *{
  margin: 20px;
}
.main_review figcaption b{
  font-weight: 700;
  font-size: 20px;
  line-height: 24px;
}
.main_review figcaption span{
  font-size: 20px;
  line-height: 24px;

}
.main_review figcaption p::before{
  content: '" ';
  display: inline;
}
.main_review figcaption p{

  margin: 10px 0;
  font-size: 14px;
  line-height: 19px;
  font-style: italic;
  color: #4B4B4B;
}
.main_review figcaption p::after{
  content: ' "';
  display: inline;
}

.main_review .review_content{
  width: 100%;
  overflow: hidden;

}
.main_review .slick-slide {

  margin: 15px 0 15px 24px; 
  a {
    text-decoration: none;
    color: #000;
  }
}

.main_review .slick-slide:first-child{
  margin-left: 0; 
}

.main_review .slick-list {
  text-align: left; /* 슬라이더 전체를 왼쪽 정렬 */
}

.review_controls .slick-prev,
.review_controls .slick-next{
  position: absolute;
  top: 50%;
  transform: translateY(100%);
  z-index: 100;
  border-style: none;
  background: transparent;
}
.review_controls .slick-prev{
  right: calc(100% + 10px)
}
.review_controls .slick-next{
  left: calc(100% - 15px);
}

/* main_recom */
.main_recom{
  position: relative;
  margin-bottom: 130px;
}
.main_recom > h6{
  color: #2D81FF;
  text-transform: uppercase;
}
.main_recom > h3{
  font-size: 36px;
  font-weight: 700;
  line-height: 40px;
}
.main_recom > p{
  font-size: 20px;
  line-height: 20px;
  font-weight: 400;
  margin-bottom: 20px;
}
.main_recom .recom {
  flex: 1;

  h5 {
    overflow: hidden;
    text-overflow: ellipsis;
    a{
      font-size: 16px;
      text-decoration: none;
      font-weight: 700;
      color: #000;
    }
  }
  .tuition p{
    margin-bottom: 0;
  }
  .info{
    margin: 10px;
    height: 130px;
  }
}
.main_recom .recom > div{
  width: 100%;
  display: flex;
  gap: 10px;
  flex-direction: column;
}

.main_recom img{
  width: 100%;
  object-fit: cover;
}

.main_recom .recom ul{
  list-style: none;
  padding: 0;
  margin-bottom: 0;
  span{
    background:#E7F4FF;
    color: #2D81FF;
    border-radius: 6px;
    padding: 2px 15px;
  }
}

.recom .slick-slide > div {
  background: #fff;
  display: flex;
  margin-bottom: 20px;
}
.recom .slide{
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.08); /* 깊이 있는 그림자 */

  
}
.recom .slide:hover {
  box-shadow: 
    0px 8px 16px rgba(0, 0, 0, 0.06); /* 더 부드러운 확산 */
  
}
.main_recom .slick-slide:first-child{
  margin-left: 0; 
}

.main_recom .slick-list {
  text-align: left; /* 슬라이더 전체를 왼쪽 정렬 */
}
.recom_controls{
  position: absolute;
  top: 8%;
  right: 2%;
  display: flex;
  justify-content: center;
  gap: 30px;
  z-index: 100;
  button{
    width: 20px;
    height: 20px;
    border-style: none;
    background: transparent;
    i{
      font-size: 20px;
      line-height: 20px;
    }
  }
}

/* main_free */
.main_free{
  position: relative;
  margin-bottom: 260px;
}
.main_free > h6{
  color: #2D81FF;
  text-transform: uppercase;
}
.main_free > h3{
  font-size: 36px;
  font-weight: 700;
  line-height: 40px;
}
.main_free > p{
  font-size: 20px;
  line-height: 20px;
  font-weight: 400;
  margin-bottom: 20px;
}
.main_free .free {
  flex: 1;
  h5 {
    
    a{
      font-size: 16px;
      text-decoration: none;
      font-weight: 700;
      color: #000;
    }
  }
  .tuition p{
    margin-bottom: 0;
  }
  
}
.main_free .free > div{
  width: 100%;
  display: flex;
  gap: 10px;
  flex-direction: column;
}

.main_free .image_container img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(100%);
  transition: transform 0.3s ease
}
.main_free .image_container:hover img{
  transform: scale(110%);
}
.image_container .box{
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  opacity: 0;
  background: #000;
}
.image_container:hover .box{
  opacity: .5;
}
.image_container:hover h5 a{
  color: #fff;
}
.image_container{
  position: relative;
  height: 340px;
  overflow: hidden;
}
.main_free .info{
  margin: 10px;
  height: 80px;
  position: absolute;
  bottom:  0;
  left: 0;
  z-index: 100;
}

.main_free .free ul{
  list-style: none;
  padding: 0;
  margin-bottom: 0;
  span{
    background:#E7F4FF;
    color: #2D81FF;
    
    border-radius: 6px;
    padding: 2px 15px;
  }
}

.free .slick-slide > div {
  background: #fff;
  display: flex;
  margin-bottom: 20px;
}
.free .slide{
  box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.06);
 
}

.main_free .slick-slide:first-child{
  margin-left: 0; 
}

.main_free .slick-list {
  text-align: left; /* 슬라이더 전체를 왼쪽 정렬 */
}

.free_controls{
  position: absolute;
  top: 8%;
  right: 2%;
  display: flex;
  justify-content: center;
  gap: 30px;
  z-index: 100;
  button{
    width: 20px;
    height: 20px;
    border-style: none;
    background: transparent;
    i{
      font-size: 20px;
      line-height: 20px;
    }
  }
}
/* main_category */
.main_category{
  text-align: center;
  margin-bottom: 240px;
}

.main_category > h3{
  font-size: 36px;
  font-weight: 700;
  line-height: 40px;
  margin-bottom: 30px;
}
.main_category > p{
  font-size: 20px;
  line-height: 20px;
  font-weight: 400;
  margin-bottom: 40px;

}
.main_category .keywords{
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.main_category .tech{
  display: flex;
  justify-content: center;
  gap: 24px;
}
.main_category .tech span{
  display: inline-block;
  background: #EFEFEF;
  padding: 10px 12px;
  font-weight: 500;
  border-radius: 3px;
  opacity: .8;
  cursor: pointer;
}
.main_category .tech span:hover{
  opacity: 1;
}