/**
 * 1:1 정규 수업 신청 페이지 스타일
 * 최신 트렌드, UX 최적화
 */

/* ============================
   0. PC/모바일 전용 표시
   ============================ */

/* PC에서만 표시 (768px 이상) */
.pc-only {
  display: inline !important;
}

.mobile-only {
  display: none !important;
}

/* 모바일에서만 표시 (767px 이하) */
@media (max-width: 767px) {
  .pc-only {
    display: none !important;
  }
  
  .mobile-only {
    display: inline !important;
  }
}

/* ============================
   1. 페이지 레이아웃
   ============================ */

/* 상단 롤링바 숨김 */
body:has(.registration-page) .top-banner {
  display: none;
}

/* 헤더 위치 조정 (롤링바 없음) */
body:has(.registration-page) .main-header {
  top: 0;
  background-color: rgba(255, 255, 255, 0.9); /* 흰색 90% 불투명도 */
  backdrop-filter: blur(10px); /* 배경 블러 효과 */
}

body:has(.registration-page) .mobile-header {
  top: 0;
  background-color: rgba(255, 255, 255, 0.9); /* 흰색 90% 불투명도 */
  backdrop-filter: blur(10px); /* 배경 블러 효과 */
}

.registration-page {
  width: 100%;
  background-color: #FAFAFA;
  min-height: 100vh;
}

/* ============================
   2. 정보 배너 (상단)
   ============================ */

.registration-info-banner {
  position: relative;
  width: 100%;
  height: auto; /* 자동 높이 */
  min-height: calc(100vh - 56px - 40px); /* 화면 높이 - 모바일 헤더 - 롤링 배너 */
  background: #000000;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: bannerFadeIn 0.8s ease-out;
}

@keyframes bannerFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* CTA 버튼 바운스 애니메이션 - 제거됨 (카드 강조에만 집중) */

/* 아이콘 카드 순차 강조 애니메이션 (마우스 올린 것처럼) */
@keyframes iconHighlight {
  0%, 10% {
    transform: translateY(0);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
    border-color: rgba(124, 251, 132, 0.25);
  }
  15%, 35% {
    transform: translateY(-6px);
    background: rgba(124, 251, 132, 0.15);
    box-shadow: 0 6px 20px rgba(124, 251, 132, 0.35);
    border-color: rgba(124, 251, 132, 0.5);
  }
  40%, 100% {
    transform: translateY(0);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
    border-color: rgba(124, 251, 132, 0.25);
  }
}

.registration-info-banner__container {
  width: 100%;
  height: 100%;
  position: relative;
  padding: 2.5rem 1.5rem; /* 40px 24px - 모바일 */
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  gap: 0; /* gap 제거 - content 내부에서 관리 */
}

.registration-info-banner__content {
  display: flex;
  flex-direction: column;
  gap: 1.75rem; /* 28px - 여백 증가 */
  position: relative;
  z-index: 2;
  width: 100%;
  align-items: center; /* 모바일에서 중앙 정렬 */
}

/* 헤드라인 */
.registration-info-banner__headline {
  color: #FFFFFF;
  font-size: 2.125rem; /* 34px - 모바일 (30px → 34px, +4px) */
  font-weight: 700;
  margin: 0;
  line-height: 1.35;
  word-break: keep-all;
  text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);
}

.registration-info-banner__headline .highlight {
  color: #7CFB84;
  font-weight: 700;
}

.registration-info-banner__headline .mobile-br {
  display: inline;
}

/* PC에서는 헤드라인 줄바꿈 숨김 */
@media (min-width: 1024px) {
  .registration-info-banner__headline .mobile-br {
    display: none;
  }
}

/* 1차 서브헤드라인 (새로 추가) */
.registration-info-banner__subheadline-primary {
  color: rgba(255, 255, 255, 0.95);
  font-size: 1.8125rem; /* 29px - 모바일 (34px → 29px, -5px) */
  line-height: 1.35;
  font-weight: 700;
  margin: calc(-1.25rem - 11px) 0 0 0; /* 위로 11px 더 이동 (8px + 3px) */
  word-break: keep-all;
  text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);
}

.registration-info-banner__subheadline-primary .highlight {
  color: #7CFB84;
  font-weight: 700;
  vertical-align: baseline;
}

/* 2차 서브헤드라인 */
.registration-info-banner__subheadline {
  color: rgba(255, 255, 255, 0.80);
  font-size: 1rem; /* 16px - 모바일 (+2px) */
  line-height: 1.7; /* 1.6 → 1.7 (줄간격 일정하게) */
  font-weight: 500;
  margin: 0;
  word-break: keep-all;
  text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
}

.registration-info-banner__subheadline .highlight {
  color: #7CFB84;
  font-weight: 700;
  vertical-align: baseline;
}

.registration-info-banner__subheadline strong {
  color: #FFFFFF;
  font-weight: 700;
  vertical-align: baseline;
}

.gradient-text {
  background: linear-gradient(135deg, #7CFA84 0%, #7470F9 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 800;
  font-size: 1.05em;
  display: inline; /* inline-block → inline 변경 (줄간격 일정) */
  vertical-align: baseline; /* 베이스라인 정렬 */
}

/* 그라데이션 효과 제거 */

.registration-info-banner__subheadline .mobile-br {
  display: inline;
}

/* PC에서는 서브헤드라인 줄바꿈 숨김 */
@media (min-width: 1024px) {
  .registration-info-banner__subheadline .mobile-br {
    display: none;
  }
}

/* 아이콘 그리드 */
.registration-info-banner__icons {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 모바일: 2x2 그리드 */
  gap: 1.25rem; /* 20px - 카드 간격 증가 */
  width: 100%;
  max-width: 100%;
  margin-top: 0.5rem; /* 8px - 상단 여백 추가 */
}

/* 모바일에서는 줄바꿈 유지 */
.mobile-break-only {
  display: inline;
}

/* 유튜브 영상 (6일 체험 페이지 전용) */
.trial-6day-page .registration-info-banner__video {
  width: 100%;
  max-width: 500px; /* 모바일 최대 너비 */
  margin: 1.5rem auto 0; /* 상단 여백 및 중앙 정렬 */
}

.trial-6day-page .video-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 비율 (9/16 * 100) */
  height: 0;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
  cursor: pointer;
}

.trial-6day-page .video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 16px;
}

/* 전체화면 모드 - 표준 방식 (최우선 적용) */
.trial-6day-page .video-wrapper:fullscreen,
.trial-6day-page .video-wrapper:-webkit-full-screen,
.trial-6day-page .video-wrapper:-moz-full-screen,
.trial-6day-page .video-wrapper:-ms-fullscreen {
  width: 100vw !important;
  height: 100vh !important;
  padding: 0 !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: #000 !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  display: block !important;
  overflow: hidden !important;
}

.trial-6day-page .video-wrapper:fullscreen iframe,
.trial-6day-page .video-wrapper:-webkit-full-screen iframe,
.trial-6day-page .video-wrapper:-moz-full-screen iframe,
.trial-6day-page .video-wrapper:-ms-fullscreen iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  margin: 0 !important;
}

/* YouTube UI 요소 가리기 제거 - YouTube 정책 준수 및 화면 잘림 방지 */
/* ::before와 ::after를 제거하여 영상이 잘리지 않도록 함 */

/* YouTube 링크 (상단) */
.trial-6day-page .video-youtube-link {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 10;
  background: rgba(0, 0, 0, 0.75);
  color: white;
  text-decoration: none;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 500;
  transition: all 0.3s ease;
  backdrop-filter: blur(4px);
}

.trial-6day-page .video-youtube-link:hover {
  background: rgba(255, 0, 0, 0.9);
  transform: translateY(-2px);
}

.trial-6day-page .video-youtube-icon {
  font-size: 0.75rem;
}

/* 전체화면 모드에서 YouTube 링크 */
.trial-6day-page .video-wrapper:fullscreen .video-youtube-link,
.trial-6day-page .video-wrapper:-webkit-full-screen .video-youtube-link,
.trial-6day-page .video-wrapper:-moz-full-screen .video-youtube-link,
.trial-6day-page .video-wrapper:-ms-fullscreen .video-youtube-link {
  z-index: 2147483647 !important;
  position: absolute !important;
  top: 1rem !important;
  left: 1rem !important;
}

.trial-6day-page .video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  cursor: pointer;
  background: transparent;
  transition: background 0.3s ease;
}

/* 전체화면 모드에서 오버레이 */
.trial-6day-page .video-wrapper:fullscreen .video-overlay,
.trial-6day-page .video-wrapper:-webkit-full-screen .video-overlay,
.trial-6day-page .video-wrapper:-moz-full-screen .video-overlay,
.trial-6day-page .video-wrapper:-ms-fullscreen .video-overlay {
  z-index: 2147483646 !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

/* 비디오 컨트롤 컨테이너 */
.trial-6day-page .video-controls {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.6) 60%, transparent 100%);
  padding: 1rem;
  border-radius: 0 0 16px 16px;
  transition: opacity 0.3s ease;
}

/* 전체화면 모드에서 컨트롤 */
.trial-6day-page .video-wrapper:fullscreen .video-controls,
.trial-6day-page .video-wrapper:-webkit-full-screen .video-controls,
.trial-6day-page .video-wrapper:-moz-full-screen .video-controls,
.trial-6day-page .video-wrapper:-ms-fullscreen .video-controls {
  border-radius: 0 !important;
  z-index: 2147483647 !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
}

/* 전체화면 모드에서 YouTube UI 가리기 제거 - 화면 잘림 방지 */
/* YouTube 브랜딩 요소는 YouTube 정책상 그대로 표시됨 */

/* 재생바 컨테이너 */
.trial-6day-page .video-progress-container {
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 2px;
  cursor: pointer;
  margin-bottom: 0.75rem;
  position: relative;
}

.trial-6day-page .video-progress-bar {
  height: 100%;
  background: #2ECA6E;
  border-radius: 2px;
  width: 0%;
  transition: width 0.1s linear;
  position: relative;
}

