/* ============================================================
 * JOYN Form — Template: Aurora (v1.9.41+)
 *
 * 다크 + 글래스모피즘 + 오로라 그라데이션 메쉬
 * 이벤트·콘서트·페스티벌·티켓 신청 등 임팩트 큰 폼에 어울림
 *
 * 스코프: .jf-wrap.jf-tpl-aurora 이하 전체
 * ============================================================ */

.jf-wrap.jf-tpl-aurora {
  --a-bg:       #0B0420;
  --a-text:     #F5F0FF;
  --a-text-2:   #C9C0E4;
  --a-text-3:   #8B82B0;
  --a-glass:    rgba(255,255,255,0.06);
  --a-glass-2:  rgba(255,255,255,0.10);
  --a-glass-3:  rgba(255,255,255,0.05);
  --a-line:     rgba(255,255,255,0.12);
  --a-line-2:   rgba(255,255,255,0.20);
  --a-pink:     #FF6FAB;
  --a-cyan:     #4DD4F0;
  --a-violet:   #A47DFF;

  background: var(--a-bg);
  color: var(--a-text);
  position: relative;
  border-radius: clamp(20px, 3vw, 32px);
  padding: clamp(32px, 5vw, 72px) clamp(20px, 4vw, 56px);
  overflow: hidden;
}

