/* ═══════════════════════════════════════════════════════════════════════
   apply-v3plus.css — 신청(서비스) 페이지 [새 버전 개선] 판
   ───────────────────────────────────────────────────────────────────────
   V3 의 장점(단일 서류형 시트 통합, 조밀한 여백, 표형 라벨, 진행률 표시 등)을
   완벽히 계승하면서, 기존의 "부드러운 화사함"을 극대화하고
   admin/theme_settings.php 의 모든 테마 색상 팔레트와 유기적으로 호흡하도록 전면 개편.
   ═══════════════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────
   1. 토큰 시스템 — 테마 동적 반응형 팔레트
   ─────────────────────────────────────────────── */
html {
    overflow-x: clip !important;
}
body.v3plus-apply {
    overflow-x: clip !important;
    /* 듀얼 악센트 컬러 (라인 1: 핑크/레드/메인, 라인 2: 골드/서브) */
    --vp-accent-1:       var(--line-color-1, #e5a99e);
    --vp-accent-2:       var(--line-color-2, #c5a880);
    --vp-accent-1-rgb:   var(--accent-pink-deep-rgb, 229, 169, 158);
    --vp-accent-2-rgb:   var(--accent-gold-rgb, 197, 168, 128);

    /* 버튼 및 주요 상호작용 색상 */
    --vp-btn:            var(--btn-color, #a8604f);
    --vp-btn-hover:      var(--btn-color-hover, #8e4f40);
    --vp-btn-text:       var(--btn-text-color, #ffffff);

    /* 텍스트 — 깊고 부드러운 가독성 */
    --vp-ink:            var(--text-primary, #1e293b);
    --vp-ink-soft:       var(--text-secondary, #64748b);
    --vp-ink-faint:      rgba(var(--text-primary-rgb, 30, 41, 59), 0.55);

    /* 지면 및 서피스 — 맑고 투명한 글래스모피즘 */
    --vp-bg:             var(--bg-primary, #fdfbf7);
    --vp-surface:        var(--bg-secondary, #ffffff);
    --vp-card-bg:        rgba(255, 255, 255, 0.98);

    /* 표형 라벨 칸 및 헤더 밴드 — 테마 색상을 살린 은은한 파스텔 틴트 */
    --vp-surface-lbl:    rgba(var(--vp-accent-2-rgb), 0.12);
    --vp-surface-sub:    rgba(var(--vp-accent-2-rgb), 0.05);
    --vp-surface-band:   linear-gradient(90deg, rgba(var(--vp-accent-2-rgb), 0.24) 0%, rgba(var(--vp-accent-1-rgb), 0.10) 65%, transparent 100%);
    --vp-line-grad:      linear-gradient(90deg, var(--vp-accent-1), var(--vp-accent-2));

    /* 선명하고 또렷한 서류 경계선 — 밝은 파스텔 대신 테마 잉크톤 기반으로 확실한 명암비 확보 */
    --vp-line-ink-rgb:   var(--text-primary-rgb, 30, 41, 59);
    --vp-line:           rgba(var(--vp-line-ink-rgb), 0.22);
    --vp-line-soft:      rgba(var(--vp-line-ink-rgb), 0.12);
    --vp-line-strong:    rgba(var(--vp-line-ink-rgb), 0.38);

    /* 부드러운 화사함을 빚어내는 다층 소프트 앰비언트 섀도우 */
    --vp-shadow-rgb:     var(--shadow-color-rgb, var(--vp-accent-1-rgb));
    --vp-shadow-sm:      0 2px 8px rgba(var(--vp-shadow-rgb), 0.10);
    --vp-shadow:         0 6px 24px -4px rgba(var(--vp-shadow-rgb), 0.15), 0 2px 6px rgba(0, 0, 0, 0.04);
    --vp-shadow-lg:      0 14px 40px -8px rgba(var(--vp-shadow-rgb), 0.22), 0 4px 12px rgba(0, 0, 0, 0.06);

    --vp-r:              8px;
    --vp-r-lg:           12px;

    --vp-ok:             #2f7a4f;
    --vp-ok-bg:          #eef6f0;
    --vp-err:            #c0392b;
    --vp-err-bg:         #fbeeec;

    --vp-ease:           cubic-bezier(0.16, 1, 0.3, 1);

    color: var(--vp-ink);
    font-family: 'Outfit', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
    -webkit-font-smoothing: antialiased;

    /* 맑고 화사한 배경 앰비언트 글로우 — 칙칙한 단색 오버레이 완전 제거 */
    background-color: var(--vp-bg);
    background-image:
        radial-gradient(ellipse at 50% -40px, rgba(var(--vp-accent-1-rgb), 0.16) 0%, transparent 60%),
        radial-gradient(circle at 95% 260px, rgba(var(--vp-accent-2-rgb), 0.12) 0%, transparent 48%),
        radial-gradient(circle at 5% 480px, rgba(var(--vp-accent-1-rgb), 0.10) 0%, transparent 42%);
    background-attachment: fixed;
    background-repeat: no-repeat;
}

/* 다크 모드 (별이 빛나는 밤) 반응형 오버라이드 */
.dark-mode body.v3plus-apply {
    --vp-ink:            #e8eef8;
    --vp-ink-soft:       #cbd5e1;
    --vp-ink-faint:      rgba(232, 238, 248, 0.55);
    --vp-btn:            #f0c040;
    --vp-btn-text:       #0c1225;
    --vp-card-bg:        rgba(19, 28, 53, 0.92);
    --vp-surface:        rgba(26, 38, 70, 0.95);
    --vp-surface-lbl:    rgba(30, 48, 96, 0.55);
    --vp-surface-sub:    rgba(255, 255, 255, 0.04);
    --vp-surface-band:   linear-gradient(90deg, rgba(46, 74, 122, 0.5) 0%, rgba(30, 48, 96, 0.3) 100%);
    --vp-line:           rgba(107, 155, 210, 0.35);
    --vp-line-soft:      rgba(107, 155, 210, 0.20);
    --vp-line-strong:    rgba(107, 155, 210, 0.60);
    --vp-shadow:         0 8px 30px rgba(0, 0, 0, 0.6);
    background-image:
        radial-gradient(ellipse at 50% 0%, rgba(var(--vp-accent-1-rgb), 0.22) 0%, transparent 65%),
        radial-gradient(circle at 90% 300px, rgba(var(--vp-accent-2-rgb), 0.18) 0%, transparent 50%);
}

/* ───────────────────────────────────────────────
   2. 골격 레이아웃 (조밀한 여백 + 단정한 그리드)
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-shell {
    max-width: 940px;
    margin: 0 auto;
    padding: 0 1.25rem 6rem;
}
body.v3plus-apply .v3-shell.has-rail {
    max-width: 1080px;
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 1.6rem;
    align-items: start;
}
body.v3plus-apply .v3-shell.has-rail > .v3-hero,
body.v3plus-apply .v3-shell.has-rail > .v3-alert,
body.v3plus-apply .v3-shell.has-rail > .v3-notice,
body.v3plus-apply .v3-shell.has-rail .v3-hero,
body.v3plus-apply .v3-shell.has-rail .v3-alert,
body.v3plus-apply .v3-shell.has-rail .v3-notice { grid-column: 1 / -1; }

@media (max-width: 920px) {
    body.v3plus-apply .v3-shell.has-rail { grid-template-columns: minmax(0, 1fr); gap: 0; }
}

/* ───────────────────────────────────────────────
   3. 히어로 — 화사하고 은은한 성당 감성 헤더
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-hero {
    padding: 1.6rem 0 1.2rem;
    margin-bottom: 1.2rem;
    border-bottom: 1px solid var(--vp-line-soft);
    position: relative;
}
body.v3plus-apply .v3-crumb {
    display: flex; align-items: center; gap: 0.35rem;
    font-size: 0.76rem;
    color: var(--vp-ink-soft);
    margin-bottom: 0.75rem;
}
body.v3plus-apply .v3-crumb a { color: inherit; text-decoration: none; transition: color 0.15s; }
body.v3plus-apply .v3-crumb a:hover { color: var(--vp-btn); text-decoration: underline; }
body.v3plus-apply .v3-crumb .sep { opacity: 0.45; }
body.v3plus-apply .v3-crumb .cur { color: var(--vp-ink); font-weight: 700; }

body.v3plus-apply .v3-hero-row {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    flex-wrap: wrap;
}
body.v3plus-apply .v3-hero-mark {
    font-size: 1.85rem;
    line-height: 1;
    width: 52px; height: 52px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(var(--vp-accent-1-rgb), 0.18), rgba(var(--vp-accent-2-rgb), 0.18));
    border: 1px solid rgba(var(--vp-accent-2-rgb), 0.35);
    box-shadow: var(--vp-shadow-sm);
    flex-shrink: 0;
}
body.v3plus-apply .v3-hero-main { flex: 1; min-width: 240px; }
body.v3plus-apply .v3-hero-main h1 {
    font-family: 'Noto Serif KR', serif;
    font-size: clamp(1.4rem, 1.2rem + 1.2vw, 1.85rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.025em;
    margin: 0 0 0.35rem;
    color: var(--vp-ink);
}
body.v3plus-apply .v3-hero-sub {
    font-size: 0.86rem;
    line-height: 1.55;
    color: var(--vp-ink-soft);
    margin: 0;
}
body.v3plus-apply .v3-hero-meta {
    display: flex;
    gap: 0.45rem;
    align-items: center;
    flex-wrap: wrap;
}
body.v3plus-apply .v3-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.73rem;
    font-weight: 600;
    padding: 0.28rem 0.65rem;
    border-radius: 20px;
    background: var(--vp-surface);
    border: 1px solid var(--vp-line-soft);
    color: var(--vp-ink-soft);
    white-space: nowrap;
    box-shadow: 0 1px 3px rgba(0,0,0,0.03);
}
body.v3plus-apply .v3-pill.accent {
    background: linear-gradient(135deg, rgba(var(--vp-accent-1-rgb), 0.14), rgba(var(--vp-accent-2-rgb), 0.16));
    border-color: rgba(var(--vp-accent-1-rgb), 0.45);
    color: var(--vp-ink);
    font-weight: 700;
}
@media (max-width: 720px) {
    body.v3plus-apply .v3-hero-meta { margin-left: 0; width: 100%; margin-top: 0.55rem; }
}

/* ───────────────────────────────────────────────
   4. 좌측 네비게이션 레일 (단계별 목차)
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-rail {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 96px !important;
    align-self: start !important;
    border: 1.2px solid var(--vp-line);
    border-radius: var(--vp-r);
    background: var(--vp-card-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--vp-shadow);
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    z-index: 20;
}
body.v3plus-apply .v3-rail::-webkit-scrollbar {
    width: 4px;
}
body.v3plus-apply .v3-rail::-webkit-scrollbar-thumb {
    background: var(--vp-line-strong);
    border-radius: 4px;
}
@media (max-width: 920px) { body.v3plus-apply .v3-rail { display: none; } }

body.v3plus-apply .v3-rail-title {
    font-size: 0.70rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--vp-ink-soft);
    padding: 0.65rem 0.95rem;
    background: var(--vp-surface-lbl);
    border-bottom: 1px solid var(--vp-line-soft);
    font-family: 'Outfit', 'Noto Sans KR', sans-serif;
}
body.v3plus-apply .v3-rail-list { list-style: none; margin: 0; padding: 0; }
body.v3plus-apply .v3-rail-item {
    position: relative;
    padding: 0.58rem 0.9rem 0.58rem 2.1rem;
    font-size: 0.82rem;
    line-height: 1.4;
    color: var(--vp-ink-soft);
    cursor: pointer;
    border-bottom: 1px solid var(--vp-line-soft);
    transition: all 0.18s var(--vp-ease);
    word-break: keep-all;
}
body.v3plus-apply .v3-rail-item:last-child { border-bottom: none; }
body.v3plus-apply .v3-rail-item::before {
    content: '';
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--vp-line-strong);
    transition: all 0.18s var(--vp-ease);
}
body.v3plus-apply .v3-rail-item:hover {
    color: var(--vp-ink);
    background: var(--vp-surface-sub);
}
body.v3plus-apply .v3-rail-item.active {
    color: var(--vp-btn);
    font-weight: 700;
    background: rgba(var(--vp-accent-1-rgb), 0.08);
}
body.v3plus-apply .v3-rail-item.active::before {
    background: var(--vp-btn);
    box-shadow: 0 0 0 3px rgba(var(--vp-accent-1-rgb), 0.35);
}

/* ───────────────────────────────────────────────
   5. 핵심 컴포넌트: 화사한 단일 서류 시트 (The Sheet)
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-sheet {
    background: var(--vp-card-bg);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1.2px solid var(--vp-line);
    border-radius: var(--vp-r-lg);
    box-shadow: var(--vp-shadow);
    overflow: hidden;
    position: relative;
    transition: box-shadow 0.25s var(--vp-ease), border-color 0.25s var(--vp-ease);
}
/* 시트 상단 듀얼 그라데이션 시그니처 바 */
body.v3plus-apply .v3-sheet::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--vp-line-grad);
    z-index: 5;
}

/* 시트 내부 섹션 구분 */
body.v3plus-apply .v3-sec {
    border-bottom: 1.2px solid var(--vp-line-soft);
}
body.v3plus-apply .v3-sec:last-child { border-bottom: none; }

/* 섹션 헤더 밴드 — 우아하고 화사한 소프트 그라데이션 */
body.v3plus-apply .v3-sec-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1.15rem;
    background: var(--vp-surface-band);
    border-bottom: 1px solid var(--vp-line-soft);
    position: relative;
}
body.v3plus-apply .v3-sec-no,
body.v3plus-apply .step-badge {
    width: 26px; height: 26px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Outfit', sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
    background: var(--vp-btn);
    color: var(--vp-btn-text, #ffffff) !important;
    box-shadow: 0 2px 6px rgba(var(--vp-shadow-rgb), 0.25);
    text-shadow: none;
    flex-shrink: 0;
}
body.v3plus-apply .v3-head-text { flex: 1; min-width: 0; }
body.v3plus-apply .v3-head-text h2 {
    font-size: 0.98rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    margin: 0;
    color: var(--vp-ink);
    display: flex;
    align-items: center;
    gap: 0.45rem;
}
body.v3plus-apply .v3-head-text p {
    font-size: 0.79rem;
    color: var(--vp-ink-soft);
    margin: 0.15rem 0 0;
}

body.v3plus-apply .v3-body {
    padding: 1.1rem 1.4rem 1.4rem;
}
body.v3plus-apply .v3-body:has(> .v3-row) {
    padding: 0.2rem 0;
}

/* ───────────────────────────────────────────────
   6. 서식 표형 그리드 (Document Table Rows & Fields)
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-fields {
    display: grid;
    grid-template-columns: minmax(80px, max-content) minmax(0, 1fr)
                           minmax(80px, max-content) minmax(0, 1fr);
}
body.v3plus-apply .v3-fields.pairs-1 {
    grid-template-columns: minmax(80px, max-content) minmax(0, 1fr);
}
body.v3plus-apply .v3-fields.pairs-3 {
    grid-template-columns: repeat(3, minmax(75px, max-content) minmax(0, 1fr));
}
body.v3plus-apply .v3-fields > .v3-val:nth-child(4n),
body.v3plus-apply .v3-fields.pairs-1 > .v3-val:nth-child(2n) { border-right: none; }
body.v3plus-apply .v3-val.wide { grid-column: 2 / -1; border-right: none; }
body.v3plus-apply .v3-val.full { grid-column: 1 / -1; border-right: none; }
body.v3plus-apply .v3-fields > *:nth-last-child(-n+2) { border-bottom: none; }
body.v3plus-apply .v3-fields.pairs-1 > *:nth-last-child(-n+2) { border-bottom: none; }

body.v3plus-apply .v3-lbl.blank,
body.v3plus-apply .v3-val.blank {
    background: var(--vp-surface-sub);
}
body.v3plus-apply .v3-lbl.req::after {
    content: '*';
    color: var(--vp-btn);
    font-weight: 800;
    font-size: 0.9em;
    margin-left: 0.2rem;
}
@media (max-width: 720px) {
    body.v3plus-apply .v3-fields,
    body.v3plus-apply .v3-fields.pairs-1,
    body.v3plus-apply .v3-fields.pairs-3 { grid-template-columns: minmax(0, 1fr); }
    body.v3plus-apply .v3-fields .v3-lbl {
        border-right: none;
        border-bottom: none;
        padding: 0.5rem 0.85rem 0.2rem;
        background: transparent;
        font-size: 0.785rem;
        color: var(--vp-ink-soft);
    }
    body.v3plus-apply .v3-fields .v3-val,
    body.v3plus-apply .v3-fields .v3-val.wide,
    body.v3plus-apply .v3-fields .v3-val.full {
        grid-column: 1 / -1;
        border-right: none;
        padding: 0 0.85rem 0.65rem;
    }
    body.v3plus-apply .v3-fields > .v3-val { border-bottom: 1px solid var(--vp-line-soft); }
    body.v3plus-apply .v3-fields > .v3-val:last-child { border-bottom: none; }
}

body.v3plus-apply .v3-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid var(--vp-line-soft);
    min-height: 44px;
    align-items: stretch;
    transition: background 0.15s ease;
}
body.v3plus-apply .v3-row:last-child { border-bottom: none; }

/* 2쌍(4칸) 레이아웃 */
body.v3plus-apply .v3-row.cols-4 {
    grid-template-columns: 140px 1fr 140px 1fr;
}
@media (max-width: 780px) {
    body.v3plus-apply .v3-row.cols-4 {
        grid-template-columns: 130px 1fr;
    }
}
@media (max-width: 580px) {
    body.v3plus-apply .v3-row,
    body.v3plus-apply .v3-row.cols-4 {
        grid-template-columns: 110px 1fr;
    }
}

/* 라벨 칸 — 은은한 파스텔 틴트, 높은 가독성 */
body.v3plus-apply .v3-row .lbl,
body.v3plus-apply .v3-lbl {
    padding: 0.65rem 0.95rem;
    background: var(--vp-surface-lbl);
    border-right: 1px solid var(--vp-line-soft);
    font-size: 0.835rem;
    font-weight: 600;
    color: var(--vp-ink);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    line-height: 1.35;
    word-break: keep-all;
}
body.v3plus-apply .v3-req {
    color: var(--vp-btn);
    font-size: 0.9em;
    font-weight: 800;
}

/* 입력 칸 */
body.v3plus-apply .v3-row .val,
body.v3plus-apply .v3-val {
    padding: 0.55rem 0.95rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    position: relative;
    background: transparent;
    color: var(--vp-ink);
}
body.v3plus-apply .v3-row .val:not(:last-child) {
    border-right: 1px solid var(--vp-line-soft);
}
@media (max-width: 780px) {
    body.v3plus-apply .v3-row .val:nth-child(2) {
        border-right: none;
        border-bottom: 1px solid var(--vp-line-soft);
    }
}

/* ───────────────────────────────────────────────
   7. 입력 컨트롤 (Inputs, Selects, Textareas)
   ─────────────────────────────────────────────── */
body.v3plus-apply input[type="text"],
body.v3plus-apply input[type="tel"],
body.v3plus-apply input[type="email"],
body.v3plus-apply input[type="date"],
body.v3plus-apply input[type="time"],
body.v3plus-apply input[type="password"],
body.v3plus-apply select,
body.v3plus-apply textarea {
    width: 100%;
    min-height: 35px;
    padding: 0.35rem 0.7rem;
    font-size: 0.875rem;
    color: var(--vp-ink);
    background: var(--vp-surface);
    border: 1px solid var(--vp-line);
    border-radius: 6px;
    transition: all 0.18s var(--vp-ease);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.03);
    outline: none;
}
body.v3plus-apply input:hover,
body.v3plus-apply select:hover,
body.v3plus-apply textarea:hover {
    border-color: var(--vp-btn);
}
body.v3plus-apply input:focus,
body.v3plus-apply select:focus,
body.v3plus-apply textarea:focus {
    border-color: var(--vp-btn);
    box-shadow: 0 0 0 3px rgba(var(--vp-accent-1-rgb), 0.22);
    background: var(--vp-surface);
    color: var(--vp-ink);
}

body.v3plus-apply textarea {
    min-height: 72px;
    resize: vertical;
    padding: 0.5rem 0.7rem;
}

/* ───────────────────────────────────────────────
   8. 선택 칩 & 옵션 컨트롤 (Choices)
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.15rem 0;
}
body.v3plus-apply .v3-choice {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.42rem 0.75rem;
    border: 1.2px solid var(--vp-line);
    border-radius: 7px;
    background: var(--vp-surface);
    color: var(--vp-ink);
    font-size: 0.835rem;
    font-weight: 500;
    cursor: pointer;
    user-select: none;
    transition: all 0.18s var(--vp-ease);
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
body.v3plus-apply .v3-choice input { position: absolute; opacity: 0; pointer-events: none; }
body.v3plus-apply .v3-choice:hover {
    border-color: var(--vp-btn);
    background: var(--vp-surface-sub);
    transform: translateY(-1px);
}
body.v3plus-apply .v3-choice.active,
body.v3plus-apply .v3-choice.on,
body.v3plus-apply .v3-choice:has(input:checked) {
    background: linear-gradient(135deg, rgba(var(--vp-accent-1-rgb), 0.14), rgba(var(--vp-accent-2-rgb), 0.16));
    border-color: var(--vp-btn);
    color: var(--vp-btn);
    font-weight: 700;
    box-shadow: 0 2px 8px rgba(var(--vp-shadow-rgb), 0.18);
}

/* ───────────────────────────────────────────────
   9. 하단 액션 바 & 진행률 (Progress & Submission)
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    background: var(--vp-surface-lbl);
    border-top: 1.2px solid var(--vp-line-soft);
    flex-wrap: wrap;
}
body.v3plus-apply .v3-prog {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.78rem;
    color: var(--vp-ink-soft);
}
body.v3plus-apply .v3-prog-bar {
    width: 140px; height: 7px;
    border-radius: 4px;
    background: rgba(0,0,0,0.08);
    overflow: hidden;
    position: relative;
}
body.v3plus-apply .v3-prog-fill {
    height: 100%;
    background: var(--vp-line-grad);
    border-radius: 4px;
    transition: width 0.3s var(--vp-ease);
}

/* 주요 제출 버튼 */
body.v3plus-apply .v3-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.65rem 1.6rem;
    font-size: 0.885rem;
    font-weight: 700;
    border-radius: 8px;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s var(--vp-ease);
    border: none;
}
body.v3plus-apply .v3-btn-primary {
    background: linear-gradient(135deg, var(--vp-btn), var(--vp-accent-1));
    color: var(--vp-btn-text);
    box-shadow: 0 4px 14px rgba(var(--vp-accent-1-rgb), 0.35);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}
body.v3plus-apply .v3-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(var(--vp-accent-1-rgb), 0.50);
    filter: brightness(1.05);
}
body.v3plus-apply .v3-btn-ghost {
    background: var(--vp-surface);
    border: 1px solid var(--vp-line);
    color: var(--vp-ink-soft);
}
body.v3plus-apply .v3-btn-ghost:hover {
    background: var(--vp-surface-sub);
    color: var(--vp-ink);
    border-color: var(--vp-accent-1);
}
body.v3plus-apply .v3-btn-sm {
    padding: 0.35rem 0.85rem;
    font-size: 0.78rem;
    border-radius: 6px;
}

/* ───────────────────────────────────────────────
   10. 알림 및 검증 피드백 (Notice & Alert)
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.9rem 1.2rem;
    border-radius: var(--vp-r);
    background: linear-gradient(135deg, rgba(var(--vp-accent-2-rgb), 0.14), rgba(var(--vp-accent-1-rgb), 0.08));
    border: 1px solid rgba(var(--vp-accent-2-rgb), 0.35);
    color: var(--vp-ink);
    font-size: 0.84rem;
    line-height: 1.55;
    margin-bottom: 1.1rem;
    box-shadow: var(--vp-shadow-sm);
}
body.v3plus-apply .v3-notice-ic { font-size: 1.25rem; line-height: 1; flex-shrink: 0; }

body.v3plus-apply .v3-alert.ok {
    background: var(--vp-ok-bg);
    border: 1px solid var(--vp-ok);
    color: var(--vp-ok);
    padding: 1.25rem;
    border-radius: var(--vp-r);
    margin-bottom: 1.5rem;
    text-align: center;
    font-weight: 600;
}

/* ───────────────────────────────────────────────
   11. 상세 안내 및 서식 콘텐츠 컴포넌트
   ─────────────────────────────────────────────── */
/* 정의 목록 (dl / dt / dd) */
body.v3plus-apply .v3-dl {
    display: grid;
    grid-template-columns: minmax(80px, max-content) minmax(0, 1fr);
    border-top: 1px solid var(--vp-line-soft);
    margin: 0.5rem 0;
}
body.v3plus-apply .v3-dl dt,
body.v3plus-apply .v3-dl dd {
    padding: 0.55rem 0.85rem;
    border-bottom: 1px solid var(--vp-line-soft);
    font-size: 0.845rem;
    line-height: 1.6;
    margin: 0;
}
body.v3plus-apply .v3-dl dt {
    background: var(--vp-surface-lbl);
    font-weight: 700;
    font-size: 0.80rem;
    border-right: 1px solid var(--vp-line-soft);
    color: var(--vp-ink);
    white-space: nowrap;
}
body.v3plus-apply .v3-dl dd {
    color: var(--vp-ink);
    word-break: keep-all;
}
body.v3plus-apply .v3-dl dd strong {
    color: var(--vp-btn);
    font-weight: 700;
}

/* 데이터 표 (Table) */
body.v3plus-apply .v3-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0.6rem 0;
    border: 1px solid var(--vp-line-soft);
    border-radius: 8px;
}
body.v3plus-apply .v3-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.845rem;
}
body.v3plus-apply .v3-table th,
body.v3plus-apply .v3-table td {
    padding: 0.55rem 0.8rem;
    text-align: left;
    border: 1px solid var(--vp-line-soft);
}
body.v3plus-apply .v3-table th {
    font-size: 0.77rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--vp-ink);
    background: var(--vp-surface-lbl);
    border-color: var(--vp-line);
}
body.v3plus-apply .v3-table td {
    color: var(--vp-ink);
}
body.v3plus-apply .v3-table td strong {
    color: var(--vp-ink);
    font-weight: 700;
}
body.v3plus-apply .v3-table tr.total td {
    font-weight: 800;
    background: var(--vp-surface-sub);
    color: var(--vp-btn);
}
body.v3plus-apply .v3-table tr.discount td {
    color: var(--vp-btn);
    font-weight: 800;
}
body.v3plus-apply .v3-table td.num,
body.v3plus-apply .v3-table th.num {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* 부가 표시 배지 (선택/무료/추천 등) */
body.v3plus-apply .v3-opt {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--vp-surface-lbl);
    border: 1px solid var(--vp-line-soft);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--vp-ink-soft);
    vertical-align: middle;
}

