/* =============================================================================
 *  PolicyWire 공용 조판 · www.policywire.net 전 서비스가 이 파일 하나를 링크한다
 *  참조 룩: CSIS · The New York Times · The Wall Street Journal
 *  기준작: 04_GLO/01_US-China Summit/public/us-china-relations/assets/styles.css
 *
 *  원칙 (simplicity first)
 *   - 색은 의미에만: 흑백 지면 + 네이비(강조) 1색 + 적색(경고) 1색
 *   - 구획은 괘선으로: 그림자 · 둥근 모서리 · 그라데이션 · 알약 버튼 쓰지 않음
 *   - 핵심 먼저: 제목 → 한 줄 요약 → 기준일 → 핵심 요약, 세부는 아래로
 *   - 위계는 크기 · 굵기 · 여백으로. 숫자는 등폭, 날짜 YYYY.MM.DD
 *
 *  구성
 *   1. 웹폰트 · 토큰 (전역)            ← 서비스 자체 CSS가 뒤에 와서 같은 값으로 덮는다
 *   2. .pw-bar 서비스 바 (전역, pw- 접두) ← 모든 페이지 맨 위, 서비스 간 이동
 *   3. .pw-page 기본 조판 (범위 한정)    ← 자체 기본 CSS가 없는 페이지(허브 · 모니터 · IR · 로비)만
 *
 *  규약: 변수는 추가만 하고 이름을 바꾸지 않는다 (링크한 서비스가 전부 깨진다).
 * ========================================================================== */

/* ---------- 1. 웹폰트 (자체 호스팅 · 사내 보안 게이트웨이 대응: 외부 CDN 금지) ---------- */
@font-face { font-family: "Pretendard"; font-style: normal; font-weight: 400; font-display: swap;
  src: local("Pretendard Regular"), local("Pretendard-Regular"), url("fonts/Pretendard-Regular.woff2") format("woff2"); }
@font-face { font-family: "Pretendard"; font-style: normal; font-weight: 500; font-display: swap;
  src: local("Pretendard Medium"), local("Pretendard-Medium"), url("fonts/Pretendard-Medium.woff2") format("woff2"); }
@font-face { font-family: "Pretendard"; font-style: normal; font-weight: 600; font-display: swap;
  src: local("Pretendard SemiBold"), local("Pretendard-SemiBold"), url("fonts/Pretendard-SemiBold.woff2") format("woff2"); }
@font-face { font-family: "Pretendard"; font-style: normal; font-weight: 700 900; font-display: swap;
  src: local("Pretendard Bold"), local("Pretendard-Bold"), url("fonts/Pretendard-Bold.woff2") format("woff2"); }

/* ---------- 1. 토큰 ---------- */
:root {
  color-scheme: light;

  --paper:      #f2f3f5;
  --paper-2:    #ffffff;
  --paper-sunk: #e7e9ed;
  --paper-rail: #ffffff;

  --ink:    #111111;
  --ink-2:  #444444;
  --ink-3:  #767676;
  --ink-4:  #9a9a9a;

  --rule:        #ced2d8;
  --rule-soft:   #dfe2e7;
  --rule-heavy:  #111111;

  --navy:      #0d3b66;
  --navy-link: #14528f;
  --navy-wash: #eef3f8;
  --red:       #a4161a;
  --red-wash:  #fbeeee;

  --series-1: #2f6fb2;
  --series-2: #c2551f;
  --series-3: #009184;
  --series-4: #b07f0e;
  --series-5: #a02a5e;

  --font: "Pretendard Variable", "Pretendard", "Apple SD Gothic Neo",
          "Noto Sans KR", "Spoqa Han Sans Neo", -apple-system, BlinkMacSystemFont,
          "Malgun Gothic", "Segoe UI", sans-serif;
  --font-display: "Pretendard Variable", "Pretendard", "Apple SD Gothic Neo",
                  "Noto Sans KR", "Spoqa Han Sans Neo", sans-serif;

  --measure: 1180px;

  /* 서비스 바 */
  --pw-bar-h:   34px;
  --pw-bar-bg:  #111111;
  --pw-bar-ink: #ffffff;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --paper:      #111111;
  --paper-2:    #1b1b1b;
  --paper-sunk: #1b1b1b;
  --paper-rail: #191919;
  --ink:    #f2f0ec;
  --ink-2:  #b8b6b1;
  --ink-3:  #8e8c88;
  --ink-4:  #6e6c68;
  --rule:       #2f2f2f;
  --rule-soft:  #232323;
  --rule-heavy: #f2f0ec;
  --navy:      #8fb6dc;
  --navy-link: #9cc2e6;
  --navy-wash: #17232f;
  --red:       #e06c6c;
  --red-wash:  #2a1818;
  --series-1: #4d88ce;
  --series-2: #c96731;
  --series-3: #009b88;
  --series-4: #b88c1d;
  --series-5: #c05181;

  --pw-bar-bg:  #000000;
}

