/* KORMOYA Visit — 입국 확인 · 초청 가이드. 색·글꼴·간격은 kormoya-design 토큰(tokens.css)을 쓰고, 없을 때를 위한 기본값만 둔다. */
.kv-wrap {
  --kv-blue: var(--kd-blue, #2447B8);
  --kv-blue-dark: var(--kd-blue-dark, #1B3A96);
  --kv-tint: var(--kd-tint, #E6EEFF);
  --kv-bg: var(--kd-bg, #F4F7FD);
  --kv-card: var(--kd-card, #fff);
  --kv-ink: var(--kd-ink, #13203B);
  --kv-soft: var(--kd-soft, #57657F);
  --kv-line: var(--kd-line, #D5DFF2);
  --kv-bad: var(--kd-sale, #C62828);
  --kv-ok: #1E7B45;
  --kv-ok-tint: #E3F4EA;
  --kv-warn: #9A5B00;
  --kv-warn-tint: #FFF3DC;
  --kv-bad-tint: #FDE8E8;
  --kv-r: var(--kd-r, 6px);
  --kv-r-lg: var(--kd-r-lg, 10px);
  color: var(--kv-ink);
  font-size: 16px;
  line-height: 1.6;
}
.kv-wrap *, .kv-wrap *::before, .kv-wrap *::after { box-sizing: border-box; }
.kv-wrap h2 { font-size: 22px; line-height: 1.3; margin: 0 0 14px; }
.kv-wrap h3 { font-size: 17px; line-height: 1.35; margin: 0 0 8px; }
.kv-wrap p { margin: 0 0 12px; }
.kv-wrap a { color: var(--kv-blue); }
.kv-lead { font-size: 18px; color: var(--kv-soft); max-width: 760px; }
.kv-sec { margin-top: 36px; }
.kv-card { background: var(--kv-card); border: 1px solid var(--kv-line); border-radius: var(--kv-r-lg); padding: 20px; }
.kv-grid2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 760px) { .kv-grid2 { grid-template-columns: minmax(0, 1fr); } }
.kv-note-small { font-size: 13px; color: var(--kv-soft); margin: 12px 0 0; }

/* 버튼·칩 */
.kv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: var(--kv-blue); color: #fff !important; border: 0; border-radius: var(--kv-r); padding: 10px 16px; font: inherit; font-weight: 700; text-decoration: none !important; cursor: pointer; }
.kv-btn:hover { background: var(--kv-blue-dark); }
.kv-btn--ghost { background: #fff; color: var(--kv-blue) !important; border: 1px solid var(--kv-blue); }
.kv-btn--ghost:hover { background: var(--kv-tint); }
.kv-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.kv-chip { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; background: var(--kv-tint); color: var(--kv-blue); }
.kv-chip--ok { background: var(--kv-ok-tint); color: var(--kv-ok); }
.kv-chip--warn { background: var(--kv-warn-tint); color: var(--kv-warn); }
.kv-chip--bad { background: var(--kv-bad-tint); color: var(--kv-bad); }
.kv-chip--gray { background: #EEF1F6; color: var(--kv-soft); }

/* 입력 */
.kv-form { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 12px; }
.kv-form--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kv-form--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 760px) { .kv-form, .kv-form--3, .kv-form--2 { grid-template-columns: minmax(0, 1fr); } }
.kv-field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.kv-field > span { font-size: 13px; font-weight: 700; color: var(--kv-soft); }
.kv-field select, .kv-field input { width: 100%; min-width: 0; height: 46px; border: 1px solid var(--kv-line); border-radius: var(--kv-r); padding: 0 12px; background: #fff; color: var(--kv-ink); font: inherit; }
.kv-field select:focus, .kv-field input:focus { outline: 0; border-color: var(--kv-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--kv-blue) 30%, transparent); }

/* 판정 결과 */
.kv-out:empty { display: none; }
.kv-out { margin-top: 16px; }
.kv-res { border: 1px solid var(--kv-line); border-left: 5px solid var(--kv-ok); border-radius: var(--kv-r-lg); padding: 18px 20px; background: #fff; }
.kv-res--warn { border-left-color: #E0A100; }
.kv-res--bad { border-left-color: var(--kv-bad); }
.kv-res__h { font-size: 20px; font-weight: 800; line-height: 1.35; margin: 0 0 10px !important; }
.kv-steps { list-style: none; padding: 0; margin: 14px 0 0; border-top: 1px solid var(--kv-line); }
.kv-steps li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--kv-line); margin: 0; }
.kv-steps__d { font-weight: 800; color: var(--kv-blue); font-size: 14px; }
.kv-steps a { font-size: 14px; white-space: nowrap; }
@media (max-width: 560px) { .kv-steps li { grid-template-columns: 48px minmax(0, 1fr); } .kv-steps a { grid-column: 2; } }
.kv-callout { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding: 14px 16px; background: var(--kv-tint); border-radius: var(--kv-r); }
.kv-callout span { display: block; font-size: 14px; color: var(--kv-soft); }
@media (max-width: 560px) { .kv-callout { flex-direction: column; align-items: flex-start; } }

/* 준비 일정 */
.kv-tl { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.kv-tl li { background: #fff; border: 1px solid var(--kv-line); border-radius: var(--kv-r-lg); padding: 14px; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.kv-tl b { color: var(--kv-blue); font-size: 14px; }
.kv-tl span { font-size: 13px; color: var(--kv-soft); }
.kv-tl li.is-now { border: 2px solid var(--kv-blue); background: var(--kv-tint); }
@media (max-width: 760px) { .kv-tl { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 체크리스트 */
.kv-check { list-style: none; padding: 0; margin: 0; }
.kv-check li { padding: 9px 0; border-bottom: 1px dashed var(--kv-line); margin: 0; }
.kv-check li:last-child { border-bottom: 0; }
.kv-check label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.kv-check input { width: 18px; height: 18px; margin-top: 3px; flex: none; accent-color: var(--kv-blue); }
.kv-check small { display: block; padding-left: 28px; color: var(--kv-soft); font-size: 13px; }

/* 표 */
.kv-table-wrap { overflow-x: auto; }
.kv-table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; }
.kv-table th, .kv-table td { border: 1px solid var(--kv-line); padding: 9px 10px; text-align: left; vertical-align: top; }
.kv-table thead th, .kv-table tbody th { background: var(--kv-bg); }

/* FAQ · 나라 칩 · 링크 */
.kv-faq h3 { margin-top: 18px; }
.kv-faq p { color: var(--kv-ink); }
.kv-pills { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kv-pills > span { font-weight: 700; color: var(--kv-soft); font-size: 14px; margin-right: 4px; }
.kv-pill { border: 1px solid var(--kv-line); background: #fff; border-radius: 999px; padding: 6px 14px; font-weight: 700; font-size: 14px; text-decoration: none !important; color: var(--kv-ink) !important; }
.kv-pill:hover { border-color: var(--kv-blue); color: var(--kv-blue) !important; }
.kv-links { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.kv-links li { margin: 0; }
.kv-links a { display: block; background: #fff; border: 1px solid var(--kv-line); border-radius: var(--kv-r); padding: 12px 14px; font-weight: 700; text-decoration: none; }
@media (max-width: 760px) { .kv-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 허브 */
.kv-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 24px; align-items: start; }
@media (max-width: 860px) { .kv-hero { grid-template-columns: minmax(0, 1fr); } }
.kv-mini h2 { font-size: 19px; }
.kv-mini__more { margin: 14px 0 0; }
.kv-persona__item { display: flex; gap: 14px; align-items: center; text-decoration: none !important; color: var(--kv-ink) !important; transition: border-color .15s; }
.kv-persona__item:hover { border-color: var(--kv-blue); }
.kv-persona__ico { font-size: 32px; }
.kv-persona__item strong { display: block; font-size: 17px; }
.kv-persona__item em { font-style: normal; font-size: 14px; color: var(--kv-soft); }

/* 초청 가이드 */
.kv-who { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.kv-who__btn { text-align: left; background: #fff; border: 2px solid var(--kv-line); border-radius: var(--kv-r-lg); padding: 14px 16px; cursor: pointer; font: inherit; color: var(--kv-ink); }
.kv-who__btn strong { display: block; font-size: 16px; }
.kv-who__btn span { font-size: 14px; color: var(--kv-soft); }
.kv-who__btn.is-on { border-color: var(--kv-blue); background: var(--kv-tint); }
@media (max-width: 560px) { .kv-who { grid-template-columns: minmax(0, 1fr); } }
.kv-alert { margin: 16px 0 0; padding: 12px 14px; border-left: 4px solid var(--kv-blue); background: var(--kv-tint); border-radius: 0 var(--kv-r) var(--kv-r) 0; font-size: 14px; }
.kv-alert--warn { border-left-color: #E0A100; background: var(--kv-warn-tint); }
.kv-docs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 16px; }
@media (max-width: 760px) { .kv-docs { grid-template-columns: minmax(0, 1fr); } }
.kv-invite.is-guest .kv-docs__col[data-side="guest"] { order: -1; }
.kv-steps5 { list-style: none; counter-reset: kvs; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.kv-steps5 li { counter-increment: kvs; background: #fff; border: 1px solid var(--kv-line); border-radius: var(--kv-r-lg); padding: 14px; margin: 0; font-size: 14px; }
.kv-steps5 li::before { content: counter(kvs); display: inline-flex; width: 26px; height: 26px; border-radius: 50%; background: var(--kv-blue); color: #fff; font-weight: 800; align-items: center; justify-content: center; margin-bottom: 8px; }
.kv-steps5 strong { display: block; font-size: 15px; }
@media (max-width: 860px) { .kv-steps5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kv-wrap h2 small { font-size: 14px; font-weight: 500; color: var(--kv-soft); margin-left: 6px; }

/* 공식 양식 받기 · 칸별 작성법 */
.kv-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.kv-grid3 > [hidden] { display: none; }
@media (max-width: 900px) { .kv-grid3 { grid-template-columns: minmax(0, 1fr); } }
.kv-formcard p { font-size: 14px; color: var(--kv-soft); }
.kv-formcard p:last-child { margin-bottom: 0; }
.kv-dls { display: flex; flex-wrap: wrap; gap: 8px; }
.kv-formcard--f15 { border: 2px solid var(--kv-blue); background: var(--kv-tint); }
.kv-guide { margin: 0; padding-left: 20px; font-size: 15px; }
.kv-guide li { margin: 0 0 8px; }
.kv-sample__label { font-size: 13px; font-weight: 700; color: var(--kv-soft); margin: 14px 0 6px !important; }
.kv-sample { background: var(--kv-bg); border: 1px dashed var(--kv-line); border-radius: var(--kv-r); padding: 12px 14px; }
.kv-sample p { font-size: 15px; margin: 0 0 10px !important; }
.kv-links--posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 760px) { .kv-links--posts { grid-template-columns: minmax(0, 1fr); } }
.kv-posts h2 { font-size: 19px; }
.kv-free { margin-top: 16px; border: 1px solid var(--kv-line); border-left: 5px solid var(--kv-ok); border-radius: var(--kv-r-lg); padding: 18px 20px; background: #fff; }
.kv-free .kv-check li { padding-left: 2px; }
.kv-wrap [hidden] { display: none !important; }
