/* PDF 작업대 — 안내·가이드 페이지 공통 스타일 (Midnight Desk) */
:root {
  --bg: #0e1320;
  --panel: #151b2a;
  --raise: #1c2336;
  --sunk: #0b101b;
  --line: #2a3247;
  --line-soft: #222a3d;
  --text: #ece8e1;
  --body: #d5d1ca;
  --muted: #9da6b8;
  --accent: #e2b66b;
  --accent-ink: #1a1306;
  --accent-soft: rgba(226, 182, 107, .10);
  --serif: "Nanum Myeongjo", "AppleMyungjo", "Batang", serif;
  --sans: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: radial-gradient(1100px 480px at 50% -14%, rgba(226, 182, 107, .08), transparent 62%), var(--bg);
  background-color: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--accent); text-underline-offset: 3px; }
a:hover { color: #f0cd8f; }
::selection { background: var(--accent); color: var(--accent-ink); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.wrap { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.narrow { max-width: 760px; margin: 0 auto; }

/* 머리글 */
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; padding: 24px 0; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--serif); font-weight: 800; font-size: 20px; color: var(--text); text-decoration: none; letter-spacing: -.02em; }
.brand:hover { color: var(--text); }
.brand .logo { display: block; width: 30px; height: 30px; border-radius: 8px; flex: none; }
.site-nav { display: flex; flex-wrap: wrap; gap: 4px; }
.site-nav a {
  color: var(--muted); text-decoration: none; font-size: 14px; padding: 8px 14px; border-radius: 999px;
  display: inline-flex; align-items: center; gap: 7px;
}
.nav-ico {
  width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round; opacity: .75; transition: color .15s, opacity .15s, transform .2s;
}
.site-nav a:hover .nav-ico { color: var(--accent); opacity: 1; transform: translateY(-1px); }
.site-nav a[aria-current="page"] .nav-ico { color: var(--accent); opacity: 1; }
.site-nav a.cta-sm .nav-ico { opacity: 1; }
.site-nav a.cta-sm:hover .nav-ico { color: inherit; }
.site-nav a:hover { color: var(--text); background: var(--raise); }
.site-nav a[aria-current="page"] { color: var(--text); background: var(--raise); box-shadow: inset 0 0 0 1px var(--line); }
.site-nav a.cta-sm { color: var(--accent-ink); background: var(--accent); font-weight: 700; }
.site-nav a.cta-sm:hover { filter: brightness(1.07); }

/* 본문 */
main { padding: 32px 0 72px; }
.crumbs { font-size: 13px; color: var(--muted); margin-bottom: 18px; }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs a:hover { color: var(--text); }
.page-head { margin-bottom: 36px; }
.page-head h1 { font-family: var(--serif); font-weight: 800; font-size: 40px; line-height: 1.35; letter-spacing: -.03em; margin: 0 0 14px; }
.page-head .lead { color: var(--muted); font-size: 17px; margin: 0; }
.meta { color: var(--muted); font-size: 13px; margin-top: 14px; display: flex; gap: 6px 14px; flex-wrap: wrap; }

.prose { color: var(--body); }
.prose h2 { font-family: var(--serif); font-weight: 700; font-size: 26px; line-height: 1.4; color: var(--text); margin: 48px 0 14px; letter-spacing: -.02em; }
.prose h3 { font-size: 18px; color: var(--text); margin: 32px 0 8px; }
.prose p { margin: 0 0 16px; }
.prose ul, .prose ol { margin: 0 0 18px; padding-left: 1.4em; }
.prose li { margin-bottom: 8px; }
.prose li::marker { color: var(--accent); }
.prose strong { color: var(--text); }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 40px 0; }
.prose code, .prose kbd {
  font-family: ui-monospace, Consolas, monospace; font-size: .88em; padding: 2px 7px; border-radius: 6px;
  background: var(--raise); border: 1px solid var(--line); color: var(--text);
}
.prose table { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: 15px; }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.prose th { color: var(--text); font-weight: 700; background: var(--panel); }
.table-scroll { overflow-x: auto; margin-bottom: 20px; }
.table-scroll table { margin: 0; min-width: 520px; }

.box {
  background: var(--panel); border: 1px solid var(--line-soft); border-radius: 16px; padding: 18px 22px; margin: 0 0 20px;
}
.box.tip { background: var(--accent-soft); border-color: rgba(226, 182, 107, .35); }
.box .box-title { display: block; font-weight: 700; color: var(--accent); font-size: 14px; margin-bottom: 4px; }
.box p:last-child, .box ul:last-child, .box ol:last-child { margin-bottom: 0; }

.steps { list-style: none; padding: 0 !important; counter-reset: step; }
.steps > li {
  counter-increment: step; position: relative; padding: 16px 18px 16px 64px; margin-bottom: 10px;
  background: var(--panel); border: 1px solid var(--line-soft); border-radius: 14px;
}
.steps > li::before {
  content: counter(step); position: absolute; left: 18px; top: 16px; width: 30px; height: 30px; border-radius: 999px;
  background: var(--accent); color: var(--accent-ink); font-weight: 700; font-size: 14px; display: grid; place-items: center;
}
.steps > li strong { display: block; margin-bottom: 2px; }

.btn {
  display: inline-flex; align-items: center; gap: 8px; text-decoration: none; font-weight: 700; font-size: 15px;
  padding: 12px 22px; min-height: 46px; border-radius: 999px; background: var(--accent); color: var(--accent-ink);
}
.btn:hover { color: var(--accent-ink); filter: brightness(1.07); }
.btn.ghost { background: transparent; color: var(--text); box-shadow: inset 0 0 0 1px var(--line); font-weight: 500; }
.btn.ghost:hover { color: var(--text); background: var(--raise); filter: none; }
.cta-row { display: flex; gap: 10px; flex-wrap: wrap; margin: 28px 0; }