/* =========================================================================
 *  2. 서비스 바 — 모든 페이지 맨 위. 스크롤하면 사라지고 각 서비스의 sticky 상단바가 남는다.
 *     마크업은 /shared/pw.js 가 #pw-bar 에 그린다. 높이는 미리 잡아 두어 레이아웃이 튀지 않는다.
 * ====================================================================== */
.pw-bar {
  display: block;
  min-height: var(--pw-bar-h);
  background: var(--pw-bar-bg);
  color: var(--pw-bar-ink);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  position: relative; z-index: 101;
}
:root[data-theme="dark"] .pw-bar { border-bottom: 1px solid #2f2f2f; }
.pw-bar-inner {
  max-width: var(--measure); margin: 0 auto; padding: 0 28px;
  height: var(--pw-bar-h);
  display: flex; align-items: center; gap: 22px;
}
@media (max-width: 860px) { .pw-bar-inner { padding: 0 22px; gap: 16px; } }
@media (max-width: 520px) { .pw-bar-inner { padding: 0 17px; gap: 12px; } }

/* 서비스 바 안의 링크는 .pw-page a 등 페이지 링크 규칙보다 우선해야 한다 (.pw-bar 를 앞에 붙여 특이도를 올림) */
.pw-bar a, .pw-bar a:hover { color: inherit; text-decoration: none; }
.pw-bar .pw-mark {
  flex-shrink: 0; color: var(--pw-bar-ink);
  font-size: 14px; font-weight: 800; letter-spacing: -0.02em; line-height: 1;
}
.pw-bar .pw-mark:hover { opacity: .85; }

.pw-bar .pw-tabs {
  display: flex; gap: 18px; min-width: 0;
  overflow-x: auto; scrollbar-width: none;
  padding-left: 18px; border-left: 1px solid rgba(255, 255, 255, .22);
}
.pw-bar .pw-tabs::-webkit-scrollbar { display: none; }
.pw-bar .pw-tabs a, .pw-bar .pw-tabs span {
  position: relative; flex-shrink: 0;
  font-size: 12px; font-weight: 600; letter-spacing: -0.005em; line-height: var(--pw-bar-h);
  color: rgba(255, 255, 255, .64); white-space: nowrap;
}
.pw-bar .pw-tabs a:hover { color: #fff; }
.pw-bar .pw-tabs a[aria-current="page"] { color: #fff; }
.pw-bar .pw-tabs a[aria-current="page"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: #fff;
}
.pw-bar .pw-tabs span { color: rgba(255, 255, 255, .34); cursor: default; }

.pw-side {
  margin-left: auto; flex-shrink: 0;
  display: flex; align-items: center; gap: 12px;
  font-size: 11px; color: rgba(255, 255, 255, .58);
  font-variant-numeric: tabular-nums; letter-spacing: .02em;
}
.pw-theme {
  width: 22px; height: 22px; display: grid; place-items: center;
  font: inherit; font-size: 12px; color: rgba(255, 255, 255, .7);
  background: none; border: 1px solid rgba(255, 255, 255, .28); cursor: pointer; padding: 0;
}
.pw-theme:hover { color: #fff; border-color: rgba(255, 255, 255, .6); }
@media (max-width: 640px) { .pw-date { display: none; } }

@media print { .pw-bar { display: none !important; } }

/* 서비스 상단바 왼쪽: 「목차 제목 | 이 페이지」 — 빌드 때 inject-shared(--index)가 <a class="brand"> 를 바꿔 끼운다.
   앞은 목차(/<svc>/)로 가는 링크(회색), 뒤는 이 페이지 이름. 두 말은 같은 크기 · 같은 글꼴. */
.pw-crumbs.brand {
  display: flex; align-items: baseline; gap: 10px; min-width: 0; flex-shrink: 1;
  font-family: var(--font); text-decoration: none;
}
.pw-crumbs a { text-decoration: none; white-space: nowrap; }
.pw-crumbs a:hover { text-decoration: none; color: var(--navy-link); }
.pw-crumbs .pw-crumb-root, .pw-crumbs .pw-crumb-page { font-size: 19px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; }
.pw-crumbs .pw-crumb-root { color: var(--ink-3); flex-shrink: 0; }
.pw-crumbs .pw-crumb-page { color: var(--ink); min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pw-crumbs .pw-crumb-sep { font-size: 16px; color: var(--rule); font-weight: 400; }
@media (max-width: 520px) { .pw-crumbs .pw-crumb-root, .pw-crumbs .pw-crumb-page { font-size: 15.5px; } }

/* =========================================================================
 *  3. 기본 조판 — <body class="pw-page"> 인 페이지에만 적용
 * ====================================================================== */
.pw-page *, .pw-page *::before, .pw-page *::after { box-sizing: border-box; }
html:has(body.pw-page) { scroll-behavior: smooth; scroll-padding-top: 72px; }
@media (prefers-reduced-motion: reduce) {
  html:has(body.pw-page) { scroll-behavior: auto; }
}

body.pw-page {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  font-size: 15px;
  font-variant-numeric: tabular-nums;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.pw-page a { color: var(--navy-link); text-decoration: none; }
.pw-page a:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.pw-page :focus-visible { outline: 2px solid var(--navy-link); outline-offset: 2px; }
.pw-page button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; padding: 0; }

.pw-page .wrap { max-width: var(--measure); margin: 0 auto; padding: 0 28px; }
@media (max-width: 860px) { .pw-page .wrap { padding: 0 22px; } }
@media (max-width: 520px) { .pw-page .wrap { padding: 0 17px; } }

.pw-page .kicker {
  font-size: 10.5px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--navy);
}
.pw-page .num, .pw-page time { font-variant-numeric: tabular-nums lining-nums; }

/* 상단바 (서비스 안의 마스트헤드) */
.pw-page .topbar {
  position: sticky; top: 0; z-index: 100;
  background: var(--paper-2);
  border-bottom: 1px solid var(--rule);
}
.pw-page .topbar-inner {
  max-width: var(--measure); margin: 0 auto; padding: 0 28px;
  display: flex; align-items: center; gap: 22px; min-height: 54px;
}
@media (max-width: 860px) { .pw-page .topbar-inner { padding: 0 22px; gap: 14px; } }
@media (max-width: 520px) { .pw-page .topbar-inner { padding: 0 17px; gap: 10px; } }
.pw-page .brand { display: flex; align-items: baseline; gap: 11px; flex-shrink: 0; color: inherit; }
.pw-page .brand:hover { text-decoration: none; }
.pw-page .brand strong { font-size: 21px; font-weight: 900; letter-spacing: -0.035em; }
.pw-page .brand-tag {
  font-size: 10.5px; font-weight: 700; letter-spacing: .1em; color: var(--ink-3); white-space: nowrap;
  padding-left: 11px; border-left: 1px solid var(--rule);
}
@media (max-width: 520px) { .pw-page .brand-tag { display: none; } }
.pw-page .nav { display: flex; gap: 20px; margin-left: auto; overflow-x: auto; scrollbar-width: none; }
.pw-page .nav::-webkit-scrollbar { display: none; }
.pw-page .nav a, .pw-page .nav button {
  position: relative; padding: 17px 0 16px;
  font-size: 12.5px; font-weight: 600; color: var(--ink-2); white-space: nowrap;
}
.pw-page .nav a:hover, .pw-page .nav button:hover { color: var(--ink); text-decoration: none; }
.pw-page .nav .is-active { color: var(--ink); }
.pw-page .nav .is-active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--navy);
}

/* 섹션 머리: 굵은 괘선 + 번호 + 제목 */
.pw-page .section { padding-top: 52px; }
.pw-page .section-head {
  border-top: 3px solid var(--rule-heavy);
  padding-top: 14px; margin-bottom: 22px;
  display: flex; align-items: baseline; justify-content: space-between; gap: 18px;
}
.pw-page .section-head h2 {
  margin: 0; font-size: clamp(19px, 2.2vw, 23px); font-weight: 700;
  line-height: 1.32; letter-spacing: -0.03em;
}
.pw-page .section-head .more { font-size: 12px; font-weight: 600; white-space: nowrap; }
.pw-page .section-head .meta { font-size: 11.5px; color: var(--ink-3); white-space: nowrap; }

/* 핵심 요약 (CSIS Key Points) */
.pw-page .keypoints {
  list-style: none; margin: 0 0 30px; padding: 16px 0 4px;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  display: grid; grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 860px) { .pw-page .keypoints { grid-template-columns: 1fr; } }
.pw-page .kp {
  display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 0 10px;
  padding: 0 22px 16px; border-left: 1px solid var(--rule-soft); align-items: start;
}
.pw-page .kp:first-child { border-left: 0; padding-left: 0; }
.pw-page .kp-n {
  font-size: 11px; font-weight: 700; color: var(--paper-2); background: var(--navy);
  width: 18px; height: 18px; display: grid; place-items: center; margin-top: 2px;
}
.pw-page .kp-lead { display: block; font-size: 14.5px; font-weight: 700; letter-spacing: -0.024em; line-height: 1.45; }
.pw-page .kp-body { display: block; margin-top: 3px; font-size: 12.5px; line-height: 1.62; color: var(--ink-2); }

/* 지면 4단 수치 */
.pw-page .kpis {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}
@media (max-width: 900px) { .pw-page .kpis { grid-template-columns: repeat(2, 1fr); } }
.pw-page .kpi { padding: 18px 22px 16px; border-left: 1px solid var(--rule); display: flex; flex-direction: column; gap: 6px; }
.pw-page .kpi:first-child { border-left: 0; padding-left: 0; }
.pw-page .kpi-label { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.pw-page .kpi-value { font-size: 34px; font-weight: 700; line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums lining-nums; }
.pw-page .kpi-value.is-critical { color: var(--red); }
.pw-page .kpi-note { font-size: 12.5px; line-height: 1.6; color: var(--ink-2); }

/* 활자 토글 (WSJ식 필터) — 알약 대신 밑줄 */
.pw-page .tabs { display: flex; gap: 18px; border-bottom: 1px solid var(--rule); overflow-x: auto; scrollbar-width: none; }
.pw-page .tabs button, .pw-page .tabs a {
  position: relative; padding: 9px 0 10px; font-size: 13px; font-weight: 600; color: var(--ink-3); white-space: nowrap;
}
.pw-page .tabs .is-active, .pw-page .tabs [aria-selected="true"] { color: var(--ink); }
.pw-page .tabs .is-active::after, .pw-page .tabs [aria-selected="true"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--navy);
}

/* 상태 표시 (점 하나) */
.pw-page .dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--ink-4); vertical-align: 1px; }
.pw-page .dot.ok { background: var(--series-3); }
.pw-page .dot.warn { background: var(--series-4); }
.pw-page .dot.bad { background: var(--red); }

