/* 이용약관 · 개인정보 수집 및 이용 안내 */
.policy-page { max-width: 820px; margin: 0 auto; padding: clamp(24px, 4vw, 56px) var(--gutter) clamp(64px, 8vw, 112px); }

.policy-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.policy-tabs a {
  padding: 8px 16px; border-radius: 999px; background: var(--white);
  color: var(--ink); font-size: 15px; font-weight: 700; text-decoration: none;
}
.policy-tabs a:hover { background: var(--paper-2); }
.policy-tabs a.is-on { background: var(--ink); color: var(--white); }

.policy-heading { margin-top: clamp(20px, 3vw, 32px); font-size: clamp(1.9rem, 4vw, 3rem); font-weight: 800; line-height: 1.2; letter-spacing: -.04em; }
.policy-lead { margin-top: 14px; color: var(--muted); line-height: 1.7; }

.policy-summary { display: grid; gap: 1px; margin-top: 24px; background: var(--paper-2); border-radius: var(--r-md); overflow: hidden; }
.policy-summary div { display: flex; gap: 16px; padding: 16px 22px; background: var(--white); }
.policy-summary dt { flex: none; width: 76px; color: var(--orange); font-weight: 800; }
.policy-summary dd { font-weight: 600; line-height: 1.5; }

.policy-toc { margin-top: 24px; padding: 18px 22px; background: var(--white); border-radius: var(--r-md); }
.policy-toc ol { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 16px; counter-reset: toc; }
.policy-toc li { counter-increment: toc; font-size: 15px; }
.policy-toc li::before { content: "제" counter(toc) "조 "; color: var(--muted); font-variant-numeric: tabular-nums; }
.policy-toc a { color: var(--ink); text-decoration: none; font-weight: 600; }
.policy-toc a:hover { text-decoration: underline; text-underline-offset: 3px; }

.policy-body {
  margin-top: 16px; padding: clamp(22px, 3.4vw, 40px);
  background: var(--white); border-radius: var(--r-md);
  line-height: 1.75; overflow-wrap: anywhere;
}
.policy-body section { scroll-margin-top: 90px; }
.policy-body section + section { margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--paper-2); }
.policy-body h2 { font-size: 1.15rem; font-weight: 800; letter-spacing: -.02em; }
.policy-body h3 { margin-top: 20px; font-size: 1rem; font-weight: 800; }
.policy-body p, .policy-body ol, .policy-body ul { margin-top: 10px; }
.policy-body ol { padding-left: 1.4em; list-style: decimal; }
.policy-body ul { padding-left: 1.2em; list-style: disc; }
.policy-body li + li { margin-top: 6px; }
.policy-body li::marker { color: var(--muted); font-weight: 700; }
.policy-body ol.circled { list-style: none; padding-left: 0; counter-reset: c; }
.policy-body ol.circled > li { position: relative; padding-left: 1.6em; counter-increment: c; }
.policy-body ol.circled > li::before { content: counter(c); position: absolute; left: 0; top: .3em; display: grid; place-items: center; width: 1.2em; height: 1.2em; border: 1.5px solid var(--muted); border-radius: 50%; color: var(--muted); font-size: .75em; font-weight: 700; }
.policy-body a { color: var(--ink); font-weight: 700; text-underline-offset: 3px; }
.policy-end { margin-top: 32px !important; padding-top: 24px; border-top: 1px solid var(--paper-2); color: var(--muted); }

.policy-table-wrap { margin-top: 12px; overflow-x: auto; }
.policy-table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: 15px; }
.policy-table th, .policy-table td { padding: 10px 12px; border: 1px solid var(--paper-2); text-align: left; vertical-align: top; }
.policy-table th { background: var(--paper); font-weight: 800; }
.policy-table td:last-child { white-space: nowrap; font-weight: 700; }

.policy-foot { margin-top: 24px; }
.policy-foot a { color: var(--ink); font-weight: 700; text-decoration: none; }
.policy-foot a:hover { text-decoration: underline; }
