/* Reading pages (licence.html, procurement.html): the type scale of the Crosswalk pages at a reading size, a measure of
   about seventy characters (37em of Inter at 17px, measured), and a table of contents: a rail on the left from 1100px, a fold above the text below that.
   The brand layer (fonts, palette, nav lockup, footer endorsement) is assets/brand.css. */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #fff; color: var(--ink-700); font-size: 17px; line-height: 1.65; }
a { color: var(--accent); }

.docpage { max-width: 1180px; margin: 0 auto; padding: 8px 20px 0; }
.doc { max-width: 37em; min-width: 0; padding-bottom: 32px; }
.doc p, .doc li { font-size: 17px; }
.doc p { margin: 0 0 14px; }
.doc ol, .doc ul { padding-left: 24px; margin: 0 0 14px; }
.doc li { margin: 0 0 8px; }
.doc h1 { font-size: clamp(30px, 3.4vw, 40px); line-height: 1.15; margin: 22px 0 8px; color: var(--ink-900); }
.doc h2 { font-size: 28px; line-height: 1.2; margin: 44px 0 10px; color: var(--ink-900); }
.doc h3 { font-size: 21px; line-height: 1.3; margin: 34px 0 8px; color: var(--ink-900); }
.doc h4 { font-size: 20px; line-height: 1.35; margin: 26px 0 6px; color: var(--ink-900); }
.doc hr { border: 0; border-top: 1px solid var(--line); margin: 30px 0; }
.doc .meta { color: var(--meta); font-size: 15px; margin: 4px 0 18px; }
.doc .note { font-size: 15px; color: var(--ink-700); background: var(--wash); border: 1px solid var(--line);
  border-radius: 9px; padding: 10px 14px; margin: 18px 0; }

/* A link to each clause, shown on hover or focus, so a clause can be quoted by its address. */
.anchor { margin-left: 6px; font-family: var(--font-mono); font-size: .8em; font-weight: 500; color: var(--ink-500);
  text-decoration: none; opacity: 0; }
:is(h2, h3, h4, li):hover > .anchor, .anchor:focus-visible { opacity: 1; }
.anchor:hover { color: var(--accent); }
:target { scroll-margin-top: calc(64px + 1rem); }
li:target, h3:target, h4:target { background: #fff8db; border-radius: 4px; box-shadow: 0 0 0 6px #fff8db; }

/* The table of contents. */
.toc ol { list-style: none; margin: 0; padding: 0; }
.toc li { margin: 0; }
.toc a { display: block; padding: 4px 10px; border-left: 2px solid transparent; color: var(--ink-700);
  text-decoration: none; font-size: 14px; line-height: 1.35; }
.toc a:hover { color: var(--accent); }
.toc a[aria-current="true"] { border-left-color: var(--navy); color: var(--ink-900); font-weight: 600; background: var(--wash); }
.toc .toc-4 a { padding-left: 22px; font-size: 13.5px; }
.toc-head { margin: 0 0 8px; padding-left: 12px; font-family: var(--font-mono); font-size: 12px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ink-500); }
.toc-fold { margin: 16px 0 0; border: 1px solid var(--line); border-radius: 10px; background: var(--wash); }
.toc-fold > summary { cursor: pointer; padding: 10px 14px; font-weight: 600; color: var(--ink-900); }
.toc-fold > ol { padding: 0 6px 10px; max-height: 60vh; overflow: auto; }
.toc-rail { display: none; }
@media (min-width: 1100px) {
  .docpage { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 56px; align-items: start; }
  .toc { align-self: stretch; }   /* the rail sticks inside the nav, so the nav runs the page's length */
  .toc-fold { display: none; }
  .toc-rail { display: block; position: sticky; top: calc(64px + 16px); max-height: calc(100vh - 96px); overflow: auto;
    padding: 24px 0 24px; }
}

.docfoot { max-width: 1180px; margin: 0 auto; padding: 0 20px 40px; }
.docfoot footer { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line);
  font-size: 13px; color: var(--muted); text-align: center; }
.docfoot footer a { color: var(--muted); }

@media (max-width: 600px) {
  html, body, .doc p, .doc li { font-size: 16px; }
  .doc h2 { font-size: 24px; }
  .doc h3 { font-size: 19px; }
}
@media print { .topnav, .toc, .note, .anchor, .docfoot footer { display: none; } .docpage { display: block; } }
