/* RepeatWell policy pages — local-only styles. No remote fonts, no trackers. */
:root {
  --ink: #1c2a26;
  --ink-soft: #4a5a54;
  --pine: #1e4d44;
  --brass: #b97f3e;
  /* Darker than --brass for text set directly on light backgrounds: --brass itself is
     only 3.2-3.4:1 there, under the WCAG 1.4.3 4.5:1 threshold for small/bold text.
     Kept well above the minimum (6-7:1 nominal) since browser anti-aliasing on small
     bold glyphs can shift the sampled pixel color a little between renders. */
  --brass-text: #7a4a10;
  --line: #d9e2dd;
  --bg: #f6f8f6;
  --card: #ffffff;
  --warn-bg: #f7ead8;
  --warn-line: #e8d3b4;
  --warn-ink: #6b4f22;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.6;
  /* WCAG 1.4.4/1.4.10: long unbroken tokens (e.g. bracketed placeholders) must wrap
     rather than force horizontal scroll when text is resized up to 200%. */
  overflow-wrap: break-word;
}
.skip-link {
  position: absolute; left: -999px; top: 0;
  background: var(--pine); color: #fff; padding: 10px 16px; z-index: 10;
}
.skip-link:focus { left: 8px; top: 8px; }
.wrap { max-width: 820px; margin: 0 auto; padding: 24px 20px 64px; }
header.site { border-bottom: 1px solid var(--line); background: var(--card); }
header.site .wrap { padding-block: 16px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.brand { font-weight: 800; color: var(--pine); text-decoration: none; font-size: 1.1rem; }
.brand b { color: var(--brass-text); }
.staging-pill {
  display: inline-block; padding: 4px 12px; border-radius: 999px;
  background: var(--warn-bg); border: 1px solid var(--warn-line); color: var(--warn-ink);
  font-size: .74rem; font-weight: 700;
}
.draft-banner {
  margin: 20px 0; padding: 14px 18px; border-radius: 10px;
  background: var(--warn-bg); border: 1px solid var(--warn-line); color: var(--warn-ink);
  font-weight: 700;
}
.draft-banner p { margin: 6px 0 0; font-weight: 500; }
main h1 { font-size: 1.7rem; margin: 8px 0 4px; }
main h2 { font-size: 1.15rem; margin: 28px 0 8px; }
.effective { color: var(--ink-soft); font-size: .9rem; margin: 0 0 8px; }
a { color: var(--pine); }
a:focus-visible, .brand:focus-visible { outline: 3px solid var(--brass); outline-offset: 2px; }
table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: .92rem; }
th, td { border: 1px solid var(--line); padding: 8px 10px; text-align: left; }
code { background: #eef3f0; padding: 1px 5px; border-radius: 4px; font-size: .9em; }
nav.policy-nav ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 18px; }
footer.site { border-top: 1px solid var(--line); background: var(--card); color: var(--ink-soft); font-size: .88rem; }
footer.site .wrap { padding-block: 20px; }
footer.site a { font-weight: 600; }
@media (prefers-color-scheme: dark) {
  :root { --ink: #e7efe9; --ink-soft: #b3c2bb; --bg: #10201b; --card: #16271f; --line: #274139; --warn-bg: #3a2a13; --warn-line: #5a431f; --warn-ink: #f0d9b4; }
  code { background: #1e332b; }
}
@media (max-width: 560px) { .wrap { padding-inline: 14px; } main h1 { font-size: 1.4rem; } }
