:root {
  --lumi-navy: #0a1020;
  --lumi-navy-mid: #141f38;
  --lumi-navy-soft: #1e2d4f;
  --lumi-gold: #d4af37;
  --lumi-gold-bright: #f0d060;
  --lumi-gold-d: #9a7830;
  --lumi-gold-light: #faf3e0;
  --lumi-cream: #fdfbf7;
  --lumi-bg: #f0f2f8;
  --lumi-ink: #0f1729;
  --lumi-ink-soft: #454d61;
  --lumi-line: #e4e8f0;
  --lumi-white: #ffffff;
  --lumi-shell: 100%;
  --lumi-radius: 16px;
  --lumi-radius-lg: 24px;
  --lumi-shadow: 0 12px 40px rgba(10, 16, 32, 0.1);
  --lumi-shadow-sm: 0 4px 16px rgba(10, 16, 32, 0.06);
  --lumi-safe-bottom: env(safe-area-inset-bottom, 0px);
}

*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-size: 16px;
}

/* sticky 네비에 가려지지 않도록 앵커 오프셋 */
#lumi-hero,
#lumi-why,
#lumi-centers,
#lumi-eea,
#lumi-start,
#lumi-compare,
#lumi-home-faq,
#lumi-consult,
#lumi-page-hero-mount {
  scroll-margin-top: calc(88px + env(safe-area-inset-top, 0px));
}

body {
  margin: 0;
  font-family: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
  color: var(--lumi-ink);
  background: var(--lumi-bg);
  line-height: 1.7;
  font-size: 1rem;
  word-break: keep-all;
  overflow-wrap: break-word;
  padding-bottom: calc(76px + var(--lumi-safe-bottom));
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

#lumi-root {
  max-width: var(--lumi-shell);
  margin: 0 auto;
  background: var(--lumi-white);
  overflow-x: hidden;
}

/* ─── NAV ─── */
.lumi-nav {
  position: sticky;
  top: 0;
  z-index: 200;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(228, 232, 240, 0.8);
  padding-top: env(safe-area-inset-top, 0px);
}

.lumi-nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  gap: 12px;
  max-width: 1100px;
  margin: 0 auto;
}

.lumi-nav-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.lumi-nav-logo {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  object-fit: contain;
  background: #fff;
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-nav-title {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--lumi-ink);
}

.lumi-nav-chips {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.lumi-nav-chips::-webkit-scrollbar { display: none; }

.lumi-nav-chip {
  flex-shrink: 0;
  font-size: 13.5px;
  font-weight: 700;
  padding: 8px 12px;
  border-radius: 999px;
  color: var(--lumi-ink-soft);
  transition: background 0.2s, color 0.2s;
}

.lumi-nav-chip:hover,
.lumi-nav-chip.is-active {
  background: var(--lumi-navy-mid);
  color: #fff;
}

.lumi-nav-chip--cta {
  background: linear-gradient(135deg, var(--lumi-gold-bright), var(--lumi-gold));
  color: var(--lumi-navy);
  font-weight: 800;
}

.lumi-nav-chip--cta:hover { filter: brightness(1.05); color: var(--lumi-navy); }

.lumi-nav-chip--cta.is-active {
  background: var(--lumi-navy-mid);
  color: #fff;
  box-shadow: inset 0 0 0 2px var(--lumi-gold);
}

.lumi-nav-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 1px solid var(--lumi-line);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  flex-shrink: 0;
  margin-left: auto;
  touch-action: manipulation;
}

.lumi-nav-toggle span {
  display: block;
  height: 2px;
  background: var(--lumi-ink);
  border-radius: 2px;
  transition: transform 0.2s, opacity 0.2s;
}

.lumi-nav-drawer {
  display: block;
  position: fixed;
  top: 0;
  right: 0;
  width: min(320px, 92vw);
  height: 100%;
  height: 100dvh;
  z-index: 300;
  background: #fff;
  box-shadow: -8px 0 32px rgba(10, 16, 32, 0.12);
  transform: translateX(100%);
  transition: transform 0.3s ease;
  padding-top: env(safe-area-inset-top, 0px);
}

.lumi-nav-drawer[hidden] { display: none !important; }

.lumi-nav-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 16px 8px;
  border-bottom: 1px solid var(--lumi-line);
}

.lumi-nav-drawer-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--lumi-ink);
}

.lumi-nav-drawer-close {
  width: 44px;
  height: 44px;
  border: 1px solid var(--lumi-line);
  border-radius: 12px;
  background: #fff;
  color: var(--lumi-ink);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}

.lumi-nav-drawer-inner {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 12px calc(24px + var(--lumi-safe-bottom));
  overflow-y: auto;
  max-height: calc(100dvh - 72px - env(safe-area-inset-top, 0px));
  -webkit-overflow-scrolling: touch;
}

.lumi-nav-drawer-link {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 700;
  color: var(--lumi-ink-soft);
}

.lumi-nav-drawer-link:hover,
.lumi-nav-drawer-link.is-active {
  background: var(--lumi-bg);
  color: var(--lumi-ink);
}

.lumi-nav-drawer-link--cta {
  background: linear-gradient(135deg, var(--lumi-gold-bright), var(--lumi-gold));
  color: var(--lumi-navy);
}

.lumi-nav-drawer-link--cta.is-active {
  box-shadow: inset 0 0 0 2px var(--lumi-navy-mid);
}

.lumi-nav-backdrop {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 299;
  background: rgba(10, 16, 32, 0.45);
}

.lumi-nav-backdrop[hidden] { display: none !important; }

body.lumi-nav-open { overflow: hidden; }
body.lumi-nav-open .lumi-nav-drawer { transform: translateX(0); }
body.lumi-nav-open .lumi-nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.lumi-nav-open .lumi-nav-toggle span:nth-child(2) { opacity: 0; }
body.lumi-nav-open .lumi-nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.lumi-breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 13.5px;
  color: var(--lumi-ink-soft);
}

.lumi-breadcrumb a {
  color: var(--lumi-navy-mid);
  font-weight: 700;
}

.lumi-convert--compact { margin: 0; }
.lumi-convert--compact .lumi-convert-inner { padding: 20px; }
.lumi-convert--compact .lumi-convert-head h2 { font-size: 18px; }

.lumi-footer-meta { font-size: 14.5px; opacity: 0.7; margin-top: 12px; }
.lumi-footer-tel { margin-top: 16px; }

.lumi-back-top {
  position: fixed;
  right: 16px;
  bottom: calc(88px + var(--lumi-safe-bottom));
  z-index: 240;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: var(--lumi-navy-mid);
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  box-shadow: var(--lumi-shadow);
  cursor: pointer;
  transition: transform 0.2s, opacity 0.2s;
}

.lumi-back-top:hover { transform: translateY(-2px); }

.lumi-lightbox {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 16, 32, 0.92);
  padding: 48px 16px;
}

.lumi-lightbox[hidden] { display: none; }
body.lumi-lightbox-open { overflow: hidden; }

.lumi-lightbox-img {
  max-width: min(960px, 100%);
  max-height: 80vh;
  border-radius: 12px;
  box-shadow: var(--lumi-shadow);
}

.lumi-lightbox-close,
.lumi-lightbox-prev,
.lumi-lightbox-next {
  position: absolute;
  border: none;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  font-size: 24px;
  line-height: 1;
}

.lumi-lightbox-close { top: 16px; right: 16px; }
.lumi-lightbox-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.lumi-lightbox-next { right: 16px; top: 50%; transform: translateY(-50%); }

.lumi-review-controls {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 16px;
}

.lumi-review-btn {
  width: 40px;
  height: 40px;
  border: 1px solid var(--lumi-line);
  border-radius: 50%;
  background: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  color: var(--lumi-navy-mid);
}

.lumi-review-btn:hover {
  border-color: var(--lumi-gold);
  color: var(--lumi-gold-d);
}

.lumi-noscript-bar {
  display: none;
  padding: 12px 16px;
  background: #fff3cd;
  color: #664d03;
  text-align: center;
  font-size: 14.5px;
  font-weight: 600;
}

.lumi-reduced-motion .lumi-fade,
.lumi-reduced-motion .lumi-ticker-inner {
  transition: none !important;
  animation: none !important;
}

/* ─── HERO ─── */
.lumi-hero {
  position: relative;
  min-height: 92vh;
  min-height: 92dvh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
  overflow: hidden;
}

/* Poster hero: 사진과 문구를 위아래로 분리 (겹침 금지) */
.lumi-hero--poster {
  min-height: 0 !important;
  display: block !important;
  justify-content: flex-start !important;
  background: #05070c;
  color: #fff;
  overflow: hidden;
}

.lumi-hero--poster .lumi-hero-visual {
  position: relative !important;
  inset: auto !important;
  width: 100%;
  height: min(48dvh, 480px);
  margin: 0;
  background: #05070c;
  overflow: hidden;
  isolation: isolate;
}

.lumi-hero--poster .lumi-hero-visual picture,
.lumi-hero--poster .lumi-hero-img {
  display: block;
  width: 100%;
  height: 100%;
}

.lumi-hero--poster .lumi-hero-img {
  object-fit: cover;
  /* 이미지에 박힌 로고/슬로건 영역을 잘라내고 인물 중심 */
  object-position: center 42%;
  transform: none;
  animation: none;
  will-change: auto;
}

.lumi-hero--poster .lumi-hero-glow,
.lumi-hero--poster .lumi-hero-shine {
  display: none !important;
}

.lumi-hero--poster .lumi-hero-content {
  position: relative !important;
  z-index: 3;
  padding: 32px 20px 40px;
  max-width: none !important;
  margin: 0 !important;
  width: 100% !important;
  background: #05070c !important;
  color: #fff;
  animation: none;
  container-type: inline-size;
  container-name: lumi-hero-copy;
}

.lumi-hero--poster .lumi-hero-sub {
  color: rgba(255, 255, 255, 0.88);
  max-width: 36em;
  margin: 0 0 16px;
  animation: lumiContentRise 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.45s both;
}

.lumi-hero--poster .lumi-hero-actions {
  animation: lumiContentRise 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.55s both;
}

.lumi-hero--poster .lumi-hero-pills {
  animation: lumiContentRise 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.65s both;
}

.lumi-hero--poster .lumi-hero-pill {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.92);
}

.lumi-sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@keyframes lumiHeroReveal {
  from { opacity: 0; transform: scale(1.06); }
  to { opacity: 1; transform: scale(1); }
}

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

