/* Unia Polsko-Ukraińska — site styles.
   Plain CSS: no build step, no web fonts, no external resources, no JavaScript.
   Content pages rely on the class names listed in docs/STYLEGUIDE.md §7 — keep them working.
   Breakpoints: 40em (phone → tablet) and 62em (tablet → desktop). The menu has its own two: cells up to
   44em (seven items need about 690 px for one row), one row beside the brand from 66em. */

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

  --c-navy-900: #0d2744;   /* hero, footer, headings */
  --c-navy-700: #143a66;   /* brand mark, primary buttons */
  --c-navy-100: #e8eef6;   /* soft fills */
  --c-red: #c8102e;        /* Poland */
  --c-blue: #0057b7;       /* Ukraine */
  --c-gold: #f2c230;       /* Ukraine; focus colour on dark backgrounds */

  --c-ink: #1c2430;
  --c-ink-soft: #3b4756;
  --c-muted: #566270;
  --c-line: #dde3ea;
  --c-bg: #ffffff;
  --c-bg-alt: #f4f6f9;
  --c-link: #0b4f9c;

  --c-on-dark: #ffffff;
  --c-on-dark-soft: #cdd7e4;
  --c-on-dark-muted: #a9b8ca;

  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif;

  --maxw: 70rem;
  --measure: 68ch;
  --gutter: clamp(1rem, 2.5vw, 1.5rem);
  --gap: clamp(1rem, .75rem + 1vw, 1.5rem);
  --section-y: clamp(3rem, 2rem + 4vw, 5.5rem);
  --radius: 6px;
  --tap: 2.75rem; /* 44 px minimum touch target */
}

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--c-bg);
  color: var(--c-ink);
  font-family: var(--font);
  font-size: clamp(1rem, .95rem + .25vw, 1.0625rem);
  line-height: 1.6;
  overflow-wrap: break-word;
}
main { flex: 1 0 auto; }
img, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4 { margin: 0 0 .5em; color: var(--c-navy-900); font-weight: 700; line-height: 1.2; letter-spacing: -.01em; text-wrap: balance; }
h1 { font-size: clamp(1.875rem, 1.5rem + 1.6vw, 2.625rem); letter-spacing: -.02em; }
h2 { font-size: clamp(1.4375rem, 1.25rem + .8vw, 1.875rem); }
h3 { font-size: clamp(1.125rem, 1.08rem + .2vw, 1.25rem); line-height: 1.3; }
h4 { font-size: 1rem; }
p, ul, ol, dl, blockquote { margin: 0 0 1rem; }
p { text-wrap: pretty; }
a { color: var(--c-link); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--c-navy-900); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--c-navy-700); outline-offset: 3px; }
hr { height: 0; margin: 2.5rem 0; border: 0; border-top: 1px solid var(--c-line); }
.container { width: min(100% - 2 * var(--gutter), var(--maxw)); margin-inline: auto; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; top: -10rem; left: var(--gutter); z-index: 100; padding: .75rem 1rem; border-radius: 0 0 var(--radius) var(--radius); background: var(--c-navy-900); color: var(--c-on-dark); font-weight: 600; }
.skip-link:focus { top: 0; color: var(--c-on-dark); }
.skip-link:focus-visible { outline-color: var(--c-gold); }

