/* 클래스 메인 페이지 - 피그마 디자인 */
.student-new.class-main {
  background: #000;
  min-height: 100vh;
  overflow: visible !important; /* 스티키 포지셔닝을 위해 overflow 제거 */
  /* 상단 경계선 문제 해결 */
  margin-top: 0;
  padding-top: 0;
}

/* wrapper와 contents에만 overflow visible 설정 */
#wrapper.student-new,
#wrapper.student-new #contents,
.student-new.class-main > div {
  overflow: visible !important;
}

/* 히어로 섹션 - 마스터과정과 동일한 스타일 적용 */
.class-hero-section {
  position: relative;
  margin: 0 auto;
  max-width: 1920px;
  width: 100%;
  height: 440px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-blend-mode: overlay;
  overflow: hidden;
  /* 상단 경계 문제 해결 */
  border-top: none;
  outline: none;
  box-shadow: none;
}

.class-hero-content {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 히어로 배경 이미지 */
.class-hero-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url('/assets/images/class/hero-bg.png');
  background-size: auto 100%;
  background-position: right center;
  background-repeat: no-repeat;
  opacity: 1;
  z-index: 0;
}

/* 히어로 배너 섹션 - master-main-section 스타일 그대로 적용 */
.student-new.class-main .class-hero-banner-section {
  position: relative;
  left: 50%;
  transform: translateX(-50%) translateZ(0); /* 하드웨어 가속 추가 */
  max-width: 1920px;
  width: 100vw;
  height: 440px !important;
  min-height: 440px !important;
  background: #121212;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  /* 서브픽셀 렌더링 문제 해결 */
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  image-rendering: crisp-edges;
  -webkit-font-smoothing: antialiased;
  /* 상단 경계선 제거 */
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

/* 보라색 블러 효과 - 오른쪽 */
.student-new.class-main .class-hero-banner-section::before {
  content: '';
  position: absolute;
  width: 247px;
  height: 247px;
  right: 408px;
  top: 77px;
  background: #802fff;
  filter: blur(200px);
  z-index: 0;
}

/* 보라색 블러 효과 - 왼쪽 */
.student-new.class-main .class-hero-banner-section::after {
  content: '';
  position: absolute;
  width: 247px;
  height: 247px;
  left: 310px;
  top: -158px;
  background: #802fff;
  opacity: 0.5;
  filter: blur(200px);
  z-index: 0;
}

.class-hero-banner-section .class-hero-content {
  position: relative;
  width: 100%;
  max-width: 1180px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0px;
  margin: 0 auto;
  /* 서브픽셀 렌더링 개선 */
  transform: translateZ(0);
  backface-visibility: hidden;
}

.class-hero-content .text-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
  gap: 12px;
  width: 492px;
  z-index: 10;
}

/* 타로 카드 컨테이너 */
.class-hero-content .tarot-cards {
  position: absolute;
  right: -14px;
  top: 54%;
  transform: translateY(-50%);
  width: 700px;
  height: 400px;
  z-index: 2;
}

/* 타로 카드 SVG */
.class-hero-content .tarot-cards svg {
  width: 100%;
  height: 100%;
}

.class-hero-content .sub-title {
  font-family: 'Pretendard';
  font-style: normal;
  font-weight: 700;
  font-size: 24px;
  line-height: 140%;
  color: #802fff;
  margin: 0;
}

.class-hero-content .title {
  font-family: 'Pretendard';
  font-style: normal;
  font-weight: 700;
  font-size: 48px;
  line-height: 140%;
  color: #ffffff;
  margin: 0;
}

/* 히어로 영역에 타로 카드 이미지 추가 */
.class-hero-visual {
  position: relative;
  width: 450px;
  height: 450px;
  z-index: 2;
}

.class-hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* 보라색 블러 효과 */
.class-hero-section::after {
  content: '';
  position: absolute;
  width: 247px;
  height: 247px;
  right: 408px;
  top: 77px;
  background: #802fff;
  filter: blur(200px);
  z-index: 1;
}

.class-hero-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0px;
  gap: 12px;
  width: 492px;
  position: absolute;
  left: 15%;
  bottom: 165.5px;
}