@keyframes lumiGlowPulse {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 0.95; transform: scale(1.08); }
}

@keyframes lumiShineSweep {
  from { transform: translateX(-120%); }
  to { transform: translateX(120%); }
}

@media (prefers-reduced-motion: reduce) {
  .lumi-hero--poster .lumi-hero-img,
  .lumi-hero--poster .lumi-hero-content,
  .lumi-hero--poster .lumi-hero-sub,
  .lumi-hero--poster .lumi-hero-actions,
  .lumi-hero--poster .lumi-hero-pills,
  .lumi-hero--poster .lumi-hero-glow,
  .lumi-hero--poster .lumi-hero-shine {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ─── EEA IDIOM HERO ─── */
.lumi-hero--eea {
  min-height: 0;
  justify-content: center;
  position: relative;
  color: #fff;
  overflow: hidden;
  background: var(--lumi-navy);
}

.lumi-eea-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 55% at 78% 40%, rgba(232, 96, 64, 0.28), transparent 60%),
    radial-gradient(ellipse 50% 45% at 12% 80%, rgba(212, 175, 55, 0.14), transparent 55%),
    linear-gradient(165deg, #0a1020 0%, #141f38 48%, #1a1530 100%);
  pointer-events: none;
}

.lumi-eea-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 28px;
  align-items: center;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 36px 20px 40px;
}

.lumi-eea-hero-copy {
  animation: lumiContentRise 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}

.lumi-eea-brand {
  margin: 0 0 12px;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--lumi-gold-bright);
  text-transform: uppercase;
}

.lumi-eea-title {
  margin: 0 0 14px;
  font-size: clamp(1.75rem, 5vw, 2.75rem);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: #fff;
}

.lumi-eea-sub {
  margin: 0 0 22px;
  max-width: 28em;
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.86);
}

.lumi-hero--eea .lumi-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.lumi-eea-hero-visual {
  position: relative;
  display: flex;
  justify-content: center;
  animation: lumiHeroReveal 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

.lumi-eea-book {
  position: relative;
  width: min(72vw, 320px);
  border-radius: 6px 14px 14px 6px;
  overflow: hidden;
  box-shadow:
    0 28px 60px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.08);
  transform-origin: center bottom;
}

.lumi-eea-book-img {
  width: 100%;
  height: auto;
  display: block;
}

.lumi-eea-book-shine {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.32) 48%, transparent 62%);
  transform: translateX(-120%);
  animation: lumiShineSweep 2.8s ease 0.85s both;
}

.lumi-eea-float {
  position: absolute;
  top: 8%;
  right: max(0px, calc(50% - 200px));
  margin: 0;
  max-width: 9.5em;
  padding: 10px 14px;
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--lumi-navy);
  background: rgba(255, 250, 235, 0.95);
  border: 1px solid rgba(212, 175, 55, 0.45);
  border-radius: 14px 14px 14px 4px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
  animation: lumiEeaFloat 4.2s ease-in-out 1.1s infinite;
}

@keyframes lumiEeaFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* EEA course intro */
.lumi-eea-block-title {
  margin: 28px 0 14px;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--lumi-navy);
}

.lumi-eea-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}

.lumi-eea-step {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 14px;
  row-gap: 4px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: calc(var(--eea-i, 0) * 0.1s);
}

.lumi-fade.is-visible .lumi-eea-step {
  opacity: 1;
  transform: translateY(0);
}

.lumi-eea-step-time {
  grid-row: 1 / span 2;
  align-self: center;
  min-width: 52px;
  padding: 8px 0;
  text-align: center;
  font-size: 14.5px;
  font-weight: 900;
  color: var(--lumi-navy);
  background: linear-gradient(135deg, var(--lumi-gold-bright), var(--lumi-gold));
  border-radius: 10px;
}

.lumi-eea-step strong {
  font-size: 15px;
  color: var(--lumi-ink);
}

.lumi-eea-step p {
  margin: 0;
  grid-column: 2;
  font-size: 14.5px;
  color: var(--lumi-ink-soft);
  line-height: 1.5;
}

.lumi-eea-mode-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.lumi-eea-mode {
  padding: 16px 14px;
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1), transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.2s, box-shadow 0.2s;
  transition-delay: calc(0.15s + var(--eea-i, 0) * 0.08s);
}

.lumi-fade.is-visible .lumi-eea-mode {
  opacity: 1;
  transform: translateY(0);
}

.lumi-eea-mode:hover {
  border-color: rgba(212, 175, 55, 0.55);
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-eea-mode-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-bottom: 8px;
  font-size: 13.5px;
  font-weight: 900;
  color: var(--lumi-navy);
  background: var(--lumi-gold-light);
  border-radius: 8px;
}

.lumi-eea-mode strong {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
}

.lumi-eea-mode p {
  margin: 0;
  font-size: 13.5px;
  color: var(--lumi-ink-soft);
  line-height: 1.45;
}

.lumi-eea-point-list {
  margin: 0;
  padding: 0 0 0 1.15em;
}

.lumi-eea-point-list li {
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--lumi-ink);
}

.lumi-eea-point-list li::marker {
  color: var(--lumi-gold-d);
}

@media (min-width: 768px) {
  .lumi-eea-hero-inner {
    grid-template-columns: 1.05fr 0.95fr;
    gap: 40px;
    padding: 48px 28px 56px;
  }

  .lumi-eea-book {
    width: min(100%, 360px);
  }

  .lumi-eea-steps {
    grid-template-columns: repeat(3, 1fr);
  }

  .lumi-eea-step {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    text-align: center;
  }

  .lumi-eea-step-time {
    grid-row: auto;
    justify-self: center;
    min-width: 64px;
    margin-bottom: 4px;
  }

  .lumi-eea-step p {
    grid-column: auto;
  }

  .lumi-eea-mode-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .lumi-eea-float {
    right: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lumi-eea-hero-copy,
  .lumi-eea-hero-visual,
  .lumi-eea-book-shine,
  .lumi-eea-float,
  .lumi-eea-step,
  .lumi-eea-mode {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

.lumi-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.lumi-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}

.lumi-hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(10,16,32,0.35) 0%, rgba(10,16,32,0.55) 40%, rgba(10,16,32,0.92) 100%),
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(212,175,55,0.12), transparent 60%);
}

.lumi-hero-glow {
  position: absolute;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,175,55,0.25), transparent 70%);
  top: 10%;
  right: -10%;
  z-index: 1;
  pointer-events: none;
}

.lumi-hero-content {
  position: relative;
  z-index: 2;
  padding: 32px 24px 40px;
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
}

.lumi-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  backdrop-filter: blur(8px);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-bottom: 16px;
  color: var(--lumi-gold-bright);
}

.lumi-hero-badge::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--lumi-gold-bright);
  box-shadow: 0 0 8px var(--lumi-gold);
}

.lumi-hero h1 {
  margin: 0 0 16px;
  font-size: clamp(28px, 7vw, 42px);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.03em;
  text-shadow: 0 4px 24px rgba(0,0,0,0.3);
}

.lumi-hero h1 em {
  font-style: normal;
  background: linear-gradient(135deg, var(--lumi-gold-bright), var(--lumi-gold));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.lumi-hero-sub {
  margin: 0 0 28px;
  font-size: clamp(15px, 3.5vw, 17px);
  line-height: 1.75;
  opacity: 0.92;
  max-width: 480px;
}

.lumi-hero-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 480px;
}

.lumi-hero-actions .lumi-btn--gold {
  white-space: nowrap;
  font-size: clamp(12px, calc((100vw - 48px) / 22), 15px);
  font-size: clamp(12px, 4.4cqw, 15px);
  padding-left: 14px;
  padding-right: 14px;
  letter-spacing: -0.03em;
}

.lumi-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 24px;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 800;
  border: none;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
  text-align: center;
}

.lumi-btn:active { transform: scale(0.98); }

.lumi-btn--gold {
  background: linear-gradient(135deg, var(--lumi-gold-bright), var(--lumi-gold));
  color: var(--lumi-navy);
  box-shadow: 0 8px 28px rgba(212, 175, 55, 0.45);
}

.lumi-btn--ghost {
  background: rgba(255,255,255,0.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.3);
  backdrop-filter: blur(8px);
}

.lumi-btn--outline {
  background: transparent;
  color: var(--lumi-navy-mid);
  border: 1.5px solid var(--lumi-line);
}

.lumi-btn--outline:hover {
  border-color: var(--lumi-gold);
  color: var(--lumi-gold-d);
}

.lumi-hero-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}

.lumi-hero-pill {
  font-size: 13.5px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.9);
}

/* ─── TICKER ─── */
.lumi-ticker {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--lumi-navy);
  color: #fff;
  padding: 10px 0;
  overflow: hidden;
}

.lumi-ticker-label {
  flex-shrink: 0;
  margin-left: 20px;
  padding: 4px 10px;
  border-radius: 6px;
  background: linear-gradient(135deg, var(--lumi-gold), var(--lumi-gold-d));
  color: var(--lumi-navy);
  font-size: 12.5px;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.lumi-ticker-track {
  flex: 1;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.lumi-ticker-inner {
  display: flex;
  gap: 48px;
  white-space: nowrap;
  animation: lumi-ticker 40s linear infinite;
  font-size: 14.5px;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
}

@keyframes lumi-ticker {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ─── STATS ─── */
.lumi-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--lumi-line);
  border-bottom: 1px solid var(--lumi-line);
}

.lumi-stat {
  background: #fff;
  padding: 20px 8px;
  text-align: center;
}

.lumi-stat strong {
  display: block;
  font-size: clamp(22px, 5.2vw, 28px);
  font-weight: 800;
  color: var(--lumi-navy-mid);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.lumi-stat span {
  display: block;
  margin-top: 6px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--lumi-ink-soft);
  line-height: 1.4;
  word-break: keep-all;
}

/* ─── CONVERSION PANEL ─── */
.lumi-convert {
  padding: 28px 20px;
  background: linear-gradient(180deg, #fff, var(--lumi-cream));
  border-bottom: 1px solid var(--lumi-line);
}

.lumi-convert-inner { max-width: 520px; margin: 0 auto; }

.lumi-convert-head {
  text-align: center;
  margin-bottom: 20px;
}

.lumi-convert-head p {
  margin: 0 0 6px;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--lumi-gold-d);
  text-transform: uppercase;
}

.lumi-convert-head h2 {
  margin: 0;
  font-size: clamp(20px, 4.5vw, 24px);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.03em;
}

.lumi-convert-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: 12px;
}