/* 3. Header ---------------------------------------------------------------- */
.site-header { background: var(--c-bg); border-bottom: 1px solid var(--c-line); }
.site-header__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 2rem; padding-block: .875rem; }
.brand { display: inline-flex; align-items: center; gap: .75rem; min-height: var(--tap); color: var(--c-navy-900); text-decoration: none; }
.brand:hover { color: var(--c-navy-900); }
.brand__mark { flex: none; width: 2.75rem; height: 2.75rem; }
.brand__text { display: flex; flex-direction: column; gap: .25rem; line-height: 1.1; }
.brand__kind { color: var(--c-muted); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.brand__name { font-size: 1.1875rem; font-weight: 700; letter-spacing: -.01em; }
.site-nav ul { display: flex; flex-wrap: wrap; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.site-nav a { display: flex; align-items: center; justify-content: center; min-height: var(--tap); padding: .25rem .75rem; border-radius: 4px; color: var(--c-ink); font-weight: 500; line-height: 1.2; text-decoration: none; }
.site-nav a:hover { background-color: var(--c-navy-100); color: var(--c-navy-900); }
.site-nav a[aria-current] { border-radius: 4px 4px 0 0; background: linear-gradient(var(--c-navy-700), var(--c-navy-700)) bottom / 100% 3px no-repeat; color: var(--c-navy-700); }

/* 4. Hero (home page): the brand arch, drawn large and tone-on-tone ------------ */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(3rem, 2rem + 5vw, 6.5rem);
  background: var(--c-navy-900);
  color: var(--c-on-dark);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: max(var(--gutter), (100% - var(--maxw)) / 2);
  bottom: 0;
  width: clamp(13rem, 44vw - 5rem, 31rem);
  aspect-ratio: 554 / 355;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='23 58 554 355'%3E%3Cpath d='M36 400C36 208 156 64 300 64S564 208 564 400' fill='none' stroke='%23183c69' stroke-width='12' stroke-linecap='round'/%3E%3Ccircle cx='36' cy='400' r='13' fill='%23c8102e'/%3E%3Ccircle cx='564' cy='400' r='13' fill='%23f2c230'/%3E%3C/svg%3E") no-repeat center bottom / 100% auto;
  pointer-events: none;
}
.hero h1 { max-width: 20ch; margin-bottom: .45em; color: var(--c-on-dark); font-size: clamp(2rem, 1.35rem + 2.6vw, 3.25rem); }
.hero p { max-width: 36rem; color: var(--c-on-dark-soft); }
.hero .lead { font-size: clamp(1.0625rem, 1rem + .4vw, 1.25rem); }
.hero a:not(.btn) { color: var(--c-on-dark); }
.hero .eyebrow { color: var(--c-gold); }
.hero :focus-visible { outline-color: var(--c-gold); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); }

/* 5. Buttons ----------------------------------------------------------------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: var(--tap); padding: .625rem 1.25rem; border: 2px solid transparent; border-radius: var(--radius); background: transparent; color: var(--c-navy-700); font: inherit; font-weight: 600; line-height: 1.25; text-align: center; text-decoration: none; cursor: pointer; }
.btn--primary { border-color: var(--c-navy-700); background: var(--c-navy-700); color: #fff; }
.btn--primary:hover { border-color: var(--c-navy-900); background: var(--c-navy-900); color: #fff; }
.btn--outline { border-color: var(--c-navy-700); color: var(--c-navy-700); }
.btn--ghost { border-color: #7d8ea3; color: var(--c-navy-700); }
.btn--outline:hover, .btn--ghost:hover { border-color: var(--c-navy-700); background: var(--c-navy-100); color: var(--c-navy-900); }
.hero .btn--primary { border-color: var(--c-gold); background: var(--c-gold); color: var(--c-navy-900); }
.hero .btn--primary:hover { border-color: #f7d564; background: #f7d564; color: var(--c-navy-900); }
.hero .btn--outline, .hero .btn--ghost { border-color: rgba(255, 255, 255, .6); color: var(--c-on-dark); }
.hero .btn--outline:hover, .hero .btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .1); color: var(--c-on-dark); }

/* 6. Sections ---------------------------------------------------------------- */
.section { padding-block: var(--section-y); }
.section--alt { border-block: 1px solid var(--c-line); background: var(--c-bg-alt); }
/* A section holding only the facts strip is a strip, not a full section. */
.section:has(> .container > .facts:only-child) { padding-block: clamp(1.75rem, 1.25rem + 2vw, 2.75rem); }
.section__head { max-width: var(--measure); margin-bottom: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); }
.section__head h2 { margin-bottom: .4em; }
.section__head p { color: var(--c-muted); }
.section__head > :last-child { margin-bottom: 0; }
.eyebrow { display: block; margin-bottom: .6rem; color: var(--c-red); font-size: .8125rem; font-weight: 700; letter-spacing: .1em; line-height: 1.3; text-transform: uppercase; }