.pw-page .srclink {
  display: inline-block; font-size: 11px; font-weight: 600; letter-spacing: .02em; color: var(--navy-link);
  border-bottom: 1px solid currentColor; padding-bottom: 1px;
}
.pw-page .srclink:hover { text-decoration: none; color: var(--ink); }
.pw-page .srclink::after { content: " →"; }

.pw-page .stale {
  margin-top: 12px; padding: 9px 11px;
  background: var(--red-wash); border-left: 3px solid var(--red);
  font-size: 11.5px; line-height: 1.55; color: var(--ink-2);
}

/* 서비스 목차 (/global/ · /person/ 첫 화면): 제목 → 한 줄 소개 → 행 목록 */
.pw-page .idx-head { padding: 40px 0 18px; border-bottom: 3px solid var(--rule-heavy); }
.pw-page .idx-head h1 { margin: 6px 0 0; font-size: clamp(30px, 4.4vw, 44px); font-weight: 800; line-height: 1.15; letter-spacing: -0.04em; }
.pw-page .idx-head .deck { margin: 10px 0 0; font-size: 15px; font-weight: 500; color: var(--ink-2); letter-spacing: -0.015em; }
.pw-page .idx { list-style: none; margin: 0; padding: 0; }
.pw-page .idx-row {
  display: grid; grid-template-columns: 150px minmax(0, 1fr) 96px; gap: 2px 22px; align-items: baseline;
  padding: 16px 0 17px; border-bottom: 1px solid var(--rule); color: var(--ink);
}
.pw-page .idx-row:hover { text-decoration: none; }
.pw-page .idx-row:hover strong { color: var(--navy-link); }
.pw-page .idx-k { font-size: 11px; font-weight: 700; letter-spacing: .08em; color: var(--navy); }
.pw-page .idx-row strong { display: block; font-size: 19px; font-weight: 700; line-height: 1.35; letter-spacing: -0.025em; }
.pw-page .idx-d { display: block; margin-top: 3px; font-size: 13px; line-height: 1.55; color: var(--ink-2); }
.pw-page .idx-row strong small { font-size: 12px; font-weight: 600; color: var(--ink-3); letter-spacing: 0; margin-left: 6px; }
/* 인물 목차: 사진 칸이 하나 더 있다 */
.pw-page .idx-row.has-photo { grid-template-columns: 150px 44px minmax(0, 1fr) 96px; align-items: center; }
.pw-page .idx-photo {
  width: 44px; height: 55px; object-fit: cover; object-position: center top; display: block;
  background: var(--paper-sunk); filter: grayscale(.15);
}
.pw-page .idx-photo.is-empty {
  display: grid; place-items: center; font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--ink-3);
}
.pw-page .idx-sep { color: var(--ink-4); font-weight: 400; margin: 0 .45em; }
@media (max-width: 720px) {
  .pw-page .idx-row.has-photo { grid-template-columns: 44px minmax(0, 1fr); gap: 2px 14px; }
  .pw-page .idx-row.has-photo .idx-k, .pw-page .idx-row.has-photo .idx-asof { grid-column: 2; }
  .pw-page .idx-row.has-photo .idx-photo { grid-row: 1 / span 3; grid-column: 1; align-self: start; }
}
.pw-page .idx-row.is-soon { color: var(--ink-3); }
.pw-page .idx-row.is-soon strong { font-size: 15px; font-weight: 600; }
.pw-page .idx-row.is-soon .idx-k { color: var(--ink-3); }
.pw-page .idx-asof { font-size: 11.5px; color: var(--ink-3); text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pw-page .idx-asof b { display: block; font-weight: 700; color: var(--ink-2); margin-bottom: 1px; }
@media (max-width: 720px) {
  .pw-page .idx-row { grid-template-columns: 1fr; gap: 3px; }
  .pw-page .idx-asof { text-align: left; }
}

.pw-page .footer {
  margin-top: 70px; padding-top: 20px; padding-bottom: 56px;
  border-top: 3px solid var(--rule-heavy);
  color: var(--ink-3); font-size: 11.5px; line-height: 1.75;
}
.pw-page .footer p { margin: 0 0 8px; max-width: 92ch; }

@media print {
  body.pw-page { background: #fff; color: #000; font-size: 9.5pt; }
  .pw-page .topbar { display: none !important; }
  .pw-page a { color: #000; }
}

/* =========================================================================
 *  4. 용어 풀이 (/shared/pw-gloss.js) — 어느 페이지에서나 쓰도록 전역 · pw- 접두
 *     본문 점선 밑줄 → 팝업 · "먼저 알아둘 용어" 카드 목록
 * ====================================================================== */
.pw-gl {
  display: inline; font: inherit; color: inherit; line-height: inherit; letter-spacing: inherit;
  padding: 0; margin: 0; border: 0; background: none; cursor: help;
  text-decoration: underline dotted var(--navy-link); text-decoration-thickness: 1.5px; text-underline-offset: 3px;
}
.pw-gl:hover, .pw-gl.is-on { color: var(--navy); background: var(--navy-wash); }
.pw-gl:focus-visible { outline: 2px solid var(--navy-link); outline-offset: 1px; }

.pw-gl-pop {
  position: absolute; z-index: 400; width: 380px; max-width: calc(100vw - 24px);
  background: var(--paper-2); color: var(--ink); font-family: var(--font);
  border: 1px solid var(--rule); border-top: 3px solid var(--navy);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .14);
  padding: 16px 18px; font-size: 13px; line-height: 1.7; text-align: left; word-break: keep-all;
}
:root[data-theme="dark"] .pw-gl-pop { box-shadow: 0 10px 30px rgba(0, 0, 0, .5); }
.pw-gl-pop[hidden] { display: none; }
.pw-gl-pop.is-sheet {
  position: fixed; left: 0 !important; right: 0; bottom: 0; top: auto !important;
  width: auto; max-width: none; max-height: 72vh; overflow-y: auto;
  border-left: 0; border-right: 0; padding: 18px 20px 24px;
}
.pw-gl-x {
  position: absolute; top: 8px; right: 10px; width: 26px; height: 26px; padding: 0;
  display: grid; place-items: center; font: inherit; font-size: 12px; color: var(--ink-3);
  background: none; border: 0; cursor: pointer;
}
.pw-gl-x:hover { color: var(--ink); }
.pw-gl-grp { font-size: 9.5px; font-weight: 700; letter-spacing: .1em; color: var(--navy); }
.pw-gl-term { margin: 2px 30px 0 0; font-size: 17px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.4; }
.pw-gl-en { margin: 1px 0 0; font-size: 11.5px; color: var(--ink-3); }
.pw-gl-short { margin: 10px 0 0; padding: 9px 0 0; border-top: 1px solid var(--rule-soft); font-weight: 600; color: var(--ink); }
.pw-gl-body { margin: 7px 0 0; color: var(--ink-2); }
.pw-gl-srch { margin-top: 12px; font-size: 10px; font-weight: 700; letter-spacing: .1em; color: var(--ink-3); }
.pw-gl-src { list-style: none; margin: 4px 0 0; padding: 0; font-size: 12px; }
.pw-gl-src li { padding: 2px 0; }
.pw-gl-src a { color: var(--navy-link); text-decoration: none; }
.pw-gl-src a:hover { text-decoration: underline; }

.pw-gl-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--rule); font-family: var(--font); }
@media (max-width: 1040px) { .pw-gl-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px)  { .pw-gl-grid { grid-template-columns: 1fr; } }
.pw-gl-col { padding: 0 20px 8px; border-left: 1px solid var(--rule-soft); }
.pw-gl-col:nth-child(4n+1) { border-left: 0; padding-left: 0; }
@media (max-width: 1040px) {
  .pw-gl-col, .pw-gl-col:nth-child(4n+1) { border-left: 1px solid var(--rule-soft); padding-left: 20px; }
  .pw-gl-col:nth-child(2n+1) { border-left: 0; padding-left: 0; }
}
@media (max-width: 620px) { .pw-gl-col, .pw-gl-col:nth-child(n) { border-left: 0; padding: 0; } }
.pw-gl-col-h { margin: 0; padding: 12px 0 8px; border-bottom: 2px solid var(--rule-heavy); font-size: 10.5px; font-weight: 700; letter-spacing: .12em; color: var(--ink); }
.pw-gl-card {
  display: block; width: 100%; text-align: left; padding: 11px 0 12px; margin: 0;
  font: inherit; color: var(--ink); background: none; border: 0; border-bottom: 1px solid var(--rule-soft); cursor: pointer;
}
.pw-gl-card:hover { background: var(--paper-2); box-shadow: -8px 0 0 var(--paper-2), 8px 0 0 var(--paper-2); }
.pw-gl-card-t { display: block; font-size: 14px; font-weight: 700; letter-spacing: -0.024em; line-height: 1.4; }
.pw-gl-card-t::after { content: " +"; color: var(--navy-link); font-weight: 600; }
.pw-gl-card-en { display: block; font-size: 10.5px; color: var(--ink-4); margin-top: 1px; }
.pw-gl-card-s { display: block; margin-top: 5px; font-size: 12px; line-height: 1.6; color: var(--ink-2); }

