/* Verdeaux binder pages: one print look for everything a couple prints or saves as a PDF.
 *
 * Stephen, 2026-10-23: "I want to match the Dailee and make all of our prints and PDF pages
 * consistent formatting with branding so a user can print and save in a 3-ring binder for
 * memories of their planning." Then: "US letter with hole punch margins", white pages with
 * green and gold accents (a full cream page drinks a home printer's ink), Full Access only.
 *
 * A page is a .vxp-page: one US Letter sheet, 8.5 × 11 in, with its own running head and
 * foot, so every page carries the couple, the section and "Page n of N" in every browser
 * (iPhone Safari keeps margins of its own whatever a page asks: see the end of this file). The left margin is
 * 1 in, clear of a standard 3-hole punch (holes ~5/16 in, centred ~3/8 in from the edge).
 *
 * Brand tokens are the app's own (verdeaux-local.html :root): green #2C4A3E, gold #C8A96E,
 * Cormorant Garamond for display, DM Sans for text.
 *
 * Nothing here reaches outside the binder's own classes, so the app can load this file without
 * changing its other prints. The sheet itself (@page) is set by the page that prints: binder-sample.html
 * in its own <style> (Letter, no margins: the sample PDF is built from it), the app only for the moment
 * VxBinder.print runs (Letter, each sheet at 90% inside margins of its own, or at 80% inside Safari's:
 * see the end of this file).
 */

.vxp-doc {
  --vxp-green: #2C4A3E; --vxp-green-mid: #3D6355; --vxp-sage: #5A8C7A; --vxp-green-pale: #EAF0ED;
  --vxp-gold: #C8A96E; --vxp-gold-deep: #A07840; --vxp-gold-lt: #E8D5A8;
  --vxp-ink: #1C1C1C; --vxp-mid: #4A4A4A; --vxp-muted: #7A7A7A; --vxp-rule: #E2DCD0;
  --vxp-display: 'Cormorant Garamond', 'Cormorant', Georgia, serif;
  --vxp-text: 'DM Sans', -apple-system, 'Helvetica Neue', Arial, sans-serif;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
  /* phones keep the sheet's own type sizes, so a page measures the same everywhere */
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
}

/* ── the sheet ── */
.vxp-page {
  position: relative; box-sizing: border-box;
  /* 0.02 in short of 11 in, so rounding never spills a sheet onto a blank one */
  width: 8.5in; height: 10.98in; overflow: hidden;
  padding: 0.95in 0.6in 0.95in 1in;
  background: #fff; color: var(--vxp-ink);
  font-family: var(--vxp-text); font-size: 9.5pt; line-height: 1.45;
  break-after: page; page-break-after: always;
}
.vxp-page:last-child { break-after: auto; page-break-after: auto; }

/* ── the punch holes ──
   Stephen, 2026-10-25: "could you add punch hole circles on the template so a user see that is our intention and that
   we are not off centering the pages as a mistake". Three dashed rings where a standard 3-hole punch lands: holes
   5/16 in across, centred 3/8 in from the left edge, 4.25 in apart with the middle one at the sheet's middle (1.25,
   5.5 and 9.75 in down). Borders, not a background, so they print even where a browser leaves backgrounds off; a pale
   sage, so they guide the punch without drinking ink. Drawn on screen, on paper and in the PDF alike. */