/* 7. Grid and cards ------------------------------------------------------------ */
.grid { display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr)); margin: 0; padding: 0; list-style: none; }
.card { margin: 0; padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-bg); }
.card > :last-child { margin-bottom: 0; }
.card h3 { margin: 0 0 .6rem; font-size: 1.125rem; }
.card p { color: var(--c-ink-soft); }
.card time, .card .post-meta { display: block; margin-bottom: .4rem; color: var(--c-muted); font-size: .875rem; }
.card h3 a, .timeline h3 a { color: var(--c-navy-900); text-decoration-color: color-mix(in srgb, currentColor 30%, transparent); }
.card h3 a:hover, .timeline h3 a:hover { text-decoration-color: currentColor; }

/* 8. Key facts strip ------------------------------------------------------------ */
.facts { display: grid; gap: 1.25rem .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.facts li { margin: 0; padding: .125rem 0 .125rem .75rem; border-left: 3px solid var(--c-gold); color: var(--c-muted); font-size: .9375rem; line-height: 1.4; }
.facts strong { display: block; margin-bottom: .25rem; color: var(--c-navy-900); font-size: clamp(1rem, .75rem + 1vw, 1.375rem); font-weight: 700; line-height: 1.25; font-variant-numeric: tabular-nums; }
.hero .facts { margin-top: clamp(2rem, 1.5rem + 2vw, 3rem); padding-top: clamp(1.5rem, 1rem + 1.5vw, 2rem); border-top: 1px solid rgba(255, 255, 255, .16); }
.hero .facts li { color: var(--c-on-dark-soft); }
.hero .facts strong { color: var(--c-on-dark); }

/* 9. Page header and page body (page.njk, post.njk) ------------------------------ */
.page-head { padding-block: clamp(2.25rem, 1.5rem + 3vw, 4rem) clamp(1.75rem, 1.25rem + 2vw, 3rem); border-bottom: 1px solid var(--c-line); background: var(--c-bg-alt); }
.page-head h1 { max-width: 28ch; margin: 0; }
.page-head .lead { max-width: 60ch; margin: .875rem 0 0; }
.page-head .post-meta { margin: .875rem 0 0; }
.page-body { padding-block: clamp(2rem, 1.5rem + 2vw, 3.25rem) var(--section-y); }
.back-link { max-width: var(--measure); margin: 2.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--c-line); }
.lead { color: var(--c-ink-soft); font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.55; }

/* 10. Prose ---------------------------------------------------------------------- */
.prose { max-width: var(--measure); }
.prose--wide { max-width: none; }
.prose > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }
.prose :where(h2) { margin: 2.75rem 0 .75rem; }
.prose :where(h3) { margin: 2rem 0 .5rem; }
.prose :where(h4) { margin: 1.5rem 0 .5rem; }
.prose :where(ul, ol) { padding-left: 1.4em; }
.prose :where(li) { margin-bottom: .4em; }
.prose :where(li > ul, li > ol) { margin: .4em 0 0; }
.prose :where(li)::marker { color: var(--c-muted); }
.prose--wide > :where(p, ul:not([class]), ol:not([class]), blockquote, .notice, details) { max-width: var(--measure); }
blockquote { margin: 1.75rem 0; padding: .125rem 0 .125rem 1.25rem; border-left: 3px solid var(--c-gold); color: var(--c-ink-soft); }
blockquote > :last-child { margin-bottom: 0; }
.notice { margin: 1.75rem 0; padding: 1rem 1.25rem; border-left: 4px solid var(--c-navy-700); border-radius: 0 var(--radius) var(--radius) 0; background: var(--c-navy-100); }
.notice > :last-child { margin-bottom: 0; }