/* =============================================================================
 *  5. 해설 (.ed-*) — 정상회담 트래커(www.policywire.net/global/)와 같은 조판을 공시 · 로비 등에서 쓴다
 *     제목 · 핵심 3가지 · 번호 섹션(현황 · 주요 내용 · 경과 · 관전 포인트 · 전망 · 인사) · 자료
 *     공시(07_SAMS/01_finance/web/static/editorial.js) · 로비(02_lobbing/web/static/explain.js)가 그린다.
 * ========================================================================== */
.ed-wrap{
  --ed-rule:var(--rule,#D6DCE4); --ed-soft:var(--rule-soft,#E4E8EE); --ed-heavy:var(--rule-heavy,#111);
  --ed-navy:var(--navy,#0d3b66); --ed-link:var(--navy-link,#14528f); --ed-ink3:var(--ink-3,#7A8696); --ed-red:var(--red,#a4161a);
  padding:0 40px;
}
.ed[hidden], .ed-sec[hidden]{display:none}
.ed-hero{padding:34px 0 18px}
.ed-kicker{margin:0;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--ed-navy)}
.ed-title{margin:10px 0 0;font-size:clamp(28px,4vw,44px);font-weight:700;line-height:1.22;letter-spacing:-.035em;color:var(--ink);word-break:keep-all}
.ed-deck{margin:14px 0 0;font-size:17px;font-weight:500;line-height:1.65;color:var(--ink-2);max-width:64ch;word-break:keep-all}
.ed-byline{margin:18px 0 0;padding-top:11px;border-top:1px solid var(--ed-rule);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ed-ink3);max-width:64ch}