.lumi-convert-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 8px;
  border-radius: 12px;
  font-size: 13.5px;
  font-weight: 700;
  min-height: 48px;
  text-align: center;
}

.lumi-convert-sub--tel { background: var(--lumi-navy); color: #fff; }
.lumi-convert-sub--kakao { background: #FEE500; color: #191919; }

/* ─── SECTIONS ─── */
.lumi-section {
  padding: 56px 20px;
  border-bottom: 1px solid var(--lumi-line);
}

.lumi-section--alt { background: var(--lumi-bg); }
.lumi-section--cream { background: var(--lumi-cream); }
.lumi-section--dark {
  background: linear-gradient(160deg, var(--lumi-navy) 0%, var(--lumi-navy-mid) 100%);
  color: #fff;
  border-bottom: none;
}

.lumi-section-inner { max-width: 1000px; margin: 0 auto; }

.lumi-kicker {
  margin: 0 0 8px;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lumi-gold-d);
  text-align: center;
}

.lumi-section--dark .lumi-kicker { color: var(--lumi-gold-bright); }

.lumi-h2 {
  margin: 0 0 12px;
  font-size: clamp(24px, 5.5vw, 32px);
  font-weight: 800;
  text-align: center;
  letter-spacing: -0.03em;
  line-height: 1.3;
}

.lumi-h3 {
  margin: 0 0 12px;
  font-size: 22px;
  font-weight: 800;
  text-align: center;
  letter-spacing: -0.02em;
  color: var(--lumi-ink);
}

.lumi-divider {
  width: 48px;
  height: 3px;
  background: linear-gradient(90deg, var(--lumi-gold), var(--lumi-gold-bright));
  margin: 0 auto 20px;
  border-radius: 2px;
}

.lumi-section--dark .lumi-divider { background: var(--lumi-gold); }

.lumi-lead {
  margin: 0 auto 32px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--lumi-ink-soft);
  text-align: center;
  max-width: 560px;
}

.lumi-section--dark .lumi-lead { color: rgba(255,255,255,0.78); }

/* ─── BENTO WHY ─── */
.lumi-bento {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.lumi-bento-card {
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  padding: 0;
  overflow: hidden;
  box-shadow: var(--lumi-shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s;
}

.lumi-bento-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--lumi-shadow);
}

.lumi-bento-photo {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--lumi-bg);
}

.lumi-bento-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lumi-bento-card h3 {
  margin: 0 0 8px;
  padding: 16px 20px 0;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.lumi-bento-card p {
  margin: 0;
  padding: 0 20px 20px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--lumi-ink-soft);
}

.lumi-guarantee {
  margin-top: 24px;
  padding: 24px;
  border-radius: var(--lumi-radius-lg);
  background: linear-gradient(135deg, var(--lumi-navy-mid), var(--lumi-navy-soft));
  color: #fff;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.lumi-guarantee::before {
  content: '1:1';
  position: absolute;
  right: -10px;
  top: -20px;
  font-size: 120px;
  font-weight: 900;
  opacity: 0.06;
  line-height: 1;
}

.lumi-guarantee strong {
  display: block;
  font-size: 17px;
  margin-bottom: 8px;
  color: var(--lumi-gold-bright);
}

.lumi-guarantee p {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  opacity: 0.9;
}

/* ─── COURSE TIERS ─── */
.lumi-tiers {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 32px;
}

.lumi-tier {
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius-lg);
  padding: 28px 24px;
  position: relative;
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-tier--featured {
  border: 2px solid var(--lumi-gold);
  box-shadow: 0 16px 48px rgba(212, 175, 55, 0.2);
}

.lumi-tier-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--lumi-gold-bright), var(--lumi-gold));
  color: var(--lumi-navy);
  font-size: 13.5px;
  font-weight: 900;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.lumi-tier-name {
  margin: 0 0 4px;
  font-size: 14.5px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--lumi-gold-d);
  text-transform: uppercase;
}

.lumi-tier-duration {
  margin: 0 0 12px;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.lumi-tier-desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--lumi-ink-soft);
}

/* ─── TIMELINE ─── */
.lumi-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  padding-left: 28px;
}

.lumi-timeline::before {
  content: '';
  position: absolute;
  left: 11px;
  top: 24px;
  bottom: 24px;
  width: 2px;
  background: linear-gradient(180deg, var(--lumi-gold), var(--lumi-gold-d));
  border-radius: 2px;
}

.lumi-timeline-item {
  position: relative;
  padding: 0 0 28px 20px;
}

.lumi-timeline-item:last-child { padding-bottom: 0; }

.lumi-timeline-dot {
  position: absolute;
  left: -28px;
  top: 4px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--lumi-gold);
  border: 4px solid #fff;
  box-shadow: 0 0 0 2px var(--lumi-gold);
  font-size: 13.5px;
  font-weight: 900;
  color: var(--lumi-navy);
  display: flex;
  align-items: center;
  justify-content: center;
}

.lumi-timeline-item h3 {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 800;
}

.lumi-timeline-item p {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--lumi-ink-soft);
}

/* ─── NATIVE ─── */
.lumi-native-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}

.lumi-check-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.lumi-check-list li {
  position: relative;
  padding: 14px 0 14px 28px;
  font-size: 14px;
  line-height: 1.65;
  border-bottom: 1px solid var(--lumi-line);
}

.lumi-check-list li:last-child { border-bottom: none; }

.lumi-check-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 14px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--lumi-gold-light);
  color: var(--lumi-gold-d);
  font-size: 13.5px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lumi-native-visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.lumi-native-visual img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--lumi-radius);
  border: 1px solid var(--lumi-line);
}

/* ─── GALLERY SCROLL ─── */
.lumi-gallery-scroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 4px 0 16px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.lumi-gallery-scroll::-webkit-scrollbar { display: none; }

.lumi-gallery-scroll img {
  flex: 0 0 72%;
  max-width: 320px;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: var(--lumi-radius);
  scroll-snap-align: start;
  border: 1px solid var(--lumi-line);
  box-shadow: var(--lumi-shadow-sm);
}

/* ─── MENTORS ─── */
.lumi-mentor-grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.lumi-mentor-card {
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius-lg);
  overflow: hidden;
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-mentor-visual {
  position: relative;
  height: 200px;
  overflow: hidden;
  background: var(--lumi-navy-mid);
}

.lumi-mentor-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.lumi-mentor-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(10,16,32,0.85) 100%);
}

.lumi-mentor-body { padding: 24px; }

.lumi-mentor-body h3 {
  margin: 0 0 4px;
  font-size: 20px;
  font-weight: 800;
}

.lumi-mentor-role {
  margin: 0 0 14px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--lumi-gold-d);
}

.lumi-mentor-creds {
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--lumi-ink-soft);
}

.lumi-mentor-creds li { padding: 3px 0; }

.lumi-mentor-body > p {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--lumi-ink-soft);
}

.lumi-mentor-body > p + p {
  margin-top: 12px;
}

.lumi-mentor-more {
  margin-top: 14px !important;
  font-size: 13px !important;
}

.lumi-mentor-more a {
  color: var(--lumi-gold-d);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(184, 148, 74, 0.35);
}

.lumi-mentor-more a:hover {
  border-bottom-color: var(--lumi-gold-d);
}

.lumi-mentor-story {
  max-width: 40rem;
}

.lumi-mentor-story p {
  margin: 0 0 1rem;
  font-size: 15px;
  line-height: 1.85;
  color: var(--lumi-ink-soft);
  letter-spacing: -0.01em;
}

.lumi-mentor-story p:last-child {
  margin-bottom: 0;
}

.lumi-mentor-story a {
  color: var(--lumi-gold-d);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(184, 148, 74, 0.3);
}

.lumi-mentor-aside {
  margin: 18px 0 0;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--lumi-ink-soft);
}

.lumi-mentor-aside a {
  color: var(--lumi-gold-d);
  font-weight: 700;
  text-decoration: none;
}

/* ─── REVIEWS ─── */
.lumi-review-featured {
  background: linear-gradient(145deg, var(--lumi-navy-mid), var(--lumi-navy-soft));
  color: #fff;
  border-radius: var(--lumi-radius-lg);
  padding: 32px 28px;
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}

.lumi-review-featured::before {
  content: '"';
  position: absolute;
  top: -10px;
  left: 16px;
  font-size: 120px;
  font-weight: 900;
  opacity: 0.08;
  line-height: 1;
  font-family: Georgia, serif;
}

.lumi-review-featured .lumi-review-tag {
  background: rgba(212,175,55,0.2);
  color: var(--lumi-gold-bright);
  border: none;
}

.lumi-review-quote-lg {
  margin: 16px 0;
  font-size: clamp(18px, 4vw, 22px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.02em;
}

.lumi-review-scroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 8px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.lumi-review-scroll::-webkit-scrollbar { display: none; }

.lumi-review {
  flex: 0 0 85%;
  max-width: 340px;
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  padding: 20px;
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-review-tag {
  display: inline-block;
  font-size: 12.5px;
  font-weight: 800;
  color: var(--lumi-gold-d);
  background: var(--lumi-gold-light);
  padding: 4px 10px;
  border-radius: 999px;
  margin-bottom: 10px;
}

.lumi-review h3 {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.4;
}

.lumi-review p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--lumi-ink-soft);
}

.lumi-review-quote {
  margin: 10px 0;
  padding: 12px;
  background: var(--lumi-bg);
  border-radius: 10px;
  font-size: 14.5px;
  font-weight: 600;
  font-style: italic;
  color: var(--lumi-ink);
}

.lumi-review-before-after {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
  font-size: 12.5px;
}

.lumi-review-ba {
  padding: 10px;
  border-radius: 8px;
  line-height: 1.45;
}