.vxp-holes { position: absolute; left: 0; top: 0; width: 0.75in; height: 100%; pointer-events: none; }
.vxp-holes i { position: absolute; left: 0.21875in; width: 0.3125in; height: 0.3125in; box-sizing: border-box;
  border: 0.75pt dashed #A8BFB4; border-radius: 50%; }
.vxp-holes i:nth-child(1) { top: 1.09375in; }
.vxp-holes i:nth-child(2) { top: 5.34375in; }
.vxp-holes i:nth-child(3) { top: 9.59375in; }

/* running head: wordmark left, the couple and the date right */
.vxp-head {
  position: absolute; top: 0.42in; left: 1in; right: 0.6in;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 12pt;
  padding-bottom: 5pt; border-bottom: 0.75pt solid var(--vxp-green);
}
.vxp-head img { height: 13pt; width: auto; display: block; }
.vxp-head .vxp-who { font-family: var(--vxp-display); font-style: italic; font-size: 11.5pt; color: var(--vxp-green-mid); white-space: nowrap; }

/* running foot: the section, the printed date, Page n of N */
.vxp-foot {
  position: absolute; bottom: 0.42in; left: 1in; right: 0.6in;
  display: flex; justify-content: space-between; gap: 12pt;
  padding-top: 5pt; border-top: 0.5pt solid var(--vxp-gold);
  font-size: 7.5pt; letter-spacing: .04em; color: var(--vxp-muted);
}
.vxp-foot b { font-weight: 500; color: var(--vxp-green); letter-spacing: .08em; text-transform: uppercase; }

/* ── type ── */
.vxp-kicker { font-size: 7.5pt; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--vxp-gold-deep); margin: 0 0 3pt; }
.vxp-title { font-family: var(--vxp-display); font-weight: 500; font-size: 25pt; line-height: 1.05; color: var(--vxp-green); margin: 0 0 4pt; }
.vxp-lede { font-size: 9.5pt; color: var(--vxp-mid); margin: 0 0 12pt; max-width: 5.6in; }
.vxp-h2 { font-family: var(--vxp-display); font-weight: 600; font-size: 13.5pt; color: var(--vxp-green); margin: 12pt 0 4pt; }
.vxp-small { font-size: 7.5pt; color: var(--vxp-muted); }
.vxp-num { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ── figures: a row of boxes with one number each ── */
.vxp-figures { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7pt; margin: 2pt 0 12pt; }
.vxp-figure { border: 0.5pt solid var(--vxp-rule); border-top: 2pt solid var(--vxp-green); padding: 6pt 8pt 7pt; }
.vxp-figure.is-gold { border-top-color: var(--vxp-gold); }
.vxp-figure .l { font-size: 6.8pt; letter-spacing: .14em; text-transform: uppercase; color: var(--vxp-muted); }
.vxp-figure .v { font-family: var(--vxp-display); font-size: 17pt; font-weight: 600; color: var(--vxp-green); line-height: 1.15; }
.vxp-figure .s { font-size: 7pt; color: var(--vxp-muted); }

/* ── tables: hairlines, a green head, a gold rule over the total ── */
.vxp-table { width: 100%; border-collapse: collapse; font-size: 8.6pt; }
.vxp-table th { text-align: left; font-size: 6.8pt; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--vxp-green);
  padding: 0 6pt 4pt 0; border-bottom: 0.75pt solid var(--vxp-green); vertical-align: bottom; }
.vxp-table td { padding: 3.2pt 6pt 3.2pt 0; border-bottom: 0.5pt solid var(--vxp-rule); vertical-align: top; }
.vxp-table .r { text-align: right; }
.vxp-table .muted { color: var(--vxp-muted); }
.vxp-table tr.vxp-total td { border-top: 1pt solid var(--vxp-gold); border-bottom: 0; font-weight: 600; color: var(--vxp-green); padding-top: 5pt; }
.vxp-table tr { break-inside: avoid; page-break-inside: avoid; }