.ed-kp{list-style:none;margin:10px 0 0;padding:16px 0 4px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ed-rule);border-bottom:1px solid var(--ed-rule)}
.ed-kp li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:0 10px;padding:0 22px 16px;border-left:1px solid var(--ed-soft)}
.ed-kp li:first-child{border-left:0;padding-left:0}
.ed-kp-n{width:18px;height:18px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:var(--ed-navy);margin-top:2px}
.ed-kp strong{display:block;font-size:15px;line-height:1.45;letter-spacing:-.02em;word-break:keep-all}
.ed-kp p{margin:4px 0 0;font-size:13px;line-height:1.65;color:var(--ink-2);word-break:keep-all}
@media(max-width:900px){.ed-kp{grid-template-columns:1fr}.ed-kp li{border-left:0;padding-left:0}.ed-kp li+li{border-top:1px solid var(--ed-soft);padding-top:14px}}

.ed-toc{display:flex;gap:6px 18px;flex-wrap:wrap;padding:12px 0;font-size:12.5px;font-weight:600}
.ed-toc a{color:var(--ink-2);text-decoration:none}
.ed-toc a:hover{color:var(--ed-link)}

.ed-sec{padding-top:44px}
.ed-head{display:grid;grid-template-columns:52px minmax(0,1fr);gap:0 18px;border-top:3px solid var(--ed-heavy);padding-top:14px;margin-bottom:18px}
.ed-num{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--ed-navy);padding-top:6px}
.ed-kick{display:block;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ed-navy);margin-bottom:4px}
.ed-head h2{margin:0;font-size:clamp(20px,2.4vw,26px);font-weight:700;letter-spacing:-.03em;line-height:1.3}
.ed-sub{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--ink-2);word-break:keep-all}
@media(max-width:640px){.ed-head{grid-template-columns:1fr;gap:4px}}