.trial-6day-page .video-progress-bar::after {
  content: '';
  position: absolute;
  right: -6px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background: #2ECA6E;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* 컨트롤 버튼 하단 영역 */
.trial-6day-page .video-controls-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.trial-6day-page .video-controls-left,
.trial-6day-page .video-controls-right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* 개별 컨트롤 버튼 */
.trial-6day-page .video-control-btn {
  background: transparent;
  border: none;
  padding: 0.375rem 0.5rem;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

.trial-6day-page .video-control-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(1.1);
}

.trial-6day-page .video-control-icon {
  font-size: 1rem;
  color: white;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 시간 표시 */
.trial-6day-page .video-time-display {
  color: white;
  font-size: 0.8125rem;
  font-weight: 500;
  padding: 0 0.5rem;
  white-space: nowrap;
}

.banner-icon-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 0.75rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(124, 251, 132, 0.2);
  border-radius: 12px;
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  transition: all 0.3s ease;
  min-height: 85px; /* 2줄 텍스트를 위한 최소 높이 (모바일) */
  /* 모바일에서는 애니메이션 없음 */
}

/* 모바일/타블렛 hover 효과 */
@media (max-width: 1023px) {
  .banner-icon-item:hover {
    background: rgba(124, 251, 132, 0.1);
    border-color: rgba(124, 251, 132, 0.4);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(124, 251, 132, 0.2);
  }
}

.banner-icon-emoji {
  font-size: 1.75rem; /* 28px */
  line-height: 1;
}

.banner-icon-text {
  font-size: 0.75rem; /* 12px */
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  text-align: center;
  line-height: 1.5; /* 1.3 → 1.5 줄간격 증가 */
  word-break: keep-all;
  text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
}

.banner-icon-text strong {
  color: #FFFFFF !important; /* 흰색 강제 적용 */
  font-weight: 700;
}

/* 캡션 */
.registration-info-banner__caption {
  color: rgba(255, 255, 255, 0.60);
  font-size: 0.8125rem; /* 13px */
  font-weight: 400;
  margin: 0;
  text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
}

/* CTA 버튼 */
.registration-info-banner__cta {
  align-self: center;
  padding: 1rem 2.5rem;
  background: #7CFB84;
  border: none;
  border-radius: 30px;
  color: #000000;
  font-size: 0.9375rem; /* 15px */
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
  box-shadow: 0 4px 20px rgba(124, 251, 132, 0.3);
  margin-top: 0.5rem; /* 1rem → 0.5rem (16px → 8px) - 모바일 간격 줄임 */
  /* 모바일에서는 애니메이션 없음 */
}

.registration-info-banner__cta:hover {
  background: #84D989;
  transform: translateY(-3px);
  box-shadow: 0 8px 32px rgba(124, 251, 132, 0.5);
  animation-play-state: paused; /* hover 시 애니메이션 일시 정지 */
}

/* CTA 화살표 */
.cta-arrow {
  display: inline-block;
  margin-left: 0.5rem;
  font-size: 1.2em;
  transition: transform 0.3s ease;
}

.registration-info-banner__cta:hover .cta-arrow,
.trial-composition-cta__button:hover .cta-arrow,
.sticky-cta-button__link:hover .cta-arrow {
  transform: translateX(5px);
}

/* ============================
   스크롤 애니메이션 (Toss 스타일)
   ============================ */
.scroll-fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.scroll-fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* 지연 효과 (순차적으로 나타나기) */
.scroll-fade-in:nth-child(1) { transition-delay: 0s; }
.scroll-fade-in:nth-child(2) { transition-delay: 0.1s; }
.scroll-fade-in:nth-child(3) { transition-delay: 0.2s; }
.scroll-fade-in:nth-child(4) { transition-delay: 0.3s; }
.scroll-fade-in:nth-child(5) { transition-delay: 0.4s; }
.scroll-fade-in:nth-child(6) { transition-delay: 0.5s; }

/* 이미지 - 모든 화면에서 숨김 */
.registration-info-banner__image {
  display: none;
}

/* ============================
   3. 히어로 배너 (CTA) - 현재 미사용
   ============================ */

/* 히어로 배너는 제거됨 - 정보 배너만 사용 */

/* 작은 모바일 (480px 이하) */
@media (max-width: 480px) {
  .registration-info-banner {
    min-height: calc(100vh - 56px - 40px); /* 화면 높이 - 모바일 헤더 - 롤링 배너 */
    height: auto;
  }
  
  .registration-info-banner__container {
    padding: 2.5rem 1.5rem; /* 40px 24px */
    gap: 0;
    flex-direction: column;
    min-height: calc(100vh - 56px - 40px - 80px);
  }
  
  .registration-info-banner__content {
    flex-direction: column;
    align-items: center;
    gap: 1.75rem; /* 28px - 여백 증가 */
  }
  
  .registration-info-banner__headline {
    font-size: 1.875rem; /* 30px (26px → 30px, +4px) */
  }
  
  .registration-info-banner__subheadline-primary {
    font-size: 1.5625rem; /* 25px (30px → 25px, -5px) */
    margin-top: calc(-1rem - 11px); /* 위로 11px 더 이동 (8px + 3px) */
  }
  
  .registration-info-banner__subheadline {
    font-size: 0.9375rem; /* 15px (+2px) */
    color: rgba(255, 255, 255, 0.80);
  }
  
  .banner-icon-item {
    padding: 0.875rem 0.625rem;
  }
  
  .banner-icon-emoji {
    font-size: 1.5rem; /* 24px */
  }
  
  .banner-icon-text {
    font-size: 0.6875rem; /* 11px */
  }
  
  .registration-info-banner__image {
    display: none; /* 작은 모바일에서도 이미지 숨김 */
  }
}

/* Galaxy S8 등 초소형 모바일 (360px 이하) - CTA 버튼이 보이도록 여백 최소화 */
@media (max-width: 360px) {
  .registration-info-banner__container {
    padding: 1.75rem 1.25rem; /* 40px 24px → 28px 20px로 축소 */
    min-height: auto; /* 최소 높이 제한 제거 */
  }
  
  .registration-info-banner__content {
    gap: 1.25rem; /* 28px → 20px로 축소 */
  }
  
  .registration-info-banner__headline {
    font-size: 1.625rem; /* 30px → 26px로 축소 */
    line-height: 1.3;
  }
  
  .registration-info-banner__subheadline {
    font-size: 0.875rem; /* 15px → 14px로 축소 */
    line-height: 1.6;
  }
  
  .registration-info-banner__icons {
    gap: 0.875rem; /* 20px → 14px로 축소 */
    margin-top: 0;
  }
  
  .banner-icon-item {
    padding: 0.75rem 0.5rem; /* 패딩 축소 */
    min-height: 75px; /* 최소 높이 축소 */
  }
  
  .banner-icon-emoji {
    font-size: 1.375rem; /* 24px → 22px */
  }
  
  .banner-icon-text {
    font-size: 0.625rem; /* 11px → 10px */
  }
  
  .registration-info-banner__cta {
    margin-top: 0.75rem; /* 16px → 12px로 축소 */
    padding: 0.875rem 2rem; /* 버튼 패딩도 약간 축소 */
    font-size: 0.875rem; /* 15px → 14px */
  }
}

/* 작은 모바일 (430px 이하, iPhone 14 Pro Max 포함) - 배지 크기 축소 */
@media (max-width: 430px) {
  .badge-gradient {
    font-size: 0.6875rem; /* 12px → 11px */
    min-width: 44px;
    height: 20px;
    padding: 0 0.375rem;
  }
  
  .badge-ebook--outline {
    font-size: 0.6875rem; /* 12px → 11px */
    min-width: 56px;
    height: 20px;
    padding: 0 0.375rem;
  }
  
  .period-card__discount-rate {
    font-size: 0.8125rem; /* 14px → 13px */
  }
}

/* 초소형 모바일 (375px 이하, iPhone SE) - 전체 폰트 크기 축소 */
@media (max-width: 375px) {
  .frequency-card__title {
    font-size: 1rem; /* 18px → 16px로 줄임 */
    gap: 0.25rem; /* 6px → 4px로 줄임 */
  }
  
  .badge-gradient {
    font-size: 0.625rem; /* 11px → 10px로 더 줄임 */
    min-width: 40px;
    height: 18px;
    padding: 0 0.3125rem;
  }
  
  .badge-ebook--outline {
    font-size: 0.625rem; /* 11px → 10px */
    min-width: 52px;
    height: 18px;
  }
  
  .frequency-card {
    padding: 1rem 0.875rem; /* 좌우 패딩 축소 */
  }
  
  .period-card {
    padding: 0.75rem; /* 패딩 축소 */
  }
  
  .period-card:has(input:checked) {
    padding: 0.625rem; /* 선택 시 패딩도 축소 */
  }
  
  .period-card__discount-rate {
    font-size: 0.75rem; /* 13px → 12px */
  }
}

/* ============================
   4. 진행 단계 바 (고정)
   ============================ */

.progress-bar-sticky {
  position: sticky;
  top: 0; /* 최상단에 고정 */
  background: white;
  z-index: 100;
  border-bottom: 1px solid #E5E5E5;
  padding: 1rem var(--spacing-md);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* PC에서 헤더 아래에 위치 */
@media (min-width: 1024px) {
  .progress-bar-sticky {
    top: 64px; /* 헤더(64px) - 상단바 제거됨 */
    padding: 1rem 0; /* 좌우 패딩 제거 */
  }
  
  .progress-bar-sticky > * {
    max-width: 700px; /* STEP 카드와 동일한 너비 */
    width: 100%;
    margin: 0 auto; /* 중앙 정렬 */
    padding: 0 1rem; /* 내부 패딩 */
  }
}

/* 수강 내역 요약 - 수평 레이아웃 */
.course-summary {
  background: white;
  border: 1px solid #34CC66;
  border-radius: 6px;
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.course-summary__main {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.course-summary__header {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.course-summary__icon {
  font-size: 0.75rem; /* 11px → 12px */
}

.course-summary__label {
  font-size: 0.75rem; /* 11px → 12px */
  color: rgba(0, 0, 0, 0.6);
  font-weight: 500;
}

.course-summary__content {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}

.course-summary__content span {
  font-size: 0.8125rem; /* 12px → 13px */
  font-weight: 500;
}

.course-summary__content .selected {
  color: black;
  font-weight: 600;
}

.course-summary__content .unselected {
  color: rgba(0, 0, 0, 0.3);
}

.course-summary__content .divider {
  color: rgba(0, 0, 0, 0.3);
}

.course-summary__price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.125rem;
  flex-shrink: 0;
}

.course-summary__price-label {
  font-size: 0.75rem; /* 11px → 12px */
  color: rgba(0, 0, 0, 0.5);
  font-weight: 500;
}

.course-summary__price-value {
  font-size: 0.9375rem; /* 14px → 15px */
  color: #2ECA6E;
  font-weight: 700;
}

/* PC에서 글씨 크기 증가 (어르신 고려) */
@media (min-width: 1024px) {
  .course-summary__icon {
    font-size: 0.875rem; /* 14px */
  }
  
  .course-summary__label {
    font-size: 0.875rem; /* 14px */
  }
  
  .course-summary__content span {
    font-size: 0.9375rem; /* 15px */
  }
  
  .course-summary__price-label {
    font-size: 0.875rem; /* 14px */
  }
  
  .course-summary__price-value {
    font-size: 1.125rem; /* 18px */
  }
}

/* 진행 단계 그래프 - 최신 트렌드 디자인 (컴팩트) */
.progress-steps {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0.75rem 0.5rem; /* 약간 더 여유있게 */
  gap: 0.375rem;
}

.progress-steps__line {
  position: absolute;
  top: 1.125rem;
  left: 12.5%;
  right: 12.5%;
  height: 2px;
  background: linear-gradient(to right, #E5E5E5 0%, #E5E5E5 100%);
  border-radius: 10px;
  z-index: 0;
}

.progress-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.625rem;
  z-index: 1;
  flex: 1;
}

.progress-step__circle {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: white;
  border: 2px solid #E5E5E5;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #999;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.progress-step__circle::before {
  content: attr(data-step);
}

.progress-step.active .progress-step__circle {
  border-color: #2ECA6E;
  background: #2ECA6E;
  color: white;
  transform: scale(1.15);
  box-shadow: 0 2px 8px rgba(46, 202, 110, 0.3);
}

.progress-step.completed .progress-step__circle {
  border-color: #2ECA6E;
  background: #2ECA6E;
  color: white;
}

.progress-step.completed .progress-step__circle::before {
  content: '✓';
}

.progress-step__label {
  font-size: 0.6875rem; /* 10px → 11px */
  color: #999;
  font-weight: 500;
  white-space: nowrap;
  text-align: center;
}

.progress-step.active .progress-step__label {
  color: #2ECA6E;
  font-weight: 700;
}

.progress-step.completed .progress-step__label {
  color: #2ECA6E;
  font-weight: 600;
}

/* PC에서 더 크게 */
@media (min-width: 1024px) {
  .progress-step__label {
    font-size: 0.8125rem; /* 13px */
  }
}

/* 진행 라인 애니메이션 */
.progress-steps__line::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background: linear-gradient(to right, #2ECA6E 0%, #7CFA84 100%);
  border-radius: 10px;
  width: 0%;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.progress-steps[data-progress="1"] .progress-steps__line::after {
  width: 0%;
}

.progress-steps[data-progress="2"] .progress-steps__line::after {
  width: 33.33%;
}

.progress-steps[data-progress="3"] .progress-steps__line::after {
  width: 66.66%;
}

.progress-steps[data-progress="4"] .progress-steps__line::after {
  width: 100%;
}

/* ============================
   5. 메인 컨테이너
   ============================ */

.registration-container {
  max-width: 600px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

@media (min-width: 375px) {
  .registration-container {
    padding: 2rem 1.25rem;
  }
}

@media (min-width: 414px) {
  .registration-container {
    padding: 2rem 1.5rem;
  }
}

/* ============================
   6. 단계별 섹션
   ============================ */

.registration-step {
  margin-bottom: 3rem;
  padding: 1.5rem 1rem;
  background: white;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  position: relative;
  scroll-margin-top: 220px; /* 헤더(56px) + progress-bar-sticky(~160px) */
}

/* PC에서 더 큰 오프셋 */
@media (min-width: 1024px) {
  .registration-step {
    scroll-margin-top: 320px; /* 헤더(64px) + progress-bar-sticky(~160px) + 여유(96px) */
  }
}

/* 단계 구분선 효과 */
.registration-step::after {
  content: '';
  position: absolute;
  bottom: -1.5rem;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 1.5rem;
  background: linear-gradient(to bottom, #E5E5E5 0%, transparent 100%);
}

.registration-step:last-of-type::after {
  display: none;
}

.registration-step.locked {
  opacity: 0.5;
  pointer-events: none;
}

.step-header {
  margin-bottom: 1.5rem;
}

.step-title {
  font-size: 1.125rem; /* 18px */
  font-weight: 600;
  color: black;
  margin-bottom: 0.5rem;
}

.step-desc {
  font-size: 0.9375rem; /* 15px */
  color: rgba(0, 0, 0, 0.7);
  line-height: 1.47;
}

/* 서브섹션 헤더 (STEP 내 구분) */
.subsection-header {
  margin-bottom: 1.5rem;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(135deg, #F8F9FA 0%, #F1F3F5 100%);
  border-left: 4px solid #2ECA6E;
  border-radius: 8px;
}

.subsection-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1F2937;
  margin-bottom: 0.375rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.subsection-desc {
  font-size: 0.875rem;
  color: #6B7280;
  line-height: 1.5;
  margin: 0;
}

/* ============================
   7. STEP 1 - 과정 선택
   ============================ */

.course-cards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

/* PC에서 가로 정렬 (2열 그리드) */
@media (min-width: 1024px) {
  .course-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem; /* 1.5rem → 0.75rem (절반) */
  }
}

.course-card {
  background: white;
  border: 1px solid #EBEBEB;
  border-radius: 6px;
  overflow: hidden;
}

.course-card__header {
  padding: 1.5rem;
  border-bottom: 1px solid #F5F6F8;
}

.course-card__title {
  font-size: 1.125rem; /* 18px */
  font-weight: 700;
  color: black;
  margin-bottom: 0.375rem;
}

.course-card__desc {
  font-size: 0.9375rem; /* 15px */
  color: rgba(0, 0, 0, 0.7);
  line-height: 1.47;
}

.course-card__options {
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.course-option {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.625rem 0.75rem;
  background: #F5F6F8;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
}

.course-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.course-option.active {
  background: #F0EFFF;
  border: 2px solid #7470F9;
  padding: 0.5rem 0.625rem; /* border만큼 패딩 조정 */
}

/* 체크박스를 맨 앞으로 (통일성) */
.course-option__check {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid #D6D9E0;
  background: white;
  flex-shrink: 0;
  position: relative;
  order: -1; /* 맨 앞으로 */
  transition: all 0.2s;
}

.course-option.active .course-option__check {
  background: #7470F9;
  border-color: #7470F9;
}

.course-option.active .course-option__check::after {
  content: '✓';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 0.6875rem;
  font-weight: 700;
}

.course-option__content {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.course-option__name {
  font-size: 1.125rem; /* 18px */
  font-weight: 500;
  color: rgba(0, 0, 0, 0.8);
}

.course-option__note {
  font-size: 0.9375rem; /* 15px */
  color: rgba(0, 0, 0, 0.7);
  font-weight: 400;
}

/* BEST 뱃지 */
.badge-gradient {
  display: inline-block;
  padding: 0.1875rem 0.375rem;
  background: linear-gradient(131deg, #7CFA84 0%, #7F7BFF 100%);
  border-radius: 4px;
  color: white;
  font-size: 0.875rem;
  font-weight: 600;
  margin-left: 0.375rem; /* "주 5회 (월~금)" 다음에 오므로 왼쪽 간격 */
}

/* ============================
   8. STEP 2 - 시간/횟수 선택
   ============================ */

/* 시간 토글 */
.duration-toggle {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  background: #F5F6F8;
  border-radius: 72px;
  padding: 0.25rem;
}

/* 회화과정/칼란과정 전환 시 display 강제 */
.duration-toggle[style*="display: none"] {
  display: none !important;
}

.duration-toggle__btn {
  flex: 1;
  padding: 0.625rem 1rem;
  background: transparent;
  border: 2px solid transparent;
  border-radius: 72px;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}

.duration-toggle__btn.active {
  background: #F0EFFF;
  border: 2px solid #7470F9;
  box-shadow: 0 2px 12px rgba(116, 112, 249, 0.25);
}

.duration-toggle__label {
  font-size: 1.125rem; /* 18px */
  font-weight: 600;
  color: rgba(0, 0, 0, 0.8);
}

.duration-toggle__btn.active .duration-toggle__label {
  color: #7470F9;
}

.duration-toggle__badge {
  font-size: 0.875rem;
  color: rgba(0, 0, 0, 0.6);
  font-weight: 500;
}

.duration-toggle__badge.limited {
  color: #F65F55;
}

.duration-toggle__btn.active .duration-toggle__badge {
  color: #7470F9;
  font-weight: 600;
}

/* 횟수 그리드 */
.frequency-grid {
  position: relative;
  margin-bottom: 1.5rem;
}

/* 회화과정/칼란과정 전환 시 display 강제 */
.frequency-grid[style*="display: none"] {
  display: none !important;
}

.frequency-column {
  display: none;
  flex-direction: column;
  gap: 0.625rem;
}

.frequency-column.active {
  display: flex;
}

.frequency-card {
  position: relative;
  background: #F5F6F8;
  border-radius: 4px;
  padding: 1.25rem 1.5rem;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.frequency-card input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.frequency-card:has(input:checked) {
  background: #F0EFFF;
  border: 2px solid #7470F9;
  padding: 1.125rem 1.375rem;
}

.frequency-card.recommended {
  background: linear-gradient(135deg, #F0EFFF 0%, #E8F5E9 100%);
}

.frequency-card__check {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid #D6D9E0; /* 다른 체크박스와 통일 */
  background: white;
  flex-shrink: 0;
  position: relative;
}

.frequency-card:has(input:checked) .frequency-card__check {
  background: #7470F9;
  border-color: #7470F9;
}

.frequency-card:has(input:checked) .frequency-card__check::after {
  content: '✓';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
}

.frequency-card__content {
  flex: 1;
}

.frequency-card__title {
  font-size: 1.125rem; /* 18px */
  font-weight: 700;
  color: rgba(0, 0, 0, 0.8);
  margin-bottom: 0.125rem;
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: wrap; /* 작은 화면에서 줄바꿈 허용 */
}

.frequency-card__info {
  font-size: 0.875rem; /* 14px */
  color: rgba(0, 0, 0, 0.6);
  line-height: 1.5;
  margin: 0;
  padding: 0;
}

.frequency-card__info > span {
  display: block;
  margin: 0;
  line-height: 1.5;
}

.frequency-card__info .highlight {
  color: #7470F9;
  font-weight: 700;
}

/* 주 2회 복습앱 필수 배지 (좌석여유 색상) */
.frequency-card__note-badge {
  color: rgba(0, 0, 0, 0.6); /* 좌석여유와 동일한 색상 */
  font-weight: 500;
  font-size: 0.8125rem; /* 13px */
}

.frequency-card__discount {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 22px;
  padding: 0 0.5rem;
  background: linear-gradient(135deg, #FF6B6B 0%, #FF8E8E 100%); /* step3 할인 배지와 동일 */
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(255, 107, 107, 0.2);
  margin-left: 0.375rem; /* BEST 배지 다음에 오므로 왼쪽 간격 */
  vertical-align: middle;
  white-space: nowrap; /* 텍스트 줄바꿈 방지 */
  flex-shrink: 0; /* 작은 화면에서도 크기 유지 */
}

/* 작은 모바일 (375px 이하, iPhone SE) */
@media (max-width: 375px) {
  .frequency-card__discount {
    font-size: 0.6875rem; /* 11px - 더 작게 */
    min-width: 48px;
    height: 20px;
    padding: 0 0.375rem;
  }
}

/* ============================
   9. STEP 3 - 기간 선택
   ============================ */

/* 기간 카드 클릭 시 스크롤 방지 */
.period-card {
  scroll-margin: 0 !important;
  scroll-snap-align: none !important;
}

.period-card input[type="radio"] {
  scroll-margin: 0 !important;
}

.period-options {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 1.5rem;
}

/* 회화과정 기간 선택 영역이 숨겨질 때도 공간 유지 방지 */
.period-options[style*="display: none"] {
  display: none !important;
}

.period-card {
  position: relative;
  background: #F5F6F8;
  border-radius: 8px;
  padding: 0.875rem;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: flex-start; /* center → flex-start로 변경하여 상단 정렬 */
  gap: 0.75rem;
}

/* period-options 직계 자식 카드들 사이 간격 */
.period-options > .period-card,
.period-options > .period-card-group {
  margin-bottom: 0.625rem;
}

/* 마지막 요소는 margin-bottom 제거 */
.period-options > .period-card:last-child,
.period-options > .period-card-group:last-child {
  margin-bottom: 0;
}

.period-card input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  /* 포커스 완전 차단 */
  outline: none;
  border: none;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

/* 포커스 상태에서도 스크롤 방지 */
.period-card input[type="radio"]:focus {
  outline: none;
  box-shadow: none;
}

.period-card:has(input:checked) {
  background: #F0EFFF;
  border: 2px solid #7470F9;
  padding: 0.75rem;
}

/* 체크박스가 맨 앞에 */
.period-card__check {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid #D6D9E0;
  background: white;
  flex-shrink: 0;
  position: relative;
  order: -1; /* 맨 앞으로 */
  margin-top: 2px; /* 텍스트와 수평 정렬을 위한 미세 조정 */
}

.period-card:has(input:checked) .period-card__check {
  background: #7470F9;
  border-color: #7470F9;
}

.period-card:has(input:checked) .period-card__check::after {
  content: '✓';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
}

/* 콘텐츠 래퍼 */
.period-card__content-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0; /* 줄바꿈을 위해 */
}

.period-card__badges {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: wrap;
}

.period-card__content {
  display: flex;
  align-items: center; /* 왼쪽 그룹과 오른쪽 가격이 수평 정렬 */
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
}

/* 작은 모바일 (430px 이하, iPhone 14 Pro Max 포함) - 배지 많은 카드는 세로 배치 */
@media (max-width: 430px) {
  .period-card__content {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  
  .period-card__price-wrapper {
    align-self: flex-end; /* 가격은 오른쪽 정렬 유지 */
    margin-left: 0;
  }
}

/* 타이틀 그룹 (할인율 + 개월수) - 수직 정렬 */
.period-card__title-group {
  display: flex;
  flex-direction: column;
  gap: 0.375rem; /* 0.125rem → 0.375rem으로 증가 (배지와 개월수 사이 간격) */
}

/* 할인율 - 붉은색 전체 (위쪽) */
.period-card__discount-rate {
  font-size: 0.875rem; /* 14px - 더 크게 */
  font-weight: 700;
  color: #FF6B6B; /* 붉은 계열 */
  white-space: nowrap;
  line-height: 1.2;
}

/* 할인율 + 뱃지 수평 정렬 (6개월 BEST용) */
.period-card__discount-with-badge {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: wrap; /* 배지가 많을 때 줄바꿈 허용 */
}

/* 작은 모바일 (430px 이하) - 배지 간격 축소 */
@media (max-width: 430px) {
  .period-card__discount-with-badge {
    gap: 0.25rem; /* 6px → 4px */
  }
}

/* 할인율 - 특별 (약정 구독용 - 보라색 텍스트만) */
.period-card__discount-rate--special {
  color: #7470F9;
}

/* 타이틀 + BEST 뱃지 (6개월용) - 이제 사용 안함 */
.period-card__title-with-badge {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

/* 가격 래퍼 - 수직 2줄 (원가 위, 할인가 아래) */
.period-card__price-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.125rem;
  margin-left: auto;
}

/* 원래 가격 (취소선) - 위쪽에 작게 */
.period-card__original-price {
  font-size: 0.6875rem; /* 11px */
  font-weight: 400;
  color: rgba(0, 0, 0, 0.35); /* 흐린 회색 */
  text-decoration: line-through;
  line-height: 1.2;
}

/* 할인율 태그 - 간결한 디자인 */
.badge-discount {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 22px;
  padding: 0 0.5rem;
  background: linear-gradient(135deg, #FF6B6B 0%, #FF8E8E 100%);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(255, 107, 107, 0.2);
}

.badge-subscription {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 22px;
  padding: 0 0.5rem;
  background: rgba(116, 112, 249, 0.15); /* 연한 보라색 배경 */
  color: #7470F9;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  border: 1px solid rgba(116, 112, 249, 0.3);
}

.badge-gradient {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  height: 22px;
  padding: 0 0.5rem;
  background: linear-gradient(135deg, #7470F9 0%, #2ECA6E 100%);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  margin-left: 0.375rem;
}

.badge-ebook {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  height: 22px;
  padding: 0 0.5rem;
  background: #2ECA6E;
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  margin-left: 0.375rem;
}

.badge-ebook--outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  height: 22px;
  padding: 0 0.5rem;
  background: white;
  color: #2ECA6E;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  border: 1px solid #2ECA6E;
  margin-left: 0.375rem;
  white-space: nowrap; /* 텍스트 줄바꿈 방지 */
  flex-shrink: 0; /* 작은 화면에서도 크기 유지 */
}

/* 작은 모바일 (375px 이하, iPhone SE) */
@media (max-width: 375px) {
  .badge-ebook--outline {
    font-size: 0.6875rem; /* 11px - 더 작게 */
    min-width: 56px;
    height: 20px;
    padding: 0 0.375rem;
    margin-left: 0.25rem;
  }
}

.period-card__title {
  font-size: 1.0625rem; /* 17px */
  font-weight: 700;
  color: rgba(0, 0, 0, 0.9);
  white-space: nowrap;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: wrap; /* 작은 화면에서 줄바꿈 허용 */
}

/* 작은 모바일 (375px 이하, iPhone SE) */
@media (max-width: 375px) {
  .period-card__title {
    font-size: 1rem; /* 17px → 16px로 줄임 */
    white-space: normal; /* 줄바꿈 허용 */
  }
}

.period-card__price {
  font-size: 0.9375rem; /* 15px */
  font-weight: 700; /* 600 → 700 더 강조 */
  color: rgba(0, 0, 0, 0.85); /* 더 진하게 */
  white-space: nowrap;
  margin-left: auto; /* 오른쪽 정렬 */
  text-align: right;
}

/* '원' 흐리게 하되 note와 같은 크기로 */
.period-card__price .price-unit {
  opacity: 0.4;
  font-weight: 400;
  font-size: 0.6875rem; /* note와 동일한 크기 (11px) */
}

/* PC에서 더 크게 */
@media (min-width: 1024px) {
  .period-card__title {
    font-size: 1.125rem; /* 18px */
  }
  
  .period-card__price {
    font-size: 1rem; /* 16px */
  }
}

.period-card__note {
  font-size: 0.6875rem;
  color: rgba(0, 0, 0, 0.5);
  line-height: 1.3;
  margin-top: 0.125rem;
}

/* 12개월 그룹 (일시불 + 구독) */
.period-card-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem;
  background: #F8F9FA;
  border-radius: 10px;
  border: 1px solid #E5E5E5;
}

.period-card-group__title {
  font-size: 0.875rem;
  font-weight: 700;
  color: rgba(0, 0, 0, 0.7);
  padding-left: 0.25rem;
  margin-bottom: 0.125rem;
}

/* PC에서 더 크게 */
@media (min-width: 1024px) {
  .period-card-group__title {
    font-size: 1rem;
  }
}

.period-card--group {
  background: white;
  border: 1px solid #E0E0E0;
  padding: 0.75rem;
}

.period-card--group:has(input:checked) {
  background: #F0EFFF;
  border: 2px solid #7470F9;
  padding: calc(0.75rem - 1px); /* 테두리 두께 보정 */
}

/* 약정 구독 스타일 (서브 옵션처럼) */
.period-card--subscription {
  background: #FAFBFC; /* 더 연한 배경 */
  border: 1px dashed #D0D5DD; /* 점선 테두리 */
  padding: 0.625rem 0.75rem;
  margin-left: 0.5rem; /* 약간 들여쓰기 */
  position: relative;
}

.period-card--subscription:has(input:checked) {
  background: #F0F8FF; /* 연한 파란 배경 */
  border: 2px solid #7470F9;
  padding: calc(0.625rem - 1px) calc(0.75rem - 1px);
}

/* 약정 구독 아이콘 (체크박스 대신) */
.period-card__subscription-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  order: -1; /* 맨 앞으로 */
  opacity: 0.6;
  transition: all 0.2s;
}

.period-card--subscription:has(input:checked) .period-card__subscription-icon {
  opacity: 1;
  transform: scale(1.1);
}

/* 약정 구독의 타이틀을 좀 더 작게 */
.period-card--subscription .period-card__title {
  font-size: 0.9375rem; /* 17px → 15px */
  font-weight: 600;
}

.period-card--subscription .period-card__price {
  font-size: 0.875rem; /* 15px → 14px */
}

/* PC에서 */
@media (min-width: 1024px) {
  .period-card--subscription {
    margin-left: 1rem; /* 들여쓰기 증가 */
  }
  
  .period-card--subscription .period-card__title {
    font-size: 1rem; /* 16px */
  }
  
  .period-card--subscription .period-card__price {
    font-size: 0.9375rem; /* 15px */
  }
}

/* ============================
   10. STEP 4 - 정보 입력
   ============================ */

.form-section {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 1.5rem;
}

.form-group:first-child {
  margin-top: 0;
}

.form-label {
  font-size: 0.875rem; /* 14px */
  font-weight: 700;
  color: rgba(0, 0, 0, 0.85);
}

.form-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #E5E5E5;
  border-radius: 6px;
  font-size: 0.9375rem; /* 15px */
  font-weight: 500;
  color: black;
  background: white;
  transition: all 0.2s;
}

.form-input:focus {
  outline: none;
  border-color: #7470F9;
  box-shadow: 0 0 0 3px rgba(116, 112, 249, 0.1);
}

.form-input:read-only {
  background: #F9F9F9;
  color: rgba(0, 0, 0, 0.6);
}

.form-select {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #E5E5E5;
  border-radius: 6px;
  font-size: 0.9375rem; /* 15px */
  font-weight: 500;
  color: black;
  background: white;
  cursor: pointer;
  transition: all 0.2s;
}

.form-select:focus {
  outline: none;
  border-color: #7470F9;
  box-shadow: 0 0 0 3px rgba(116, 112, 249, 0.1);
}

.form-textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #E5E5E5;
  border-radius: 6px;
  font-size: 0.9375rem; /* 15px */
  font-weight: 500;
  color: black;
  background: white;
  resize: vertical;
  font-family: inherit;
  transition: all 0.2s;
}

.form-textarea:focus {
  outline: none;
  border-color: #7470F9;
  box-shadow: 0 0 0 3px rgba(116, 112, 249, 0.1);
}

.form-note {
  font-size: 0.8125rem; /* 13px */
  color: rgba(0, 0, 0, 0.5);
  line-height: 1.38;
}

/* 전화번호 입력 */
.phone-inputs {
  display: flex;
  gap: 0.375rem;
}

.phone-inputs .form-select {
  flex: 0 0 auto; /* 첫 번째 select (010)는 고정 너비 */
  width: 80px; /* 010 선택란 고정 너비 */
}

.phone-inputs .form-input {
  flex: 1; /* 나머지 입력란들이 남은 공간 차지 */
}

/* Galaxy S8 등 작은 모바일 (360px) */
@media (max-width: 360px) {
  .phone-inputs .form-select {
    width: 70px; /* 더 좁게 */
    padding: 0.75rem 0.5rem; /* 좌우 패딩 축소 16px → 8px */
  }
  
  .phone-inputs .form-input {
    padding: 0.75rem 0.625rem; /* 좌우 패딩 축소 16px → 10px */
  }
}

/* 날짜/시간 입력 */
.datetime-inputs {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.time-inputs {
  display: flex;
  gap: 0.375rem;
}

.time-inputs .form-select {
  flex: 1;
}

/* 트레이너 선택 */
.trainer-selection {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.trainer-selection .form-select {
  flex: 1;
}

.link-button {
  padding: 0;
  background: none;
  border: none;
  color: #7470F9;
  font-size: 0.9375rem; /* 15px */
  font-weight: 500;
  text-decoration: underline;
  cursor: pointer;
  white-space: nowrap;
}

.link-button:hover {
  color: #5E5AD9;
}

/* 라디오 옵션 */
.radio-group {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.radio-option {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  cursor: pointer;
}

.radio-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.radio-check {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1.5px solid rgba(0, 0, 0, 0.2);
  background: white;
  flex-shrink: 0;
  position: relative;
  margin-top: 0.125rem;
}

.radio-option:has(input:checked) .radio-check {
  border-color: #7470F9;
  border-width: 1.5px;
}

.radio-option:has(input:checked) .radio-check::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  background: #7470F9;
  border-radius: 50%;
}

.radio-text {
  font-size: 0.9375rem; /* 15px */
  color: rgba(0, 0, 0, 0.5);
  font-weight: 500;
  line-height: 1.47;
}

/* 추천인 입력 */
.referrer-input {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.referrer-input .form-input {
  flex: 1;
}

/* 주소 입력 */
.address-input {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.address-input .form-input {
  flex: 1;
}

/* ============================
   11. STEP 5 - 결제
   ============================ */

.payment-section {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #EBEBEB;
  margin-bottom: 1.5rem;
}

.payment-row {
  display: flex;
  border-bottom: 1px solid #EBEBEB;
  min-height: 58px;
}

.payment-row.full {
  flex-direction: column;
}

.payment-row.highlight {
  background: #FFF9E6;
}

.payment-label {
  width: 92px;
  padding: 0.625rem 0.75rem;
  background: #F2F3F7;
  font-size: 0.875rem; /* 14px */
  font-weight: 500;
  color: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.payment-value {
  flex: 1;
  padding: 0.625rem 0.75rem;
  display: flex;
  align-items: center;
}

.amount-large {
  font-size: 1rem;
  font-weight: 600;
  color: black;
}

.amount-final {
  font-size: 1.125rem; /* 18px */
  font-weight: 600;
  color: #F65F55;
}

.payment-input {
  flex: 1;
  padding: 0.625rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.payment-available {
  font-size: 0.8125rem; /* 13px */
  color: rgba(0, 0, 0, 0.5);
  font-weight: 400;
}

.payment-use {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.payment-use .form-input {
  flex: 1;
  text-align: right;
  background: #F9F9F9;
}

.payment-use .unit {
  font-size: 1rem;
  font-weight: 500;
  color: black;
}

/* 쿠폰 정보 */
.coupon-info {
  display: flex;
  gap: 0.5rem;
}

.badge-gray {
  display: inline-block;
  padding: 0.25rem 0.625rem;
  background: #F5F6F8;
  color: rgba(0, 0, 0, 0.6);
  font-size: 0.8125rem; /* 13px */
  font-weight: 500;
  border-radius: 4px;
}

/* 결제 수단 */
.payment-methods {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem 0.75rem;
}

.payment-method {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  margin-bottom: 15px;
}

.payment-method input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.payment-method__check {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1.5px solid rgba(0, 0, 0, 0.2);
  background: white;
  position: relative;
  flex-shrink: 0;
}

.payment-method:has(input:checked) .payment-method__check {
  border-color: #7470F9;
}

.payment-method:has(input:checked) .payment-method__check::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  background: #7470F9;
  border-radius: 50%;
}

.payment-method__text {
  font-size: 0.9375rem; /* 15px */
  color: rgba(0, 0, 0, 0.9);
  font-weight: 600;
}

/* 무이자 할부 안내 */
.installment-info {
  padding: 0.75rem;
}

.installment-toggle {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.installment-toggle .icon {
  font-size: 1rem;
}

.installment-toggle .text {
  font-size: 0.875rem;
  color: #7470F9;
  font-weight: 400;
}

.installment-toggle .arrow {
  font-size: 0.625rem;
  color: #7470F9;
  transition: transform 0.3s;
}

.installment-toggle.active .arrow {
  transform: rotate(180deg);
}

.installment-content {
  margin-top: 0.75rem;
  padding: 0.75rem;
  background: #F9F9F9;
  border-radius: 6px;
}

.installment-content img {
  width: 100%;
  height: auto;
  display: block;
}

/* ============================
   12. 버튼 스타일
   ============================ */

/* 기본 버튼 (base.css에서 가져옴) */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.625rem 1.25rem;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  border-radius: 8px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition-speed);
  font-family: inherit;
}

.btn--primary {
  background-color: var(--color-primary);
  color: #FFFFFF;
  border-color: var(--color-primary);
}

.btn--primary:hover {
  background-color: #26B55E;
  border-color: #26B55E;
  color: #FFFFFF;
}

.btn--secondary {
  background-color: transparent;
  color: var(--color-text);
  border-color: #EBEBEB;
}

.btn--secondary:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.btn--sm {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}

.btn-next {
  width: 100%;
  padding: 0.875rem 1.25rem;
  background: #EBEBEB;
  color: rgba(0, 0, 0, 0.3);
  font-size: 1rem;
  font-weight: 600;
  border: none;
  border-radius: 9px;
  cursor: not-allowed;
  transition: all 0.3s;
}

.btn-next:not(:disabled) {
  background: #2ECA6E;
  color: white;
  cursor: pointer;
}

.btn-next:not(:disabled):hover {
  background: #26B55E;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(46, 202, 110, 0.3);
}

.btn-login {
  width: 100%;
  padding: 0.875rem 1.25rem;
  background: white;
  color: #7470F9;
  font-size: 1rem;
  font-weight: 600;
  border: 2px solid #7470F9;
  border-radius: 9px;
  cursor: pointer;
  transition: all 0.3s;
  margin-top: 1.5rem;
}

.btn-login:hover {
  background: #F0EFFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(116, 112, 249, 0.2);
}

.btn-payment {
  width: 100%;
  padding: 1rem 1.25rem;
  background: linear-gradient(135deg, #7470F9 0%, #2ECA6E 100%);
  color: white;
  font-size: 1.125rem; /* 18px */
  font-weight: 600;
  border: none;
  border-radius: 9px;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 4px 16px rgba(116, 112, 249, 0.3);
}

.btn-payment:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(116, 112, 249, 0.4);
}

.btn-secondary {
  padding: 0.5rem 1rem;
  background: white;
  color: #7470F9;
  font-size: 0.875rem;
  font-weight: 500;
  border: 1px solid #7470F9;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-secondary:hover {
  background: #F0EFFF;
}

/* ============================
   13. 반응형 (모바일 퍼스트)
   ============================ */

/* 타블렛 (768px - 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
  .registration-container {
    max-width: 90%; /* 700px → 90%로 변경하여 화면을 더 넓게 활용 */
  }
  
  .registration-info-banner {
    height: auto; /* 자동 높이 */
    min-height: calc(100vh - 56px - 40px); /* 화면 높이 - 모바일 헤더 - 롤링 배너 */
  }
  
  .registration-info-banner__container {
    padding: 3rem 2.5rem; /* 48px 40px */
    gap: 0; /* gap 제거 - content 내부에서 관리 */
    flex-direction: column;
    min-height: calc(100vh - 56px - 40px - 96px);
  }
  
  .registration-info-banner__content {
    gap: 2rem; /* 32px - 여백 증가 */
    flex-direction: column;
    align-items: center;
  }
  
  .registration-info-banner__icons {
    width: 100%;
    max-width: 600px; /* 원래대로 복원 */
  }
  
  .registration-info-banner__headline {
    font-size: 2.25rem; /* 36px (32px → 36px, +4px) */
  }
  
  .registration-info-banner__subheadline-primary {
    font-size: 1.9375rem; /* 31px (36px → 31px, -5px) */
    margin-top: calc(-1.25rem - 11px); /* 위로 11px 더 이동 (8px + 3px) */
  }
  
  .registration-info-banner__subheadline {
    font-size: 1.0625rem; /* 17px (+2px) */
    color: rgba(255, 255, 255, 0.80);
  }
  
  .banner-icon-item {
    padding: 1rem;
  }
  
  .banner-icon-emoji {
    font-size: 1.875rem; /* 30px */
  }
  
  .banner-icon-text {
    font-size: 0.8125rem; /* 13px */
  }
  
  .registration-info-banner__caption {
    font-size: 0.875rem; /* 14px */
  }
  
  .registration-info-banner__cta {
    font-size: 0.9375rem; /* 15px */
    padding: 0.875rem 2rem;
    box-shadow: 0 4px 20px rgba(124, 251, 132, 0.3);
    margin-top: 1.5rem; /* 24px - 여백 증가 */
  }
  
  .registration-info-banner__image {
    max-width: 340px;
  }
  
  /* 타블렛에서 이미지 숨김 */
  .registration-info-banner__image {
    display: none;
  }

  .step-title {
    font-size: 1.25rem; /* 20px */
  }
  
  /* STEP 1 - 과정 선택 카드를 2열로 배치 */
  .course-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

/* ============================
   대형 타블렛 (900px ~ 1023px)
   ============================ */
@media (min-width: 900px) and (max-width: 1023px) {
  .registration-info-banner {
    height: auto; /* 자동 높이 */
    min-height: calc(100vh - 56px - 40px); /* 화면 높이 - 모바일 헤더 - 롤링 배너 */
  }
  
  .registration-info-banner__container {
    padding: 3.5rem 3rem; /* 56px 48px */
    gap: 0; /* gap 제거 - content 내부에서 관리 */
    flex-direction: column;
    min-height: calc(100vh - 56px - 40px - 112px);
  }
  
  .registration-info-banner__content {
    flex-direction: column;
    align-items: center;
    gap: 2.25rem; /* 36px - 여백 증가 */
  }
  
  .registration-info-banner__icons {
    width: 100%;
    max-width: 700px; /* 원래대로 복원 */
  }
  
  .registration-info-banner__headline {
    font-size: 2.5rem; /* 40px (36px → 40px, +4px) */
  }
  
  .registration-info-banner__subheadline-primary {
    font-size: 2.1875rem; /* 35px (40px → 35px, -5px) */
    margin-top: calc(-1.5rem - 11px); /* 위로 11px 더 이동 (8px + 3px) */
  }
  
  .registration-info-banner__subheadline {
    font-size: 1.125rem; /* 18px (+2px) */
    color: rgba(255, 255, 255, 0.80);
  }
  
  .registration-info-banner__icons {
    grid-template-columns: repeat(2, 1fr); /* 2x2 그리드 유지 */
    gap: 1rem;
  }
  
  .banner-icon-item {
    padding: 1.125rem 1rem;
  }
  
  .registration-info-banner__image {
    display: none; /* 대형 타블렛에서도 이미지 숨김 */
  }
  
  /* STEP 1 - 과정 선택 카드를 2열로 배치 */
  .course-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

/* ============================
   PC (1024px 이상)
   ============================ */
@media (min-width: 1024px) {
  .registration-container {
    max-width: 700px;
  }
  
  .registration-info-banner {
    height: auto; /* 자동 높이 (콘텐츠에 맞춤) */
    min-height: auto; /* 최소 높이 제한 해제 */
    padding: 5rem 0 6rem; /* 상하 패딩 증가 (80px 96px) */
  }
  
  .registration-info-banner__container {
    max-width: 1200px; /* 헤더 범위에 맞춤 */
    margin: 0 auto; /* 중앙 정렬 */
    padding: 0 5rem; /* 헤더와 동일한 패딩 (80px) */
    flex-direction: column; /* 세로 배치 */
    text-align: center; /* 중앙 정렬 */
    align-items: center;
    justify-content: center;
    gap: 0;
    min-height: 600px; /* 컨테이너 최소 높이 증가 */
  }
  
  body:not(.trial-6day-page) .registration-info-banner__content {
    position: relative;
    gap: 2.5rem; /* 40px - 증가 */
    width: 100%;
    max-width: 100%;
    padding-top: 0;
    align-items: center; /* 중앙 정렬 */
    display: flex;
    flex-direction: column;
    transform: none; /* translateY 제거 - 자연스러운 위치 */
  }
  
  .registration-info-banner__headline {
    font-size: 3rem; /* 48px (44px → 48px, +4px) */
    font-weight: 700;
    line-height: 1.3;
    grid-area: headline;
    text-align: center !important;
    justify-self: center !important;
    width: 100%;
  }
  
  .registration-info-banner__subheadline-primary {
    font-size: 2.8125rem; /* 45px (43px → 45px, +2px) */
    text-align: center !important;
    justify-self: center !important;
    margin-top: calc(-1.75rem - 11px); /* 위로 11px 더 이동 (8px + 3px) */
    grid-area: subheadline-primary;
    width: 100%;
  }
  
  /* PC에서는 1차 서브 줄바꿈 숨김 (한 줄로 표시) - 기본 페이지만 */
  body:not(.trial-6day-page) .registration-info-banner__subheadline-primary br {
    display: none;
  }
  
  .registration-info-banner__subheadline {
    font-size: 1.25rem; /* 20px (+2px) */
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.80);
    grid-area: subheadline;
    text-align: center !important;
    justify-self: center !important;
    width: 100%;
  }
  
  .registration-info-banner__icons {
    grid-area: icons;
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 4열 가로 배치 */
    gap: 1.5rem; /* 24px - 카드 간격 증가 */
    width: 100%;
    max-width: 100%;
    justify-self: center;
  }
  
  /* ============================
     6일 체험 페이지 전용 PC 레이아웃
     ============================ */
  
  .trial-6day-page .registration-info-banner {
    padding: 5rem 0 4.5rem; /* 상하 패딩 (80px 72px) - 여유있는 공간 */
  }
  
  .trial-6day-page .registration-info-banner__cta {
    justify-self: center;
    padding: 1rem 3rem; /* 패딩 복원 */
    font-size: 1.0625rem; /* 17px - 폰트 크기 */
    margin-top: -4px; /* 위로 4픽셀 이동 */
  }
  
  /* PC에서 가격 표시 전환 */
  .trial-6day-page .mobile-price-box {
    display: none; /* PC에서 박스 숨김 */
  }
  
  .trial-6day-page .pc-price-text {
    display: block; /* PC에서 간단 가격 텍스트 표시 */
    grid-area: price; /* 그리드 영역 지정 */
    text-align: center; /* 중앙 정렬 */
    justify-self: center; /* 그리드 내 중앙 정렬 */
    width: 100%; /* 전체 너비 */
  }
  
  /* PC에서 가격 텍스트 크기 증가 및 위치 조정 */
  .trial-6day-page .price-text-inline {
    font-size: 1.125rem; /* 18px - PC 크기 */
    transform: translateY(13px); /* 8px → 13px로 변경 (5px 추가 이동) */
  }
  
  .trial-6day-page .price-text-original {
    font-size: 1rem; /* 16px - PC 크기 */
  }
  
  .trial-6day-page .price-text-arrow {
    font-size: 1rem; /* 16px - PC 크기 */
  }
  
  .trial-6day-page .price-text-discount {
    font-size: 1.5rem; /* 24px - PC 크기 */
  }
  
  .trial-6day-page .registration-info-banner__content {
    display: flex;
    flex-direction: column;
    align-items: center; /* 중앙 정렬 */
    gap: 2rem; /* 32px - 여유있는 간격 */
    transform: none; /* 기본 페이지의 translateY 제거 */
  }
  
  .trial-6day-page .registration-info-banner__headline {
    text-align: center; /* 중앙 정렬 */
    margin-top: 0; /* 상단 여백 제거 */
    font-size: 3rem; /* 48px - 크기 복원 */
    line-height: 1.3; /* 줄간격 */
  }
  
  .trial-6day-page .registration-info-banner__subheadline-primary {
    text-align: center; /* 중앙 정렬 */
    margin-top: calc(-0.5rem - 24px); /* 위로 24픽셀 이동 (21px + 3px) */
    font-size: 2.875rem; /* 46px - 크기 증가 (44px + 2px) */
    line-height: 1.35; /* 줄간격 */
  }
  
  /* PC에서는 mobile-break-only 줄바꿈 숨김 */
  .trial-6day-page .registration-info-banner__subheadline-primary .mobile-break-only {
    display: none;
  }
  
  .trial-6day-page .registration-info-banner__subheadline {
    text-align: center; /* 중앙 정렬 */
    font-size: 1.25rem; /* 20px - 크기 복원 */
    line-height: 1.75; /* 줄간격 */
  }
  
  /* PC에서 카드 섹션 가로 배치 */
  .trial-6day-page .registration-info-banner__icons {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 4열 가로 배치 */
    gap: 1.25rem; /* 20px - 간격 줄임 */
    width: 100%;
    max-width: 100%;
    margin: 0 auto; /* 중앙 정렬 */
  }
  
  .trial-6day-page .registration-info-banner__video {
    width: 100%;
    max-width: 480px; /* PC 최대 너비 축소 (650px → 480px) - CTA 버튼이 첫 화면에 보이도록 */
    max-height: 270px; /* 최대 높이 제한 (16:9 비율: 480px * 9/16 = 270px) */
    margin: 0 auto; /* 중앙 정렬 */
  }
  
  .trial-6day-page .video-wrapper {
    border-radius: 20px; /* PC에서 더 큰 둥근 모서리 */
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4); /* 더 강한 그림자 */
    cursor: pointer; /* 클릭 가능 표시 */
    aspect-ratio: 16 / 9; /* 비율 고정 */
    max-height: 270px; /* 최대 높이 제한 - 재생바가 화면에 보이도록 */
    position: relative; /* aspect-ratio와 함께 사용 */
    padding-bottom: 0; /* PC에서는 padding-bottom 제거 (aspect-ratio 사용) */
    height: auto; /* PC에서는 height: 0 제거 */
  }
  
  .trial-6day-page .video-wrapper iframe {
    border-radius: 20px;
  }
  
  /* PC 전체화면 모드 - 충돌 방지를 위해 제거됨 */
  
  .trial-6day-page .video-overlay {
    border-radius: 20px;
  }
  
  .trial-6day-page .video-controls {
    padding: 1.25rem 1.5rem;
    border-radius: 0 0 20px 20px;
  }
  
  .trial-6day-page .video-progress-container {
    height: 5px;
    margin-bottom: 1rem;
  }
  
  .trial-6day-page .video-progress-bar::after {
    width: 14px;
    height: 14px;
    right: -7px;
  }
  
  .trial-6day-page .video-control-btn {
    padding: 0.5rem 0.75rem;
  }
  
  .trial-6day-page .video-control-icon {
    font-size: 1.125rem;
  }
  
  .trial-6day-page .video-time-display {
    font-size: 0.875rem;
  }
  
  .trial-6day-page .video-youtube-link {
    top: 1.25rem;
    left: 1.25rem;
    padding: 0.625rem 1.25rem;
    font-size: 0.875rem;
  }
  
  /* 6일 체험 페이지 카드 문구 크기 - 원래 크기로 유지 (레이아웃 안정성) */
  .trial-6day-page .banner-icon-text {
    font-size: 0.8125rem; /* 13px */
  }
  
  /* 둘째 줄(강조 부분) */
  .trial-6day-page .banner-icon-text strong {
    font-size: 0.875rem; /* 14px */
  }
  
  .banner-icon-item {
    padding: 1.5rem 1.25rem; /* 패딩 증가 */
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(124, 251, 132, 0.25);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
    flex-direction: column;
    align-items: center;
    gap: 0.625rem; /* 0.5rem -> 0.625rem (10px) */
    justify-content: center;
    animation: iconHighlight 5s ease-in-out infinite;
    min-height: 100px; /* 2줄 텍스트를 위한 최소 높이 */
  }
  
  /* 각 아이콘에 순차적인 딜레이 적용 (약 1초 간격으로 하나씩 강조) */
  .banner-icon-item:nth-child(1) {
    animation-delay: 0s;
  }
  
  .banner-icon-item:nth-child(2) {
    animation-delay: 1.25s;
  }
  
  .banner-icon-item:nth-child(3) {
    animation-delay: 2.5s;
  }
  
  .banner-icon-item:nth-child(4) {
    animation-delay: 3.75s;
  }
  
  /* 실제 마우스 hover 효과 (애니메이션 멈춤) */
  .banner-icon-item:hover {
    background: rgba(124, 251, 132, 0.15) !important;
    transform: translateY(-6px) !important;
    box-shadow: 0 6px 20px rgba(124, 251, 132, 0.35) !important;
    border-color: rgba(124, 251, 132, 0.5) !important;
    animation-play-state: paused; /* hover 시 애니메이션 일시 정지 */
  }
  
  .banner-icon-emoji {
    font-size: 2.25rem; /* 36px */
    flex-shrink: 0;
  }
  
  .banner-icon-text {
    font-size: 0.875rem; /* 14px */
    text-align: center;
    line-height: 1.5; /* 1.4 → 1.5 줄간격 증가 */
    color: rgba(255, 255, 255, 0.75);
  }
  
  .registration-info-banner__caption {
    font-size: 0.9375rem; /* 15px */
    color: rgba(255, 255, 255, 0.60);
    text-align: center;
    grid-area: caption;
  }
  
  .registration-info-banner__cta {
    grid-area: cta;
    justify-self: center;
    font-size: 1.0625rem; /* 17px */
    padding: 1.125rem 3rem;
    box-shadow: 0 6px 24px rgba(124, 251, 132, 0.35);
    margin-top: 0.875rem; /* 14px - 3px 더 위로 이동 (17px → 14px) */
    /* 애니메이션 제거 - 카드 강조에만 집중 */
  }
  
  .registration-info-banner__image {
    display: none; /* 이미지 숨김 */
  }

  .step-title {
    font-size: 1.25rem; /* 20px */
  }
}

/* 큰 화면 (1440px 이상) - 헤더와 정렬 맞춤 */
@media (min-width: 1440px) {
  .registration-info-banner__container {
    padding: 0 6rem; /* 헤더와 동일 (96px) */
  }
}

@media (max-width: 1023px) {
  .progress-bar-sticky {
    top: 56px; /* 모바일 헤더 높이 (상단바 제거됨) */
  }
}

/* ========================================
   STEP 4 - 폼 스타일
   ======================================== */

.step-desc {
  font-size: 0.875rem;
  color: var(--color-text-light);
  margin-top: 0.5rem;
}

.required {
  color: #F65F55;
  margin-left: 0.25rem;
}

.form-help {
  font-size: 0.8125rem;
  color: var(--color-text-light);
  margin-top: 0rem;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}

.phone-separator {
  margin: 0 0.5rem;
  color: var(--color-text-light);
}

.datetime-inputs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

@media (max-width: 767px) {
  .datetime-inputs {
    grid-template-columns: 1fr;
  }
}

/* 선택 버튼 스타일 */
.btn-select {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  background: white;
  border: 2px solid var(--color-border);
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  transition: all 0.3s;
}

.btn-select:hover {
  border-color: var(--color-primary);
  background: rgba(46, 202, 110, 0.05);
}

.btn-select__icon {
  font-size: 1.5rem;
  margin-right: 1rem;
}

.btn-select__text {
  flex: 1;
  text-align: left;
}

.btn-select__arrow {
  font-size: 1.25rem;
  color: var(--color-text-light);
  transition: transform 0.3s;
}

.btn-select:hover .btn-select__arrow {
  transform: translateX(4px);
}

.referrer-input {
  display: flex;
  gap: 0.5rem;
}

.referrer-input .form-input {
  flex: 1;
}

.referrer-result {
  margin-top: 0.5rem;
  padding: 0.75rem;
  border-radius: 8px;
  font-size: 0.875rem;
}

.referrer-result.success {
  background: rgba(46, 202, 110, 0.1);
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
}

.referrer-result.error {
  background: rgba(246, 95, 85, 0.1);
  color: #F65F55;
  border: 1px solid #F65F55;
}

/* ========================================
   모달 공통 스타일
   ======================================== */

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
}

.modal.is-open {
  display: flex;
}

.modal.active {
  display: flex;
}

.modal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  animation: fadeIn 0.3s ease;
}

.modal__container {
  position: relative;
  background: white;
  border-radius: 16px;
  max-width: 90%;
  max-height: 90%;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  animation: slideUp 0.3s ease;
  display: flex;
  flex-direction: column;
}

@media (min-width: 768px) {
  .modal__container {
    max-width: 800px;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideUp {
  from {
    transform: translateY(50px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 2rem;
  border-bottom: 1px solid var(--color-border);
}

.modal__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-text);
}

.modal__close {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  font-size: 2rem;
  color: var(--color-text-light);
  cursor: pointer;
  transition: all 0.3s;
  border-radius: 50%;
}

.modal__close:hover {
  background: var(--color-bg-light);
  color: var(--color-text);
}

.modal__body {
  flex: 1;
  overflow-y: auto;
  padding: 2rem;
}

.modal__desc {
  font-size: 0.875rem;
  color: var(--color-text-light);
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

.modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1.5rem 2rem;
  border-top: 1px solid var(--color-border);
}

.modal__footer .btn-secondary {
  padding: 0.75rem 1.5rem;
  background: #F5F6F8;
  border: 2px solid #E5E5E5;
  border-radius: 8px;
  font-size: 0.9375rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.7);
  cursor: pointer;
  transition: all 0.2s;
}

.modal__footer .btn-secondary:hover {
  border-color: rgba(0, 0, 0, 0.3);
}

.modal__footer .btn-primary {
  padding: 0.875rem 2rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #26B35F 100%);
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 700;
  color: white;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 4px 12px rgba(46, 202, 110, 0.3);
}

.modal__footer .btn-primary:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(46, 202, 110, 0.4);
}

.modal__footer .btn-primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ========================================
   트레이너 선택 모달
   ======================================== */

.trainer-list {
  display: grid;
  gap: 1.5rem;
}

.trainer-card {
  display: flex;
  gap: 1.5rem;
  padding: 1.5rem;
  border: 2px solid var(--color-border);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s;
}

.trainer-card:hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 20px rgba(46, 202, 110, 0.15);
  transform: translateY(-2px);
}

.trainer-card.selected {
  border-color: var(--color-primary);
  background: rgba(46, 202, 110, 0.05);
}

.trainer-card__image {
  position: relative;
  flex-shrink: 0;
}

.trainer-card__image img {
  width: 100px;
  height: 100px;
  border-radius: 12px;
  object-fit: cover;
}

.trainer-card__badge {
  position: absolute;
  top: -8px;
  right: -8px;
  background: var(--color-primary);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(46, 202, 110, 0.3);
}

.trainer-card__content {
  flex: 1;
}

.trainer-card__name {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 0.25rem;
}

.trainer-card__nickname {
  font-size: 0.875rem;
  color: var(--color-primary);
  margin-bottom: 0.75rem;
}

.trainer-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.tag {
  display: inline-block;
  padding: 0.25rem 0.625rem;
  background: var(--color-bg-light);
  color: var(--color-text-light);
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 6px;
}

.trainer-card__intro {
  font-size: 0.875rem;
  color: var(--color-text);
  line-height: 1.6;
  margin-bottom: 0.75rem;
}

.trainer-card__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.8125rem;
  color: var(--color-text-light);
}

.trainer-card__stats .stat {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

@media (max-width: 767px) {
  .trainer-card {
    flex-direction: column;
  }

  .trainer-card__image img {
    width: 80px;
    height: 80px;
  }
}

/* ========================================
   교재 선택 모달
   ======================================== */

.material-list {
  display: grid;
  gap: 1rem;
}

.material-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 2px solid var(--color-border);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
}

.material-card:hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 20px rgba(46, 202, 110, 0.15);
}

.material-card.selected {
  border-color: var(--color-primary);
  background: rgba(46, 202, 110, 0.05);
}

.material-card__image {
  flex-shrink: 0;
}

.material-card__image img {
  width: 60px;
  height: 75px;
  border-radius: 6px;
  object-fit: cover;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.material-card__content {
  flex: 1;
}

.material-card__name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 0.25rem;
}

.material-card__desc {
  font-size: 0.8125rem;
  color: var(--color-text-light);
  margin-bottom: 0.5rem;
}

.material-card__price {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary);
}

.material-card__check {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 24px;
  height: 24px;
  display: none;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: white;
  border-radius: 50%;
  font-size: 0.875rem;
  font-weight: 700;
}

.material-card.selected .material-card__check {
  display: flex;
}

@media (max-width: 767px) {
  .material-card__image img {
    width: 50px;
    height: 62px;
  }
}

/* ========================================
   예약 방식 선택 (시간/트레이너 먼저)
   ======================================== */
.booking-method-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.booking-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem;
  background: #F5F6F8;
  border: 2px solid #E5E5E5;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.6);
}

.booking-tab:hover {
  border-color: #7470F9;
  background: #F0EFFF;
}

.booking-tab.active {
  border-color: #7470F9;
  background: #F0EFFF;
  color: #7470F9;
}

.booking-tab__icon {
  font-size: 1.5rem;
}

.booking-tab__text {
  font-size: 0.875rem;
  font-weight: 600;
}

.booking-section {
  margin-top: 1rem;
}

/* 트레이너 빠른 선택 리스트 */
.trainer-quick-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.trainer-quick-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  background: white;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.trainer-quick-item:hover {
  border-color: #7470F9;
  background: #F0EFFF;
}

.trainer-quick-item.selected {
  border-color: #7470F9;
  background: #F0EFFF;
}

.trainer-quick-item__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}

.trainer-quick-item__info {
  flex: 1;
}

.trainer-quick-item__name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: black;
  margin-bottom: 0.25rem;
}

.trainer-quick-item__tags {
  display: flex;
  gap: 0.25rem;
  flex-wrap: wrap;
}

.trainer-quick-item__tag {
  font-size: 0.75rem;
  padding: 0.125rem 0.5rem;
  background: #E5E5E5;
  border-radius: 4px;
  color: rgba(0, 0, 0, 0.6);
}

/* 시간 슬롯 그리드 */
.time-slot-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.time-slot {
  padding: 0.75rem;
  background: #F5F6F8;
  border: 1px solid #E5E5E5;
  border-radius: 6px;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.6);
  cursor: pointer;
  transition: all 0.2s;
}

.time-slot:hover:not(.disabled) {
  border-color: #7470F9;
  background: #F0EFFF;
  color: #7470F9;
}

.time-slot.selected {
  border-color: #7470F9;
  background: #7470F9;
  color: white;
}

.time-slot.disabled {
  opacity: 0.4;
  cursor: not-allowed;
  background: #FAFAFA;
}

@media (max-width: 767px) {
  .time-slot-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 커스텀 캘린더 모달 */
.calendar-modal {
  max-width: 400px;
}

.calendar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  background: #7470F9;
  border-radius: 12px 12px 0 0;
}

.calendar-header__nav {
  background: none;
  border: none;
  color: white;
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0.5rem;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s;
}

.calendar-header__nav:hover {
  background: rgba(255, 255, 255, 0.1);
}

.calendar-header__title {
  color: white;
  font-size: 1.125rem;
  font-weight: 700;
}

.calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: #F5F6F8;
  padding: 0.75rem 0;
  text-align: center;
}

.calendar-weekday {
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.6);
  padding: 0.5rem 0;
}

.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.25rem;
  padding: 1rem;
  background: white;
}