/* 절차 흐름도 (Flow) */
body.v3plus-apply .v3-flow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin: 0.65rem 0 1rem;
}
body.v3plus-apply .v3-flow span {
    padding: 0.38rem 0.85rem;
    border: 1.2px solid var(--vp-line);
    border-radius: 8px;
    background: var(--vp-surface);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--vp-ink);
    box-shadow: var(--vp-shadow-sm);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
}
body.v3plus-apply .v3-flow i {
    font-style: normal;
    color: var(--vp-btn);
    font-weight: 800;
    font-size: 0.90rem;
    padding: 0 0.1rem;
}

/* 번호 매김 리스트 (Numlist) */
body.v3plus-apply .v3-numlist,
body.v3plus-apply .v3-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
body.v3plus-apply .v3-numlist > li {
    display: flex;
    gap: 0.65rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--vp-line-soft);
    font-size: 0.855rem;
    line-height: 1.6;
    word-break: keep-all;
    color: var(--vp-ink);
}
body.v3plus-apply .v3-numlist > li:last-child { border-bottom: none; }
body.v3plus-apply .v3-numlist > li:first-child { padding-top: 0; }
body.v3plus-apply .v3-num {
    flex-shrink: 0;
    width: 22px; height: 22px;
    border-radius: 6px;
    background: var(--vp-surface-lbl);
    border: 1.2px solid var(--vp-line);
    color: var(--vp-btn);
    font-family: 'Outfit', sans-serif;
    font-size: 0.74rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.15rem;
}
body.v3plus-apply .v3-numlist small,
body.v3plus-apply .v3-list small {
    display: block;
    color: var(--vp-ink-soft);
    font-size: 0.77rem;
    margin-top: 0.15rem;
}