.lumi-review-ba--before { background: #f0f2f5; color: #888; }
.lumi-review-ba--after { background: var(--lumi-gold-light); color: var(--lumi-ink); font-weight: 700; }

/* ─── PROCESS ─── */
.lumi-process {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  text-align: center;
}

.lumi-process-step {
  padding: 20px 12px;
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
}

.lumi-process-num {
  width: 36px;
  height: 36px;
  margin: 0 auto 10px;
  border-radius: 50%;
  background: var(--lumi-navy-mid);
  color: var(--lumi-gold-bright);
  font-size: 14px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lumi-process-step strong {
  display: block;
  font-size: 14.5px;
  margin-bottom: 4px;
}

.lumi-process-step span {
  font-size: 13.5px;
  color: var(--lumi-ink-soft);
  line-height: 1.45;
}

/* ─── MISC ─── */
.lumi-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.lumi-tag {
  font-size: 14.5px;
  font-weight: 700;
  padding: 12px 18px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--lumi-line);
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-column-list { display: flex; flex-direction: column; gap: 8px; }

.lumi-column-item {
  display: block;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  font-size: 14px;
  font-weight: 600;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.lumi-column-item:hover {
  border-color: var(--lumi-gold);
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-column-item span {
  display: block;
  font-size: 13.5px;
  font-weight: 800;
  color: var(--lumi-gold-d);
  margin-bottom: 4px;
}

.lumi-location-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.lumi-location {
  padding: 16px 14px;
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  font-size: 13.5px;
  line-height: 1.55;
}

.lumi-location strong {
  display: block;
  font-size: 14.5px;
  margin-bottom: 6px;
  color: var(--lumi-ink);
}

.lumi-faq-list { display: flex; flex-direction: column; gap: 10px; }

.lumi-faq {
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  overflow: hidden;
}

.lumi-faq summary {
  padding: 18px 20px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.lumi-faq summary::-webkit-details-marker { display: none; }

.lumi-faq summary::before {
  content: 'Q';
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: var(--lumi-gold-light);
  color: var(--lumi-gold-d);
  font-size: 13.5px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lumi-faq[open] summary { border-bottom: 1px solid var(--lumi-line); }

.lumi-faq p {
  margin: 0;
  padding: 16px 20px 20px 54px;
  font-size: 14px;
  line-height: 1.75;
  color: var(--lumi-ink-soft);
}

/* ─── FOOTER ─── */
.lumi-footer {
  padding: 48px 24px 32px;
  text-align: center;
  background: var(--lumi-navy);
  color: rgba(255,255,255,0.75);
}

.lumi-footer-logo {
  width: 64px;
  height: 64px;
  border-radius: 16px;
  margin: 0 auto 16px;
  object-fit: contain;
  background: #fff;
  border: 2px solid rgba(212,175,55,0.3);
}

.lumi-footer h2 {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 800;
  color: #fff;
}

.lumi-footer p { margin: 0 0 6px; font-size: 14px; }

.lumi-footer a {
  color: var(--lumi-gold-bright);
  font-weight: 700;
}

.lumi-footer-links {
  margin-top: 20px;
  font-size: 13.5px;
  opacity: 0.7;
}

.lumi-footer-links a { color: rgba(255,255,255,0.8); }

/* ─── STICKY CTA ─── */
.lumi-sticky-cta {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: var(--lumi-shell);
  z-index: 300;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(16px);
  border-top: 1px solid var(--lumi-line);
  padding: 10px 12px calc(10px + var(--lumi-safe-bottom));
  box-shadow: 0 -8px 32px rgba(10,16,32,0.1);
}

.lumi-sticky-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  max-width: 560px;
  margin: 0 auto;
}

.lumi-sticky-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 10px 6px;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  min-height: 56px;
  line-height: 1.2;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.lumi-sticky-ico {
  font-size: 16px;
  line-height: 1;
  font-style: normal;
}

.lumi-sticky-btn--survey,
.lumi-sticky-btn--sms {
  background: linear-gradient(135deg, var(--lumi-gold-bright), var(--lumi-gold));
  color: var(--lumi-navy);
  box-shadow: 0 4px 16px rgba(212,175,55,0.35);
}

.lumi-sticky-btn--board {
  background: #0c0a08;
  color: #f6e2a4;
  border: 1px solid rgba(230, 195, 106, 0.55);
}

.lumi-sticky-btn--tel { background: var(--lumi-navy); color: #fff; }
.lumi-sticky-btn--kakao { background: #FEE500; color: #191919; }

/* ─── ANIMATIONS ─── */
.lumi-fade {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.lumi-fade.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 섹션 헤더 순차 등장 (kicker → 제목 → 구분선 → 리드문) */
.lumi-fade .lumi-kicker,
.lumi-fade .lumi-h2,
.lumi-fade .lumi-lead {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.lumi-fade .lumi-divider {
  width: 0;
  transition: width 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.lumi-fade.is-visible .lumi-kicker { opacity: 1; transform: none; transition-delay: 0.05s; }
.lumi-fade.is-visible .lumi-h2 { opacity: 1; transform: none; transition-delay: 0.14s; }
.lumi-fade.is-visible .lumi-lead { opacity: 1; transform: none; transition-delay: 0.24s; }
.lumi-fade.is-visible .lumi-divider { width: 48px; }

/* 통계 박스 순차 등장 + 카운트업(JS)과 함께 동작 */
.lumi-stats.lumi-fade .lumi-stat {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1), transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.lumi-stats.lumi-fade.is-visible .lumi-stat { opacity: 1; transform: none; }
.lumi-stats.lumi-fade.is-visible .lumi-stat:nth-child(1) { transition-delay: 0.05s; }
.lumi-stats.lumi-fade.is-visible .lumi-stat:nth-child(2) { transition-delay: 0.15s; }
.lumi-stats.lumi-fade.is-visible .lumi-stat:nth-child(3) { transition-delay: 0.25s; }
.lumi-stats.lumi-fade.is-visible .lumi-stat:nth-child(4) { transition-delay: 0.35s; }

/* 비교표 행 순차 슬라이드인 */
.lumi-fade .lumi-compare-row {
  opacity: 0;
  transform: translateX(-14px);
  transition: opacity 0.45s ease, transform 0.45s ease;
}

.lumi-fade.is-visible .lumi-compare-row { opacity: 1; transform: none; }
.lumi-fade.is-visible .lumi-compare-row:nth-child(1) { transition-delay: 0.2s; }
.lumi-fade.is-visible .lumi-compare-row:nth-child(2) { transition-delay: 0.3s; }
.lumi-fade.is-visible .lumi-compare-row:nth-child(3) { transition-delay: 0.4s; }
.lumi-fade.is-visible .lumi-compare-row:nth-child(4) { transition-delay: 0.5s; }
.lumi-fade.is-visible .lumi-compare-row:nth-child(5) { transition-delay: 0.6s; }
.lumi-fade.is-visible .lumi-compare-row:nth-child(6) { transition-delay: 0.7s; }

/* 공지 리스트 순차 등장 */
.lumi-fade .lumi-home-notice-list li {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.45s ease, transform 0.45s ease;
}

.lumi-fade.is-visible .lumi-home-notice-list li { opacity: 1; transform: none; }
.lumi-fade.is-visible .lumi-home-notice-list li:nth-child(1) { transition-delay: 0.25s; }
.lumi-fade.is-visible .lumi-home-notice-list li:nth-child(2) { transition-delay: 0.37s; }
.lumi-fade.is-visible .lumi-home-notice-list li:nth-child(3) { transition-delay: 0.49s; }

/* 지점 검색 결과 카드 순차 등장 */
@keyframes lumiCardIn {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

.lumi-center-card {
  animation: lumiCardIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--card-i, 0) * 70ms);
}

/* 호버 인터랙션 (터치 기기 제외) */
@media (hover: hover) {
  .lumi-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(10, 16, 32, 0.16);
  }

  .lumi-btn--gold:hover {
    box-shadow: 0 12px 32px rgba(212, 175, 55, 0.55);
  }

  .lumi-center-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }

  .lumi-center-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(10, 16, 32, 0.12);
  }

  .lumi-center-quick button:hover {
    transform: translateY(-2px);
  }

  .lumi-stat {
    transition: background 0.2s ease;
  }

  .lumi-stat:hover { background: var(--lumi-cream); }
}

/* 골드 버튼 광택 스윕 */
.lumi-btn--gold {
  position: relative;
  overflow: hidden;
}

.lumi-btn--gold::after {
  content: '';
  position: absolute;
  top: 0;
  left: -70%;
  width: 45%;
  height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.5), transparent);
  transform: skewX(-20deg);
  pointer-events: none;
}

@keyframes lumiBtnShine {
  from { left: -70%; }
  to { left: 140%; }
}

@media (hover: hover) {
  .lumi-btn--gold:hover::after {
    animation: lumiBtnShine 0.7s ease;
  }
}

/* 모션 최소화 설정 시 전부 비활성화 */
.lumi-reduced-motion .lumi-fade *,
.lumi-reduced-motion .lumi-center-card,
.lumi-reduced-motion .lumi-btn,
.lumi-reduced-motion .lumi-btn--gold::after {
  transition: none !important;
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .lumi-fade .lumi-kicker,
  .lumi-fade .lumi-h2,
  .lumi-fade .lumi-lead,
  .lumi-fade .lumi-compare-row,
  .lumi-fade .lumi-home-notice-list li,
  .lumi-stats.lumi-fade .lumi-stat {
    transition: none !important;
  }

  .lumi-fade .lumi-divider { width: 48px; transition: none !important; }
  .lumi-center-card { animation: none !important; }
  .lumi-btn--gold::after { animation: none !important; }
}

/* ─── COMPARE TABLE ─── */
.lumi-compare-table {
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  overflow: hidden;
  margin-top: 24px;
  background: #fff;
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-compare-row {
  display: grid;
  grid-template-columns: 1.05fr 1fr 1fr;
  border-bottom: 1px solid var(--lumi-line);
}

.lumi-compare-row:last-child { border-bottom: none; }

.lumi-compare-row--head {
  background: var(--lumi-navy);
  color: #fff;
  font-weight: 800;
  font-size: 14.5px;
}

.lumi-compare-row > div {
  padding: 14px 14px;
  font-size: 14.5px;
  line-height: 1.6;
  border-right: 1px solid var(--lumi-line);
}

.lumi-compare-row > div:last-child { border-right: none; }

.lumi-compare-row--head .lumi-compare-lumi {
  color: var(--lumi-gold-bright);
}

.lumi-compare-row:not(.lumi-compare-row--head):nth-child(even) {
  background: var(--lumi-bg);
}

.lumi-compare-row > div:first-child {
  font-weight: 800;
  color: var(--lumi-ink);
  background: rgba(10, 16, 32, 0.03);
}

.lumi-compare-lumi {
  color: var(--lumi-navy);
  font-weight: 700;
}

@media (max-width: 639px) {
  .lumi-compare-table {
    margin-top: 18px;
    border-radius: 16px;
  }

  .lumi-compare-row:not(.lumi-compare-row--head) {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .lumi-compare-row--head { display: none; }

  .lumi-compare-row:not(.lumi-compare-row--head) > div {
    border-right: none;
    border-bottom: 1px solid var(--lumi-line);
    font-size: 14px;
    line-height: 1.65;
    padding: 12px 14px;
    word-break: keep-all;
  }

  .lumi-compare-row:not(.lumi-compare-row--head) > div:first-child {
    background: var(--lumi-navy);
    color: #fff;
    font-size: 14.5px;
    font-weight: 800;
    letter-spacing: -0.01em;
    padding: 11px 14px;
  }

  .lumi-compare-row:not(.lumi-compare-row--head) > div[data-compare-side]::before {
    display: block;
    margin-bottom: 4px;
    content: attr(data-compare-side);
    font-size: 13.5px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--lumi-ink-soft);
  }

  .lumi-compare-row:not(.lumi-compare-row--head) > div.lumi-compare-lumi[data-compare-side]::before {
    color: var(--lumi-gold-d);
  }

  .lumi-compare-row:not(.lumi-compare-row--head) > div:nth-child(2) {
    background: #fff;
  }

  .lumi-compare-row:not(.lumi-compare-row--head) > div:last-child {
    border-bottom: none;
    background: rgba(212, 175, 55, 0.08);
  }

  #lumi-compare {
    padding-top: 36px;
  }

  #lumi-compare .lumi-page-cta {
    flex-direction: column;
    align-items: stretch;
  }

  #lumi-compare .lumi-page-cta .lumi-btn {
    width: 100%;
  }
}

/* ─── PROGRAM GRID (square cards) ─── */
.lumi-program-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

.lumi-program-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  box-shadow: var(--lumi-shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
  cursor: pointer;
}

.lumi-program-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--lumi-shadow);
  border-color: var(--lumi-gold);
}