/* 11. Tables ----------------------------------------------------------------------- */
table { width: 100%; margin: 1.75rem 0; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; font-variant-numeric: tabular-nums; }
caption { margin-bottom: .6rem; color: var(--c-navy-900); font-weight: 700; text-align: left; }
th, td { padding: .7rem .875rem; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
th:first-child, td:first-child { padding-left: 0; }
th:last-child, td:last-child { padding-right: 0; }
thead th { padding-top: 0; border-bottom: 2px solid var(--c-navy-700); color: var(--c-navy-900); font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
tbody th { color: var(--c-navy-900); font-weight: 600; }

/* 12. Disclosure (details/summary) ------------------------------------------------- */
details { margin: 1.75rem 0; padding: 0 1.25rem; border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-bg); }
details[open] { padding-bottom: .75rem; }
summary { position: relative; display: block; min-height: var(--tap); margin: 0 -1.25rem; padding: .7rem 3rem .7rem 1.25rem; border-radius: var(--radius); color: var(--c-navy-700); font-weight: 600; line-height: 1.4; list-style: none; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
summary::after { content: ""; position: absolute; top: 50%; right: 1.375rem; width: .5rem; height: .5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-70%) rotate(45deg); }
summary:hover { background: var(--c-bg-alt); }
details[open] > summary { margin-bottom: 1rem; border-bottom: 1px solid var(--c-line); border-radius: var(--radius) var(--radius) 0 0; }
details[open] > summary::after { transform: translateY(-30%) rotate(-135deg); }
details ol, details ul { padding-left: 1.6em; }
details li { margin-bottom: .4em; }
details li::marker { color: var(--c-muted); font-variant-numeric: tabular-nums; }

/* 13. Timeline and posts ----------------------------------------------------------- */
.year-head { display: flex; align-items: center; gap: 1rem; margin: 2.75rem 0 1.5rem; color: var(--c-navy-900); font-size: 1.125rem; font-weight: 700; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.year-head::after { content: ""; flex: 1; height: 1px; background: var(--c-line); }
.timeline { max-width: var(--measure); margin: 0 0 1.5rem; padding: 0; list-style: none; }
.timeline > li { position: relative; margin: 0; padding: 0 0 2rem 1.75rem; }
.timeline > li:last-child { padding-bottom: 0; }
.timeline > li::before { content: ""; position: absolute; top: 0; bottom: 0; left: 5px; width: 2px; background: var(--c-line); }
.timeline > li:first-child::before { top: .75rem; }
.timeline > li:last-child::before { bottom: auto; height: .75rem; }
.timeline > li:only-child::before { display: none; }
.timeline > li::after { content: ""; position: absolute; top: calc(.75rem - 6px); left: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--c-navy-700); box-shadow: 0 0 0 3px var(--c-bg); }
.section--alt .timeline > li::after { box-shadow: 0 0 0 3px var(--c-bg-alt); }
.timeline time { display: block; margin-bottom: .2rem; color: var(--c-muted); font-size: .875rem; font-weight: 600; line-height: 1.5rem; font-variant-numeric: tabular-nums; }
.timeline h3 { margin: 0 0 .35rem; font-size: 1.125rem; line-height: 1.35; }
.timeline p { margin: 0; color: var(--c-ink-soft); }
.post-meta { margin: 0 0 1.5rem; color: var(--c-muted); font-size: .9375rem; }

/* 14. People ------------------------------------------------------------------------- */
.people { display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); max-width: var(--measure); margin: 1.25rem 0 0; padding: 0; list-style: none; }
.person { display: flex; align-items: center; gap: 1rem; margin: 0; padding: 1.125rem 1.25rem; border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-bg); }
.person__avatar { flex: none; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--c-navy-100); color: var(--c-navy-700); font-size: .9375rem; font-weight: 700; letter-spacing: .04em; }
.person__name { margin: 0; color: var(--c-navy-900); font-weight: 700; line-height: 1.3; }
.person__role { margin: .2rem 0 0; color: var(--c-muted); font-size: .9375rem; line-height: 1.35; }