/* ── 03번, 04번, 05번, 07번 상세 리스트 아이템 디자인 ── */
body.v3plus-apply .v3-list > li {
    padding: 0.75rem 0.95rem;
    font-size: 0.875rem;
    line-height: 1.7;
    word-break: keep-all;
    color: var(--vp-ink);
    border-bottom: 1px solid var(--vp-line-soft);
    border-radius: 6px;
    transition: background 0.15s ease;
}
body.v3plus-apply .v3-list > li:last-child {
    border-bottom: none;
}
body.v3plus-apply .v3-list > li:hover {
    background: rgba(var(--vp-line-ink-rgb), 0.025);
}

/* ── 리스트 내 중첩 안내 상자 (Nested Info Box) ── */
body.v3plus-apply .v3-nested {
    margin-top: 0.55rem;
    margin-bottom: 0.25rem;
    padding: 0.7rem 1rem;
    border-left: 3.5px solid var(--vp-btn);
    border-top: 1px solid var(--vp-line-soft);
    border-right: 1px solid var(--vp-line-soft);
    border-bottom: 1px solid var(--vp-line-soft);
    background: var(--vp-surface-lbl);
    border-radius: 0 8px 8px 0;
    font-size: 0.825rem;
    line-height: 1.65;
    color: var(--vp-ink);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}