.lumi-program-thumb {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--lumi-bg);
}

.lumi-program-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.lumi-program-card:hover .lumi-program-thumb img {
  transform: scale(1.04);
}

.lumi-program-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 14px 16px 16px;
}

.lumi-program-label {
  display: block;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--lumi-gold-d);
  margin-bottom: 6px;
}

.lumi-program-card h3 {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--lumi-ink);
}

.lumi-program-card p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--lumi-ink-soft);
}

.lumi-cafe-link {
  margin: 0 0 16px;
  font-size: 14.5px;
  text-align: center;
  color: var(--lumi-ink-soft);
}

.lumi-cafe-link a {
  font-weight: 700;
  color: var(--lumi-navy-mid);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.lumi-partner-note {
  padding: 16px 18px;
  background: var(--lumi-bg);
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--lumi-ink-soft);
  text-align: center;
}

.lumi-partner-note a {
  font-weight: 700;
  color: var(--lumi-navy-mid);
  text-decoration: underline;
}

/* ─── CAFE BOARD (multi-page home) ─── */
.lumi-board-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 20px;
}

.lumi-board-scroll-hint {
  display: none;
  margin: 0 0 10px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--lumi-ink-soft);
  text-align: center;
}

.lumi-board-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  box-shadow: var(--lumi-shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
  position: relative;
}

.lumi-board-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--lumi-shadow);
  border-color: var(--lumi-gold);
}

.lumi-board-thumb {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--lumi-bg);
}

.lumi-board-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lumi-board-body {
  position: relative;
  padding: 14px 16px 16px;
  flex: 1;
}

.lumi-board-group {
  display: block;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--lumi-gold-d);
  margin-bottom: 4px;
}

.lumi-board-card h3 {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--lumi-ink);
  padding-right: 48px;
}

.lumi-board-card p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--lumi-ink-soft);
}

.lumi-board-tag {
  position: absolute;
  top: 14px;
  right: 14px;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--lumi-ink-soft);
  background: var(--lumi-bg);
  padding: 4px 8px;
  border-radius: 6px;
}

.lumi-home-notice {
  text-align: center;
}

.lumi-home-notice-list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  text-align: left;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

.lumi-home-notice-list li {
  position: relative;
  padding: 10px 0 10px 18px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--lumi-ink-soft);
  border-bottom: 1px solid var(--lumi-line);
}

.lumi-home-notice-list li::before {
  content: '·';
  position: absolute;
  left: 0;
  color: var(--lumi-gold-d);
  font-weight: 800;
}

/* ─── SUBPAGE HERO ─── */
.lumi-page-hero {
  padding: 36px 20px 28px;
  background: linear-gradient(180deg, var(--lumi-cream) 0%, #fff 100%);
  border-bottom: 1px solid var(--lumi-line);
}

.lumi-page-hero-inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.lumi-page-title {
  margin: 0 0 12px;
  font-size: clamp(28px, 5.5vw, 40px);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.03em;
  color: var(--lumi-ink);
}

.lumi-page-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 32px;
}

.lumi-footer-partner {
  margin: 12px 0 0;
  font-size: 13.5px;
  opacity: 0.65;
}


/* ─── RESPONSIVE ─── */
@media (min-width: 640px) {
  :root { --lumi-shell: 640px; }
  .lumi-bento { grid-template-columns: repeat(2, 1fr); }
  .lumi-tiers { grid-template-columns: repeat(3, 1fr); }
  .lumi-tier--featured { transform: scale(1.03); z-index: 1; }
  .lumi-gallery-scroll img { flex: 0 0 45%; }
  .lumi-review { flex: 0 0 48%; }
  .lumi-program-grid { grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .lumi-board-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}

@media (min-width: 900px) {
  :root { --lumi-shell: 100%; }
  body { padding-bottom: calc(84px + var(--lumi-safe-bottom)); }
  #lumi-root { max-width: 1100px; box-shadow: var(--lumi-shadow); }
  .lumi-sticky-cta { max-width: 1100px; }
  .lumi-hero { min-height: 88vh; }
  .lumi-hero--poster { min-height: 0; }
  .lumi-hero-content { padding: 48px 40px 56px; }
  .lumi-hero--poster .lumi-hero-content { padding: 28px 40px 36px; }
  .lumi-section { padding: 72px 40px; }
  .lumi-native-split { grid-template-columns: 1fr 1fr; }
  .lumi-mentor-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
  .lumi-mentor-visual { height: 180px; }
  .lumi-bento { grid-template-columns: repeat(2, 1fr); }
  .lumi-bento-card:first-child { grid-row: span 2; }
  .lumi-board-grid { grid-template-columns: repeat(4, 1fr); gap: 14px; }
  .lumi-nav-toggle,
  .lumi-nav-drawer,
  .lumi-nav-backdrop { display: none !important; }
}

@media (max-width: 899px) {
  .lumi-nav-chips { display: none; }
  .lumi-nav-toggle { display: flex; }
}

/* ─── MOBILE PHONES ─── */
@media (max-width: 639px) {
  html { font-size: 16px; }

  body {
    padding-bottom: calc(88px + var(--lumi-safe-bottom));
    line-height: 1.75;
  }

  .lumi-section {
    padding: 40px 18px;
  }

  .lumi-nav-inner {
    padding: 12px 16px;
    gap: 8px;
  }

  .lumi-nav-title {
    font-size: 14px;
    max-width: calc(100vw - 130px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .lumi-hero {
    min-height: 0;
  }

  .lumi-hero--poster {
    min-height: 0;
  }

  .lumi-hero--poster .lumi-hero-visual {
    height: auto;
    min-height: clamp(22rem, 92vw, 32rem);
    max-height: none;
    overflow: visible;
  }

  .lumi-hero--poster .lumi-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
  }

  .lumi-hero-content {
    padding: 22px 18px 30px;
  }

  .lumi-hero--poster .lumi-hero-content {
    padding: 26px 18px 34px;
    max-width: none !important;
    margin: 0 !important;
    background: #05070c !important;
  }

  .lumi-hero-eyebrow {
    font-size: 13.5px !important;
    letter-spacing: 0.12em;
    margin-bottom: 10px;
  }

  .lumi-hero-title {
    white-space: normal;
    font-size: clamp(18px, 5.2vw, 24px) !important;
    line-height: 1.4;
    letter-spacing: -0.03em;
    margin-bottom: 12px;
  }

  .lumi-hero-sub {
    font-size: 15px;
    line-height: 1.7;
  }

  .lumi-hero-actions {
    max-width: none;
    gap: 10px;
  }

  .lumi-hero-actions .lumi-btn {
    width: 100%;
    font-size: 15px;
    padding: 15px 16px;
    min-height: 50px;
    white-space: normal;
  }

  .lumi-hero-actions .lumi-btn--gold {
    font-size: 14px !important;
    padding-left: 14px;
    padding-right: 14px;
    letter-spacing: -0.02em;
    white-space: normal;
  }

  .lumi-hero-pill {
    font-size: 13.5px;
    padding: 8px 12px;
  }

  .lumi-h2 {
    font-size: clamp(22px, 6vw, 28px);
    line-height: 1.35;
  }

  .lumi-lead {
    font-size: 15px;
    line-height: 1.75;
    margin-bottom: 22px;
  }

  .lumi-kicker {
    font-size: 13.5px;
  }

  .lumi-btn {
    font-size: 15px;
    min-height: 50px;
  }

  .lumi-sticky-btn {
    font-size: 13.5px;
    min-height: 54px;
  }

  .lumi-sticky-btn--survey {
    font-size: 14px;
  }

  .lumi-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .lumi-stat {
    padding: 22px 14px;
  }

  .lumi-stat strong {
    font-size: clamp(24px, 7vw, 30px);
  }

  .lumi-stat span {
    font-size: 14.5px;
    line-height: 1.45;
    margin-top: 8px;
  }

  .lumi-page-hero {
    padding: 28px 18px 24px;
  }

  .lumi-convert {
    padding: 24px 16px;
  }

  .lumi-convert-sub {
    font-size: 14px;
    min-height: 50px;
    line-height: 1.55;
  }

  .lumi-program-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .lumi-program-body {
    padding: 16px;
  }

  .lumi-program-card h3 {
    font-size: 17px;
  }

  .lumi-program-card p {
    font-size: 14.5px;
  }

  .lumi-board-scroll-wrap {
    margin: 0 -16px;
  }

  .lumi-board-scroll-hint {
    display: block;
    padding: 0 16px;
  }

  .lumi-board-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    gap: 12px;
    padding: 4px 16px 14px;
    scroll-padding-inline: 16px;
    margin-bottom: 12px;
    scrollbar-width: none;
  }

  .lumi-board-grid::-webkit-scrollbar { display: none; }

  .lumi-board-card {
    flex: 0 0 min(74vw, 272px);
    scroll-snap-align: start;
  }

  .lumi-board-card h3 {
    font-size: 16px;
    padding-right: 0;
  }

  .lumi-board-card p {
    font-size: 14.5px;
    line-height: 1.55;
  }

  .lumi-board-tag {
    position: static;
    display: inline-block;
    margin-top: 8px;
  }

  .lumi-board-body {
    padding: 12px 14px 14px;
  }

  .lumi-process {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .lumi-process-step {
    padding: 18px 16px;
  }

  .lumi-process-step strong {
    font-size: 14px;
  }

  .lumi-process-step span {
    font-size: 14.5px;
  }

  .lumi-location-grid {
    grid-template-columns: 1fr;
  }

  .lumi-location {
    font-size: 14.5px;
    padding: 16px;
  }

  .lumi-page-cta {
    flex-direction: column;
    align-items: stretch;
    margin-top: 24px;
  }

  .lumi-page-cta .lumi-btn {
    width: 100%;
    min-height: 48px;
  }

  .lumi-btn {
    min-height: 48px;
    touch-action: manipulation;
  }

  .lumi-sticky-inner {
    gap: 8px;
    max-width: 100%;
  }

  .lumi-sticky-btn {
    font-size: 13.5px;
    min-height: 58px;
    padding: 11px 4px;
    border-radius: 16px;
  }

  .lumi-sticky-btn--survey,
  .lumi-sticky-btn--sms {
    font-size: 13.5px;
  }

  .lumi-convert-grid {
    gap: 10px;
  }

  .lumi-faq summary {
    padding: 16px;
    font-size: 14px;
    min-height: 48px;
    align-items: center;
  }

  .lumi-back-top {
    right: 12px;
    bottom: calc(92px + var(--lumi-safe-bottom));
    width: 48px;
    height: 48px;
  }

  .lumi-compare-row:not(.lumi-compare-row--head) > div {
    font-size: 14px;
    padding: 12px 14px;
  }

  .lumi-review-scroll {
    margin: 0 -16px;
    padding-inline: 16px;
  }

  .lumi-gallery-scroll {
    margin: 0 -16px;
    padding-inline: 16px;
  }
}

@media (min-width: 640px) and (max-width: 899px) {
  .lumi-nav-inner { padding: 12px 18px; }
  .lumi-section { padding: 52px 24px; }
  .lumi-board-grid { grid-template-columns: repeat(2, 1fr); }
  .lumi-program-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ─── ADMIN CMS ─── */
.lumi-footer-admin {
  margin: 16px 0 0;
  opacity: 0.35;
}

.lumi-footer-admin button {
  border: none;
  background: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13.5px;
  cursor: pointer;
  padding: 4px 0;
}

.lumi-footer-admin button:hover { opacity: 1; color: #fff; }

.lumi-admin-panel {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 16px;
  background: rgba(10, 16, 32, 0.55);
  backdrop-filter: blur(4px);
}

.lumi-admin-panel[hidden] { display: none !important; }

.lumi-admin-card {
  width: min(400px, 100%);
  background: #fff;
  border-radius: var(--lumi-radius-lg);
  padding: 24px 20px;
  box-shadow: var(--lumi-shadow);
}

.lumi-admin-card--wide {
  width: min(920px, 100%);
  max-height: min(88vh, 720px);
  overflow: auto;
}

.lumi-admin-card h2 {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 800;
}

.lumi-admin-note {
  margin: 0 0 16px;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--lumi-ink-soft);
}

.lumi-admin-field {
  display: block;
  margin-bottom: 12px;
}

.lumi-admin-field span {
  display: block;
  margin-bottom: 6px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--lumi-ink-soft);
}

.lumi-admin-field input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--lumi-line);
  border-radius: 12px;
  font-size: 16px;
  font-family: inherit;
}