.ed-src{display:inline-flex;gap:8px;flex-wrap:wrap;margin-left:8px;vertical-align:1px}
.ed-src a{font-size:10.5px;font-weight:600;letter-spacing:.01em;color:var(--ed-link);text-decoration:none;border-bottom:1px solid currentColor;white-space:nowrap}
.ed-src a:hover{color:var(--ink)}

/* 01 현황 */
.ed-status{display:grid;grid-template-columns:120px minmax(0,1fr);margin:0;border-top:1px solid var(--ed-rule)}
.ed-status dt{padding:13px 0;border-bottom:1px solid var(--ed-soft);font-size:12px;font-weight:700;color:var(--ed-navy)}
.ed-status dd{margin:0;padding:12px 0 13px;border-bottom:1px solid var(--ed-soft);font-size:14.5px;line-height:1.7;word-break:keep-all}
@media(max-width:640px){.ed-status{grid-template-columns:1fr}.ed-status dt{border-bottom:0;padding-bottom:0}}

/* 02 주요 내용 */
.ed-items{list-style:none;margin:0;padding:0;border-top:1px solid var(--ed-rule)}
.ed-items li{border-bottom:1px solid var(--ed-soft)}
.ed-items summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:180px minmax(0,1fr) 18px;gap:0 18px;padding:13px 0;align-items:baseline}
.ed-items summary::-webkit-details-marker{display:none}
.ed-items summary::after{content:"+";color:var(--ed-link);font-weight:700}
.ed-items details[open] summary::after{content:"–"}
.ed-items summary strong{font-size:14.5px;letter-spacing:-.02em}
.ed-items summary span{font-size:14px;line-height:1.65;color:var(--ink);word-break:keep-all}
.ed-detail{margin:0 0 10px 198px;font-size:13.5px;line-height:1.75;color:var(--ink-2);word-break:keep-all}
.ed-items details > .ed-src{margin:0 0 14px 198px;display:flex}
@media(max-width:760px){.ed-items summary{grid-template-columns:1fr 18px}.ed-items summary span{grid-column:1}.ed-detail,.ed-items details>.ed-src{margin-left:0}}