body.v3plus-apply .v3-nested strong {
    color: var(--vp-ink);
    font-weight: 700;
}
body.v3plus-apply .v3-nested[style*="--v3-err"] {
    border-left-color: var(--vp-err) !important;
    background: var(--vp-err-bg) !important;
    color: var(--vp-err) !important;
}

/* ── 08번 당일 장소 안내 그리드 (Place Grid) ── */
body.v3plus-apply .v3-place-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.75rem;
    margin-top: 0.5rem;
}
body.v3plus-apply .v3-place-grid > div {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.85rem 1.1rem;
    background: var(--vp-surface);
    border: 1.2px solid var(--vp-line);
    border-radius: 8px;
    font-size: 0.865rem;
    font-weight: 700;
    color: var(--vp-ink);
    box-shadow: var(--vp-shadow-sm);
    transition: all 0.2s var(--vp-ease);
}
body.v3plus-apply .v3-place-grid > div:hover {
    border-color: var(--vp-btn);
    background: var(--vp-surface-sub);
    transform: translateY(-2px);
    box-shadow: var(--vp-shadow);
}

/* CTA 바로가기 카드 */
body.v3plus-apply .v3-cta-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}
body.v3plus-apply .v3-cta {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.9rem 1.05rem;
    border: 1.2px solid var(--vp-line);
    border-radius: var(--vp-r);
    background: var(--vp-surface);
    text-decoration: none;
    color: inherit;
    transition: all 0.2s var(--vp-ease);
    box-shadow: var(--vp-shadow-sm);
}
body.v3plus-apply .v3-cta:hover {
    border-color: var(--vp-btn);
    background: var(--vp-surface-sub);
    transform: translateY(-2px);
    box-shadow: var(--vp-shadow);
}
body.v3plus-apply .v3-cta-title {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.90rem;
    font-weight: 700;
    color: var(--vp-ink);
}
body.v3plus-apply .v3-cta-desc {
    font-size: 0.785rem;
    line-height: 1.55;
    color: var(--vp-ink-soft);
    word-break: keep-all;
}
body.v3plus-apply .v3-cta-go {
    margin-top: 0.2rem;
    font-size: 0.785rem;
    font-weight: 800;
    color: var(--vp-btn);
}