.lumi-admin-error {
  margin: 0 0 12px;
  font-size: 14.5px;
  color: #c0392b;
  font-weight: 600;
}

.lumi-admin-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 8px;
}

.lumi-admin-actions .lumi-btn { min-width: 100px; }

.lumi-admin-bar {
  position: fixed;
  top: calc(env(safe-area-inset-top, 0px) + 56px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 450;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  max-width: calc(100% - 16px);
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(20, 31, 56, 0.94);
  box-shadow: var(--lumi-shadow);
}

.lumi-admin-bar[hidden] { display: none !important; }

.lumi-admin-bar-label {
  font-size: 13.5px;
  font-weight: 800;
  color: var(--lumi-gold-bright);
  padding: 0 6px;
}

.lumi-admin-bar-btn {
  border: none;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 13.5px;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  min-height: 36px;
}

.lumi-admin-bar-btn--out {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.75);
}

body.lumi-admin-edit .lumi-admin-wrap {
  position: relative;
  display: inline-block;
  max-width: 100%;
}

body.lumi-admin-edit .lumi-admin-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 2px dashed var(--lumi-gold);
  border-radius: 8px;
  pointer-events: none;
}

.lumi-admin-edit-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  border: none;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 13.5px;
  font-weight: 800;
  background: var(--lumi-gold);
  color: var(--lumi-navy);
  cursor: pointer;
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-admin-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.lumi-admin-close {
  width: 40px;
  height: 40px;
  border: 1px solid var(--lumi-line);
  border-radius: 50%;
  background: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.lumi-admin-list-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.lumi-admin-list-item {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  background: var(--lumi-bg);
}

.lumi-admin-list-item img {
  width: 96px;
  height: 72px;
  object-fit: cover;
  border-radius: 8px;
  background: #fff;
}

.lumi-admin-list-body strong {
  display: block;
  font-size: 14px;
  margin-bottom: 2px;
}

.lumi-admin-list-key {
  display: block;
  font-size: 13.5px;
  color: var(--lumi-ink-soft);
  margin-bottom: 6px;
}

.lumi-admin-badge {
  display: inline-block;
  font-size: 12.5px;
  font-weight: 800;
  color: var(--lumi-gold-d);
  background: var(--lumi-gold-light);
  padding: 3px 8px;
  border-radius: 999px;
  margin-bottom: 8px;
}

.lumi-admin-list-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.lumi-admin-mini {
  border: none;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13.5px;
  font-weight: 700;
  background: var(--lumi-navy-mid);
  color: #fff;
  cursor: pointer;
  min-height: 36px;
}

.lumi-admin-mini--muted {
  background: #fff;
  color: var(--lumi-ink-soft);
  border: 1px solid var(--lumi-line);
}

@media (min-width: 640px) {
  .lumi-admin-list-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 639px) {
  .lumi-admin-bar {
    top: auto;
    bottom: calc(82px + var(--lumi-safe-bottom));
    border-radius: 14px;
    width: calc(100% - 16px);
    justify-content: center;
  }
}

/* ─── CENTER FINDER ─── */
.lumi-center-search {
  max-width: 760px;
  margin: 28px auto 24px;
}

.lumi-center-search-box {
  position: relative;
}

.lumi-center-search-input {
  width: 100%;
  min-height: 56px;
  padding: 14px 88px 14px 20px;
  border: 2px solid var(--lumi-navy-mid);
  border-radius: 16px;
  background: #fff;
  color: var(--lumi-ink);
  font: inherit;
  font-size: 16px;
  font-weight: 650;
  outline: none;
  box-shadow: var(--lumi-shadow-sm);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.lumi-center-search-input:focus {
  border-color: var(--lumi-gold);
  box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.16);
}

.lumi-center-search-input::placeholder {
  color: #8a91a2;
  font-weight: 500;
}

.lumi-center-search-clear {
  position: absolute;
  top: 50%;
  right: 12px;
  min-height: 36px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: var(--lumi-bg);
  color: var(--lumi-ink-soft);
  font: inherit;
  font-size: 13.5px;
  font-weight: 750;
  cursor: pointer;
  transform: translateY(-50%);
}

.lumi-center-quick {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.lumi-center-quick::-webkit-scrollbar {
  display: none;
}

.lumi-center-quick button {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 8px 15px;
  border: 1px solid var(--lumi-line);
  border-radius: 999px;
  background: #fff;
  color: var(--lumi-ink);
  font: inherit;
  font-size: 14.5px;
  font-weight: 750;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, transform 0.15s ease;
}

.lumi-center-quick button:hover,
.lumi-center-quick button:focus-visible {
  border-color: var(--lumi-gold);
  background: var(--lumi-gold-light);
}

.lumi-center-status {
  min-height: 24px;
  margin: 12px 2px 0;
  color: var(--lumi-ink-soft);
  font-size: 14.5px;
}

.lumi-center-results {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.lumi-center-card {
  padding: 18px;
  border: 1px solid var(--lumi-line);
  border-radius: var(--lumi-radius);
  background: #fff;
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-center-card--direct {
  border-color: rgba(212, 175, 55, 0.55);
  background: linear-gradient(145deg, #fff 55%, var(--lumi-gold-light));
}

.lumi-center-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.lumi-center-region {
  margin: 0 0 3px;
  color: var(--lumi-gold-d);
  font-size: 13.5px;
  font-weight: 800;
}

.lumi-center-card h3 {
  margin: 0;
  color: var(--lumi-navy);
  font-size: 19px;
  line-height: 1.35;
}

.lumi-center-badge {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: #e8f6ee;
  color: #187346;
  font-size: 12.5px;
  font-weight: 800;
}

.lumi-center-badge--default {
  background: var(--lumi-gold-light);
  color: var(--lumi-gold-d);
}

.lumi-center-manager {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 13px 0 15px;
  font-size: 14.5px;
}

.lumi-center-manager strong {
  color: var(--lumi-ink);
}

.lumi-center-manager span {
  color: var(--lumi-ink-soft);
}

.lumi-center-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.lumi-center-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid var(--lumi-line);
  border-radius: 10px;
  background: #fff;
  color: var(--lumi-ink);
  font-size: 13.5px;
  font-weight: 800;
  text-align: center;
  transition: transform 0.2s, border-color 0.2s, background 0.2s;
}

.lumi-center-action:hover {
  transform: translateY(-1px);
  border-color: var(--lumi-gold);
}

.lumi-center-action--phone {
  background: var(--lumi-navy-mid);
  color: #fff;
  border-color: var(--lumi-navy-mid);
}

.lumi-center-action--sms {
  background: #fff;
  border-color: var(--lumi-navy-mid);
  color: var(--lumi-navy);
}

.lumi-center-action--kakao {
  background: #fee500;
  border-color: #fee500;
  color: #191919;
}

.lumi-center-action--survey {
  background: linear-gradient(135deg, var(--lumi-gold-bright), var(--lumi-gold));
  border-color: var(--lumi-gold);
  color: var(--lumi-navy);
}

.lumi-center-empty {
  padding: 30px 20px;
  border: 1px dashed #c9cfdb;
  border-radius: var(--lumi-radius);
  background: #fff;
  text-align: center;
}

.lumi-center-empty strong {
  display: block;
  margin-bottom: 6px;
  font-size: 18px;
}

.lumi-center-empty p {
  max-width: 520px;
  margin: 0 auto 18px;
  color: var(--lumi-ink-soft);
  font-size: 14px;
}

@media (min-width: 720px) {
  .lumi-center-results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 980px) {
  .lumi-center-results {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ─── PREMIUM EXPERIENCE UPGRADE ─── */
::selection {
  background: var(--lumi-gold-bright);
  color: var(--lumi-navy);
}

:focus-visible {
  outline: 3px solid rgba(212, 175, 55, 0.55);
  outline-offset: 3px;
}

body {
  background:
    radial-gradient(circle at 8% 12%, rgba(212, 175, 55, 0.08), transparent 26rem),
    radial-gradient(circle at 92% 34%, rgba(30, 45, 79, 0.08), transparent 30rem),
    var(--lumi-bg);
}

.lumi-nav {
  transition: box-shadow 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}

.lumi-nav.is-scrolled {
  background: rgba(255, 255, 255, 0.96);
  border-bottom-color: rgba(212, 175, 55, 0.22);
  box-shadow: 0 12px 35px rgba(10, 16, 32, 0.09);
}

.lumi-scroll-progress {
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, var(--lumi-gold), var(--lumi-gold-bright));
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
  pointer-events: none;
}

.lumi-hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 10px;
  color: var(--lumi-gold-bright);
  font-size: 12.5px;
  font-weight: 850;
  letter-spacing: 0.16em;
}

.lumi-hero-eyebrow span {
  width: 24px;
  height: 1px;
  background: var(--lumi-gold-bright);
  box-shadow: 0 0 12px rgba(240, 208, 96, 0.7);
}

.lumi-hero-title {
  margin: 0 0 12px;
  max-width: none;
  width: 100%;
  color: #fff;
  font-size: clamp(22px, 3.2vw, 40px);
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1.3;
  white-space: normal;
  overflow: visible;
}

.lumi-hero-title em {
  color: var(--lumi-gold-bright);
  font-style: normal;
  text-shadow: 0 4px 22px rgba(212, 175, 55, 0.22);
}

.lumi-hero--poster .lumi-hero-eyebrow {
  animation: lumiContentRise 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.4s both;
}

.lumi-hero--poster .lumi-hero-title {
  animation: lumiContentRise 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.47s both;
}

.lumi-hero--poster .lumi-hero-content {
  overflow: visible;
}

.lumi-hero--poster .lumi-hero-content::before {
  display: none !important;
  content: none !important;
}

.lumi-section {
  position: relative;
}

.lumi-section--signature {
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 15% 15%, rgba(240, 208, 96, 0.16), transparent 28rem),
    radial-gradient(circle at 90% 85%, rgba(67, 91, 145, 0.24), transparent 30rem),
    linear-gradient(145deg, #080d19 0%, #121d35 58%, #1a2949 100%);
}

.lumi-section--signature::before,
.lumi-section--signature::after {
  content: '';
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 50%;
  pointer-events: none;
}

.lumi-section--signature::before {
  width: 360px;
  height: 360px;
  top: -240px;
  right: -100px;
}

.lumi-section--signature::after {
  width: 220px;
  height: 220px;
  bottom: -150px;
  left: -80px;
}

.lumi-section--signature .lumi-h2 {
  color: #fff;
}

.lumi-section--signature .lumi-lead {
  color: rgba(255, 255, 255, 0.7);
}

.lumi-lead--why {
  max-width: 34em;
  margin-bottom: 0;
  font-size: clamp(15px, 3.6vw, 17px);
  line-height: 1.7;
  letter-spacing: -0.01em;
  word-break: keep-all;
  overflow-wrap: normal;
}

@media (max-width: 639px) {
  .lumi-lead--why {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    font-size: clamp(14px, 3.9vw, 16px);
    line-height: 1.78;
    letter-spacing: -0.015em;
  }
}

.lumi-lead--centers {
  max-width: 22em;
  font-size: clamp(15px, 3.6vw, 17px);
  line-height: 1.7;
  letter-spacing: -0.01em;
  word-break: keep-all;
}

@media (max-width: 639px) {
  .lumi-lead--centers {
    max-width: none;
    margin-bottom: 22px;
    font-size: clamp(15px, 4vw, 17px);
    line-height: 1.75;
    letter-spacing: -0.015em;
  }
}

.lumi-lead--journey {
  max-width: 28em;
  font-size: clamp(15px, 3.6vw, 17px);
  line-height: 1.7;
  letter-spacing: -0.01em;
  word-break: keep-all;
}

@media (max-width: 639px) {
  .lumi-lead--journey {
    max-width: none;
    font-size: clamp(15px, 4vw, 17px);
    line-height: 1.75;
    letter-spacing: -0.015em;
  }
}

.lumi-lead--compare-hook {
  max-width: 22em;
  margin: 0 auto 8px;
  color: var(--lumi-navy);
  font-size: clamp(20px, 4.6vw, 28px);
  font-weight: 850;
  line-height: 1.45;
  letter-spacing: -0.03em;
  word-break: keep-all;
  text-wrap: balance;
}

@media (max-width: 639px) {
  .lumi-lead--compare-hook {
    max-width: none;
    font-size: clamp(18px, 5.2vw, 24px);
    line-height: 1.5;
    letter-spacing: -0.025em;
  }
}

.lumi-section--signature .lumi-kicker {
  color: var(--lumi-gold-bright);
}

.lumi-value-grid {
  display: grid;
  gap: 12px;
  margin-top: 34px;
}

.lumi-value-card {
  position: relative;
  min-height: 245px;
  padding: 24px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.045));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(12px);
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.25s ease, background 0.25s ease;
}

.lumi-fade.is-visible .lumi-value-card {
  opacity: 1;
  transform: none;
}

.lumi-fade.is-visible .lumi-value-card:nth-child(1) { transition-delay: 0.15s; }
.lumi-fade.is-visible .lumi-value-card:nth-child(2) { transition-delay: 0.25s; }
.lumi-fade.is-visible .lumi-value-card:nth-child(3) { transition-delay: 0.35s; }
.lumi-fade.is-visible .lumi-value-card:nth-child(4) { transition-delay: 0.45s; }

.lumi-value-number {
  position: absolute;
  top: 14px;
  right: 18px;
  color: rgba(255, 255, 255, 0.07);
  font-size: 52px;
  font-weight: 900;
  line-height: 1;
}

.lumi-value-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-bottom: 28px;
  border: 1px solid rgba(240, 208, 96, 0.38);
  border-radius: 14px;
  background: rgba(240, 208, 96, 0.11);
  color: var(--lumi-gold-bright);
  font-size: 15px;
  font-weight: 900;
}

.lumi-value-card h3 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 18px;
  line-height: 1.35;
}