/* the interview comparison: questions down, vendors across */
.vxp-compare th.vxp-chosen, .vxp-compare td.vxp-chosen { background: #FBF7EE; }
.vxp-compare th.vxp-chosen { border-bottom-color: var(--vxp-gold); }
.vxp-compare td.q { color: var(--vxp-mid); width: 1.55in; }
.vxp-compare td { font-size: 8.2pt; }
/* a must-ask question: a small gold dot after it (the page's lede says what the dot means) */
.vxp-must { display: inline-block; width: 4.5pt; height: 4.5pt; border-radius: 50%; background: var(--vxp-gold); margin-left: 4pt; vertical-align: 1pt; }
.vxp-tag { display: inline-block; font-size: 6.4pt; letter-spacing: .12em; text-transform: uppercase; color: #fff; background: var(--vxp-gold-deep); border-radius: 2pt; padding: 1pt 4pt; margin-top: 3pt; }
.vxp-stars { color: var(--vxp-gold); letter-spacing: 1pt; }

/* ── cards and the decision ── */
.vxp-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8pt; }
.vxp-card { border: 0.5pt solid var(--vxp-rule); padding: 7pt 8pt; break-inside: avoid; }
.vxp-card.is-chosen { border-color: var(--vxp-gold); }
.vxp-card h4 { font-family: var(--vxp-display); font-weight: 600; font-size: 11.5pt; color: var(--vxp-green); margin: 0 0 3pt; }
.vxp-card dl { margin: 0; }
.vxp-card dt { font-size: 6.6pt; letter-spacing: .12em; text-transform: uppercase; color: var(--vxp-muted); margin-top: 5pt; }
.vxp-card dd { margin: 1pt 0 0; font-size: 8.4pt; }
.vxp-decision { border-left: 2.5pt solid var(--vxp-gold); background: #FBF7EE; padding: 9pt 12pt; margin: 4pt 0 0; }
.vxp-decision .who { font-family: var(--vxp-display); font-size: 15pt; font-weight: 600; color: var(--vxp-green); }
.vxp-decision p { margin: 4pt 0 0; }

/* checkboxes and ruled lines to write on */
.vxp-checks { list-style: none; margin: 0; padding: 0; }
.vxp-checks li { position: relative; padding: 3pt 0 3pt 15pt; border-bottom: 0.5pt solid var(--vxp-rule); }
.vxp-checks li::before { content: ''; position: absolute; left: 0; top: 5pt; width: 8pt; height: 8pt; border: 0.75pt solid var(--vxp-green); border-radius: 1.5pt; }
.vxp-checks li.done::after { content: '✓'; position: absolute; left: 1.4pt; top: 4.6pt; font-size: 8pt; line-height: 1; color: var(--vxp-green); }
.vxp-lines { margin-top: 4pt; }
.vxp-lines div { height: 21pt; border-bottom: 0.5pt solid var(--vxp-rule); }

/* ── the cover ── */
.vxp-cover { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 1.5in; }
.vxp-cover .vxp-mark { width: 2.7in; height: auto; }
.vxp-cover .vxp-rule { width: 1.1in; height: 0; border-top: 0.75pt solid var(--vxp-gold); margin: 22pt auto 18pt; }
.vxp-cover .vxp-binder { font-size: 8pt; letter-spacing: .3em; text-transform: uppercase; color: var(--vxp-gold-deep); }
.vxp-cover .vxp-couple { font-family: var(--vxp-display); font-style: italic; font-weight: 500; font-size: 46pt; line-height: 1.05; color: var(--vxp-green); margin: 12pt 0 8pt; }
.vxp-cover .vxp-when { font-family: var(--vxp-display); font-size: 15pt; color: var(--vxp-mid); }
.vxp-cover .vxp-where { font-size: 9pt; letter-spacing: .08em; color: var(--vxp-muted); margin-top: 3pt; }
.vxp-contents { margin: 0.55in auto 0; width: 4.2in; text-align: left; }
.vxp-contents h3 { font-size: 7.5pt; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--vxp-green); margin: 0 0 4pt; padding-bottom: 4pt; border-bottom: 0.75pt solid var(--vxp-green); }
.vxp-contents ol { list-style: none; margin: 0; padding: 0; }
.vxp-contents li { display: flex; align-items: baseline; gap: 8pt; padding: 3.5pt 0; border-bottom: 0.5pt solid var(--vxp-rule); font-size: 9.5pt; }
/* the tab's own number, which stays the same however many tabs are printed */
.vxp-contents li::before { content: attr(data-tab); font-family: var(--vxp-display); font-weight: 600; font-size: 12pt; color: var(--vxp-gold-deep); width: 14pt; }
.vxp-contents li span { margin-left: auto; font-size: 7.5pt; color: var(--vxp-muted); }

.vxp-contents h3 { display: flex; justify-content: space-between; align-items: baseline; }
.vxp-contents h3 span { font-weight: 400; letter-spacing: .08em; text-transform: none; color: var(--vxp-muted); }

/* ── the full binder (js/vx-binder.js): a sheet's content box, measured as it fills ── */
.vxp-body { height: 100%; overflow: hidden; display: flow-root; }
.vxp-cont { font-size: 7.5pt; letter-spacing: .14em; text-transform: uppercase; color: var(--vxp-gold-deep); margin: 0 0 6pt; }
.vxp-th-sub { font-size: 6.4pt; letter-spacing: .06em; text-transform: none; color: var(--vxp-muted); font-weight: 400; }
.vxp-table tr.vxp-group td { padding: 7pt 6pt 3pt 0; border-bottom: 0.5pt solid var(--vxp-gold); background: none;
  font-size: 6.8pt; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--vxp-gold-deep); }