/* 시트 맨 아래 마무리 CTA — 안내 문구 + 신청서 버튼을 한 줄에 묶는 마감 밴드.
   앞 섹션의 얇은 구분선은 지우고, 굵은 실선 한 줄로 본문과 확실히 끊는다. */
body.v3plus-apply .v3-sec:has(+ .v3-end-cta) { border-bottom: none; }
body.v3plus-apply .v3-end-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.1rem;
    padding: 0.95rem 1.4rem;
    background: var(--vp-surface-band);
    border-top: 1.5px solid var(--vp-line-strong);
}
body.v3plus-apply .v3-end-cta p {
    margin: 0;
    font-size: 0.815rem;
    line-height: 1.6;
    color: var(--vp-ink-soft);
    word-break: keep-all;
}
body.v3plus-apply .v3-end-cta .v3-btn { flex-shrink: 0; }

@media (max-width: 560px) {
    body.v3plus-apply .v3-end-cta {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
        padding: 0.9rem 1.1rem;
    }
}

/* 인셋 강조 박스 */
body.v3plus-apply .v3-inset {
    padding: 0.85rem 1.1rem;
    border-left: 3.5px solid var(--vp-btn);
    border-radius: 0 8px 8px 0;
    background: var(--vp-surface-sub);
    font-size: 0.84rem;
    line-height: 1.65;
    color: var(--vp-ink);
    word-break: keep-all;
    margin: 0.85rem 0;
}
body.v3plus-apply .v3-inset strong { color: var(--vp-ink); font-weight: 700; }
body.v3plus-apply .v3-inset.danger {
    border-left-color: var(--vp-err);
    background: var(--vp-err-bg);
    color: var(--vp-err);
}
body.v3plus-apply .v3-inset.danger strong { color: var(--vp-err); }