.class-hero-category {
  font-family: 'Pretendard';
  font-style: normal;
  font-weight: 700;
  font-size: 24px;
  line-height: 140%;
  color: #802fff;
  margin: 0;
}

.class-hero-title {
  font-family: 'Pretendard';
  font-style: normal;
  font-weight: 700;
  font-size: 48px;
  line-height: 140%;
  color: #ffffff;
  margin: 0;
}

/* 카테고리 필터 - 히어로 섹션 바로 아래, 효과 비활성화 */
.class-filter-section {
  /* Sticky 효과 제거 - 일반 position으로 변경 */
  position: relative; /* sticky 대신 relative 사용 */
  top: 0; /* 스크롤시 고정 효과 제거 */
  background: #000;
  z-index: 90; /* 네비게이션 드로어보다 낮게 설정 */
  padding: 20px 0; /* 피그마 디자인에 맞게 */
  margin-top: 78px; /* 히어로 섹션과의 간격 */
  transition: none; /* 트랜지션 효과 제거 */
  width: 100%; /* 화면 전체 너비 */
  margin-left: 0; /* 중앙 정렬하면서 전체 너비 */
  left: 0;
  right: 0;
}

/* 필터 내부 컨테이너 */
.class-filter-inner {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* 스티키 활성화 상태 - 비활성화 */
.class-filter-section.sticky-active {
  /* 스티키 효과 제거 */
  position: relative;
  top: 0;
  left: 0;
  right: 0;
  padding: 20px 0;
  box-shadow: none; /* 그림자 효과 제거 */
  animation: none; /* 애니메이션 제거 */
}

/* 슬라이드 애니메이션 비활성화 */
@keyframes slideDown {
  /* 애니메이션 효과 제거 */
}

/* 필터 탭 스타일 */
.class-filter-tab {
  font-family: 'Pretendard' !important;
  font-style: normal !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  line-height: 140% !important;
  text-align: center !important;
  letter-spacing: -0.03em !important;
  color: #666666 !important;
  text-decoration: none !important;
  transition: none !important; /* 트랜지션 제거 */
  cursor: pointer !important;
  background: none !important;
  border: none !important;
  padding: 0px !important;
  white-space: nowrap;
}

/* 스크롤시 탭 크기 조정 - 비활성화 */
.class-filter-section.scrolled .class-filter-tab {
  /* 크기 변경 효과 제거 - 원본 크기 유지 */
  font-size: 16px !important;
  padding: 8px 16px !important;
}

.class-filter-tab:hover {
  /* 호버 효과 제거 */
  color: #666666 !important;
}

.class-filter-tab.active {
  color: #ffffff !important;
}

/* 히어로 섹션 내에서 스크롤 시 고정되는 필터 - 비활성화 */
.class-filter-fixed {
  position: relative; /* fixed 대신 relative */
  top: 0;
  left: 0;
  right: 0;
  background: #000;
  padding: 20px 0;
  z-index: 90; /* 네비게이션 드로어보다 낮게 설정 */
  box-shadow: none; /* 그림자 제거 */
  transition: none; /* 트랜지션 제거 */
}

.class-filter-fixed .class-filter-tabs,
.class-filter-fixed .class-filter-container {
  max-width: 1180px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  gap: 56px;
}

.class-filter-section.scrolled {
  /* 스크롤 효과 제거 */
  padding: 20px 0; /* 패딩 유지 */
  box-shadow: none; /* 그림자 제거 */
  background: #000; /* 투명도 제거 */
  backdrop-filter: none; /* 블러 효과 제거 */
}

.class-filter-container,
.class-filter-tabs {
  width: 100%;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 56px;
  padding: 0 20px;
}

.class-filter-tab {
  font-family: 'Pretendard' !important;
  font-style: normal !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  line-height: 140% !important;
  text-align: center !important;
  letter-spacing: -0.03em !important;
  color: #666666 !important;
  text-decoration: none !important;
  transition: none !important; /* 트랜지션 제거 */
  cursor: pointer !important;
}

/* ALL 탭에만 opacity 0.4 적용 */
.class-filter-tab:first-child:not(.active) {
  color: #666666 !important;
}

.class-filter-tab:hover {
  color: #999999 !important;
}

.class-filter-tab.active {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* 클래스 그리드 - 마스터과정과 동일한 패딩 적용 */
.class-grid-section {
  width: 100%;
  /* padding: 40px 370px 100px; */
  background: #000;
  position: relative;
  padding-top: 20px; /* 필터 섹션과의 간격 추가 (기존 20px + 추가 20px = 총 40px) */
  margin-bottom: 120px;
}

.class-grid-container {
  display: grid;
  grid-template-columns: repeat(3, 377px);
  gap: 32px 25px;
  max-width: 1180px;
  margin: 0 auto;
  transition: opacity 0.3s ease;
  justify-content: center;
}

.class-grid-row {
  display: contents; /* row div 무시하고 직접 grid 아이템으로 */
}

/* 메인페이지 .home-class와 클래스 메인페이지 .class-main 모두 지원 */
.class-card-item,
.home-class .class-card-item,
.student-new .home-class .class-card-item {
  width: 377px !important;
  height: 243px !important;
  position: relative !important;
}

.class-card-link {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.class-card-visual,
.home-class .class-card-visual,
.student-new .home-class .class-card-visual {
  width: 377px !important;
  height: 243px !important;
  border-radius: 20px !important;
  position: relative !important;
  overflow: hidden !important;
  flex: none !important;
  order: 0 !important;
  flex-grow: 0 !important;
}

/* 카드 배경 블러 효과 */
.card-decor,
.home-class .card-decor {
  position: absolute !important;
  border-radius: 50% !important;
  filter: blur(80px) !important;
}

.card-decor-1,
.home-class .card-decor-1 {
  width: 525px !important;
  height: 525px !important;
  left: -100.5px !important;
  top: -282px !important;
  background: #802fff; /* !important 제거 - 색상별 스타일이 덮어쓸 수 있도록 */
}

.card-decor-2,
.home-class .card-decor-2 {
  width: 314.9px !important;
  height: 314.9px !important;
  left: 4.55px !important;
  top: -176.95px !important;
  background: #601ec8; /* !important 제거 - 색상별 스타일이 덮어쓸 수 있도록 */
}

.card-decor-3 {
  display: none; /* 기존 스타일 제거 */
}

.class-card-category,
.home-class .class-card-category,
.student-new .home-class .class-card-category,
.home-class .class-cards .class-card-item .class-card-category,
.student-new .home-class .class-cards .class-card-item .class-card-category {
  position: absolute !important;
  width: 146.87px !important;
  height: 14px !important;
  left: calc(50% - 146.87px / 2 - 83.07px) !important;
  top: 32.5px !important;
  bottom: auto !important;
  font-family: 'Pretendard' !important;
  font-style: normal !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  line-height: 100% !important;
  color: #ffffff !important;
  z-index: 2 !important;
  margin: 0 !important;
  letter-spacing: normal !important;
}

.class-card-category .category-eng {
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
}

.class-card-title,
.home-class .class-card-title,
.student-new .home-class .class-card-title,
.home-class .class-cards .class-card-item .class-card-title,
.student-new .home-class .class-cards .class-card-item .class-card-title {
  position: absolute !important;
  width: 146.87px !important;
  height: 62px !important;
  left: 32px !important;
  top: 56.5px !important;
  bottom: auto !important;
  font-family: 'Pretendard' !important;
  font-style: normal !important;
  font-weight: 800 !important;
  font-size: 24px !important;
  line-height: 130% !important;
  letter-spacing: -0.03em !important;
  color: #ffffff !important;
  z-index: 2 !important;
  margin: 0 !important;
}

.class-card-teacher,
.home-class .class-card-teacher,
.student-new .home-class .class-card-teacher,
.home-class .class-cards .class-card-item .class-card-teacher,
.student-new .home-class .class-cards .class-card-item .class-card-teacher {
  position: absolute !important;
  width: 217.19px !important;
  height: 341.5px !important;
  left: calc(50% - 217.19px / 2 + 79.9px) !important;
  top: 1.5px !important;
  transform: matrix(-1, 0, 0, 1, 0, 0) !important;
  z-index: 2 !important;
}

.class-card-gradient,
.home-class .class-card-gradient,
.student-new .home-class .class-card-gradient {
  position: absolute !important;
  width: 377px !important;
  height: 53px !important;
  left: 0px !important;
  top: 190px !important;
  background: linear-gradient(
    180deg,
    rgba(161, 100, 245, 0) 0%,
    #ab74f4 100%
  ) !important;
  z-index: 0 !important;
}

/* 썸네일이 있을 때 그라디언트 완전히 숨기기 */
.class-card-visual[style*='background-image'] .class-card-gradient {
  display: none !important;
}

/* 썸네일이 있을 때 card-decor 투명도 낮추기 */
.class-card-visual[style*='background-image'] .card-decor {
  opacity: 0.3 !important;
}

/* 카테고리별 ::before content 추가 */
.class-card-visual::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 200px;
  font-weight: 900;
  color: rgba(255, 255, 255, 0.05);
  line-height: 1;
  z-index: 0;
  font-family: 'Pretendard', sans-serif;
  letter-spacing: -0.05em;
}

.class-card-visual[data-category='tarot']::before {
  content: 'TAR';
}

.class-card-visual[data-category='oracle']::before {
  content: 'ORA';
}

.class-card-visual[data-category='oriental']::before {
  content: 'ORI';
}

.class-card-visual[data-category='oneday']::before {
  content: 'ONE';
}

.class-card-visual[data-category='consulting']::before {
  content: 'CON';
}

/* 색상별 그라데이션 및 장식 */
.class-card-visual[style*='#C195F0'] .class-card-gradient {
  background: linear-gradient(180deg, rgba(161, 100, 245, 0) 0%, #ab74f4 100%);
}

.class-card-visual[style*='#C195F0'] .card-decor-1 {
  background: #802fff;
}

.class-card-visual[style*='#C195F0'] .card-decor-2 {
  background: #601ec8;
}

.class-card-visual[style*='#FFA8F6'] .class-card-gradient {
  background: linear-gradient(180deg, rgba(253, 135, 241, 0) 0%, #fe93f3 100%);
}

.class-card-visual[style*='#FFA8F6'] .card-decor-1 {
  background: #ff2fa8;
}

.class-card-visual[style*='#FFA8F6'] .card-decor-2 {
  background: #c81e7c;
}

.class-card-visual[style*='#69A3FF'] .class-card-gradient {
  background: linear-gradient(180deg, rgba(74, 110, 238, 0) 0%, #5682f4 100%);
}

.class-card-visual[style*='#69A3FF'] .card-decor-1 {
  background: #2f69ff;
}

.class-card-visual[style*='#69A3FF'] .card-decor-2 {
  background: #1e4fc8;
}

/* 더보기 버튼 */
.class-load-more {
  text-align: center;
  margin-top: 60px;
}

.class-load-more-btn {
  padding: 16px 48px;
  background: transparent;
  border: 1px solid #666;
  border-radius: 8px;
  color: #fff;
  font-family: Pretendard;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
}

.class-load-more-btn:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

/* 데이터 없음 메시지 */
.no-data-message {
  grid-column: 1 / -1; /* 그리드의 모든 열을 차지 */
  text-align: center;
  padding: 80px 20px;
  color: #666;
  font-size: 18px;
  font-family: 'Pretendard';
}

/* 반응형 */
@media (max-width: 1920px) {
  .class-hero-section {
    transform: translateX(-50%);
  }

  .class-hero-section .banner-bg {
    transform: none;
  }
}

@media (max-width: 1440px) {
  .class-hero-section {
    transform: translateX(-50%);
  }

  .class-hero-text {
    width: 34%; /* 조금 더 넓게 */
    left: 20.8%; /* 300px / 1440px */
  }

  .class-hero-category {
    font-size: 1.67vw; /* 24px / 1440px * 100 */
  }

  .class-hero-title {
    font-size: 3.33vw; /* 48px / 1440px * 100 */
  }

  .class-grid-section {
    padding-left: 120px;
    padding-right: 120px;
  }
}

@media (max-width: 1200px) {
  .class-grid-container {
    grid-template-columns: repeat(2, 1fr); /* 태블릿: 2열 유지, 반응형 */
    /* padding: 0 20px; */
  }
}

@media (max-width: 1024px) {
  .class-hero-section {
    transform: translateX(-50%);
  }

  .class-hero-text {
    width: 80%; /* 태블릿에서는 더 넓게 */
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  }

  .class-hero-category {
    font-size: 20px; /* 최소 크기 보장 */
  }

  .class-hero-title {
    font-size: 36px; /* 최소 크기 보장 */
  }

  .hero-spacer {
    height: calc(440px + 60px); /* 모바일에서 간격 축소 */
  }
}

@media (max-width: 768px) {
  .class-grid-section {
    padding-left: 20px;
    padding-right: 20px;
    margin: 0px 20px;

    width: calc(100% - 40px);
  }

  .class-hero-section {
    height: auto;
    padding: 60px 0;
  }

  .class-hero-title {
    font-size: 32px;
  }

  .hero-spacer {
    height: auto;
  }

  .class-hero-text {
    width: 90%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    padding: 0 20px;
  }

  .class-hero-category {
    font-size: 18px;
    width: 100%;
    height: auto;
  }

  .class-hero-title {
    font-size: 28px;
    width: 100%;
    height: auto;
  }

  .class-card-item {
    width: 100%;
  }

  .class-filter-container {
    flex-wrap: wrap;
    gap: 20px;
    padding: 0 20px;
  }

  .class-card-visual {
    width: 100%;
  }

  .class-grid-section {
    padding: 0px;
    padding: 20px 0px;
  }
  .class-hero-banner-section .class-hero-content {
    padding: 0px 20px;
  }
}

/* 타로 강의 목록 섹션 */
.tarot-course-section {
  background: #000;
  padding: 100px 0;
}

.section-header {
  text-align: center;
  margin-bottom: 60px;
}

.section-title {
  font-family: 'Pretendard';
  font-weight: 700;
  font-size: 48px;
  line-height: 140%;
  letter-spacing: -0.03em;
  color: #ffffff;
  margin-bottom: 16px;
}

.section-subtitle {
  font-family: 'Pretendard';
  font-weight: 500;
  font-size: 20px;
  line-height: 140%;
  letter-spacing: -0.03em;
  color: #999999;
}

.lecture-list-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 20px;
}

.lecture-list {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  margin-bottom: 60px;
}

.lecture-box {
  width: calc(33.333% - 20px);
  background: #1a1a1a;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
}

.lecture-box:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.lecture-link {
  text-decoration: none;
  display: block;
}

.lecture-thumbnail {
  position: relative;
  width: 100%;
  height: 220px;
  overflow: hidden;
}

.lecture-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.lecture-box:hover .lecture-thumbnail img {
  transform: scale(1.05);
}

.lecture-discount-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  background: #ff5252;
  color: #ffffff;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 700;
}

.lecture-info {
  padding: 24px;
}

.lecture-category {
  font-size: 12px;
  font-weight: 700;
  color: #802fff;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.lecture-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 140%;
  color: #ffffff;
  margin-bottom: 16px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lecture-teacher {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

.teacher-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
}

.teacher-name {
  font-size: 14px;
  color: #999999;
}

.lecture-price {
  margin-bottom: 12px;
}

.original-price {
  font-size: 14px;
  color: #666666;
  text-decoration: line-through;
  margin-right: 8px;
}

.discounted-price,
.price {
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
}

.lecture-meta {
  padding-top: 12px;
  border-top: 1px solid #333333;
}

.lecture-students {
  font-size: 14px;
  color: #999999;
  display: flex;
  align-items: center;
  gap: 4px;
}

.lecture-students i {
  font-size: 16px;
}

/* 종료된 강의 스타일 */
.class-card-item.ended .class-card-visual {
  position: relative;
}

.class-card-item.ended .class-card-visual::after {
  content: '종료';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 2px;
  z-index: 10;
  border-radius: 20px;
}

.lecture-more {
  text-align: center;
}

.lecture-more-btn {
  display: inline-block;
  padding: 16px 48px;
  background: transparent;
  border: 2px solid #802fff;
  border-radius: 8px;
  color: #802fff;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s ease;
}

.lecture-more-btn:hover {
  background: #802fff;
  color: #ffffff;
}

/* 타로 강의 목록 반응형 */
@media (max-width: 1024px) {
  .lecture-box {
    width: calc(50% - 15px);
  }
}

@media (max-width: 768px) {
  .tarot-course-section {
    padding: 60px 0;
  }

  .section-title {
    font-size: 32px;
  }

  .section-subtitle {
    font-size: 16px;
  }

  .lecture-box {
    width: 100%;
  }

  .lecture-list {
    gap: 20px;
  }
}

/* 스티키 헤더 모바일 대응 추가 */
@media (max-width: 768px) {
  /* 모바일에서 스티키 헤더 - 비활성화 */
  .class-filter-section {
    top: 0 !important; /* 스티키 효과 제거 */
    padding: 20px 0 !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .class-filter-section.scrolled {
    padding: 20px 0 !important; /* 패딩 유지 */
  }

  .class-filter-container {
    gap: 24px;
    padding: 0 20px;
    min-width: max-content;
    justify-content: flex-start;
  }

  .class-filter-tab {
    font-size: 14px !important;
    white-space: nowrap;
    flex-shrink: 0;
  }
}

.banner-pc {
  display: block !important;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.banner-m {
  display: none !important;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 768px) {
  .banner-pc {
    display: none !important;
  }

  .banner-m {
    display: block !important;
  }
}

@media screen and (max-width: 768px) {
  /* 모바일에서 히어로 섹션 높이 조정 */
  .student-new.class-main .class-hero-banner-section {
    height: 188px !important;
    min-height: 188px !important;
  }

  .class-hero-content .text-content {
    left: 5%;
    bottom: 80px;
  }

  .class-hero-content .sub-title {
    font-size: 18px;
  }

  .class-hero-content .title {
    font-size: 32px;
  }

  /* 모바일에서 타로 카드 숨기기 또는 크기 조정 */
  .class-hero-content .tarot-cards {
    width: 400px;
    height: 250px;
    right: -50px;
    opacity: 0.5;
  }

  .class-hero-content .tarot-cards .tarot-svg {
    width: 280px;
    height: 200px;
  }

  .class-main .class-filter-section {
    padding: 0px !important;
    overflow-x: auto !important;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE, Edge */
    margin-top: 32px;
  }
  .class-main .class-filter-section::-webkit-scrollbar {
    display: none; /* Chrome, Safari, Opera */
  }

  /* 모바일에서 클래스 메인페이지: 2개씩 그리드 */
  .class-main .class-grid-container {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }

  /* 모바일에서 메인페이지 홈 섹션: 가로 스크롤 */
  .home-class .class-cards {
    display: flex !important;
    overflow-x: auto !important;
    gap: 24px !important;
    padding: 0 20px !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important; /* Firefox */
    -ms-overflow-style: none !important; /* IE, Edge */
  }

  .home-class .class-cards::-webkit-scrollbar {
    display: none !important; /* Chrome, Safari */
  }

  .class-main .class-grid-row {
    gap: 12px;
  }

  /* 클래스 메인페이지: 모바일 카드 크기 - 2개씩 그리드 (154px × 99px) */
  .class-main .class-grid-container .class-card-item {
    width: 100% !important;
    height: auto !important;
    border-radius: 8px !important; /* 데스크탑 비율 맞춤: 154px * (20/377) ≈ 8px */
  }

  .class-main .class-grid-container .class-card-item .class-card-visual {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 154 / 99 !important;
    border-radius: 8px !important; /* 카드와 동일하게 */
  }

  /* 메인페이지 홈 섹션: 카드 크기 고정 - 가로 스크롤 */
  .home-class .class-cards .class-card-item {
    width: 280px !important;
    min-width: 280px !important;
    height: 180px !important;
    flex-shrink: 0 !important;
    border-radius: 20px !important;
  }

  .home-class .class-cards .class-card-item .class-card-visual {
    width: 280px !important;
    height: 180px !important;
  }

  /* 클래스 메인페이지: 모바일 카드 타이틀 (2개씩 그리드) */
  .class-main .class-grid-container .class-card-item .class-card-title {
    width: auto !important;
    height: auto !important;
    font-size: 12px !important;
    left: 12px !important;
    bottom: 20px !important;
    top: 32px !important;
    line-height: 1.3 !important;
    letter-spacing: -0.3px !important;
    max-width: 60% !important;
  }

  /* 메인페이지 홈 섹션: 모바일 카드 타이틀 (가로 스크롤) */
  .home-class .class-cards .class-card-item .class-card-title,
  .student-new .home-class .class-cards .class-card-item .class-card-title {
    position: absolute !important;
    width: auto !important;
    height: auto !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    left: 16px !important;
    right: auto !important;
    bottom: auto !important;
    top: 36px !important;
    line-height: 1.3 !important;
    letter-spacing: -0.5px !important;
    max-width: 55% !important;
  }

  /* 클래스 메인페이지: 모바일 카드 카테고리 */
  .class-main .class-grid-container .class-card-item .class-card-category {
    left: 12px !important;
    bottom: 69px !important;
    top: 14px !important;
    width: auto !important;
    height: auto !important;
  }

  .class-main
    .class-grid-container
    .class-card-item
    .class-card-category
    .category-eng {
    font-size: 10px !important;
  }

  /* 메인페이지 홈 섹션: 모바일 카드 카테고리 */
  .home-class .class-cards .class-card-item .class-card-category,
  .student-new .home-class .class-cards .class-card-item .class-card-category {
    position: absolute !important;
    left: 16px !important;
    right: auto !important;
    bottom: auto !important;
    top: 14px !important;
    width: auto !important;
    height: auto !important;
    font-weight: 700 !important;
  }

  .home-class .class-cards .class-card-item .class-card-category .category-eng {
    font-size: 11px !important;
    letter-spacing: 0.5px !important;
  }

  /* 클래스 메인페이지: 모바일 카드 강사 이미지 */
  .class-main .class-grid-container .class-card-item .class-card-teacher {
    position: absolute !important;
    width: 55% !important;
    height: 110% !important;
    right: 0px !important;
    bottom: -40px !important;
    left: auto !important;
    top: auto !important;
    z-index: 1 !important;
    opacity: 0.9 !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: bottom right !important;
  }

  /* 메인페이지 홈 섹션: 모바일 카드 강사 이미지 - 크기와 위치 조정 */
  .home-class .class-cards .class-card-item .class-card-teacher {
    width: 160px !important;
    height: 252px !important;
    right: 0px !important;
    bottom: 0px !important;
    left: auto !important;
    top: auto !important;
    z-index: 2 !important;
    opacity: 1 !important;
    transform: matrix(-1, 0, 0, 1, 0, 0) !important;
  }

  /* 클래스 메인페이지만 scale 적용 */
  .class-main .class-grid-container .class-card-teacher {
    transform: scale(1.6) scaleX(1) !important;
  }
}

@media (max-width: 480px) {
  .class-hero-content .sub-title {
    font-size: 14px;
  }
  .class-hero-content .title {
    font-size: 20px;
  }
}

@media (min-width: 769px) {
  .class-hero-content .text-content {
    padding-left: 84px;
    margin-bottom: -8px;
  }

  .class-hero-content .title,
  .class-hero-content .sub-title,
  .class-filter-tab {
    letter-spacing: 0px;
  }
}

@media (min-width: 769px) {
  .student-new.class-main .class-hero-banner-section {
    margin-top: 16px;
  }
}

/* ========================================
   오픈 예정 배지
   ======================================== */

.class-card-badge {
  position: absolute;
  bottom: 16px;
  left: 16px;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 4px;
  font-family: 'Pretendard';
  font-weight: 600;
  font-size: 13px;
  line-height: 1;
}

.class-card-badge--upcoming {
  background: rgba(128, 47, 255, 0.9);
  color: #FFFFFF;
  backdrop-filter: blur(4px);
}

.class-card-badge svg {
  flex-shrink: 0;
}

.class-card-item.upcoming .class-card-visual {
  position: relative;
}

/* 오픈 예정 강의는 약간 투명도 적용 (선택사항) */
.class-card-item.upcoming {
  opacity: 0.95;
}

.class-card-item.upcoming:hover {
  opacity: 1;
}