/* 오로라 메쉬 그라데이션 */
.jf-wrap.jf-tpl-aurora::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle at 18% 30%, #FF3A88 0%, transparent 35%),
    radial-gradient(circle at 78% 22%, #4541FF 0%, transparent 38%),
    radial-gradient(circle at 90% 75%, #00D4FF 0%, transparent 30%),
    radial-gradient(circle at 30% 95%, #A47DFF 0%, transparent 35%);
  filter: blur(60px) saturate(140%);
  opacity: 0.55;
}
/* 노이즈 그레인 */
.jf-wrap.jf-tpl-aurora::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' seed='5'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}
.jf-wrap.jf-tpl-aurora > * { position: relative; z-index: 1; }

/* 링크 */
.jf-wrap.jf-tpl-aurora a { color: var(--a-pink); }
.jf-wrap.jf-tpl-aurora a:hover { color: var(--a-violet); }

/* ============ Event Side ============ */
.jf-wrap.jf-tpl-aurora .jf-block-hero {
  background: transparent;
  padding: 0;
  border-radius: 0;
  color: var(--a-text);
}
.jf-wrap.jf-tpl-aurora .jf-hero-deco,
.jf-wrap.jf-tpl-aurora .jf-hero-grid-pattern,
.jf-wrap.jf-tpl-aurora .jf-hero-orb { display: none; }

/* 라벨 — 글래스 키커 + 컬러풀 별 */
.jf-wrap.jf-tpl-aurora .jf-hero-label {
  background: var(--a-glass);
  border: 1px solid var(--a-line);
  border-radius: 999px;
  color: var(--a-text);
  letter-spacing: 0.16em;
  padding: 8px 18px;
  font-weight: 600;
  font-size: 12px;
  box-shadow: none;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  text-transform: uppercase;
}
.jf-wrap.jf-tpl-aurora .jf-hero-label::before {
  width: 14px; height: 14px;
  background: conic-gradient(from 0deg, var(--a-pink), var(--a-cyan), var(--a-violet), var(--a-pink));
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(164,125,255,0.5);
  animation: jf-tpl-aurora-spin 8s linear infinite;
}
@keyframes jf-tpl-aurora-spin {
  to { transform: rotate(360deg); }
}

/* 타이틀 — 거대한 그라데이션 */
.jf-wrap.jf-tpl-aurora .jf-hero-title {
  color: var(--a-text);
  text-shadow: none;
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1.0;
  font-size: clamp(40px, 8vw, 96px);
}
.jf-wrap.jf-tpl-aurora .jf-hero-title em {
  background: linear-gradient(135deg, var(--a-pink) 0%, var(--a-violet) 50%, var(--a-cyan) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--a-pink);
  font-style: normal;
  filter: drop-shadow(0 0 30px rgba(164,125,255,0.5));
}
.jf-wrap.jf-tpl-aurora .jf-hero-title em::after { display: none; }

.jf-wrap.jf-tpl-aurora .jf-hero-sub {
  color: var(--a-text-2);
  font-size: clamp(15px, 1.5vw, 17px);
  line-height: 1.7;
}

/* Chips → 글래스 알약 */
.jf-wrap.jf-tpl-aurora .jf-chip {
  background: var(--a-glass);
  border: 1px solid var(--a-line);
  color: var(--a-text);
  box-shadow: none;
  border-radius: 999px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.jf-wrap.jf-tpl-aurora .jf-chip:hover {
  background: var(--a-glass-2);
  border-color: var(--a-line-2);
  transform: translateY(-2px);
}
.jf-wrap.jf-tpl-aurora .jf-chip i {
  color: var(--a-pink);
  filter: drop-shadow(0 0 8px rgba(255,111,171,0.5));
}

/* Stats — 글래스 그리드 */
.jf-wrap.jf-tpl-aurora .jf-stats-grid { background: transparent; gap: 12px; border: none; border-radius: 0; }
.jf-wrap.jf-tpl-aurora .jf-stat-item {
  background: var(--a-glass);
  border: 1px solid var(--a-line);
  border-radius: 16px;
  box-shadow: none;
  padding: 22px 20px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  color: var(--a-text);
}
.jf-wrap.jf-tpl-aurora .jf-stat-item::before { display: none; }
.jf-wrap.jf-tpl-aurora .jf-stat-value {
  background: linear-gradient(135deg, var(--a-pink), var(--a-violet));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--a-pink);
}
.jf-wrap.jf-tpl-aurora .jf-stat-value small {
  background: linear-gradient(135deg, var(--a-cyan), var(--a-violet));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.jf-wrap.jf-tpl-aurora .jf-stat-label { color: var(--a-text-3); }

/* Benefits */
.jf-wrap.jf-tpl-aurora .jf-benefit-card {
  background: var(--a-glass);
  border: 1px solid var(--a-line);
  border-radius: 18px;
  color: var(--a-text);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.jf-wrap.jf-tpl-aurora .jf-benefit-card:hover {
  background: var(--a-glass-2);
  border-color: var(--a-line-2);
  transform: translateY(-2px);
}

/* Block 헤딩 */
.jf-wrap.jf-tpl-aurora .jf-block-eyebrow {
  color: var(--a-pink);
  background: rgba(255,111,171,0.10);
  border: 1px solid rgba(255,111,171,0.20);
  border-radius: 999px;
  padding: 5px 14px;
  letter-spacing: 0.14em;
}
.jf-wrap.jf-tpl-aurora .jf-block-eyebrow::before { background: var(--a-pink); }
.jf-wrap.jf-tpl-aurora .jf-block-title { color: var(--a-text); }
.jf-wrap.jf-tpl-aurora .jf-block-sub { color: var(--a-text-2); }

/* ============ Form Card (Glass) ============ */
.jf-wrap.jf-tpl-aurora .jf-form-card {
  background: linear-gradient(135deg, rgba(255,255,255,0.10), rgba(255,255,255,0.04));
  border: 1px solid var(--a-line);
  border-radius: 28px;
  padding: clamp(26px, 4vw, 40px);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.20) inset,
    0 30px 80px rgba(0,0,0,0.45);
}

.jf-wrap.jf-tpl-aurora .jf-form-eyebrow {
  background: rgba(255,111,171,0.12);
  color: var(--a-pink);
  letter-spacing: 0.16em;
  font-weight: 700;
  border-radius: 999px;
  padding: 5px 14px;
}
.jf-wrap.jf-tpl-aurora .jf-form-eyebrow::before { background: var(--a-pink); }
.jf-wrap.jf-tpl-aurora .jf-form-title { color: var(--a-text); font-weight: 800; }
.jf-wrap.jf-tpl-aurora .jf-form-desc {
  color: var(--a-text-2);
  border-bottom-color: var(--a-line);
}

/* 섹션 헤딩 */
.jf-wrap.jf-tpl-aurora .jf-field-heading {
  border-top: 1px solid var(--a-line);
}
.jf-wrap.jf-tpl-aurora .jf-field-heading h3 { color: var(--a-text); }
.jf-wrap.jf-tpl-aurora .jf-field-heading h3::before {
  background: linear-gradient(180deg, var(--a-pink), var(--a-violet));
}

/* 라벨 */
.jf-wrap.jf-tpl-aurora .jf-field-label { color: var(--a-text); }
.jf-wrap.jf-tpl-aurora .jf-field-required,
.jf-wrap.jf-tpl-aurora .jf-asterisk {
  background: linear-gradient(135deg, var(--a-pink), var(--a-violet));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--a-pink);
}

/* 입력 — 글래스 */
.jf-wrap.jf-tpl-aurora .jf-field input[type="text"],
.jf-wrap.jf-tpl-aurora .jf-field input[type="email"],
.jf-wrap.jf-tpl-aurora .jf-field input[type="tel"],
.jf-wrap.jf-tpl-aurora .jf-field input[type="phone"],
.jf-wrap.jf-tpl-aurora .jf-field input[type="url"],
.jf-wrap.jf-tpl-aurora .jf-field input[type="number"],
.jf-wrap.jf-tpl-aurora .jf-field input[type="date"],
.jf-wrap.jf-tpl-aurora .jf-field input[type="time"],
.jf-wrap.jf-tpl-aurora .jf-field textarea,
.jf-wrap.jf-tpl-aurora .jf-field select {
  background: var(--a-glass-3);
  border: 1px solid var(--a-line);
  color: var(--a-text);
  border-radius: 14px;
}
.jf-wrap.jf-tpl-aurora .jf-field input::placeholder,
.jf-wrap.jf-tpl-aurora .jf-field textarea::placeholder {
  color: var(--a-text-3);
}
.jf-wrap.jf-tpl-aurora .jf-field input:focus,
.jf-wrap.jf-tpl-aurora .jf-field textarea:focus,
.jf-wrap.jf-tpl-aurora .jf-field select:focus {
  background: var(--a-glass-2);
  border-color: var(--a-violet);
  box-shadow: 0 0 0 4px rgba(164,125,255,0.18);
}
.jf-wrap.jf-tpl-aurora .jf-field input:hover:not(:disabled),
.jf-wrap.jf-tpl-aurora .jf-field textarea:hover,
.jf-wrap.jf-tpl-aurora .jf-field select:hover {
  border-color: var(--a-line-2);
}
.jf-wrap.jf-tpl-aurora .jf-field select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23C9C0E4' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
  background-color: var(--a-glass-3);
}

/* 라디오 / 체크박스 */
.jf-wrap.jf-tpl-aurora .jf-radio,
.jf-wrap.jf-tpl-aurora .jf-checkbox {
  background: var(--a-glass-3);
  border: 1px solid var(--a-line);
  color: var(--a-text);
  border-radius: 12px;
}
.jf-wrap.jf-tpl-aurora .jf-radio:hover,
.jf-wrap.jf-tpl-aurora .jf-checkbox:hover {
  background: var(--a-glass-2);
  border-color: var(--a-line-2);
}
.jf-wrap.jf-tpl-aurora .jf-radio:has(input:checked),
.jf-wrap.jf-tpl-aurora .jf-checkbox:has(input:checked) {
  background: rgba(255,111,171,0.10);
  border-color: rgba(255,111,171,0.50);
}
.jf-wrap.jf-tpl-aurora .jf-radio input,
.jf-wrap.jf-tpl-aurora .jf-checkbox input {
  accent-color: var(--a-pink);
}

/* Consent */
.jf-wrap.jf-tpl-aurora .jf-consent {
  background: var(--a-glass-3);
  border: 1px solid var(--a-line);
  color: var(--a-text-2);
  border-radius: 12px;
}
.jf-wrap.jf-tpl-aurora .jf-consent:has(input:checked) {
  background: rgba(255,111,171,0.08);
  border-color: rgba(255,111,171,0.40);
}
.jf-wrap.jf-tpl-aurora .jf-consent span { color: var(--a-text-2); }
.jf-wrap.jf-tpl-aurora .jf-consent input { accent-color: var(--a-pink); }

/* 도움말 */
.jf-wrap.jf-tpl-aurora .jf-field-help { color: var(--a-text-3); }

/* 제출 — 오로라 그라데이션 + 글로우 */
.jf-wrap.jf-tpl-aurora .jf-submit-btn {
  background: linear-gradient(135deg, var(--a-pink) 0%, var(--a-violet) 50%, var(--a-cyan) 100%) !important;
  color: #fff !important;
  border: none;
  border-radius: 14px;
  font-weight: 800;
  box-shadow: 0 10px 30px rgba(255,111,171,0.40), 0 4px 12px rgba(164,125,255,0.30);
  position: relative;
  overflow: hidden;
}
.jf-wrap.jf-tpl-aurora .jf-submit-btn::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 30%, rgba(255,255,255,0.20) 50%, transparent 70%);
  transform: translateX(-100%);
  transition: transform 0.6s ease;
  pointer-events: none;
}
.jf-wrap.jf-tpl-aurora .jf-submit-btn:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(255,111,171,0.50), 0 6px 16px rgba(164,125,255,0.40);
}
.jf-wrap.jf-tpl-aurora .jf-submit-btn:hover:not(:disabled)::before {
  transform: translateX(100%);
}