/* 소제목 및 힌트 */
body.v3plus-apply .v3-subhead {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: var(--vp-btn);
    margin: 1.1rem 0 0.55rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--vp-line-soft);
    font-family: 'Outfit', 'Noto Sans KR', sans-serif;
}
body.v3plus-apply .v3-hint {
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--vp-ink-soft);
    margin: 0.5rem 0;
}

/* ───────────────────────────────────────────────
   11. 반복 행 (복수 입력) — 표 안의 소블록
   ─────────────────────────────────────────────── */
body.v3plus-apply .v3-repeat { padding: 0; }
body.v3plus-apply .v3-repeat-row { border-bottom: 1.2px solid var(--vp-line); }
body.v3plus-apply .v3-repeat-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.4rem 1rem;
    background: var(--vp-surface-sub);
    border-bottom: 1px solid var(--vp-line-soft);
}
body.v3plus-apply .v3-repeat-no {
    font-family: 'Outfit', sans-serif;
    font-size: 0.74rem; font-weight: 800; letter-spacing: 0.08em; color: var(--vp-ink-faint);
}
body.v3plus-apply .v3-row-del {
    background: none; border: none;
    color: var(--vp-ink-soft);
    font-size: 0.75rem; font-weight: 600; cursor: pointer;
    padding: 0.2rem 0.5rem; border-radius: 4px;
    transition: all 0.15s ease;
}
body.v3plus-apply .v3-row-del:hover { color: var(--vp-err); background: var(--vp-err-bg); }
body.v3plus-apply .v3-repeat-add-wrap { padding: 0.75rem 1rem; }

/* ───────────────────────────────────────────────
   12. 레거시 폼 스킨 호환 레이어 (V3+ 서류형 시트 + 고가독성)
   ─────────────────────────────────────────────── */

/* 12-1. 쉘 컨테이너 */
body.v3plus-apply main.v3-legacy-shell,
body.v3plus-apply .v3-legacy-shell,
body.v3plus-apply main.container {
    max-width: 940px;
    margin: 0 auto;
    padding: 0 1.25rem 4rem;
}
body.v3plus-apply main.v3-legacy-shell .v3-crumb {
    padding-top: 1.4rem;
}

/* 12-2. 페이지 헤더 (.apply-head) */
body.v3plus-apply .apply-head {
    text-align: left;
    margin: 0 0 1.25rem;
    padding: 1.2rem 0 1rem;
    border-bottom: 1px solid var(--vp-line);
}
body.v3plus-apply .apply-head-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    font-size: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.65rem;
    background: var(--vp-surface);
    border: 1.2px solid var(--vp-line);
    box-shadow: var(--vp-shadow-sm);
}
body.v3plus-apply .apply-head h2 {
    font-size: clamp(1.35rem, 1.15rem + 0.9vw, 1.68rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.25;
    margin: 0;
    color: var(--vp-ink) !important;
    font-family: 'Outfit', 'Noto Sans KR', sans-serif !important;
}
body.v3plus-apply .apply-head p {
    color: var(--vp-ink-soft) !important;
    font-size: 0.855rem;
    line-height: 1.6;
    margin-top: 0.35rem;
    max-width: 62ch;
    word-break: keep-all;
    font-family: 'Noto Sans KR', sans-serif !important;
}

/* 12-3. ★ 폼 전체를 단 하나의 서류형 시트(One Sheet)로 통합 (이중 파란선 버그 완벽 차단) */
body.v3plus-apply .apply-form {
    display: block;
    border: 1.5px solid var(--vp-line-strong) !important;
    border-radius: var(--vp-r-lg) !important;
    background: var(--vp-card-bg) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: var(--vp-shadow) !important;
    overflow: hidden !important;
    position: relative !important;
    padding: 0 !important;
    margin-bottom: 2rem !important;
    gap: 0;
}
/* 시트 최상단 듀얼 그라데이션 시그니처 바 — 오직 .apply-form 에만 단 1개 생성 */
body.v3plus-apply .apply-form::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--vp-line-grad);
    z-index: 5;
}

