/* =============================================================================
 *  PolicyWire 허브 — 신문 1면. 공용 조판(/shared/pw.css)의 .pw-page 위에 허브 전용 규칙만.
 * ========================================================================== */

/* ---------- 제호 ---------- */
.plate { padding: 34px 0 0; }
.plate-row { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; }
.plate-name {
  margin: 0;
  font-size: clamp(38px, 6vw, 60px); font-weight: 900; line-height: 1;
  letter-spacing: -0.045em;
}
.plate-tag {
  margin: 0; padding-left: 18px; border-left: 1px solid var(--rule);
  font-size: 13px; font-weight: 600; color: var(--ink-2); letter-spacing: -0.01em;
}
@media (max-width: 560px) { .plate-tag { padding-left: 0; border-left: 0; flex-basis: 100%; } }
.plate-line {
  margin: 18px 0 0; padding: 9px 0 10px;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  font-size: 12px; font-weight: 600; color: var(--ink-2);
}
.plate-health { color: var(--ink-3); font-weight: 500; }
.plate-health b { color: var(--ink); font-weight: 700; }
.plate-health b.bad { color: var(--red); }

.pw-page .section { padding-top: 40px; }
.section-note { margin: -12px 0 12px; font-size: 12px; color: var(--ink-3); }
.pw-page li.empty { display: block; grid-column: 1 / -1; color: var(--ink-3); font-size: 13px; padding: 14px 0; list-style: none; border: 0; }

/* 제목은 잉크색, 올리면 링크색 (.pw-page a 의 파란 링크색보다 우선) */
.pw-page .h-title, .pw-page .f-title, .pw-page .a-body a, .pw-page .svcs a { color: var(--ink); }
.pw-page .h-title:hover, .pw-page .f-title:hover, .pw-page .a-body a:hover { color: var(--navy-link); }

/* ---------- 지금 워싱턴 (모니터 헤드라인, 2단) ---------- */
.heads {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 0 44px;
}
@media (max-width: 860px) { .heads { grid-template-columns: 1fr; } }
.heads li {
  display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 0 14px;
  padding: 11px 0 12px; border-top: 1px solid var(--rule-soft);
}
.heads li:nth-child(-n+2) { border-top: 0; }
@media (max-width: 860px) { .heads li:nth-child(2) { border-top: 1px solid var(--rule-soft); } }
.h-meta { font-size: 11px; line-height: 1.5; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.h-src { display: block; font-weight: 700; color: var(--navy); letter-spacing: .01em; }
.h-title { font-size: 14px; font-weight: 600; line-height: 1.5; letter-spacing: -0.015em; color: var(--ink); }
.heads li.is-hot .h-title { font-weight: 800; }

/* ---------- 본문 2단: 트래커 경과 | 일정 · 서비스 ---------- */
.cols {
  display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 0 56px; align-items: start;
}
@media (max-width: 960px) { .cols { grid-template-columns: 1fr; } }

.feed { list-style: none; margin: 0; padding: 0; }
.feed li {
  display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 0 16px;
  padding: 13px 0 14px; border-top: 1px solid var(--rule-soft);
}
.feed li:first-child { border-top: 0; padding-top: 2px; }
.f-date { font-size: 12px; font-weight: 600; color: var(--ink-2); font-variant-numeric: tabular-nums; padding-top: 1px; }
.f-where { display: block; font-size: 11px; font-weight: 700; color: var(--navy); letter-spacing: .01em; margin-bottom: 2px; }
.f-where .svc { color: var(--ink-3); font-weight: 600; margin-right: 6px; }
.f-title { font-size: 15px; font-weight: 600; line-height: 1.48; letter-spacing: -0.02em; color: var(--ink); }
.feed li.is-high .f-title { font-weight: 800; }

.agenda { list-style: none; margin: 0; padding: 0; }
.agenda li {
  display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 0 12px;
  padding: 10px 0; border-top: 1px solid var(--rule-soft); align-items: baseline;
}
.agenda li:first-child { border-top: 0; padding-top: 2px; }
.a-d { font-size: 14px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.a-d.is-soon { color: var(--red); }
.a-body { font-size: 12.5px; line-height: 1.5; }
.a-meta { display: block; font-size: 10.5px; color: var(--ink-3); margin-top: 1px; font-variant-numeric: tabular-nums; }

.svcs { list-style: none; margin: 0; padding: 0; }
.svcs li { border-top: 1px solid var(--rule-soft); }
.svcs li:first-child { border-top: 0; }
.svcs a, .svcs .soon {
  display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 0 10px; align-items: baseline;
  padding: 10px 0; color: var(--ink);
}
.svcs a:hover { text-decoration: none; }
.svcs a:hover .s-name { color: var(--navy-link); }
.s-name { font-size: 14px; font-weight: 700; letter-spacing: -0.02em; }
.s-name small { font-size: 11px; font-weight: 600; color: var(--ink-3); margin-left: 6px; letter-spacing: 0; }
.s-desc { display: block; font-size: 11.5px; line-height: 1.5; color: var(--ink-3); margin-top: 1px; }
.s-age { font-size: 11px; color: var(--ink-3); white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; }
.s-age.warn { color: var(--ink); font-weight: 700; }
.s-age.bad { color: var(--red); font-weight: 700; }
.svcs .soon { color: var(--ink-3); }

.legend {
  margin: 10px 0 0; padding-top: 10px; border-top: 1px solid var(--rule);
  display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; color: var(--ink-3);
}
.legend .dot { margin-right: 5px; }