.calendar-day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  border: 2px solid transparent;
}

.calendar-day:not(.disabled):not(.other-month):hover {
  background: #F0EFFF;
  border-color: #7470F9;
  color: #7470F9;
}

.calendar-day.today {
  border-color: #7470F9;
  color: #7470F9;
}

.calendar-day.selected {
  background: #7470F9;
  border-color: #7470F9;
  color: white;
}

.calendar-day.disabled {
  color: rgba(0, 0, 0, 0.2);
  cursor: not-allowed;
}

.calendar-day.other-month {
  color: rgba(0, 0, 0, 0.3);
}

@media (max-width: 767px) {
  .calendar-modal {
    max-width: calc(100vw - 2rem);
  }
  
  .calendar-day {
    font-size: 1rem;
  }
}

/* 시간 선택 커스텀 그리드 */
.time-select-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  max-height: 400px;
  overflow-y: auto;
  padding: 0.5rem;
}

.time-select-item {
  padding: 0.875rem;
  background: #F5F6F8;
  border: 2px solid #E5E5E5;
  border-radius: 8px;
  text-align: center;
  font-size: 0.9375rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.7);
  cursor: pointer;
  transition: all 0.2s;
}

.time-select-item:hover:not(.disabled) {
  border-color: #7470F9;
  background: #F0EFFF;
  color: #7470F9;
}