/* 카드 목록 */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.card {
  display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: 18px; text-decoration: none;
  background: var(--panel); border: 1px solid var(--line-soft); color: var(--text); transition: border-color .15s, transform .15s;
}
.card:hover { border-color: var(--accent); color: var(--text); transform: translateY(-2px); }
.card .tag { font-size: 12px; color: var(--accent); font-weight: 700; letter-spacing: .04em; }
.card h2, .card h3 { font-family: var(--serif); font-size: 20px; line-height: 1.45; margin: 0; }
.card p { margin: 0; color: var(--muted); font-size: 14.5px; line-height: 1.7; }

.related { margin-top: 56px; }
.related h2 { font-family: var(--serif); font-size: 22px; margin: 0 0 16px; }

/* 공지·FAQ 펼치기 */
details.item {
  background: var(--panel); border: 1px solid var(--line-soft); border-radius: 14px; margin-bottom: 10px;
}
details.item > summary {
  list-style: none; cursor: pointer; padding: 16px 20px; display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap;
}
details.item > summary::-webkit-details-marker { display: none; }
details.item > summary::after { content: "+"; margin-left: auto; color: var(--muted); font-size: 20px; line-height: 1; }
details.item[open] > summary::after { content: "−"; }
details.item > summary .date { color: var(--muted); font-size: 13px; font-variant-numeric: tabular-nums; }
details.item > summary .title { color: var(--text); font-weight: 700; flex: 1 1 260px; }
details.item > summary .badge { font-size: 12px; font-weight: 700; color: var(--accent-ink); background: var(--accent); padding: 1px 9px; border-radius: 99px; }
details.item .body { padding: 0 20px 18px; color: var(--body); }
details.item .body p:last-child, details.item .body ul:last-child { margin-bottom: 0; }

/* 문의 양식 */
.form { display: flex; flex-direction: column; gap: 14px; }
.form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: var(--muted); }
.form input, .form select, .form textarea {
  font: inherit; color: var(--text); background: var(--sunk); border: 1px solid var(--line); border-radius: 10px; padding: 11px 13px;
}
.form textarea { min-height: 160px; resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(226, 182, 107, .22); }
.form button { align-self: flex-start; border: 0; cursor: pointer; font: inherit; }

/* 바닥글 */
.site-footer { border-top: 1px solid var(--line-soft); padding: 32px 0 40px; color: var(--muted); font-size: 13px; }
.site-footer .row { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-start; }
.site-footer .brand { font-size: 16px; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.site-footer nav a { color: var(--muted); text-decoration: none; }
.site-footer nav a:hover { color: var(--text); }
.site-footer .fine { margin-top: 14px; }

/* 제목 옆 일러스트 */
.hero-split { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; }
.hero-text { flex: 1 1 420px; max-width: 640px; }
.hero-art { flex: 0 1 440px; margin: 0; }
.hero-art svg { display: block; width: 100%; height: auto; overflow: visible; }

.a-float, .a-glow, .a-twinkle, .a-bob { transform-box: fill-box; transform-origin: center; }
.a-float { animation: a-float 6.5s ease-in-out infinite; }
.a-bob { animation: a-float 3.2s ease-in-out infinite; }
.a-glow { animation: a-glow 7s ease-in-out infinite; }
.a-twinkle { animation: a-twinkle 3.4s ease-in-out infinite; }
.a-march { animation: a-march 1.4s linear infinite; }
.a-d1 { animation-delay: -2.1s; }
.a-d2 { animation-delay: -4.2s; }
@keyframes a-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes a-glow { 0%, 100% { opacity: .65; transform: scale(.96); } 50% { opacity: 1; transform: scale(1.04); } }
@keyframes a-twinkle { 0%, 100% { opacity: .15; transform: scale(.55) rotate(0deg); } 50% { opacity: 1; transform: scale(1) rotate(45deg); } }
@keyframes a-march { to { stroke-dashoffset: -26; } }

/* 페이지가 열릴 때 차례로 떠오르기 (끝난 뒤에는 hover 효과가 그대로 동작하도록 backwards) */
@keyframes rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.page-head h1, .page-head .lead, .page-head .meta, .hero-art, .cards > .card {
  animation: rise .8s cubic-bezier(.2, .7, .2, 1) backwards;
}
.page-head .lead { animation-delay: .08s; }
.page-head .meta { animation-delay: .14s; }
.hero-art { animation-duration: 1.1s; animation-delay: .12s; }
.cards > .card:nth-child(1) { animation-delay: .18s; }
.cards > .card:nth-child(2) { animation-delay: .24s; }
.cards > .card:nth-child(3) { animation-delay: .30s; }
.cards > .card:nth-child(4) { animation-delay: .36s; }
.cards > .card:nth-child(5) { animation-delay: .42s; }
.cards > .card:nth-child(6) { animation-delay: .48s; }
.cards > .card:nth-child(7) { animation-delay: .54s; }
.cards > .card:nth-child(n+8) { animation-delay: .60s; }
.card:hover { box-shadow: 0 18px 40px -20px rgba(226, 182, 107, .35); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .a-fly { display: none; }
}

@media (max-width: 720px) {
  .hero-art { flex-basis: 100%; max-width: 360px; margin: 0 auto; }
  .wrap { padding: 0 16px; }
  .site-header { padding: 18px 0; }
  .site-nav { width: 100%; }
  .site-nav a { padding: 7px 11px; }
  main { padding: 16px 0 56px; }
  .page-head h1 { font-size: 30px; }
  .prose h2 { font-size: 22px; margin-top: 40px; }
  .steps > li { padding-left: 58px; }
}