.lumi-value-card p {
  margin: 0 0 22px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 14.5px;
  line-height: 1.75;
}

.lumi-value-card > strong {
  color: var(--lumi-gold-bright);
  font-size: 12.5px;
  letter-spacing: 0.13em;
}

.lumi-section--journey {
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0, rgba(212, 175, 55, 0.12), transparent 30rem),
    linear-gradient(180deg, #fff, #fbf8f0);
}

.lumi-journey-list {
  position: relative;
  display: grid;
  gap: 14px;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
}

.lumi-journey-item {
  position: relative;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 22px 20px;
  border: 1px solid rgba(212, 175, 55, 0.22);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 14px 40px rgba(10, 16, 32, 0.06);
  opacity: 0;
  transform: translateX(-20px);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.25s ease;
}

.lumi-fade.is-visible .lumi-journey-item {
  opacity: 1;
  transform: none;
}

.lumi-fade.is-visible .lumi-journey-item:nth-child(1) { transition-delay: 0.15s; }
.lumi-fade.is-visible .lumi-journey-item:nth-child(2) { transition-delay: 0.27s; }
.lumi-fade.is-visible .lumi-journey-item:nth-child(3) { transition-delay: 0.39s; }

.lumi-journey-step {
  position: absolute;
  top: 12px;
  right: 16px;
  color: var(--lumi-gold-d);
  font-size: 12.5px;
  font-weight: 850;
  letter-spacing: 0.12em;
}

.lumi-journey-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 17px;
  background: linear-gradient(145deg, var(--lumi-navy-mid), var(--lumi-navy));
  color: var(--lumi-gold-bright);
  box-shadow: 0 9px 24px rgba(10, 16, 32, 0.18);
  font-size: 14px;
  font-weight: 900;
}

.lumi-journey-item h3 {
  margin: 0 0 5px;
  color: var(--lumi-navy);
  font-size: 17px;
}

.lumi-journey-item p {
  margin: 0;
  color: var(--lumi-ink-soft);
  font-size: 14.5px;
  line-height: 1.65;
}

.lumi-premium-cta {
  display: grid;
  gap: 18px;
  align-items: center;
  margin-top: 26px;
  padding: 24px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 90% 0, rgba(240, 208, 96, 0.18), transparent 14rem),
    var(--lumi-navy);
  color: #fff;
  box-shadow: 0 18px 48px rgba(10, 16, 32, 0.18);
}

.lumi-premium-cta span {
  display: block;
  margin-bottom: 5px;
  color: var(--lumi-gold-bright);
  font-size: 12.5px;
  font-weight: 850;
  letter-spacing: 0.15em;
}

.lumi-premium-cta strong {
  display: block;
  font-size: 18px;
  line-height: 1.45;
}

.lumi-section--faq-premium {
  background:
    linear-gradient(135deg, rgba(240, 242, 248, 0.82), rgba(255, 255, 255, 0.96)),
    #fff;
}

