/**
 * 홈 비주얼 업그레이드 — 기능/링크 변경 없음
 * 네이비·골드 브랜드 유지, 타이포·깊이·모션만 강화
 */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

:root:has(.hero-bleed) {
  --display: 'Fraunces', 'Pretendard', 'Apple SD Gothic Neo', serif;
  --home-ink: #07111f;
  --home-mist: rgba(255, 248, 235, 0.08);
}

/* —— Hero: 한 컷 구성 강화 —— */
.hero-bleed {
  min-height: min(94vh, 820px);
  isolation: isolate;
}
.hero-bleed__media img {
  animation: homeHeroDrift 22s ease-in-out infinite alternate;
  transform: scale(1.08);
  filter: saturate(1.05) contrast(1.04);
}
@keyframes homeHeroDrift {
  from {
    transform: scale(1.08) translate3d(0, 0, 0);
  }
  to {
    transform: scale(1.14) translate3d(-1.5%, -1%, 0);
  }
}
.hero-bleed .hero-bleed__shade {
  background:
    radial-gradient(120% 80% at 15% 85%, rgba(201, 168, 74, 0.18), transparent 55%),
    linear-gradient(180deg, rgba(7, 17, 31, 0.55) 0%, rgba(7, 17, 31, 0.28) 42%, rgba(7, 17, 31, 0.92) 100%),
    linear-gradient(90deg, rgba(7, 17, 31, 0.78) 0%, rgba(7, 17, 31, 0.2) 58%, rgba(7, 17, 31, 0.45) 100%);
}
.hero-bleed .hero-bleed__content {
  max-width: 42rem;
  padding: 40px 0 64px;
}
.hero-bleed__content .brand-signal {
  font-family: var(--display);
  font-size: clamp(1.55rem, 3.8vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #f0d78a;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
  margin-bottom: 14px;
}
.hero-bleed__content h1 {
  font-family: var(--display);
  font-size: clamp(2.15rem, 6.2vw, 3.55rem);
  line-height: 1.12;
  letter-spacing: -0.035em;
  font-weight: 700;
  text-shadow: 0 4px 28px rgba(0, 0, 0, 0.4);
  margin: 0 0 16px;
}
.hero-bleed__content .lead {
  font-size: clamp(1.02rem, 2.2vw, 1.18rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.9);
  max-width: 34rem;
  margin: 0 0 26px;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.hero-actions .btn {
  min-height: 48px;
  padding: 0 18px;
  border-radius: 14px;
  font-weight: 800;
  letter-spacing: -0.01em;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    background 0.25s ease;
}
.hero-actions .btn:hover {
  transform: translateY(-2px);
}
.hero-actions .btn-form,
.hero-actions .btn-gold {
  box-shadow: 0 10px 28px rgba(201, 168, 74, 0.28);
}
.hero-actions__secondary {
  display: contents;
}
@media (min-width: 720px) {
  .hero-actions__secondary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
    margin-top: 2px;
  }
  .hero-actions__secondary .btn {
    opacity: 0.95;
  }
}

/* 히어로 CTA 순차 등장 */
.hero-bleed__content .hero-actions {
  opacity: 0;
  transform: translateY(16px);
  animation: hmFadeUp 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.52s forwards;
}

/* —— Trust rail —— */
.section-tight--home,
.hero-bleed + .section-tight {
  position: relative;
  z-index: 2;
  margin-top: -28px;
  padding-bottom: 8px;
}
.trust-rail {
  background: linear-gradient(180deg, #fffef9 0%, #ffffff 100%);
  border: 1px solid rgba(18, 58, 92, 0.08);
  box-shadow: 0 18px 48px rgba(7, 17, 31, 0.1);
  border-radius: 20px;
  padding: 18px 12px;
  gap: 8px;
}
.trust-rail__item {
  position: relative;
}
.trust-rail__item strong {
  font-family: var(--display);
  font-size: clamp(1.15rem, 2.5vw, 1.4rem);
  letter-spacing: -0.02em;
}
.trust-rail__item span {
  color: #5a6b7c;
}

/* —— Section rhythm —— */
.page-home .section-head h2,
body:has(.hero-bleed) .section-head h2 {
  font-family: var(--display);
  letter-spacing: -0.03em;
  line-height: 1.25;
}
body:has(.hero-bleed) .section-head .eyebrow {
  color: var(--gold);
  font-weight: 800;
  letter-spacing: 0.08em;
}
body:has(.hero-bleed) .section-alt {
  background:
    radial-gradient(80% 60% at 100% 0%, rgba(201, 168, 74, 0.07), transparent 50%),
    linear-gradient(180deg, #f7f4ee 0%, #f3f0ea 100%);
}
body:has(.hero-bleed) .section:not(.section-alt) {
  background:
    radial-gradient(70% 50% at 0% 100%, rgba(18, 58, 92, 0.05), transparent 55%),
    #fff;
}

/* —— Reviews —— */
.review-marquee-band {
  background: linear-gradient(165deg, #0a1628 0%, #123a5c 55%, #0d2438 100%);
  padding: 56px 0 48px;
  position: relative;
  overflow: hidden;
}
.review-marquee-band::before {
  content: '';
  position: absolute;
  inset: -20% 40% auto -10%;
  height: 60%;
  background: radial-gradient(circle, rgba(240, 215, 138, 0.12), transparent 70%);
  pointer-events: none;
}
.review-marquee-band .section-head h2,
.review-marquee-band .section-head .muted,
.review-marquee-band .eyebrow {
  color: #fff;
}
.review-marquee-band .section-head .muted {
  color: rgba(255, 255, 255, 0.72);
}
.review-marquee-band .eyebrow {
  color: #f0d78a;
}
/* 카드는 기존처럼 다크 글래스 — 흰 배경 + 흰 글자 대비 깨짐 금지 */
.review-card {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(232, 201, 106, 0.3);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
  transition: transform 0.35s ease;
}
.review-card:hover {
  transform: translateY(-4px);
}
.review-card__quote {
  color: #fff !important;
}
.review-card__who {
  color: rgba(255, 255, 255, 0.78) !important;
}
.review-card__chip {
  color: #f5e6b0 !important;
}

/* —— Event banners —— */
.ev-banner--form,
.ev-banner--dual {
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(201, 168, 74, 0.22);
  box-shadow: 0 22px 50px rgba(7, 17, 31, 0.12);
}
.ev-banner__title {
  font-family: var(--display);
  letter-spacing: -0.03em;
}
.ev-chip-card {
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.ev-chip-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(7, 17, 31, 0.12);
}

/* —— Steps —— */
.steps--home .step {
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(18, 58, 92, 0.08);
  padding: 22px 18px;
  box-shadow: 0 10px 28px rgba(7, 17, 31, 0.05);
  transition:
    transform 0.3s ease,
    border-color 0.3s ease;
}
.steps--home .step:hover {
  transform: translateY(-4px);
  border-color: rgba(201, 168, 74, 0.45);
}
.steps--home .step h3 {
  font-family: var(--display);
  letter-spacing: -0.02em;
}

/* —— Cards / grids —— */
.course-card--home,
.teacher-card--home,
.post-card--home,
.level-card {
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease;
}
.course-card--home:hover,
.teacher-card--home:hover,
.post-card--home:hover,
.level-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 44px rgba(7, 17, 31, 0.12);
}
.course-card--home .card-media img,
.post-thumb img,
.teacher-photo img,
.method-panel img,
.level-card__media img {
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.course-card--home:hover .card-media img,
.post-card--home:hover .post-thumb img,
.teacher-card--home:hover .teacher-photo img,
.method-panel--home:hover img,
.level-card:hover .level-card__media img {
  transform: scale(1.05);
}

/* —— Method panels —— */
.method-panel--home {
  border-radius: 22px;
  overflow: hidden;
  position: relative;
}
.method-panel--home h3 {
  font-family: var(--display);
  font-size: clamp(1.35rem, 3vw, 1.7rem);
}

/* —— Final CTA —— */
.final-cta--home {
  border-radius: 24px;
  padding: clamp(28px, 5vw, 44px);
  background:
    radial-gradient(90% 80% at 10% 0%, rgba(201, 168, 74, 0.2), transparent 50%),
    linear-gradient(145deg, #0b1a2c 0%, #123a5c 55%, #0a1624 100%);
  color: #fff;
  box-shadow: 0 24px 56px rgba(7, 17, 31, 0.2);
}
.final-cta--home h2 {
  font-family: var(--display);
  letter-spacing: -0.03em;
  color: #fff;
}
.final-cta--home .muted {
  color: rgba(255, 255, 255, 0.78);
}
.final-cta--home .btn {
  transition: transform 0.25s ease;
}
.final-cta--home .btn:hover {
  transform: translateY(-2px);
}

/* —— FAQ —— */
.faq-item--home {
  border-radius: 14px;
  border: 1px solid rgba(18, 58, 92, 0.1);
  background: #fff;
  padding: 4px 14px;
  transition: border-color 0.25s ease;
}
.faq-item--home[open] {
  border-color: rgba(201, 168, 74, 0.5);
  box-shadow: 0 8px 24px rgba(7, 17, 31, 0.06);
}
.faq-item--home summary {
  font-weight: 800;
  letter-spacing: -0.01em;
}

/* —— Region CTA —— */
.region-cta--home {
  border-radius: 20px;
  background: linear-gradient(120deg, #123a5c, #1a4d78);
  color: #fff;
  padding: 24px;
  gap: 16px;
  box-shadow: 0 16px 40px rgba(18, 58, 92, 0.2);
}
.region-cta--home h2 {
  color: #fff;
  font-family: var(--display);
}
.region-cta--home .muted {
  color: rgba(255, 255, 255, 0.78);
}

/* —— Promo / curriculum shots —— */
.promo-shot--level,
.curric-shot--home {
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(7, 17, 31, 0.14);
}
.promo-shot--level:hover .promo-shot__media img,
.curric-shot--home:hover img {
  transform: scale(1.04);
}
.promo-shot--level .promo-shot__media img,
.curric-shot--home img {
  transition: transform 0.7s ease;
}

@media (prefers-reduced-motion: reduce) {
  .hero-bleed__media img,
  .course-card--home,
  .teacher-card--home,
  .post-card--home,
  .level-card,
  .review-card,
  .ev-chip-card,
  .steps--home .step {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

@media (max-width: 719px) {
  .hero-bleed {
    min-height: min(88vh, 700px);
  }
  .section-tight--home {
    margin-top: -18px;
  }
  .trust-rail {
    border-radius: 16px;
  }
}
