/* rolycall — A4 print sheet. The PDFs are produced by Chrome headless from the same HTML the
   site serves, so this file restyles the brand markup (masthead, prose, tables, integrity block)
   for paper rather than defining a second document. Screen-only furniture — the top bar, the
   table of contents, the download buttons and the index row — is hidden. */

@page { size: A4; margin: 18mm 16mm 20mm; }

html { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body {
  background: #fff; color: #201e1d;
  font-family: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 10.5pt; line-height: 1.45;
}
.legal-wrap { background: #fff; min-height: 0; font-family: inherit; }
.shell { max-width: none; padding: 0; }

/* screen furniture */
nav.top, .doc-toc, .doc-actions, .legal-index-row, .legal-head, .nav-links-r { display: none !important; }

/* ---- masthead, page 1 ---- */
.doc-head { border-bottom: 2pt solid #201e1d; padding: 0 0 9pt; margin: 0 0 14pt; }
.doc-kicker { color: #ec3013; font-size: 8pt; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 5pt; }

/* ---- logo ---- */
.doc-brand { display: flex; align-items: center; gap: 9pt; margin: 0 0 9pt; }
.wm {
  font-family: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 800;
  font-size: 17pt; letter-spacing: -.03em; line-height: 1; color: #201e1d;
  display: inline-flex; align-items: baseline; white-space: nowrap;
}
.doc-brand .wm { --wm-dot: #ec3013; }
.wm .wm-o { width: .73em; height: .73em; align-self: center; margin: .06em .015em 0; flex: none; }
.brand-tag {
  padding-left: 9pt; border-left: .6pt solid #b5b1b1;
  font-size: 7.5pt; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; color: #ec3013;
}
.doc-title { font-size: 25pt; line-height: 1.04; letter-spacing: -.02em; margin: 0 0 7pt; }
.doc-lede { font-size: 11pt; line-height: 1.4; max-width: none; margin: 0 0 9pt; }
.doc-draft {
  display: inline-block; margin: 0 0 9pt; padding: 3pt 6pt;
  border: 1pt solid #ec3013; color: #ae1800;
  font-size: 8pt; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.doc-meta { display: flex; flex-wrap: wrap; gap: 5pt 16pt; font-size: 8.5pt; line-height: 1.3; }
.doc-meta .k { display: block; font-size: 6.8pt; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #7d7979; margin-bottom: 1pt; }

/* ---- body ---- */
.doc-grid { display: block; padding: 0; }
.prose { max-width: none; font-size: 10.5pt; line-height: 1.45; }
.prose p { margin: 0 0 7pt; }
.prose p, .prose li { orphans: 3; widows: 3; }
p, li { orphans: 3; widows: 3; }
h1 { font-size: 17pt; margin: 0 0 8pt; }
.prose h2 {
  font-size: 13pt; line-height: 1.2; margin: 13pt 0 5pt; padding-bottom: 3.5pt;
  border-bottom: 1.2pt solid #ec3013;
  page-break-after: avoid; break-after: avoid;
}
.prose h3 { font-size: 11pt; margin: 9pt 0 3.5pt; page-break-after: avoid; break-after: avoid; }
.prose h4 { font-size: 10.5pt; margin: 8pt 0 3pt; page-break-after: avoid; break-after: avoid; }
.prose ul, .prose ol { padding-left: 16pt; }
.prose blockquote { border-left: 2pt solid #ec3013; padding-left: 8pt; margin: 0 0 8pt; }
.prose hr { border-top: 0.5pt solid #d7d3d3; margin: 12pt 0; }
a { color: inherit; text-decoration: none; }
code { font-size: 9.5pt; }
.prose code { overflow-wrap: break-word; }            /* only breaks when it has to */
.prose td code, .prose th code, .doc-integrity code {  /* hashes and urls in narrow columns */
  background: none; padding: 0; word-break: break-all;
}

/* ---- per-document sub-head inside a multi-document page ---- */
.prose .doc-sub { border-bottom: 1.5pt solid #201e1d; padding-bottom: 6pt; margin: 0 0 12pt; }
.prose .doc-sub .doc-kicker { margin-bottom: 3pt; }
.prose .doc-sub-title { font-size: 18pt; line-height: 1.1; margin: 0; border-bottom: 0; padding: 0; }
.bundle-doc + .bundle-doc { margin-top: 0; }

/* ---- tables ---- */
.tablewrap { overflow: visible; margin: 0 0 10pt; }
table { width: 100%; border-collapse: collapse; font-size: 9.5pt; line-height: 1.3; page-break-inside: auto; }
th, td { border: 0.5pt solid #b5b1b1; padding: 2.6pt 5pt; vertical-align: top; text-align: left; }
th { background: #eae7e7; font-weight: 700; border-bottom: 1pt solid #201e1d; }
tr { page-break-inside: avoid; break-inside: avoid; }
thead { display: table-header-group; }
/* orphan and widow control: the opening and closing rows of a long table are grouped at
   build time and never split, so a break falls in the middle rather than after one row */
tbody.rows-hold { break-inside: avoid; page-break-inside: avoid; }
thead { break-after: avoid; page-break-after: avoid; }

/* ---- fill-ins ---- */
.blank { display: inline-block; min-width: 30mm; border-bottom: 0.6pt solid #201e1d; }
td .blank, th .blank { min-width: 22mm; }
.cols-6 :is(td, th) .blank { min-width: 13mm; }
.tick { display: inline-block; width: 9pt; height: 9pt; border: 0.6pt solid #605d5d; vertical-align: -0.5pt; }

/* ---- integrity ---- */
.doc-integrity {
  border-top: 1.2pt solid #201e1d; margin-top: 14pt; padding: 6pt 0 0;
  font-size: 8pt; line-height: 1.45; color: #444141;
  page-break-inside: avoid; break-inside: avoid;   /* never split the closing block */
}
.doc-integrity p { margin: 0 0 3pt; }
.prose .doc-integrity { margin-top: 12pt; }

/* ---- pagination ----
   A clause and the table that belongs to it are wrapped together at build time (build.py
   group_for_print). "keep" is a unit small enough to sit on one page: it moves whole rather
   than leaving its lead sentence stranded at the foot of a page. "keep-open" is a unit too
   tall for that — it may split, but its lead stays welded to the table it introduces. */
.keep { break-inside: avoid; page-break-inside: avoid; }
/* only the element immediately above the table is welded to it — pinning every paragraph
   in the unit leaves Chrome no legal break point and it strands half a page */
.keep-open > *:nth-last-child(2) { break-after: avoid; page-break-after: avoid; }
.keep > *:last-child, .keep-open > *:last-child { margin-bottom: 0; }
.keep, .keep-open { margin: 0 0 10pt; }
.keep + .keep, .keep + .keep-open, .keep-open + .keep { margin-top: 0; }

.bundle-doc { page-break-before: always; }
.bundle-doc:first-child { page-break-before: auto; }
.page-break { break-before: page; page-break-before: always; height: 0; }

/* Order Form field tables (owner item #6 / round-3 B): the value column gets at
   least 45% of the width. Markdown emits plain <td>/<th> — there is no
   th[scope="row"] to hook — so the two-column field rows are selected
   structurally, and the rule is scoped to the Order Form section so the
   multi-column tables in the other documents keep automatic widths. */
/* Six-column contact tables (Order Form Appendix): automatic layout starves the notes
   column and doubles the row height, so the widths are pinned. */
.cols-6 table { table-layout: fixed; }
.cols-6 th, .cols-6 td { overflow-wrap: break-word; }
.cols-6 :is(th, td):nth-child(1) { width: 23%; }
.cols-6 :is(th, td):nth-child(2) { width: 16%; }
.cols-6 :is(th, td):nth-child(3) { width: 12%; }
.cols-6 :is(th, td):nth-child(4) { width: 14%; }
.cols-6 :is(th, td):nth-child(5) { width: 11%; }
.cols-6 :is(th, td):nth-child(6) { width: 24%; }

#order-form table td:first-child:nth-last-child(2),
#order-form table th:first-child:nth-last-child(2) { width: 45%; }
#order-form table td:nth-child(2):last-child,
#order-form table th:nth-child(2):last-child { width: 55%; }