.time-select-item.selected {
  border-color: #7470F9;
  background: #7470F9;
  color: white;
}

.time-select-item.disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

@media (max-width: 767px) {
  .time-select-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0.375rem;
  }
  
  .time-select-item {
    padding: 0.875rem 0.5rem;
    font-size: 0.875rem;
  }
}

/* 트레이너 선택 팝업 */
.trainer-select-modal {
  max-width: 600px;
}

.trainer-search {
  margin-bottom: 1.5rem;
}

.trainer-search input {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 2px solid #E5E5E5;
  border-radius: 8px;
  font-size: 0.9375rem;
  transition: border-color 0.2s;
}

.trainer-search input:focus {
  border-color: #7470F9;
  outline: none;
}

.trainer-list {
  max-height: 400px;
  overflow-y: auto;
}

.trainer-list-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 2px solid #E5E5E5;
  border-radius: 12px;
  margin-bottom: 8px !important;
  cursor: pointer;
  transition: all 0.2s;
}

.trainer-list-item:hover {
  border-color: #7470F9;
  background: #F0EFFF;
}

.trainer-list-item.selected {
  border-color: #7470F9;
  background: #7470F9;
}

.trainer-list-item.selected .trainer-list-item__name,
.trainer-list-item.selected .trainer-list-item__desc {
  color: white;
}