.vxp-paid { color: var(--vxp-green); font-weight: 500; white-space: nowrap; }
.vxp-box { display: inline-block; width: 8pt; height: 8pt; border: 0.75pt solid var(--vxp-green); border-radius: 1.5pt; vertical-align: -1pt; }
.vxp-table tr.vxp-blank td { height: 15pt; }
.vxp-pay td:last-child, .vxp-thanks td:last-child { width: 0.55in; }
.vxp-table.vxp-pay td { padding-top: 2.6pt; padding-bottom: 2.6pt; }
.vxp-run td:first-child { width: 0.7in; }
/* Tab 8 from a wedding's own plan: what is due before the day, who brings what, what to ask the venue
   (with room to write the answer in) */
.vxp-before td:first-child { width: 0.8in; }
.vxp-before td:last-child { width: 0.8in; }
.vxp-bring td { width: 50%; }
.vxp-bring .vxp-box { margin-right: 4pt; }
/* the checklist appendix and the free key dates: a box to tick, the line, its date */
.vxp-check td:first-child { width: 14pt; }
.vxp-check td:last-child { width: 1.15in; white-space: nowrap; }
.vxp-check tr.is-done td:nth-child(2) { color: var(--vxp-muted); }
.vxp-box.is-on { position: relative; background: var(--vxp-green); }
.vxp-box.is-on::after { content: '✓'; position: absolute; left: 1pt; top: -1.6pt; font-size: 7.5pt; line-height: 1; color: #fff; }
.vxp-ask td.q { width: 55%; color: var(--vxp-ink); }
.vxp-ask td { height: 20pt; }
.vxp-index td:last-child { width: 0.5in; }
.vxp-two { columns: 2; column-gap: 18pt; }
.vxp-two li { break-inside: avoid; }

/* seating: the room from above, table cards, escort cards A–Z */
.vxp-room { display: block; width: 100%; height: auto; max-height: 3.6in; margin: 2pt 0 4pt; }
.vxp-tables { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7pt; }
.vxp-tcard { border: 0.5pt solid var(--vxp-rule); border-top: 2pt solid var(--vxp-green); padding: 5pt 7pt 6pt; break-inside: avoid; }
.vxp-tcard.is-head { border-top-color: var(--vxp-gold); background: #FBF7EE; }
.vxp-tcard h4 { font-family: var(--vxp-display); font-weight: 600; font-size: 11pt; color: var(--vxp-green); margin: 0 0 2pt; }
.vxp-tcard ol { list-style: none; margin: 0; padding: 0; font-size: 7.8pt; line-height: 1.5; }
.vxp-tcard li b { display: inline-block; width: 9pt; font-weight: 500; color: var(--vxp-gold-deep); }
.vxp-tcard .muted { color: var(--vxp-muted); }
.vxp-escort { columns: 3; column-gap: 14pt; font-size: 8pt; }
.vxp-escort div { display: flex; justify-content: space-between; gap: 6pt; padding: 1.6pt 0; border-bottom: 0.5pt solid var(--vxp-rule); break-inside: avoid; }
.vxp-escort div span:last-child { color: var(--vxp-green); }
/* Meals for the caterer (2026-10-28): each seat's meal and note, a table's count, and the caterer's page. */
.vxp-tcard .vxp-tmeals { font-size: 7pt; color: var(--vxp-muted); margin: 0 0 2pt; line-height: 1.35; }
.vxp-tcard .vxp-meal { color: var(--vxp-muted); font-size: 7pt; }
.vxp-tcard .vxp-diet { color: var(--vxp-gold-deep); font-size: 7pt; }
.vxp-caterer-all { font-size: 9pt; margin: 0 0 6pt; }
.vxp-caterer { font-size: 8.4pt; }
.vxp-caterer > div { display: flex; justify-content: space-between; gap: 10pt; padding: 2pt 0; border-bottom: 0.5pt solid var(--vxp-rule); break-inside: avoid; }
.vxp-caterer > div > span:first-child { font-weight: 500; color: var(--vxp-green); }
.vxp-caterer > div > span:last-child { text-align: right; }
.vxp-caterer .muted { color: var(--vxp-muted); font-weight: 400; }

/* The latest numbers for one vendor (2026-10-29, js/vx-binder.js, vendor): three figures across, then the numbers. */
.vxp-figures.vxp-figures-3 { grid-template-columns: repeat(3, 1fr); }
.vxp-vendor td.q { width: 1.7in; color: var(--vxp-mid); }
.vxp-vendor-ask { font-size: 9.5pt; line-height: 1.5; color: var(--vxp-ink); margin: 0; max-width: 5.6in; }

/* ── place cards and table numbers: sheets to cut out and fold (js/vx-binder.js, cards) ──
   No head, foot or punch holes. The cutting area, 7 × 8.35 in, sits in the middle of the sheet: a line of what to do,
   then the cards. Solid lines are cut, dashed ones folded; the face that reads from the front is the lower half, so a
   card stands with its top at the fold. On paper the sheet is trimmed to the area and printed at full size (below). */
.vxp-cut { padding: 0; }
.vxp-cut-area { position: absolute; left: 0.75in; top: 1.31in; width: 7in; height: 8.35in; }
.vxp-cut-note { display: flex; justify-content: space-between; gap: 12pt; height: 0.35in; margin: 0;
  font-size: 7pt; letter-spacing: .04em; color: var(--vxp-muted); }
.vxp-cut-note b { font-weight: 500; color: var(--vxp-green); letter-spacing: .14em; text-transform: uppercase; }
.vxp-place-grid { display: grid; grid-template-columns: 3.5in 3.5in; grid-auto-rows: 4in; }
.vxp-place, .vxp-tnum { position: relative; box-sizing: border-box; border: 0.5pt solid #B9B0A0; }
.vxp-place { margin: 0 -0.5pt -0.5pt 0; }
.vxp-place::before, .vxp-tnum::before { content: ''; position: absolute; left: 0; right: 0; top: 50%; border-top: 0.5pt dashed #C9C1B2; }
.vxp-place-face { position: absolute; left: 0.18in; right: 0.18in; top: 2in; height: 2in; box-sizing: border-box; padding-bottom: 0.08in;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.vxp-place-name { width: 100%; margin: 0; overflow: hidden; white-space: nowrap; font-family: var(--vxp-display); font-weight: 500;
  font-size: 22pt; line-height: 1.12; color: var(--vxp-green); }
.vxp-place-name.is-two { white-space: normal; }
.vxp-place-rule { display: block; width: 0.55in; border-top: 0.75pt solid var(--vxp-gold); margin: 6pt auto 5pt; }
.vxp-place-at { margin: 0; font-size: 7.5pt; letter-spacing: .16em; text-transform: uppercase; color: var(--vxp-gold-deep); }
.vxp-tnum { width: 7in; height: 8in; }
.vxp-tnum-face { position: absolute; left: 0.3in; right: 0.3in; height: 4in; box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.vxp-tnum-face.is-back { top: 0; transform: rotate(180deg); }
.vxp-tnum-face.is-front { top: 4in; }
.vxp-tnum-k { margin: 0 0 2pt; font-size: 10pt; letter-spacing: .34em; text-transform: uppercase; color: var(--vxp-gold-deep); }
.vxp-tnum-n { width: 100%; margin: 0; font-family: var(--vxp-display); font-weight: 500; font-size: 132pt; line-height: 1; color: var(--vxp-green); }
.vxp-tnum-n.is-name { overflow: hidden; white-space: nowrap; font-size: 54pt; line-height: 1.1; }
.vxp-tnum-n.is-name.is-two { white-space: normal; }
.vxp-tnum-rule { display: block; width: 1.1in; border-top: 1pt solid var(--vxp-gold); margin: 12pt auto 0; }

/* ── on screen: sheets on a table, scaled to fit a phone (the punch holes are the sheet's own, .vxp-holes) ── */
@media screen {
  body.vxp-screen { margin: 0; background: #E7E2D9; }
  .vxp-doc .vxp-page { zoom: var(--vxp-zoom, 1); margin: 0 auto 18px; box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 8px 24px rgba(0,0,0,.08); }
}
@media print {
  .vxp-noprint { display: none !important; }
  .vxp-doc .vxp-page { zoom: 1; margin: 0; box-shadow: none; }
  /* the app's tab scales its preview with a transform (js/vx-binder-tab.js); paper is full size */
  .vxp-doc { transform: none !important; width: auto !important; }
}

/* VxBinder.print, from a page with other things on it: the pages are moved into a host at the top
   of <body> and nothing else prints. On screen the host stays out of sight while the print runs.
   By id, because the app keeps an unconditional print rule of its own (verdeaux-local.html) that
   hides every child of <body> but #print-area; an id outranks it. Visibility is set too, so no
   page-wide visibility rule can blank the pages (one did, until 2026-10-23). */
@media screen { #vxp-print-host { display: none; } }
@media print {
  html.vxp-printing, html.vxp-printing body { margin: 0 !important; padding: 0 !important; background: #fff !important; }
  html.vxp-printing body > :not(#vxp-print-host) { display: none !important; }
  html.vxp-printing body > #vxp-print-host { display: block !important; }
  html.vxp-printing #vxp-print-host, html.vxp-printing #vxp-print-host * { visibility: visible !important; }
  /* ⛑ EACH SHEET FITS THE PAGE, WHATEVER MARGINS THE BROWSER KEEPS — 2026-10-26 (js/vx-binder.js, print).
     The paper's margins are ours: 0.5 in at the top, the foot and the right, 0.1 in at the left. The sheet
     prints at 90%, 7.65 × 9.88 in, inside the 7.9 × 10 in they leave, its words 1 in from the left edge as
     before; a browser that keeps half an inch of its own instead still has room for it, so no sheet spills
     onto a page of its own. The rings are placed for the paper: where the punch lands (3/8 in from the left
     edge; 1.25, 5.5 and 9.75 in down), 5/16 in across, once the sheet is scaled and set in by the margins.
     Safari, and every browser on an iPhone or iPad (html.vxp-print-apple), keeps margins of its own whatever
     a page asks: Stephen's iPhone left 7.4 × 9.0 in of the page (about 0.55 in at the top and sides, 1.4 in at
     the foot, where it prints the address, the date and the page number). There the sheet prints at 80%,
     6.8 × 8.8 in, inside them, set in 0.2 in so its words start at least 1 in from the edge; Safari's margins,
     not ours, decide where it lands, so its rings stay where the sheet draws them. */
  html.vxp-printing .vxp-doc { --vxp-print-zoom: 0.9; --vxp-print-top: 0.5in; --vxp-print-left: 0.1in; }
  html.vxp-printing.vxp-print-apple .vxp-doc { --vxp-print-zoom: 0.8; padding-left: 0.2in; }
  html.vxp-printing .vxp-doc .vxp-page { zoom: var(--vxp-print-zoom); }
  html.vxp-printing:not(.vxp-print-apple) .vxp-holes i { width: calc(0.3125in / var(--vxp-print-zoom)); height: calc(0.3125in / var(--vxp-print-zoom));
    left: calc((0.375in - 0.15625in - var(--vxp-print-left)) / var(--vxp-print-zoom)); }
  html.vxp-printing:not(.vxp-print-apple) .vxp-holes i:nth-child(1) { top: calc((1.25in - 0.15625in - var(--vxp-print-top)) / var(--vxp-print-zoom)); }
  html.vxp-printing:not(.vxp-print-apple) .vxp-holes i:nth-child(2) { top: calc((5.5in - 0.15625in - var(--vxp-print-top)) / var(--vxp-print-zoom)); }
  html.vxp-printing:not(.vxp-print-apple) .vxp-holes i:nth-child(3) { top: calc((9.75in - 0.15625in - var(--vxp-print-top)) / var(--vxp-print-zoom)); }
}
/* Place cards and table numbers print at full size, so a card measures what it says: the sheet is trimmed to its cutting
   area, 7 × 8.35 in, which sits inside the 7.9 × 10 in our margins leave and the 7.4 × 9.0 in an iPhone's leave, centred
   across the page. Their doc carries none of Safari's set-in (it is for the punch, and these have no holes). */
@media print {
  html.vxp-printing .vxp-doc .vxp-page.vxp-cut { zoom: 1; width: 7in; height: 8.35in; margin: 0 auto; }
  html.vxp-printing .vxp-doc .vxp-cut .vxp-cut-area { left: 0; top: 0; }
  html.vxp-printing.vxp-print-apple .vxp-doc.vxp-cuts { padding-left: 0; }
}