/* 03 경과 */
.ed-tl{list-style:none;margin:0;padding:0;border-top:1px solid var(--ed-rule)}
.ed-tl li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:0 18px;padding:12px 0;border-bottom:1px solid var(--ed-soft)}
.ed-tl time{font-size:12.5px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;padding-top:2px}
.ed-tl strong{font-size:14.5px;font-weight:600;letter-spacing:-.02em;line-height:1.5}
.ed-tl li.is-high strong{font-weight:800}
.ed-tl p{margin:3px 0 0;font-size:13px;line-height:1.65;color:var(--ink-2);word-break:keep-all}

/* 04 관전 포인트 */
.ed-watch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px;border-top:1px solid var(--ed-rule)}
.ed-w{padding:14px 0 16px;border-bottom:1px solid var(--ed-soft)}
.ed-when{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ed-red);margin-bottom:3px;font-variant-numeric:tabular-nums}
.ed-w strong{display:block;font-size:15px;letter-spacing:-.02em;line-height:1.45}
.ed-w p{margin:5px 0 0;font-size:13px;line-height:1.7;color:var(--ink-2);word-break:keep-all}
@media(max-width:760px){.ed-watch{grid-template-columns:1fr}}

/* 05 주요 전망 */
.ed-outlook{list-style:none;margin:0;padding:0;border-top:1px solid var(--ed-rule)}
.ed-outlook li{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0 18px;padding:13px 0;border-bottom:1px solid var(--ed-soft)}
.ed-who strong{display:block;font-size:13px;letter-spacing:-.01em}
.ed-who time{display:block;font-size:11px;color:var(--ed-ink3);margin-top:2px;font-variant-numeric:tabular-nums}
.ed-outlook p{margin:0;font-size:14px;line-height:1.7;word-break:keep-all}
@media(max-width:640px){.ed-outlook li{grid-template-columns:1fr;gap:4px}}