.trainer-list-item__avatar {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #E5E5E5;
  flex-shrink: 0;
  overflow: hidden;
}

.trainer-list-item__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.trainer-list-item__info {
  flex: 1;
}

.trainer-list-item__name {
  font-size: 1rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.9);
  margin-bottom: 0.25rem;
}

.trainer-list-item__desc {
  font-size: 0.8125rem;
  color: rgba(0, 0, 0, 0.6);
}

.trainer-list-item__tags {
  display: flex;
  gap: 0.375rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

.trainer-list-item__tag {
  padding: 0.25rem 0.625rem;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 4px;
  font-size: 0.75rem;
  color: rgba(0, 0, 0, 0.6);
}

.trainer-list-item.selected .trainer-list-item__tag {
  background: rgba(255, 255, 255, 0.2);
  color: white;
}

/* 트레이너 시간 선택 */
.trainer-schedule-section {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #E5E5E5;
}

.trainer-schedule-section h4 {
  font-size: 1rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.9);
  margin-bottom: 1rem;
}

.date-time-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}

@media (max-width: 767px) {
  .date-time-wrapper {
    grid-template-columns: 1fr;
  }
}

/* 결제 섹션 스타일링 개선 */
.payment-section {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 2px solid #E5E5E5;
}

.total-amount-summary {
  background: linear-gradient(135deg, #7470F9 0%, #5B57E8 100%);
  padding: 1.5rem;
  border-radius: 12px;
  margin-bottom: 2rem;
}

.total-amount-summary__label {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 0.5rem;
}

.total-amount-summary__amount {
  font-size: 2rem;
  font-weight: 700;
  color: white;
}

.total-amount-summary__amount .currency {
  font-size: 1.25rem;
  font-weight: 600;
  margin-left: 0.25rem;
  opacity: 0.8;
}

.discount-section {
  background: #F5F6F8;
  padding: 1.5rem;
  border-radius: 12px;
  margin-bottom: 1.5rem;
}

.discount-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 1px solid #E5E5E5;
}