/* 12-4. 시트 내부의 개별 카드는 외곽선/그림자/라운딩을 벗고 단정한 구획(Section)으로 전환 */
body.v3plus-apply .apply-form > .form-card,
body.v3plus-apply .apply-form > section.form-card {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: transparent !important;
    padding: 0 0 1.25rem !important;
    margin: 0 !important;
    position: static !important;
}
/* ★ 핵심: 내부 카드의 중복 ::before (이중 파란선) 완전 제거! */
body.v3plus-apply .apply-form > .form-card::before,
body.v3plus-apply .apply-form > section.form-card::before {
    display: none !important;
    content: none !important;
}
/* 섹션과 섹션 사이는 선명한 실선 구분 */
body.v3plus-apply .apply-form > .form-card + .form-card,
body.v3plus-apply .apply-form > section.form-card + section.form-card {
    border-top: 1.5px solid var(--vp-line-strong) !important;
}

/* 시트 외부에 홀로 있는 독립 카드가 있을 경우 */
body.v3plus-apply .form-card:not(.apply-form > .form-card) {
    border: 1.5px solid var(--vp-line);
    border-radius: var(--vp-r-lg);
    background: var(--vp-card-bg);
    box-shadow: var(--vp-shadow-sm);
    padding: 0 0 1.25rem;
    margin-bottom: 1.2rem;
    overflow: hidden;
    position: relative;
}

/* 12-5. 카드 헤더 → 은은한 테마 서피스 밴드 */
body.v3plus-apply .form-card-head {
    display: flex;
    align-items: baseline;
    gap: 0.65rem;
    margin: 0 0 1rem !important;
    padding: 0.75rem 1.25rem !important;
    background: var(--vp-surface-band) !important;
    border-bottom: 1px solid var(--vp-line) !important;
    border-top: none !important;
}
body.v3plus-apply .form-card-head .step-badge {
    width: 22px;
    height: 22px;
    min-width: 22px;
    border-radius: 5px;
    background: var(--vp-btn) !important;
    color: var(--vp-btn-text, #ffffff) !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.75rem !important;
    font-weight: 800 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex-shrink: 0;
    box-shadow: 0 1px 3px rgba(var(--vp-shadow-rgb), 0.3);
    text-shadow: none;
}
body.v3plus-apply .form-card-head > div {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
    min-width: 0;
}
body.v3plus-apply .form-card-head h3,
body.v3plus-apply .form-card h3 {
    font-size: 0.96rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    color: var(--vp-ink) !important;
    margin: 0 !important;
    font-family: 'Outfit', 'Noto Sans KR', sans-serif !important;
}
body.v3plus-apply .form-card-head p {
    font-size: 0.785rem !important;
    line-height: 1.5 !important;
    color: var(--vp-ink-soft) !important;
    margin: 0 !important;
    word-break: keep-all;
    font-family: 'Noto Sans KR', sans-serif !important;
}

/* 12-6. 카드 본문 좌우 여백 */
body.v3plus-apply .form-card > *:not(.form-card-head) {
    margin-left: 1.25rem !important;
    margin-right: 1.25rem !important;
}

/* 12-7. 필드 그리드 & 라벨 & 인풋 가독성 강화 */
body.v3plus-apply .form-group-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 0.85rem;
}
@media (min-width: 1000px) {
    body.v3plus-apply .form-group-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    body.v3plus-apply .fg-span-2,
    body.v3plus-apply .form-span-2 {
        grid-column: 1 / -1;
    }
}
@media (max-width: 720px) {
    body.v3plus-apply .form-group-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

body.v3plus-apply .form-group {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}
/* 라벨: 크기와 색상을 안정화하여 입력 필드와의 시각적 위계 확립 */
body.v3plus-apply .form-group > label,
body.v3plus-apply .form-group label {
    font-size: 0.775rem !important;
    font-weight: 600 !important;
    color: var(--vp-ink-soft) !important;
    letter-spacing: -0.01em !important;
    margin-bottom: 0.28rem !important;
    font-family: 'Noto Sans KR', sans-serif !important;
}
/* 입력 필드: 또렷한 실선과 편안한 크기, 정갈한 폰트 */
body.v3plus-apply .form-group input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.v3plus-apply .form-group textarea,
body.v3plus-apply .form-group select {
    min-height: 38px !important;
    padding: 0.42rem 0.65rem !important;
    font-size: 0.885rem !important;
    line-height: 1.45 !important;
    background: var(--vp-surface) !important;
    border: 1.2px solid var(--vp-line) !important;
    border-radius: 6px !important;
    color: var(--vp-ink) !important;
    font-family: 'Outfit', 'Noto Sans KR', sans-serif !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.03) !important;
    transition: border-color 0.15s var(--vp-ease), box-shadow 0.15s var(--vp-ease) !important;
    outline: none !important;
}
body.v3plus-apply .form-group input:hover,
body.v3plus-apply .form-group textarea:hover,
body.v3plus-apply .form-group select:hover {
    border-color: var(--vp-btn) !important;
}
body.v3plus-apply .form-group input:focus,
body.v3plus-apply .form-group textarea:focus,
body.v3plus-apply .form-group select:focus {
    border-color: var(--vp-btn) !important;
    box-shadow: 0 0 0 3px rgba(var(--vp-accent-1-rgb), 0.22) !important;
    background: var(--vp-surface) !important;
    color: var(--vp-ink) !important;
}
body.v3plus-apply .form-group textarea {
    min-height: 80px !important;
    line-height: 1.6 !important;
}
@media (max-width: 720px) {
    body.v3plus-apply .form-group input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    body.v3plus-apply .form-group textarea,
    body.v3plus-apply .form-group select {
        font-size: 16px !important;
        min-height: 42px !important;
    }
}

