/* A4 print edition. Each .sheet is one fixed page; scripts/build.py fails the build if a sheet overflows. */
@page { size: A4; margin: 0; }
@media print {
  :root {
    --desk: #fff; --paper: var(--print-paper, #fff); --ink: #1c1b18; --ink-soft: #4a463f; --rule: #2b2925;
    --hair: #bcb6a9; --box: #f1eee6; --accent: #9b2b20; --grain: 0;
    color-scheme: light;
    font-size: 9.3pt;
  }
  html, body { margin: 0; padding: 0; background: var(--paper); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .edition-bar { display: none; }
  .sheet {
    width: 210mm; height: 297mm; max-width: none; margin: 0;
    box-sizing: border-box; padding: 10mm 11mm 9mm;
    box-shadow: none; overflow: hidden;
    break-after: page; display: flex; flex-direction: column;
  }
  .sheet:last-child { break-after: auto; }
  .sheet::before { display: none; }

  /* Masthead */
  .mast-top { grid-template-columns: 31mm minmax(0, 1fr) 31mm; gap: 0 3mm; }
  .nameplate { font-size: 31.5pt; gap: 0 2.4mm; }
  .nameplate .crest { height: 23mm; }
  .mast-top { align-items: center; }
  .ear { font-size: 7.6pt; padding: 1.6mm 1.8mm; }
  .ear-label { font-size: 6.6pt; }
  .ear-price { font-size: 11pt; }
  .mast-bar { margin-top: 1.8mm; padding-block: 1.2mm; font-size: 7pt; }
  .mast-bar .motto { font-size: 8.6pt; }
  .folio { font-size: 7pt; padding-bottom: 1.4mm; }

  /* Page grid */
  .page { flex: 1 1 auto; grid-template-columns: minmax(0, 1fr) 46mm; gap: 0 5mm; padding-top: 3.5mm; }
  .main > .story + .story { margin-top: 3.5mm; padding-top: 3.5mm; }
  .rail { padding-left: 5mm; gap: 3.6mm; }

  /* Headlines */
  .kicker { font-size: 7pt; margin-bottom: 1.5mm; }
  .kicker::before, .kicker::after { flex-basis: 10mm; }
  .hed-banner { font-size: 30pt; line-height: 1.02; }
  .hed-main { font-size: 19pt; }
  .hed-jump { font-size: 15pt; }
  .deck { margin-top: 2mm; }
  .deck::before { width: 12mm; margin-bottom: 1.6mm; }
  .deck-a { font-size: 11pt; }
  .deck-b { font-size: 10pt; }
  .byline { margin: 2.2mm 0 2.6mm; font-size: 8pt; }
  .byline b { font-size: 7.4pt; }

  /* Copy */
  .copy { font-size: 9.25pt; line-height: 12pt; column-gap: 4.5mm; column-fill: balance; }
  .copy h3 { font-size: 7.8pt; margin: 2.6mm 0 1.4mm; }
  .copy p.note { font-size: 8.8pt; margin-top: 2mm; }
  .cols-3 { column-count: 3; }
  .cols-2 { column-count: 2; }
  .jump { font-size: 7pt; margin-top: 2mm; }
  .jump a, .index a { text-decoration: none; }
  .record { font-size: 8pt; margin-top: 2.6mm; padding-top: 1.4mm; }
  .record b { font-size: 6.8pt; }

  /* Rail furniture */
  .box, .stop { padding: 2.6mm 3mm 3mm; }
  .box h4, .plain h4, .stop h4 { font-size: 7.4pt; margin-bottom: 2mm; padding-bottom: 1.4mm; }
  .box p, .plain p, .stop p { font-size: 8.4pt; line-height: 1.38; }
  .index { font-size: 8.2pt; gap: 1.3mm; }
  .index .pg { font-size: 7pt; }
  .static-fig .lbl { font-size: 6.4pt; }
  .static-fig figcaption { font-size: 7.8pt; }
  .gloss dt { font-size: 7pt; }
  .gloss dd { font-size: 8.4pt; }
  .classified .ad b { font-size: 7.8pt; }
  .specimen .zh { font-size: 40pt; }
  .specimen span.py { font-size: 9pt; }
  .specimen span.gl { font-size: 6.2pt; }
  .imprint { font-size: 7.6pt; line-height: 1.4; margin-top: auto; padding-block: 2mm; }
  .imprint b { font-size: 7pt; }
  a { text-decoration-color: var(--hair); }
}
@media print {
  .hed-jump + .copy { margin-top: 2.6mm; }
  .pull { padding: 3mm 0 2.6mm; }
  .pull p { font-size: 11.5pt; }
  .pull cite { font-size: 6.8pt; margin-top: 2mm; }
  .specimen.specimen-rail { padding: 3mm 2mm 2.6mm; }
  .specimen.specimen-rail .zh { font-size: 64pt; }
  .specimen.specimen-rail span.py { font-size: 11pt; }
  .specimen.specimen-rail span.gl { font-size: 7pt; }
}
@media print {
  .cols-4-print { column-count: 4; }
  .cells-wrap, .colouring figcaption, .coming-band .coming { max-width: 150mm; }
  .cells, .bracket { gap: 1.6mm; }
  .cells li { font-size: 10pt; border-width: .8pt; }
  .bracket { height: 3mm; }
  .bracket span { height: 2.4mm; border-left-width: .8pt; }
  .bracket i { bottom: .6mm; border-bottom-width: .8pt;
    left: calc(2 * (100% - 11 * 1.6mm) / 12 + 2 * 1.6mm + (100% - 11 * 1.6mm) / 24);
    right: calc((100% - 11 * 1.6mm) / 24); }
  .colouring figcaption { font-size: 8.4pt; margin-top: 2mm; }
  .copy ol.lessons { padding-left: 4mm; margin-top: 1mm; } .copy ol.lessons li { margin-bottom: .8mm; }
}
@media print {
  .main > .pull-wide { padding: 3mm 0 2.6mm; }
  .pull-wide p { max-width: 175mm; font-size: 14pt; }
  .cells-wrap, .colouring figcaption { max-width: 165mm; }
}
@media print {
  .margins { padding: 3mm 3.4mm 3mm; }
  .margins .column-head { font-size: 19pt; margin-bottom: 1.6mm; }
  .margins .sources { font-size: 7.6pt; margin-top: 2.4mm; padding-top: 1.4mm; }
  .margins .sources b { font-size: 6.6pt; }
  .rules li { font-size: 8.4pt; margin-bottom: 1.4mm; }
}
@media print { .bot { font-size: .87em; } }
@media print { .byline b .bot { font-size: 1.45em; } }
@media print {
  .sketch-grid { grid-template-columns: 113mm minmax(0, 1fr); gap: 5mm; margin-top: 1.5mm; }
  .sketch-side .byline { margin: 2mm 0 2.6mm; }
  .sketch-caption { padding: 2.4mm 0; }
  .sketch-caption p { font-size: 9.6pt; }
  .sketch-note { font-size: 8.4pt; margin-top: 2.4mm; }
}
@media print {
  .main > .gloss-wide { margin-top: 3.5mm; }
  .gloss-wide dl { columns: 3; column-gap: 5mm; }
  .gloss-wide dl > div { margin-bottom: 1.8mm; }
}
@media print {
  .pull cite .bot { font-size: 1.4em; }
  #page-five .pull-wide { padding: 6mm 0 5mm; }
  #page-five .pull-wide p { font-size: 17pt; max-width: 170mm; }
  #page-five .gloss-wide { padding: 4mm 4.5mm 4.5mm; }
  #page-five .gloss-wide dt { font-size: 7.8pt; }
  #page-five .gloss-wide dd { font-size: 9.2pt; line-height: 1.42; }
  #page-five .gloss-wide h4 { font-size: 8.4pt; }
}