.discount-item:last-child {
  border-bottom: none;
}

.discount-item__label {
  font-size: 0.9375rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.9);
}

.discount-item__control {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.discount-item__amount {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #7470F9;
}

.discount-item__button {
  padding: 0.5rem 1rem;
  background: white;
  border: 2px solid #E5E5E5;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.7);
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}

.discount-item__button:hover {
  border-color: #7470F9;
  color: #7470F9;
}

.discount-item__button.active {
  background: #7470F9;
  border-color: #7470F9;
  color: white;
}

.final-amount {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem;
  background: white;
  border: 2px solid #7470F9;
  border-radius: 12px;
  margin: 1.5rem 0;
}

.final-amount__label {
  font-size: 1.125rem;
  font-weight: 700;
  color: rgba(0, 0, 0, 0.9);
}

.final-amount__value {
  font-size: 1.5rem;
  font-weight: 700;
  color: #7470F9;
}

.final-amount__value .currency {
  font-size: 1rem;
  font-weight: 600;
  margin-left: 0.25rem;
  opacity: 0.8;
}

/* ========================================
   연령대 선택 버튼 (trial-6day 페이지)
   ======================================== */
.age-selection {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 600px;
  margin: 0 auto;
}

.age-option {
  position: relative;
  display: block;
  cursor: pointer;
}

.age-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.age-option__content {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.5rem;
  background: #FFFFFF;
  border: 2px solid #E5E7EB;
  border-radius: 12px;
  transition: all 0.2s ease;
  font-size: 1rem;
  font-weight: 500;
  color: #374151;
}

.age-option:hover .age-option__content {
  border-color: #2ECA6E;
  background: #F0FDF4;
}

.age-option input[type="radio"]:checked + .age-option__content {
  background: #2ECA6E;
  border-color: #2ECA6E;
  color: #FFFFFF;
  font-weight: 600;
}

.age-option input[type="radio"]:focus-visible + .age-option__content {
  outline: 2px solid #2ECA6E;
  outline-offset: 2px;
}

.age-option__check {
  display: none;
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .age-selection {
    gap: 0.625rem;
  }
  
  .age-option__content {
    padding: 0.875rem 1.25rem;
    font-size: 0.9375rem;
  }
}

/* ========================================
   유입경로 선택 버튼 (trial-6day 페이지)
   ======================================== */
.channel-selection {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  max-width: 900px;
  margin: 0 auto;
}

.channel-option {
  position: relative;
  display: block;
  cursor: pointer;
}

.channel-option input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.channel-option__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 1rem 0.75rem;
  background: #FFFFFF;
  border: 2px solid #E5E7EB;
  border-radius: 12px;
  transition: all 0.2s ease;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #374151;
  min-height: 60px;
}

.channel-option__icon {
  font-size: 1.5rem;
  line-height: 1;
}

.channel-option__text {
  line-height: 1.2;
}

.channel-option:hover .channel-option__content {
  border-color: #2ECA6E;
  background: #F0FDF4;
}

.channel-option input[type="checkbox"]:checked + .channel-option__content {
  background: #2ECA6E;
  border-color: #2ECA6E;
  color: #FFFFFF;
  font-weight: 600;
}

.channel-option input[type="checkbox"]:focus-visible + .channel-option__content {
  outline: 2px solid #2ECA6E;
  outline-offset: 2px;
}

.channel-option__check {
  display: none;
}

/* 태블릿 최적화 */
@media (max-width: 1024px) {
  .channel-selection {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .channel-selection {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.625rem;
  }
  
  .channel-option__content {
    padding: 0.875rem 0.5rem;
    font-size: 0.875rem;
    min-height: 46px;
  }
}

/* ========================================
   가격 정보 배너 (히어로 섹션)
   ======================================== */
.price-info-banner {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0 0 1.5rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, #F0FDF4 0%, #ECFDF5 100%);
  border: 2px solid #2ECA6E;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(46, 202, 110, 0.1);
}

/* 모바일 전용 박스 (숨김 처리) */
.mobile-price-box {
  display: none; /* 모바일에서도 간단 텍스트 형태 사용 */
}

/* 간단 가격 텍스트 (모바일 & PC 공통) */
.price-text-inline {
  display: block; /* 모바일에서도 표시 */
  text-align: center;
  font-size: 1rem; /* 16px - 모바일 기본 크기 */
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  margin-bottom: 0.5rem; /* 1rem → 0.5rem (16px → 8px) */
  line-height: 1.5;
}

/* 모바일에서 CTA 버튼 쪽으로 이동 */
.trial-6day-page .price-text-inline {
  transform: translateY(32px); /* 22px → 32px로 변경 (10px 추가 이동) */
}

.price-text-original {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: line-through;
  font-size: 0.875rem; /* 14px - 모바일 기본 */
  margin-right: 0.5rem;
}

.price-text-arrow {
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0.25rem;
  font-size: 0.875rem; /* 14px */
}

.price-text-discount {
  font-size: 1.25rem; /* 20px - 모바일 기본 크기 줄임 */
  font-weight: 700;
  color: #7CFB84;
  margin-right: 0.5rem;
}

.price-text-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #25B460 100%);
  color: white;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(46, 202, 110, 0.25);
  vertical-align: middle;
}

.price-info-banner__label {
  font-size: 0.875rem;
  color: #6B7280;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.price-info-banner__prices {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.price-info-banner__original {
  font-size: 1.125rem;
  color: #9CA3AF;
  text-decoration: line-through;
  font-weight: 600;
}

.price-info-banner__arrow {
  font-size: 1.25rem;
  color: #2ECA6E;
  font-weight: 700;
  flex-shrink: 0;
}