/* 소속단체 빠른 검색 입력칸 — 돋보기(🔍)와 지우기(✕) 버튼 자리 확보.
   바로 위 .form-group input 규칙의 padding(0.42rem 0.65rem)이 style.css 의
   아이콘용 좌우 여백을 덮어써서 아이콘이 글자 위에 겹쳤다.
   세로 여백은 v3plus 값을 유지하고 좌우만 되살린다.
   (cathedral_apply · pr_apply · van_apply 공통) */
body.v3plus-apply .form-group input.org-search-input-field:not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
    padding: 0.42rem 2.2rem 0.42rem 2.5rem !important;
}
body.v3plus-apply .org-search-icon-badge {
    left: 0.72rem;
    font-size: 0.95rem;
}
body.v3plus-apply .org-search-clear-btn {
    right: 0.55rem;
}

/* 12-8. 선택 칩 (Chip) */
body.v3plus-apply .chip {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    padding: 0.42rem 0.68rem;
    border: 1.2px solid var(--vp-line) !important;
    border-radius: 6px !important;
    background: var(--vp-surface) !important;
    font-size: 0.835rem;
    font-weight: 500;
    color: var(--vp-ink) !important;
    cursor: pointer;
    transition: all 0.15s ease;
}
body.v3plus-apply .chip:hover {
    border-color: var(--vp-btn) !important;
    background: var(--vp-surface-sub) !important;
}
body.v3plus-apply .chip:has(input:checked),
body.v3plus-apply .chip.is-checked {
    background: linear-gradient(135deg, rgba(var(--vp-accent-1-rgb), 0.14), rgba(var(--vp-accent-2-rgb), 0.16)) !important;
    border-color: var(--vp-btn) !important;
    color: var(--vp-btn) !important;
    font-weight: 700 !important;
}

/* 12-9. 위젯 및 알림 박스 & 버튼 */
body.v3plus-apply .calendar-widget,
body.v3plus-apply .info-box,
body.v3plus-apply .date-warning {
    background: var(--vp-card-bg) !important;
    border: 1.2px solid var(--vp-line) !important;
    border-radius: var(--vp-r) !important;
    color: var(--vp-ink) !important;
    padding: 1rem !important;
    margin-top: 0.65rem;
}
body.v3plus-apply .btn {
    border-radius: 6px !important;
    font-weight: 700 !important;
    background: var(--vp-btn) !important;
    border: 1px solid var(--vp-btn) !important;
    color: var(--vp-btn-text, #ffffff) !important;
    transition: all 0.15s var(--vp-ease);
}
body.v3plus-apply .btn:hover {
    filter: brightness(1.08);
}
body.v3plus-apply .btn-secondary {
    background: var(--vp-surface) !important;
    color: var(--vp-ink) !important;
    border-color: var(--vp-line-strong) !important;
}
body.v3plus-apply .btn-secondary:hover {
    background: var(--vp-surface-sub) !important;
}
body.v3plus-apply .btn-small {
    padding: 0.35rem 0.75rem !important;
    font-size: 0.78rem !important;
}

/* 12-10. 하단 제출 영역 & 버튼 (시트 최하단 밴드로 안착) */
body.v3plus-apply .submit-area {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 0.95rem 1.4rem !important;
    background: var(--vp-surface-band) !important;
    border-top: 1.5px solid var(--vp-line-strong) !important;
    margin: 1.25rem 0 0 0 !important;
}
body.v3plus-apply .submit-btn {
    background: linear-gradient(135deg, var(--vp-btn), var(--vp-accent-1)) !important;
    color: var(--vp-btn-text, #ffffff) !important;
    font-weight: 800 !important;
    font-size: 0.92rem !important;
    padding: 0.65rem 2.2rem !important;
    min-height: 42px !important;
    border-radius: 8px !important;
    border: none !important;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(var(--vp-shadow-rgb), 0.35) !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.15);
    transition: all 0.2s var(--vp-ease);
}
body.v3plus-apply .submit-btn:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(var(--vp-shadow-rgb), 0.45) !important;
}
body.v3plus-apply .submit-btn:active {
    transform: translateY(1px);
}

/* 12-11. 알림 (Alert) */
body.v3plus-apply .alert {
    border-radius: var(--vp-r-lg);
    padding: 1.1rem 1.35rem;
    background: var(--vp-card-bg);
    border: 1.5px solid var(--vp-line-strong);
    box-shadow: var(--vp-shadow-sm);
    text-align: left;
    line-height: 1.65;
    margin-bottom: 1.25rem;
}
body.v3plus-apply .alert h3 {
    font-size: 0.98rem;
    font-weight: 700;
    margin: 0;
}
body.v3plus-apply .alert-success {
    border-left: 4px solid var(--vp-ok) !important;
    color: var(--vp-ok) !important;
}
body.v3plus-apply .alert-error {
    border-left: 4px solid var(--vp-err) !important;
    color: var(--vp-err) !important;
}

/* ───────────────────────────────────────────────
   13. 애니메이션 & 인터랙션
   ─────────────────────────────────────────────── */
@keyframes vpRevealFallback {
    to { opacity: 1; transform: none; }
}
body.v3plus-apply .v3-reveal {
    opacity: 0;
    transform: translateY(8px);
    animation: vpRevealFallback 0.4s var(--vp-ease) 0.5s forwards;
}
body.v3plus-apply.v3-ready .v3-reveal {
    animation: none;
    transition: opacity 0.45s var(--vp-ease), transform 0.45s var(--vp-ease);
}
body.v3plus-apply.v3-ready .v3-reveal.in,
body.v3plus-apply .v3-reveal.in {
    opacity: 1 !important;
    transform: none !important;
}
html:not(.js) body.v3plus-apply .v3-reveal { opacity: 1 !important; transform: none !important; }

@keyframes vpFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
body.v3plus-apply .v3-fade-up { animation: vpFadeIn 0.32s var(--vp-ease) both; }
body.v3plus-apply .v3-pop { animation: vpFadeIn 0.32s var(--vp-ease) both; }

@media (prefers-reduced-motion: reduce) {
    body.v3plus-apply *, body.v3plus-apply *::before, body.v3plus-apply *::after {
        animation-duration: 0.001ms !important;
        transition-duration: 0.001ms !important;
    }
    body.v3plus-apply .v3-reveal { opacity: 1 !important; transform: none !important; }
}