/* 06 주요 인사 */
.ed-people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;border-top:1px solid var(--ed-rule)}
.ed-p{padding:14px 0 16px;border-bottom:1px solid var(--ed-soft)}
.ed-role{display:block;font-size:11px;font-weight:700;color:var(--ed-navy);letter-spacing:.02em}
.ed-p strong{display:block;margin-top:3px;font-size:16px;letter-spacing:-.02em}
.ed-sort{display:flex;gap:14px;margin-top:10px;font-size:12px}
.ed-sort button{font:inherit;font-weight:600;color:var(--ink-3);background:none;border:0;padding:0 0 3px;cursor:pointer;border-bottom:2px solid transparent}
.ed-sort button:hover{color:var(--ink)}
.ed-sort button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--ed-navy)}
.ed-name-sep{color:var(--ed-ink3);font-weight:400;margin:0 .45em}
.ed-since{display:block;font-size:11px;color:var(--ed-ink3);margin-top:2px;font-variant-numeric:tabular-nums}
.ed-p p{margin:6px 0 0;font-size:12.5px;line-height:1.65;color:var(--ink-2);word-break:keep-all}
@media(max-width:1000px){.ed-people{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.ed-people{grid-template-columns:1fr}}

.ed-notes{margin:26px 0 0;padding:10px 12px;background:var(--paper-sunk,#e7e9ed);font-size:12px;line-height:1.7;color:var(--ink-2)}
.ed-sources{margin:26px 0 0;border-top:1px solid var(--ed-rule);padding-top:10px;font-size:12px}
.ed-sources summary{cursor:pointer;font-weight:700;color:var(--ink-2)}
.ed-sources ol{margin:10px 0 0;padding-left:20px}
.ed-sources li{padding:3px 0;line-height:1.6}
.ed-src-org{font-weight:700;margin-right:8px;color:var(--ink-2)}
.ed-sources time{margin-left:8px;color:var(--ed-ink3)}
.ed-sources a{color:var(--ed-link)}
.ed-data .ed-head{margin-bottom:0}
@media(max-width:760px){.ed-wrap{padding:0 18px}}

@media print {
  .pw-gl { text-decoration: none; }
  .pw-gl-pop { display: none !important; }
}