/* 메시지 */
.jf-wrap.jf-tpl-aurora .jf-form-msg.success {
  background: rgba(77,212,240,0.10);
  color: var(--a-cyan);
  border: 1px solid rgba(77,212,240,0.30);
  border-radius: 12px;
}
.jf-wrap.jf-tpl-aurora .jf-form-msg.error {
  background: rgba(255,111,171,0.10);
  color: var(--a-pink);
  border: 1px solid rgba(255,111,171,0.30);
  border-radius: 12px;
}

/* 테이블 행 */
.jf-wrap.jf-tpl-aurora .jf-table-rows {
  background: var(--a-glass-3);
  border: 1px solid var(--a-line);
  border-radius: 14px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.jf-wrap.jf-tpl-aurora .jf-table-head { background: var(--a-glass); color: var(--a-text-2); }
.jf-wrap.jf-tpl-aurora .jf-table-row { border-color: var(--a-line); }
.jf-wrap.jf-tpl-aurora .jf-table-add {
  background: var(--a-glass);
  color: var(--a-pink);
  border: 1px solid rgba(255,111,171,0.30);
  border-radius: 12px;
}
.jf-wrap.jf-tpl-aurora .jf-table-add:hover {
  background: rgba(255,111,171,0.10);
  border-color: var(--a-pink);
}

/* 멀티스텝 */
.jf-wrap.jf-tpl-aurora .jf-step-dot {
  background: var(--a-glass);
  border-color: var(--a-line);
  color: var(--a-text-3);
  border-radius: 12px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.jf-wrap.jf-tpl-aurora .jf-step-dot span { background: var(--a-glass-2); color: var(--a-text-2); }
.jf-wrap.jf-tpl-aurora .jf-step-dot.is-active {
  background: rgba(255,111,171,0.12);
  border-color: var(--a-pink);
  color: var(--a-pink);
}
.jf-wrap.jf-tpl-aurora .jf-step-dot.is-active span,
.jf-wrap.jf-tpl-aurora .jf-step-dot.is-done span {
  background: linear-gradient(135deg, var(--a-pink), var(--a-violet));
  color: #fff;
}
.jf-wrap.jf-tpl-aurora .jf-step-btn {
  background: var(--a-glass); border: 1px solid var(--a-line); color: var(--a-text); border-radius: 12px;
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
}
.jf-wrap.jf-tpl-aurora .jf-step-next {
  background: linear-gradient(135deg, var(--a-pink), var(--a-violet));
  color: #fff; border: none;
}

/* poster / notice */
.jf-wrap.jf-tpl-aurora .jf-block-poster .jf-poster-caption { color: var(--a-text-3); }
.jf-wrap.jf-tpl-aurora .jf-block-notice {
  background: var(--a-glass);
  border: 1px solid var(--a-line);
  color: var(--a-text);
  border-radius: 16px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

/* 일반 본문 */
.jf-wrap.jf-tpl-aurora p,
.jf-wrap.jf-tpl-aurora li { color: var(--a-text-2); }
.jf-wrap.jf-tpl-aurora h1,
.jf-wrap.jf-tpl-aurora h2,
.jf-wrap.jf-tpl-aurora h3,
.jf-wrap.jf-tpl-aurora h4 { color: var(--a-text); }