.lumi-faq-layout {
  display: grid;
  gap: 22px;
  margin-top: 34px;
}

.lumi-faq-intro {
  align-self: start;
  padding: 22px;
  border: 1px solid var(--lumi-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--lumi-shadow-sm);
}

.lumi-faq-intro p {
  margin: 0 0 16px;
  color: var(--lumi-ink-soft);
  font-size: 14px;
  line-height: 1.7;
}

.lumi-section--faq-premium .lumi-faq {
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 8px 28px rgba(10, 16, 32, 0.045);
}

.lumi-center-search {
  box-shadow: 0 18px 50px rgba(10, 16, 32, 0.08);
}

@media (hover: hover) {
  .lumi-value-card:hover {
    transform: translateY(-5px);
    border-color: rgba(240, 208, 96, 0.42);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.065));
  }

  .lumi-journey-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 46px rgba(10, 16, 32, 0.1);
  }
}

@media (min-width: 720px) {
  .lumi-hero--poster .lumi-hero-actions {
    flex-direction: row;
    max-width: none;
  }

  .lumi-value-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lumi-journey-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lumi-journey-item {
    grid-template-columns: 1fr;
    align-content: start;
    min-height: 235px;
    padding: 26px 22px;
  }

  .lumi-journey-icon {
    margin-bottom: 20px;
  }

  .lumi-premium-cta {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 28px 32px;
  }

  .lumi-faq-layout {
    grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1.35fr);
    align-items: start;
  }
}

@media (min-width: 980px) {
  .lumi-value-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lumi-value-card {
    min-height: 300px;
  }

  .lumi-hero--poster .lumi-hero-content {
    padding-top: 36px;
    padding-bottom: 40px;
  }
}

@media (max-width: 639px) {
  .lumi-value-card {
    min-height: 0;
  }

  .lumi-premium-cta .lumi-btn,
  .lumi-faq-intro .lumi-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lumi-hero-eyebrow,
  .lumi-hero-title,
  .lumi-value-card,
  .lumi-journey-item,
  .lumi-scroll-progress {
    animation: none !important;
    transition: none !important;
  }
}

/* ─── 루미 소식 ─── */
.lumi-news-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 8px;
}

.lumi-news-card {
  display: grid;
  grid-template-columns: minmax(0, 140px) minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  padding: 14px;
  border-radius: var(--lumi-radius, 16px);
  border: 1px solid var(--lumi-line);
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

.lumi-news-card:hover {
  border-color: var(--lumi-gold);
  box-shadow: var(--lumi-shadow-sm);
  transform: translateY(-2px);
}

.lumi-news-card-thumb {
  overflow: hidden;
  border-radius: 12px;
  background: #0a0d14;
  min-height: 96px;
}

.lumi-news-card-thumb img,
.lumi-news-card-thumb video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lumi-news-card-thumb--video::after {
  content: '';
  position: absolute;
  inset: auto 10px 10px auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(10, 13, 20, 0.72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center / 12px no-repeat;
  pointer-events: none;
}

.lumi-news-card-thumb--video {
  position: relative;
}

.lumi-news-card-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.lumi-news-card-meta {
  margin: 0;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--lumi-ink-soft, #667);
}

.lumi-news-card-body h3 {
  margin: 0;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -0.02em;
}

.lumi-news-card-body p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--lumi-ink-soft, #556);
}

.lumi-news-card-more {
  margin-top: auto;
  font-size: 14.5px;
  font-weight: 800;
  color: var(--lumi-gold-d, #8a6918);
}

.lumi-news-article {
  max-width: 760px;
  margin: 0 auto;
  padding: 28px 18px 48px;
}

.lumi-news-article-head {
  margin-bottom: 28px;
}

.lumi-news-meta {
  margin: 0 0 12px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--lumi-ink-soft, #778);
}

.lumi-news-meta a {
  color: var(--lumi-gold-d, #b8922e);
  text-decoration: none;
  font-weight: 800;
}

.lumi-news-title {
  margin: 0;
  font-size: clamp(22px, 5.4vw, 32px);
  line-height: 1.35;
  letter-spacing: -0.03em;
  font-weight: 900;
}

.lumi-news-body {
  font-size: 16px;
  line-height: 1.85;
  word-break: keep-all;
}

.lumi-news-body p {
  margin: 0 0 18px;
}

.lumi-news-points {
  list-style: none;
  margin: 8px 0 28px;
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid var(--lumi-line);
  background: rgba(212, 175, 55, 0.08);
}

.lumi-news-points li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 8px 0;
  font-weight: 700;
  font-size: 15px;
}

.lumi-news-points li + li {
  border-top: 1px solid rgba(138, 105, 24, 0.12);
}

.lumi-news-figure {
  margin: 28px 0;
}

.lumi-news-figure img,
.lumi-news-figure video {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 14px;
  border: 1px solid var(--lumi-line);
  background: #0a0d14;
}

.lumi-news-figure figcaption {
  margin-top: 10px;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--lumi-ink-soft, #778);
}

.lumi-news-closing {
  margin-top: 28px !important;
  font-size: 18px;
  font-weight: 800;
  color: var(--lumi-gold-bright, #e8c04a);
}

@media (max-width: 639px) {
  .lumi-news-card {
    grid-template-columns: 1fr;
  }

  .lumi-news-card-thumb {
    min-height: 160px;
    max-height: 200px;
  }
}



/* ─────────────────────────────────────────────
   가독성 보정 — 본문/보조 텍스트 최소 대비·크기
   ───────────────────────────────────────────── */
.lumi-cafe-link,
.lumi-partner-note {
  font-size: 15px;
  line-height: 1.6;
  font-weight: 600;
}

.lumi-cafe-link a,
.lumi-partner-note a {
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ─────────────────────────────────────────────
   메인 초입 프로모 배너 (웨비나)
   ───────────────────────────────────────────── */
.lumi-promo-banner {
  width: 100%;
  padding: 10px 12px 4px;
  box-sizing: border-box;
}

.lumi-promo-banner-inner {
  position: relative;
  display: block;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(10, 16, 36, 0.22);
  background: #f7d63a;
  aspect-ratio: 1024 / 576;
}

.lumi-promo-banner-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.lumi-promo-banner-hit {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  text-decoration: none;
  color: inherit;
}

.lumi-promo-banner-cta {
  position: absolute;
  left: 50%;
  bottom: 7.5%;
  transform: translateX(-38%);
  min-width: 34%;
  min-height: 11%;
  border-radius: 999px;
  /* 클릭 영역만 넓히고 화면에는 보이지 않음 (이미지 버튼 위) */
  background: transparent;
  color: transparent;
  font-size: 0;
  overflow: hidden;
}

.lumi-promo-banner-hit:focus-visible {
  outline: 3px solid #d4af37;
  outline-offset: -3px;
}

@media (max-width: 639px) {
  .lumi-promo-banner {
    padding: 8px 8px 2px;
  }

  .lumi-promo-banner-inner {
    border-radius: 14px;
    box-shadow: 0 8px 20px rgba(10, 16, 36, 0.2);
  }

  .lumi-promo-banner-cta {
    left: 50%;
    bottom: 6.5%;
    transform: translateX(-36%);
    min-width: 42%;
    min-height: 13%;
  }
}

@media (max-width: 380px) {
  .lumi-promo-banner-cta {
    min-width: 48%;
    min-height: 14%;
  }
}

/* ─────────────────────────────────────────────
   홈 진입 웨비나 팝업
   ───────────────────────────────────────────── */
body.lumi-webinar-popup-open {
  overflow: hidden;
}

.lumi-webinar-popup {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
  box-sizing: border-box;
}

.lumi-webinar-popup[hidden] {
  display: none !important;
}

.lumi-webinar-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 12, 28, 0.62);
  backdrop-filter: blur(2px);
}

.lumi-webinar-popup-panel {
  position: relative;
  z-index: 1;
  width: min(92vw, 420px);
  max-height: min(90vh, 720px);
  overflow: auto;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 22px 50px rgba(8, 12, 28, 0.38);
  -webkit-overflow-scrolling: touch;
}

.lumi-webinar-popup-x {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 3;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: rgba(8, 12, 28, 0.55);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.lumi-webinar-popup-visual {
  display: block;
  width: 100%;
  background: #f7d63a;
  text-decoration: none;
}

.lumi-webinar-popup-visual img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1024 / 576;
  object-fit: cover;
  object-position: center;
}

.lumi-webinar-popup-body {
  padding: 16px 16px 12px;
  text-align: center;
}

.lumi-webinar-popup-kicker {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #6b7280;
}

.lumi-webinar-popup-body h2 {
  margin: 0 0 8px;
  font-size: clamp(18px, 4.8vw, 22px);
  line-height: 1.35;
  font-weight: 900;
  color: #111827;
}

.lumi-webinar-popup-lead {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.55;
  font-weight: 600;
  color: #374151;
}

.lumi-webinar-popup-lead strong {
  color: #0b1f4d;
}

.lumi-webinar-popup-points {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.lumi-webinar-popup-points li {
  margin: 0;
  padding: 8px 6px;
  border-radius: 10px;
  background: #f3f6fc;
  border: 1px solid #dbe3f2;
  font-size: 11.5px;
  line-height: 1.35;
  font-weight: 700;
  color: #1f2937;
}

.lumi-webinar-popup-points li span {
  display: block;
  margin-bottom: 2px;
  font-size: 12px;
  font-weight: 900;
  color: #c89b2b;
}

.lumi-webinar-popup-cta {
  width: 100%;
  font-size: 16px;
  font-weight: 900;
  padding: 13px 16px;
}

.lumi-webinar-popup-foot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid #e5e7eb;
  background: #f9fafb;
}

.lumi-webinar-popup-foot button {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 12px 10px;
  font-size: 13px;
  font-weight: 700;
  color: #4b5563;
  cursor: pointer;
}

.lumi-webinar-popup-foot button + button {
  border-left: 1px solid #e5e7eb;
}

.lumi-webinar-popup-foot button:hover,
.lumi-webinar-popup-foot button:focus-visible {
  color: #111827;
  background: #f3f4f6;
}

@media (max-width: 360px) {
  .lumi-webinar-popup-panel {
    width: min(94vw, 360px);
    border-radius: 14px;
  }

  .lumi-webinar-popup-body {
    padding: 14px 12px 10px;
  }

  .lumi-webinar-popup-points li {
    font-size: 10.5px;
    padding: 7px 4px;
  }
}