/* 15. Registry data (definition list) -------------------------------------------------- */
.dl { display: grid; grid-template-columns: minmax(0, 1fr); margin: 1.5rem 0; border-bottom: 1px solid var(--c-line); }
.dl > div { display: contents; }
.dl dt { padding-top: .75rem; border-top: 1px solid var(--c-line); color: var(--c-muted); font-size: .875rem; }
.dl dd { margin: 0; padding: .125rem 0 .75rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.dl dd + dd { padding-top: 0; }

/* 16. Footer ------------------------------------------------------------------------- */
/* The 4 px navy edge above the stripe lets its white quarter read against navy. */
.site-footer { padding-top: 4px; background: var(--c-navy-900); color: var(--c-on-dark-soft); font-size: .9375rem; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.flag-stripe { height: 8px; background: linear-gradient(90deg, #fff 50%, var(--c-blue) 50%) top / 100% 50% no-repeat, linear-gradient(90deg, var(--c-red) 50%, var(--c-gold) 50%) bottom / 100% 50% no-repeat; }
.site-footer__inner { display: grid; gap: 2rem 3rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); padding-block: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.site-footer h2 { margin: 0 0 .875rem; color: var(--c-on-dark); font-size: .8125rem; font-weight: 700; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; }
.site-footer__org h2 { font-size: 1.0625rem; letter-spacing: 0; text-transform: none; }
.site-footer p { margin: 0 0 .75rem; }
.site-footer a { color: var(--c-on-dark); text-decoration-color: rgba(255, 255, 255, .45); }
.site-footer a:hover { color: var(--c-on-dark); text-decoration-color: currentColor; }
.site-footer :focus-visible { outline-color: var(--c-gold); }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li a { display: inline-flex; align-items: center; min-height: 2rem; }
.site-footer__ids { font-variant-numeric: tabular-nums; }
.site-footer__bottom { padding-block: 1.125rem; border-top: 1px solid rgba(255, 255, 255, .14); color: var(--c-on-dark-muted); font-size: .875rem; }

/* 17. Motion: only small colour and chevron transitions, and only when welcome ----------- */
@media (prefers-reduced-motion: no-preference) {
  a, .btn, summary { transition: color .15s ease, background-color .15s ease, border-color .15s ease, text-decoration-color .15s ease; }
  summary::after { transition: transform .2s ease; }
}

/* High-contrast mode drops backgrounds, which carry the current-page bar: underline instead. */
@media (forced-colors: active) {
  .site-nav a[aria-current] { text-decoration: underline 3px; text-underline-offset: .35em; }
}

/* 18. Responsive ---------------------------------------------------------------------- */
/* Desktop: wide facts strip and three-column footer. */
@media (min-width: 62em) {
  .facts { column-gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
  .site-footer__inner { grid-template-columns: 1.3fr 1fr 1fr; }
}
/* Desktop header: brand and menu share one row; the last menu item lines up with the content edge. */
@media (min-width: 66em) {
  .site-nav { margin-right: -.75rem; }
}
/* Tablet and phone: the menu moves to its own full-width row under the brand. */
@media (max-width: 65.99em) {
  .site-header__inner { padding-bottom: 0; }
  .site-nav { flex: 1 0 100%; margin-inline: calc(-1 * var(--gutter)); padding-inline: calc(var(--gutter) - .75rem); border-top: 1px solid var(--c-line); }
  .site-nav a[aria-current] { border-radius: 0; }
}
/* Tablet up: two-column registry list with one label width for every list, so two lists on
   one page line up; exactly four cards sit 2 × 2 so long card texts keep a readable line length. */
@media (min-width: 40em) {
  .grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dl { grid-template-columns: 13rem minmax(0, 1fr); }
  .dl dt, .dl dd { line-height: 1.75rem; }
  .dl dt { grid-column: 1; padding: .75rem 1.5rem .75rem 0; font-size: .9375rem; }
  .dl dd { grid-column: 2; padding: .75rem 0; border-top: 1px solid var(--c-line); }
  .dl dd + dd { padding-top: 0; border-top: 0; }
}
/* Up to 44em the menu becomes rows of three equal cells, each at least 44 px tall; a short last row
   stretches to the full width. */
@media (max-width: 43.99em) {
  .site-nav { padding-inline: 0; }
  .site-nav ul { display: flex; flex-wrap: wrap; gap: 1px; background: var(--c-line); }
  .site-nav li { flex: 1 1 calc(33.333% - 2px); min-width: 0; background: var(--c-bg); }
  .site-nav a { padding: .25rem .375rem; font-size: .9375rem; text-align: center; }
  .site-nav a[aria-current] { background-color: var(--c-navy-100); }
  /* Focus ring inside the cell: drawn outside, the next cell and the screen edge hide it. */
  .site-nav a:focus-visible { outline-offset: -3px; }
}
/* Phone. */
@media (max-width: 39.99em) {
  .site-header__inner { row-gap: .625rem; padding-top: .625rem; }
  .hero::before { display: none; }
  table { font-size: .875rem; }
  th, td { padding: .6rem .5rem; }
  .site-footer ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
  .site-footer li a { min-height: var(--tap); }
  .site-footer p a { display: inline-flex; align-items: center; min-height: var(--tap); }
}

/* 19. Print ---------------------------------------------------------------------------- */
@media print {
  @page { margin: 18mm 16mm; }
  :root { --c-ink: #000; --c-ink-soft: #000; --c-muted: #333; --c-navy-900: #000; --c-navy-700: #000; --c-link: #000; --c-line: #bbb; --c-bg-alt: #fff; --c-navy-100: #fff; }
  body { display: block; background: #fff; color: #000; font-size: 10.5pt; line-height: 1.45; }
  .skip-link, .site-nav, .hero__actions, .flag-stripe, .back-link, .site-footer__nav, .person__avatar, .hero::before, summary::after { display: none !important; }
  .site-header { border-bottom: 1px solid #000; }
  .site-header__inner { padding-block: 0 4mm; }
  .hero, .page-head, .section--alt, .site-footer { border: 0; background: none !important; color: #000; }
  .hero, .section, .page-head, .page-body { padding-block: 5mm; }
  .hero h1, .hero p, .hero .facts li, .hero .facts strong, .site-footer h2, .site-footer a, .site-footer__bottom { color: #000 !important; }
  .site-footer { margin-top: 6mm; padding-top: 0; border-top: 1px solid #000; }
  .site-footer__inner { grid-template-columns: repeat(2, 1fr); gap: 4mm 10mm; padding-block: 4mm 0; }
  .site-footer__bottom { padding-block: 2mm 0; border: 0; }
  a { color: #000; text-decoration: underline; }
  .prose a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .85em; overflow-wrap: anywhere; }
  .card, .person, .notice, details { border-color: #999; }
  .timeline > li { padding-left: 0; }
  .timeline > li::before, .timeline > li::after { display: none; }
  h2, h3, .year-head { break-after: avoid; }
  .card, .person, .timeline > li, .facts li, tr, blockquote, .notice { break-inside: avoid; }
}
/* Print the full text of closed disclosures where the browser allows it (kept separate:
   a browser that does not know ::details-content drops only this rule). */
@media print {
  details::details-content { content-visibility: visible; }
}
