:root {
  --navy: #101d35;
  --blue: #1467db;
  --blue-pale: #eef5ff;
  --ink: #182030;
  --body: #404856;
  --quiet: #727b89;
  --line: #dce2eb;
  --mist: #f5f8fc;
  --paper: #ffffff;
  --max: 1040px;
  --reading: 690px;
  font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Noto Sans", Arial, sans-serif;
  color: var(--body);
  background: var(--paper);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-size: 16px; line-height: 1.8; }
a { color: inherit; text-underline-offset: 3px; }
a:hover { color: var(--blue); }

.site-header { background: var(--navy); color: #fff; }
.site-header__inner { height: 62px; max-width: var(--max); margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; }
.brand { color: #fff; font-size: 17px; font-weight: 700; letter-spacing: -.03em; text-decoration: none; }
.brand::after { content: ""; display: inline-block; width: 5px; height: 5px; margin: 0 0 2px 5px; border-radius: 99px; background: var(--blue); }
.site-nav { display: flex; gap: 22px; }
.site-nav a { color: #dfe7f4; font-size: 14px; text-decoration: none; }

.container { width: min(calc(100% - 48px), var(--max)); margin: 0 auto; }
.article { max-width: var(--reading); margin: 0 auto; padding: 30px 0 100px; }
.breadcrumb { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 7px; color: var(--quiet); font-size: 13px; }
.breadcrumb li + li::before { content: "/"; margin-right: 7px; color: #a6adba; }
.breadcrumb a { text-decoration: none; }
.section-label { border-left: 3px solid var(--blue); padding-left: 9px; margin: 58px 0 13px; color: var(--blue); font-size: 14px; font-weight: 700; line-height: 1.3; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin: 0 0 20px; color: var(--ink); font-size: clamp(40px, 5vw, 56px); line-height: 1.18; letter-spacing: -.055em; }
h2 { margin: 0 0 21px; color: var(--ink); font-size: 28px; line-height: 1.35; letter-spacing: -.04em; }
h3 { color: var(--ink); font-size: 17px; margin-bottom: 6px; }
.deck { max-width: 650px; margin-bottom: 17px; color: var(--body); font-size: 19px; line-height: 1.7; letter-spacing: -.02em; }
.byline { margin: 0; color: var(--quiet); font-size: 13px; }
.status { color: var(--blue); font-size: 14px; font-weight: 700; }
.article section { margin-top: 71px; }

.fact-sheet { border-top: 2px solid var(--navy); border-bottom: 1px solid var(--line); }
.fact-sheet__head { padding: 15px 0 12px; display: flex; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--line); }
.fact-sheet__head h2 { margin: 0; font-size: 17px; }
.facts { display: grid; grid-template-columns: 1fr 1fr; }
.fact { min-height: 112px; padding: 18px 23px 16px 0; border-bottom: 1px solid var(--line); }
.fact:nth-child(odd) { padding-right: 28px; }
.fact:nth-child(even) { padding-left: 25px; border-left: 1px solid var(--line); }
.fact:nth-last-child(-n+2) { border-bottom: 0; }
.fact dt { color: var(--quiet); font-size: 13px; font-weight: 700; }
.fact dd { margin: 4px 0 0; color: var(--ink); font-size: 17px; font-weight: 700; line-height: 1.55; letter-spacing: -.025em; }
.fact small { display: block; margin-top: 4px; color: var(--quiet); font-size: 13px; font-weight: 400; line-height: 1.55; }
.policy-visual { margin: 28px 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.policy-visual img { display: block; width: 100%; height: auto; }
.policy-visual figcaption { padding: 11px 0; color: var(--quiet); font-size: 13px; line-height: 1.6; }
.comparison-scroll { overflow-x: auto; }
.comparison-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.comparison-table th, .comparison-table td { padding: 12px 8px; text-align: left; border-bottom: 1px solid var(--line); word-break: keep-all; }

.rule-list { padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); }
.rule-list li { padding: 17px 0 17px 17px; border-bottom: 1px solid var(--line); position: relative; }
.rule-list li::before { content: "—"; position: absolute; left: 0; color: var(--blue); }
.notice { margin-top: 27px; padding: 20px 22px; background: var(--blue-pale); color: #344a69; font-size: 15px; line-height: 1.7; }
.notice strong { color: var(--ink); }
.apply-steps { padding: 0; margin: 0; list-style: none; counter-reset: steps; }
.apply-steps li { counter-increment: steps; padding: 17px 0 17px 43px; border-top: 1px solid var(--line); position: relative; }
.apply-steps li:last-child { border-bottom: 1px solid var(--line); }
.apply-steps li::before { content: "0" counter(steps); position: absolute; left: 0; top: 18px; color: var(--blue); font-size: 14px; font-weight: 700; }
.apply-steps strong { display: block; color: var(--ink); }
.official-link { display: inline-block; margin-top: 25px; padding: 12px 17px; color: #fff; background: var(--blue); font-weight: 700; text-decoration: none; }
.official-link:hover { color: #fff; background: #0959c7; }
.source-list { padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); }
.source-list li { padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.source-list span { display: block; color: var(--quiet); font-size: 13px; }
.history { margin: 23px 0 0; color: var(--quiet); font-size: 14px; }
.related { margin-top: 30px; border-top: 1px solid var(--line); }
.related a { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.related small { color: var(--quiet); display: block; font-size: 12px; }
.arrow { color: var(--blue); font-size: 20px; }

.page-intro { max-width: 760px; padding: 74px 0 43px; border-bottom: 2px solid var(--navy); }
.page-intro h1 { margin-bottom: 16px; }
.page-intro p { margin-bottom: 0; font-size: 18px; }
.home-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 65px; padding: 57px 0 96px; }
.policy-list { border-top: 1px solid var(--line); }
.priority-guides { padding: 28px 0; border-bottom: 1px solid var(--line); }
.priority-guides h2 { margin-bottom: 16px; font-size: 21px; }
.priority-guides ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 20px 32px; margin: 0; padding: 0; list-style: none; }
.priority-guides a { font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.priority-guides p { margin: 8px 0 0; color: var(--quiet); font-size: 14px; }
.policy-item { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 18px; padding: 25px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.policy-item__image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.policy-item__meta { margin-bottom: 7px; color: var(--quiet); font-size: 13px; }
.policy-item h3 { margin: 0 0 6px; font-size: 23px; }
.policy-group + .policy-group { margin-top: 48px; }
.policy-item p { margin: 0; font-size: 15px; }
.side-note { padding-top: 5px; }
.side-note h2 { font-size: 17px; }
.side-note p { color: var(--quiet); font-size: 14px; }
.plain-page { max-width: var(--reading); margin: 0 auto; padding: 65px 0 100px; }
.plain-page h1 { font-size: 42px; }
.plain-page h2 { margin-top: 50px; }
.plain-page p + p { margin-top: 18px; }

.site-footer { background: var(--mist); border-top: 1px solid var(--line); }
.site-footer__inner { max-width: var(--max); margin: 0 auto; padding: 34px 24px 42px; color: var(--quiet); font-size: 13px; line-height: 1.75; }
.footer-links { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 18px; }
.footer-links a { color: var(--body); }

@media (max-width: 640px) {
  .site-header__inner { padding: 0 16px; }
  .site-nav { display: none; }
  .container { width: min(calc(100% - 32px), var(--max)); }
  .article { padding-top: 26px; }
  .page-intro { padding-top: 53px; }
  .article section { margin-top: 56px; }
  .deck { font-size: 17px; }
  .facts { grid-template-columns: 1fr; }
  .fact, .fact:nth-child(odd), .fact:nth-child(even) { min-height: auto; padding: 17px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .fact:last-child { border-bottom: 0; }
  .home-grid { display: block; padding-top: 42px; }
  .policy-item { grid-template-columns: 92px minmax(0, 1fr); gap: 12px; }
  .side-note { margin-top: 50px; }
}