.price-info-banner__current {
  font-size: 1.5rem;
  color: #2ECA6E;
  font-weight: 700;
}

.price-info-banner__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 0.875rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #25B460 100%);
  color: white;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 24px;
  box-shadow: 0 2px 8px rgba(46, 202, 110, 0.25);
}

.price-info-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.price-info-icon {
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
}

.price-info-text {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 1rem;
  line-height: 1.5;
  color: #1F2937;
}

.price-original {
  text-decoration: line-through;
  color: #9CA3AF;
  font-size: 0.9375rem;
}

.price-arrow {
  color: #2ECA6E;
  font-weight: 700;
}

.price-discount {
  font-size: 1.5rem;
  font-weight: 700;
  color: #2ECA6E;
}

.price-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #25B460 100%);
  color: white;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 20px;
  box-shadow: 0 2px 8px rgba(46, 202, 110, 0.25);
}

/* ========================================
   최종 결제 금액 (STEP 4)
   ======================================== */
.final-payment-info {
  margin: 2rem 0 1.5rem;
}

.final-payment-card {
  background: #FFFFFF;
  border: 2px solid #E5E7EB;
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.final-payment-header {
  margin-bottom: 1rem;
}

.final-payment-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #6B7280;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.final-payment-price {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.final-payment-original {
  text-decoration: line-through;
  color: #9CA3AF;
  font-size: 1.125rem;
}

.final-payment-current {
  font-size: 2rem;
  font-weight: 700;
  color: #1F2937;
}

.final-payment-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 1rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #25B460 100%);
  color: white;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 24px;
  box-shadow: 0 2px 8px rgba(46, 202, 110, 0.25);
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .price-info-banner {
    padding: 1.25rem;
    gap: 0.625rem;
    margin: 0 0 1rem;
  }
  
  .price-info-banner__label {
    font-size: 0.8125rem;
  }
  
  .price-info-banner__prices {
    gap: 0.625rem;
  }
  
  .price-info-banner__original {
    font-size: 1rem;
  }
  
  .price-info-banner__arrow {
    font-size: 1.125rem;
  }
  
  .price-info-banner__current {
    font-size: 1.25rem;
  }
  
  .price-info-banner__badge {
    font-size: 0.8125rem;
    padding: 0.25rem 0.75rem;
  }
  
  .price-info-text {
    font-size: 0.9375rem;
  }
  
  .price-discount {
    font-size: 1.25rem;
  }
  
  .price-badge {
    font-size: 0.8125rem;
    padding: 0.1875rem 0.625rem;
  }
  
  .final-payment-card {
    padding: 1.25rem;
  }
  
  .final-payment-current {
    font-size: 1.75rem;
  }
  
  .final-payment-badge {
    font-size: 0.9375rem;
    padding: 0.3125rem 0.875rem;
  }
}

/* ========================================
   6일 체험 구성 인포 카드
   ======================================== */
.trial-info-card {
  background: linear-gradient(135deg, #F0FDF4 0%, #ECFDF5 100%);
  border: 2px solid #2ECA6E;
  border-radius: 16px;
  padding: 1.5rem;
  margin: 1.5rem 0 2rem;
  box-shadow: 0 4px 12px rgba(46, 202, 110, 0.08);
}

.trial-info-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(46, 202, 110, 0.2);
}

.trial-info-icon {
  font-size: 1.25rem;
  line-height: 1;
}

.trial-info-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1F2937;
}

.trial-info-content {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.trial-info-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.trial-info-item-icon {
  font-size: 1.25rem;
  line-height: 1;
  flex-shrink: 0;
}

.trial-info-item-text {
  font-size: 1rem;
  color: #374151;
  line-height: 1.5;
}

.trial-info-item-text strong {
  color: #2ECA6E;
  font-weight: 700;
}

.trial-info-footer {
  padding-top: 0.75rem;
  border-top: 1px solid rgba(46, 202, 110, 0.2);
  text-align: center;
  font-size: 0.9375rem;
  color: #6B7280;
  font-weight: 500;
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .trial-info-card {
    padding: 1.25rem;
    margin: 1.25rem 0 1.5rem;
  }
  
  .trial-info-header {
    margin-bottom: 0.875rem;
  }
  
  .trial-info-title {
    font-size: 1.0625rem;
  }
  
  .trial-info-content {
    gap: 0.625rem;
  }
  
  .trial-info-item {
    gap: 0.625rem;
  }
  
  .trial-info-item-icon {
    font-size: 1.125rem;
  }
  
  .trial-info-item-text {
    font-size: 0.9375rem;
  }
  
  .trial-info-footer {
    font-size: 0.9375rem;
  }
}

/* ========================================
   정보 확인 안내 및 버튼
   ======================================== */
.info-confirmation-section {
  margin-top: 2rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, #FFF9E6 0%, #FFFBF0 100%);
  border: 2px solid #FFC107;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(255, 193, 7, 0.08);
}

.info-confirmation-notice {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  padding: 1rem;
  background: white;
  border-radius: 12px;
  border: 1px solid rgba(255, 193, 7, 0.2);
}

.info-confirmation-notice__icon {
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
}

.info-confirmation-notice__content {
  flex: 1;
}

.info-confirmation-notice__text {
  margin: 0 0 0.375rem 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #1F2937;
  line-height: 1.5;
}

.info-confirmation-notice__subtext {
  margin: 0;
  font-size: 0.8125rem;
  color: #6B7280;
  line-height: 1.4;
}

.btn-confirm-info {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #27B35F 100%);
  border: none;
  border-radius: 12px;
  color: white;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 4px 12px rgba(46, 202, 110, 0.3);
}

.btn-confirm-info:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(46, 202, 110, 0.4);
}

.btn-confirm-info:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(46, 202, 110, 0.3);
}

.btn-confirm-info__icon {
  font-size: 1.25rem;
  line-height: 1;
}

.btn-confirm-info__text {
  line-height: 1;
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .info-confirmation-section {
    margin-top: 1.5rem;
    padding: 1.25rem;
  }
  
  .info-confirmation-notice {
    gap: 0.625rem;
    margin-bottom: 1rem;
    padding: 0.875rem;
  }
  
  .info-confirmation-notice__icon {
    font-size: 1.25rem;
  }
  
  .info-confirmation-notice__text {
    font-size: 0.875rem;
  }
  
  .info-confirmation-notice__subtext {
    font-size: 0.75rem;
  }
  
  .btn-confirm-info {
    padding: 0.875rem 1.25rem;
    font-size: 0.9375rem;
  }
  
  .btn-confirm-info__icon {
    font-size: 1.125rem;
  }
}

/* ========================================
   쿠폰 모달
   ======================================== */
.coupon-modal {
  max-width: 600px;
  max-height: 90vh;
  overflow-y: auto;
}

/* 쿠폰 코드 입력 섹션 */
.coupon-input-section {
  padding: 1.5rem;
  background: linear-gradient(135deg, #F0FDF4 0%, #ECFDF5 100%);
  border-radius: 12px;
  margin-bottom: 1.5rem;
}

.coupon-input-wrapper {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.coupon-input {
  flex: 1;
  padding: 0.875rem 1rem;
  border: 2px solid #E5E7EB;
  border-radius: 10px;
  font-size: 0.9375rem;
  transition: all 0.2s;
}

.coupon-input:focus {
  outline: none;
  border-color: #2ECA6E;
  box-shadow: 0 0 0 3px rgba(46, 202, 110, 0.1);
}

.coupon-input-btn {
  padding: 0.875rem 1.5rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #27B35F 100%);
  border: none;
  border-radius: 10px;
  color: white;
  font-size: 0.9375rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}

.coupon-input-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(46, 202, 110, 0.3);
}

.coupon-input-hint {
  margin: 0;
  font-size: 0.8125rem;
  color: #6B7280;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

/* 구분선 */
.coupon-divider {
  position: relative;
  text-align: center;
  margin: 1.5rem 0;
}

.coupon-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background: #E5E7EB;
}

.coupon-divider__text {
  position: relative;
  display: inline-block;
  padding: 0 1rem;
  background: white;
  font-size: 0.875rem;
  font-weight: 600;
  color: #6B7280;
}

/* 쿠폰 리스트 */
.coupon-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-height: 400px;
  overflow-y: auto;
  padding-right: 0.5rem;
}

.coupon-list::-webkit-scrollbar {
  width: 6px;
}

.coupon-list::-webkit-scrollbar-track {
  background: #F3F4F6;
  border-radius: 3px;
}

.coupon-list::-webkit-scrollbar-thumb {
  background: #D1D5DB;
  border-radius: 3px;
}

.coupon-list::-webkit-scrollbar-thumb:hover {
  background: #9CA3AF;
}

/* 쿠폰 카드 */
.coupon-card {
  position: relative;
  border: 2px solid #E5E7EB;
  border-radius: 16px;
  padding: 1.25rem;
  background: white;
  transition: all 0.2s;
}

.coupon-card:hover {
  border-color: #2ECA6E;
  box-shadow: 0 4px 16px rgba(46, 202, 110, 0.15);
  transform: translateY(-2px);
}

.coupon-card.disabled {
  opacity: 0.6;
  background: #F9FAFB;
}

.coupon-card.disabled:hover {
  border-color: #E5E7EB;
  box-shadow: none;
  transform: none;
}

/* 쿠폰 배지 */
.coupon-card__badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
  color: white;
  margin-bottom: 0.75rem;
}

.coupon-card__badge.special {
  background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
}

.coupon-card__badge.vip {
  background: linear-gradient(135deg, #8B5CF6 0%, #7C3AED 100%);
}

/* 쿠폰 컨텐츠 */
.coupon-card__content {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
}

.coupon-card__left {
  flex-shrink: 0;
}

.coupon-card__discount {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  padding: 1rem 0.75rem;
  background: linear-gradient(135deg, #FEF3C7 0%, #FDE68A 100%);
  border-radius: 12px;
  border: 2px dashed #F59E0B;
}

.coupon-card__discount-amount {
  font-size: 1.5rem;
  font-weight: 800;
  color: #92400E;
  line-height: 1.2;
}

.coupon-card__discount-label {
  font-size: 0.75rem;
  color: #92400E;
  font-weight: 600;
  margin-top: 0.25rem;
}

.coupon-card__right {
  flex: 1;
}

.coupon-card__name {
  font-size: 1rem;
  font-weight: 700;
  color: #1F2937;
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.coupon-card__conditions {
  margin-bottom: 0.5rem;
}

.coupon-card__condition {
  font-size: 0.8125rem;
  color: #6B7280;
  line-height: 1.6;
}

.coupon-card__expiry {
  font-size: 0.8125rem;
  color: #9CA3AF;
  font-weight: 500;
}

.coupon-card__unavailable {
  margin-top: 0.5rem;
  padding: 0.5rem;
  background: #FEE2E2;
  border-radius: 8px;
  font-size: 0.8125rem;
  color: #DC2626;
  font-weight: 600;
  text-align: center;
}

/* 쿠폰 적용 버튼 */
.coupon-card__btn {
  width: 100%;
  padding: 0.75rem 1rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #27B35F 100%);
  border: none;
  border-radius: 10px;
  color: white;
  font-size: 0.9375rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
}

.coupon-card__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(46, 202, 110, 0.3);
}

.coupon-card__btn:disabled {
  background: #E5E7EB;
  color: #9CA3AF;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* 쿠폰 없을 때 */
.coupon-empty {
  text-align: center;
  padding: 3rem 1.5rem;
}

.coupon-empty__icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  opacity: 0.5;
}

.coupon-empty__text {
  font-size: 1rem;
  font-weight: 600;
  color: #6B7280;
  margin-bottom: 0.5rem;
}

.coupon-empty__subtext {
  font-size: 0.875rem;
  color: #9CA3AF;
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .coupon-modal {
    max-width: 95vw;
    max-height: 85vh;
  }
  
  .coupon-input-section {
    padding: 1.25rem;
  }
  
  .coupon-input-wrapper {
    flex-direction: column;
  }
  
  .coupon-input-btn {
    width: 100%;
  }
  
  .coupon-list {
    max-height: 350px;
  }
  
  .coupon-card {
    padding: 1rem;
  }
  
  .coupon-card__content {
    gap: 0.75rem;
  }
  
  .coupon-card__left {
    min-width: 80px;
  }
  
  .coupon-card__discount {
    min-width: 80px;
    padding: 0.75rem 0.5rem;
  }
  
  .coupon-card__discount-amount {
    font-size: 1.25rem;
  }
  
  .coupon-card__name {
    font-size: 0.9375rem;
  }
  
  .coupon-card__condition {
    font-size: 0.75rem;
  }
  
  .coupon-card__expiry {
    font-size: 0.75rem;
  }
}

/* ========================================
   결제 정보 섹션
   ======================================== */
.payment-info-section {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 2px solid #E5E7EB;
}

.payment-section-header {
  margin-bottom: 2rem;
}

.payment-section-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1F2937;
  text-align: center;
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .payment-info-section {
    margin-top: 2rem;
    padding-top: 1.5rem;
  }
  
  .payment-section-header {
    margin-bottom: 1.5rem;
  }
  
  .payment-section-title {
    font-size: 1.25rem;
  }
}

/* ========================================
   빠른 결제 안내
   ======================================== */
.quick-payment-notice {
  text-align: center;
  margin: 1rem 0 0.5rem;
}

.quick-payment-notice__text {
  font-size: 0.9375rem;
  color: #6B7280;
  font-weight: 500;
  margin: 0;
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .quick-payment-notice__text {
    font-size: 0.875rem;
  }
}

/* ========================================
   통합 결제 계산서 (영수증 스타일)
   ======================================== */
.payment-summary-card {
  background: #FFFFFF;
  border: 2px solid #E5E7EB;
  border-radius: 16px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.payment-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
}

.payment-summary-row.discount-row {
  padding: 0.5rem 0;
}

.payment-summary-label {
  font-size: 1rem;
  color: #374151;
  font-weight: 500;
}

.payment-summary-label-with-button {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.discount-btn-inline {
  padding: 0.25rem 0.75rem;
  font-size: 0.8125rem;
  color: #2ECA6E;
  background: #F0FDF4;
  border: 1px solid #2ECA6E;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s;
}

.discount-btn-inline:hover {
  background: #2ECA6E;
  color: white;
}

.payment-summary-amount {
  font-size: 1rem;
  color: #1F2937;
  font-weight: 600;
}

.payment-summary-amount.discount-amount {
  color: #2ECA6E;
  font-weight: 600;
}

.payment-summary-divider {
  height: 1px;
  background: linear-gradient(to right, 
    transparent 0%, 
    #E5E7EB 10%, 
    #E5E7EB 90%, 
    transparent 100%
  );
  margin: 0.75rem 0;
}

.payment-summary-row.total-row {
  padding: 1rem 0 0;
}

.payment-summary-label.total-label {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1F2937;
}

.payment-summary-amount.total-amount {
  font-size: 1.5rem;
  font-weight: 700;
  color: #2ECA6E;
}

.payment-summary-amount.total-amount .currency {
  font-size: 1.125rem;
  margin-left: 0.25rem;
  font-weight: 600;
  opacity: 0.9;
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .payment-summary-card {
    padding: 1.25rem;
  }
  
  .payment-summary-row {
    padding: 0.625rem 0;
  }
  
  .payment-summary-label {
    font-size: 0.9375rem;
  }
  
  .payment-summary-amount {
    font-size: 0.9375rem;
  }
  
  .discount-btn-inline {
    padding: 0.1875rem 0.625rem;
    font-size: 0.75rem;
  }
  
  .payment-summary-label.total-label {
    font-size: 1rem;
  }
  
  .payment-summary-amount.total-amount {
    font-size: 1.25rem;
  }
  
  .payment-summary-amount.total-amount .currency {
    font-size: 1rem;
  }
}

/* ========================================
   6일 체험 구성 섹션 (새 디자인)
   ======================================== */
.trial-composition-section {
  background: rgba(81, 79, 164, 0.06);
  padding: 4rem 1.5rem;
  position: relative;
}

.trial-composition-container {
  max-width: 1280px;
  margin: 0 auto;
}

/* 제목 영역 */
.trial-composition-header {
  margin-bottom: 3rem;
  text-align: center;
}

.trial-composition-main-title {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.trial-composition-main-title__line1 {
  color: #7470F9;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 2.625rem;
}

.trial-composition-main-title__line2 {
  color: #000000;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 2.625rem;
}

/* 카드 그리드 */
.trial-composition-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

/* 카드 스타일 */
.trial-composition-card {
  background: #FFFFFF;
  border-radius: 20px;
  padding: 2rem 1.5rem;
  position: relative;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* 상단 배지 */
.trial-composition-card__badge {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background: #7CFA84;
  padding: 1rem 3rem;
  border-bottom-left-radius: 30px;
  border-bottom-right-radius: 30px;
  color: #222222;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.65rem;
}

/* 카드 제목 */
.trial-composition-card__title {
  margin-top: 4.5rem;
  margin-bottom: 1.5rem;
  color: #000000;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 2.15rem;
}

.trial-composition-card__title .highlight {
  color: #7470F9;
}

/* 카드 아이콘 */
.trial-composition-card__icon {
  font-size: 4.5rem; /* 72px - 기본 크기 증가 */
  line-height: 1;
  margin-bottom: 1.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.trial-composition-card__icon img {
  width: 80px;
  height: 80px;
  object-fit: contain;
}

/* 카드 설명 */
.trial-composition-card__description {
  color: #6B6E84;
  font-size: 1.125rem; /* 18px - 기본 */
  font-weight: 500;
  line-height: 1.8; /* 상대값으로 변경 */
  max-width: 100%;
  text-align: left;
}

.trial-composition-card__description .description-intro {
  font-weight: 600;
  color: #1F2937;
  margin-bottom: 0.5rem;
}

.trial-composition-section .trial-composition-card__description > p {
  margin: 0.5rem 0;
  color: #6B6E84;
  line-height: 1.8;
}

.trial-composition-card__description .description-step {
  margin-bottom: 1rem;
  padding-left: 0.5rem;
}

.trial-composition-card__description .description-step strong {
  color: #1F2937;
  display: inline;
  margin-bottom: 0;
}

.trial-composition-card__description .description-footer {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(107, 110, 132, 0.2);
}

.trial-composition-card__description .description-footer strong {
  color: #1F2937;
  display: block;
  margin-bottom: 0;
  line-height: 1.4;
}

/* 상세 설명 섹션 */
.trial-composition-card__description .description-section {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(107, 110, 132, 0.15);
}

.trial-composition-card__description .description-section:first-of-type {
  border-top: none;
}

.trial-composition-card__description .description-section strong {
  color: #1F2937;
  display: block;
  margin-bottom: 0.75rem;
  font-size: 1.0625rem;
}

.trial-composition-card__description .description-section p {
  margin: 0.5rem 0;
  line-height: 1.8;
}

/* 리스트 스타일 */
.trial-composition-card__description .description-list {
  list-style: none;
  padding-left: 0;
  margin: 0.5rem 0;
}

.trial-composition-card__description .description-list li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.5rem;
  line-height: 1.7;
}

.trial-composition-card__description .description-list li:before {
  content: "•";
  position: absolute;
  left: 0.5rem;
  color: #7470F9;
  font-weight: 700;
  font-size: 1.2em;
}

/* 단순 텍스트 콘텐츠 스타일 (POINT 3, 4) */
.description-simple-content {
  padding: 0.75rem 0.5rem;
}

/* 아이콘 리스트 스타일 */
.description-icon-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin: 1.5rem 0;
}

.description-icon-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.description-icon-item .icon-badge {
  flex-shrink: 0;
  font-size: 1.75rem;
  line-height: 1;
}

.description-icon-item .icon-content {
  flex: 1;
}

.description-icon-item strong {
  display: block;
  color: #1F2937;
  font-size: 1.0625rem;
  margin-bottom: 0.25rem;
  line-height: 1.4;
}

.description-icon-item p {
  color: #6B6E84;
  font-size: 0.9375rem;
  margin: 0;
  line-height: 1.5;
}

/* 결과 보고서 스타일 */
.description-result {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-top: 2rem;
  padding: 1.25rem;
  background: #F9FAFB;
  border-radius: 12px;
  border: 1px solid #E5E7EB;
}

.description-result .result-badge {
  flex-shrink: 0;
  font-size: 2rem;
  line-height: 1;
}

.description-result .result-content strong {
  display: block;
  color: #1F2937;
  font-size: 1.0625rem;
  margin-bottom: 0.5rem;
}

.description-result .result-content p {
  color: #6B6E84;
  font-size: 0.9375rem;
  margin: 0;
  line-height: 1.6;
}

/* 칼란 메서드 플로우 */
.description-method {
  margin: 1rem 0 1.5rem;
  padding: 1rem;
  background: linear-gradient(135deg, #F0FDF4 0%, #DCFCE7 100%);
  border-radius: 8px;
  text-align: center;
}

.description-method .method-flow {
  color: #1FA857;
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.5;
}

/* 핵심 팁 스타일 */
.description-tip {
  margin-top: 2rem;
  padding: 1.25rem;
  background: #FFF7ED;
  border-radius: 12px;
  border-left: 4px solid #F59E0B;
}

.description-tip strong {
  display: block;
  color: #92400E;
  font-size: 1.0625rem;
  margin-bottom: 0.75rem;
}

.description-tip p {
  color: #78350F;
  font-size: 0.9375rem;
  margin: 0;
  line-height: 1.7;
}

/* 하단 안내 */
.trial-composition-footer {
  text-align: center;
  font-size: 1.125rem;
  color: #6B7280;
  font-weight: 500;
  margin-top: 2rem;
}

/* PC 전용 하단 CTA 버튼 */
.trial-composition-cta {
  text-align: center;
  margin-top: 3rem;
  display: none;
}

.trial-composition-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #26B35F 100%);
  color: #FFFFFF;
  text-decoration: none;
  padding: 1.25rem 3rem;
  border-radius: 16px;
  font-weight: 700;
  font-size: 1.125rem;
  transition: all 0.3s;
  box-shadow: 0 6px 20px rgba(46, 202, 110, 0.3);
}

.trial-composition-cta__button:hover {
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(46, 202, 110, 0.4);
}

/* 모바일 최적화 */
@media (max-width: 767px) {
  .trial-composition-section {
    padding: 3rem 1.25rem;
  }
  
  .trial-composition-header {
    margin-bottom: 2rem;
  }
  
  .trial-composition-main-title__line1,
  .trial-composition-main-title__line2 {
    font-size: 1.75rem;
    line-height: 2.625rem;
  }
  
  .trial-composition-card {
    padding: 1.5rem 1rem;
  }
  
  .trial-composition-card__badge {
    font-size: 1.25rem; /* 20px - 모바일 가독성 향상 */
    padding: 0.875rem 2.5rem; /* 패딩도 증가 */
  }
  
  .trial-composition-card__title {
    margin-top: 3.5rem;
    font-size: 1.4375rem; /* 23px - 모바일 가독성 향상 */
    line-height: 2rem; /* 32px - 줄간격 증가 */
  }
  
  .trial-composition-card__icon {
    font-size: 4.5rem; /* 72px - 모바일 가독성 향상 */
  }
  
  .trial-composition-card__icon img {
    width: 90px; /* 이미지 크기 증가 */
    height: 90px;
  }
  
  .trial-composition-card__description {
    font-size: 1.125rem; /* 18px - 모바일 가독성 향상 */
    line-height: 1.8rem; /* 28.8px - 줄간격 증가 */
  }
  
  .trial-composition-card__description .description-step {
    margin-bottom: 0.75rem;
  }
  
  .trial-composition-card__description .description-section strong {
    font-size: 1.0625rem; /* 17px */
  }
  
  .trial-composition-card__description .description-list li {
    font-size: 1.0625rem; /* 17px - 리스트도 키움 */
    line-height: 1.7; /* 줄간격 증가 */
  }
}

/* PC 레이아웃 (1024px 이상) */
@media (min-width: 1024px) {
  .trial-composition-section {
    padding: 6rem 2rem;
  }
  
  .trial-composition-header {
    margin-bottom: 4rem;
  }
  
  .trial-composition-main-title__line1,
  .trial-composition-main-title__line2 {
    font-size: 3.125rem;
    line-height: 4.375rem;
  }
  
  .trial-composition-cards {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    max-width: 480px; /* 최대한 컴팩트하게 */
    margin: 0 auto;
  }
  
  .trial-composition-card {
    padding: 1.75rem 1.25rem; /* 패딩 최소화 */
    min-height: auto;
    width: 100%; /* 모든 카드 동일 너비 */
  }
  
  .trial-composition-card__badge {
    font-size: 1.375rem;
    padding: 1rem 3.5rem;
  }
  
  .trial-composition-card__title {
    margin-top: 5rem;
    font-size: 2rem;
    line-height: 2.875rem;
  }
  
  .trial-composition-card__icon {
    font-size: 5rem;
  }
  
  .trial-composition-card__icon img {
    width: 120px;
    height: 120px;
  }
  
  .trial-composition-card__description {
    font-size: 1.25rem;
    line-height: 2rem;
  }
  
  .trial-composition-card__description .description-step {
    margin-bottom: 1.25rem;
  }
  
  .trial-composition-card__description .description-section {
    margin-top: 2rem;
    padding-top: 1.5rem;
  }
  
  .trial-composition-card__description .description-section strong {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
  
  .trial-composition-card__description .description-list li {
    font-size: 1.125rem;
    margin-bottom: 0.75rem;
  }
  
  /* PC에서 하단 CTA 표시 */
  .trial-composition-cta {
    display: block;
    margin-top: 4rem;
  }
}

/* ========================================
   모바일 전용 Sticky CTA 버튼
   ======================================== */
.sticky-cta-button {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: #FFFFFF;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
  padding: 0.75rem 1rem;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  display: block;
}

.sticky-cta-button.show {
  transform: translateY(0);
}

.sticky-cta-button__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: linear-gradient(135deg, #2ECA6E 0%, #26B35F 100%);
  color: #FFFFFF;
  text-decoration: none;
  padding: 1rem 1.5rem;
  border-radius: 12px;
  font-weight: 700;
  font-size: 1rem;
  transition: all 0.2s;
  box-shadow: 0 4px 12px rgba(46, 202, 110, 0.3);
}

.sticky-cta-button__link:active {
  transform: scale(0.98);
}

.sticky-cta-button__text {
  flex: 1;
  text-align: center;
}

/* PC에서는 숨김 */
@media (min-width: 1024px) {
  .sticky-cta-button {
    display: none;
  }
}

/* ============================
   Floating 아톡이 챗봇 버튼 (AI)
   ============================ */
.floating-chatbot-button {
  position: fixed;
  bottom: 5rem; /* Sticky CTA 버튼 위에 위치 (기본) */
  right: 1rem;
  z-index: 101; /* CTA 버튼보다 높게 */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  width: 68px;
  height: 68px;
  background: #FFFFFF;
  color: #1FA857; /* 진한 초록색 - 가독성 향상 */
  text-decoration: none;
  border-radius: 50%;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1); /* 그림자 강조 */
  transition: all 0.3s ease;
}

.floating-chatbot-button::after {
  content: 'AI 상담';
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  background: rgba(31, 168, 87, 0.95);
  color: white;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.floating-chatbot-button:hover::after {
  opacity: 1; /* 호버 시 툴팁 표시 */
}

.floating-chatbot-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(31, 168, 87, 0.25), 0 4px 12px rgba(0, 0, 0, 0.12);
  background: #F0FDF4;
}

.floating-chatbot-button:active {
  transform: translateY(-1px);
  background: #DCFCE7;
}

.floating-chatbot-button__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.floating-chatbot-button__icon img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.floating-chatbot-button__text {
  font-size: 0.75rem; /* 12px - 크기 증가 */
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

/* PC 버전 */
@media (min-width: 1024px) {
  .floating-chatbot-button {
    bottom: 1.5rem; /* PC에서는 Sticky CTA가 없으므로 기본 위치 */
    right: 1.5rem;
    width: 76px;
    height: 76px;
  }
  
  .floating-chatbot-button__icon img {
    width: 32px;
    height: 32px;
  }
  
  .floating-chatbot-button__text {
    font-size: 0.8125rem; /* 13px - PC 버전 크기 증가 */
  }
  
  .floating-chatbot-button::after {
    right: calc(100% + 16px); /* PC에서 툴팁 간격 증가 */
    font-size: 0.875rem; /* 14px */
    padding: 0.625rem 1rem;
  }
}

