/* The resume paper. Used by the live preview and by print (Save as PDF), so the PDF is exactly the
   preview. Look options arrive as classes on .rb-page (ClapTpl.pageClass) and CSS variables
   (ClapTpl.vars): --rb-font, --rb-size, --rb-lh, --rb-accent, --rb-margin, --rb-gap, --rb-w, --rb-h. */

.rb-page {
  box-sizing: border-box;
  width: var(--rb-w, 8.5in);
  height: var(--rb-h, 11in);
  padding: var(--rb-margin, .6in);
  background: #fff;
  color: #1f2937;
  font-family: var(--rb-font);
  font-size: var(--rb-size, 10.5pt);
  line-height: var(--rb-lh, 1.25);
  overflow: hidden;
  position: relative;
  text-align: left;
  -webkit-font-smoothing: antialiased;
  font-kerning: normal;
  --rb-ink: #111827;
  --rb-soft: #4b5563;
}
.rb-page * { box-sizing: border-box; }
.rb-page a { color: inherit; text-decoration: none; }
.rb-page.ul-links a { text-decoration: underline; text-underline-offset: 2px; }
.rb-flow { width: 100%; }
.rb-flow > :first-child { margin-top: 0 !important; }

/* header */
.rb-head { margin-bottom: calc(.35em * var(--rb-gap, 1)); }
.ha-center .rb-head { text-align: center; }
.rb-name { font-family: inherit; font-size: 2em; line-height: 1.1; font-weight: 700; letter-spacing: -.01em; margin: 0 0 .1em; color: var(--rb-ink); }
.ns-m .rb-name { font-size: 1.7em; }
.ns-xl .rb-name { font-size: 2.45em; }
.acc-name .rb-name { color: var(--rb-accent); }
.rb-headline { font-size: 1.1em; font-weight: 500; color: var(--rb-soft); margin: 0 0 .2em; }
.acc-name .rb-headline, .acc-h .rb-headline { color: var(--rb-accent); }
.rb-contact { font-size: .92em; color: var(--rb-soft); }
.rb-sep { color: #9ca3af; }

/* section headings: seven styles */
.rb-h { font-family: inherit; font-size: 1.04em; font-weight: 700; color: var(--rb-ink); margin: calc(.95em * var(--rb-gap, 1)) 0 calc(.35em * var(--rb-gap, 1)); break-after: avoid; line-height: 1.2; }
.acc-h .rb-h { color: var(--rb-accent); }
.hc-upper .rb-h { text-transform: uppercase; letter-spacing: .07em; }
.hc-small .rb-h { font-variant: small-caps; letter-spacing: .05em; font-size: 1.14em; }
.hs-line .rb-h { padding-bottom: .16em; border-bottom: 1.1px solid #6b7280; }
.hs-line.acc-line .rb-h { border-bottom-color: var(--rb-accent); }
.hs-topline .rb-h { padding-top: .3em; border-top: 1.1px solid #6b7280; }
.hs-topline.acc-line .rb-h { border-top-color: var(--rb-accent); }
.hs-double .rb-h { padding: .22em 0; border-top: 1px solid #6b7280; border-bottom: 1px solid #6b7280; text-align: center; }
.hs-double.acc-line .rb-h { border-color: var(--rb-accent); }
.hs-box .rb-h { padding: .22em .45em; background: #f1f5f9; border-radius: 2px; }
.hs-box.acc-line .rb-h { background: color-mix(in srgb, var(--rb-accent) 12%, #fff); }
.hs-thick .rb-h span { display: inline-block; padding-bottom: .12em; border-bottom: .2em solid #6b7280; }
.hs-thick.acc-line .rb-h span { border-bottom-color: var(--rb-accent); }
.hs-bar .rb-h { display: flex; align-items: center; gap: .5em; }
.hs-bar .rb-h::before { content: ''; width: .85em; height: .24em; border-radius: 2px; background: #6b7280; flex: none; }
.hs-bar.acc-line .rb-h::before { background: var(--rb-accent); }
.ha-center.hs-simple .rb-h, .ha-center.hs-line .rb-h, .ha-center.hs-topline .rb-h { text-align: center; }

/* body */
.rb-p { margin: 0 0 calc(.25em * var(--rb-gap, 1)); }
.rb-entry { margin-top: calc(.55em * var(--rb-gap, 1)); }
.rb-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1.2em; }
.rb-l { min-width: 0; }
.rb-title { font-weight: 700; color: var(--rb-ink); }
.acc-titles .rb-entry .rb-title { color: var(--rb-accent); }
.rb-meta, .rb-org { color: #374151; }
.rb-date { white-space: nowrap; flex: none; color: #374151; font-variant-numeric: tabular-nums; }
.acc-dates .rb-date { color: var(--rb-accent); }
.rb-dline { justify-content: flex-start; }
.rb-dline .rb-date { font-size: .95em; color: var(--rb-soft); }
.rb-sub { color: #374151; }
.rb-sub .rb-org { font-style: italic; }
.rb-ul { margin: 0; padding: 0 0 0 1.15em; }
.rb-ul li { margin: .12em 0 0; padding-left: .1em; }
.rb-ul li::marker { color: #4b5563; }
.bs-dash .rb-ul li { list-style: none; position: relative; }
.bs-dash .rb-ul li::before { content: '\2013'; position: absolute; left: -1em; color: #4b5563; }
.bs-square .rb-ul li { list-style-type: square; }
.bs-circle .rb-ul li { list-style-type: circle; }
.rb-group { margin: 0 0 .2em; }
.rb-line { margin: 0 0 calc(.25em * var(--rb-gap, 1)); }
.rb-detail { color: #374151; margin: .08em 0 0; }
.rb-foot { position: absolute; left: var(--rb-margin); right: var(--rb-margin); bottom: calc(var(--rb-margin) * .45); font-size: .8em; color: #6b7280; display: flex; justify-content: space-between; }

/* ---------- world-class wave 1 (2026-10-03): photo, color band, side column ---------- */
.rb-photo { display: block; width: 0.95in; height: 0.95in; object-fit: cover; flex: none; }
.rb-photo.ph-round { border-radius: 50%; }
.rb-photo.ph-square { border-radius: 3px; }
.rb-head.has-photo { display: flex; align-items: center; gap: 0.22in; }
.rb-head.has-photo .rb-head-t { min-width: 0; flex: 1; }
.ha-center .rb-head.has-photo { justify-content: center; text-align: left; }
/* Bold header: the name on a band of the accent color, to the page edges. */
.band .rb-head { background: var(--rb-accent); color: #fff; margin: calc(-1 * var(--rb-margin)) calc(-1 * var(--rb-margin)) calc(.6em * var(--rb-gap, 1)); padding: calc(var(--rb-margin) * .8) var(--rb-margin) calc(var(--rb-margin) * .6); }
.band .rb-head .rb-name, .band .rb-head .rb-headline, .band .rb-head .rb-contact, .band .rb-head .rb-sep { color: #fff; }
.band.col2 .rb-head { margin: calc(-1 * var(--rb-margin)) calc(-1 * var(--rb-margin)) calc(.6em * var(--rb-gap, 1)) 0; padding-left: .2in; }
/* Side column: main first in the file (the order a parser reads), shown on the right. */
.rb-cols2 { display: grid; grid-template-columns: 31% 1fr; grid-template-areas: 'side main'; column-gap: .28in; height: 100%; }
.rb-cols2 > .rb-flow { grid-area: main; min-width: 0; }
.rb-cols2 > .rb-side { grid-area: side; min-width: 0; overflow: hidden; font-size: .94em; }
.rb-side > :first-child { margin-top: 0 !important; }
.rb-side .rb-h:first-child { margin-top: 0; }
.rb-side .rb-row { flex-wrap: wrap; gap: 0 .5em; }
.rb-side .rb-date { white-space: normal; }
.rb-side .rb-group { margin-bottom: .45em; }
.rb-scontact { overflow-wrap: anywhere; color: #374151; }
.rb-scontact div { margin: 0 0 .25em; }
.rb-sphoto { margin: 0 0 .9em; }
.rb-sphoto .rb-photo { width: 1.25in; height: 1.25in; }
.sideshade .rb-cols2 > .rb-side { background: color-mix(in srgb, var(--rb-accent) 9%, #fff); margin: calc(-1 * var(--rb-margin)) 0 calc(-1 * var(--rb-margin)) calc(-1 * var(--rb-margin)); padding: var(--rb-margin) .2in var(--rb-margin) var(--rb-margin); }

/* ---------- print: only the pages, each on its own sheet, no browser header/footer ---------- */
@media print {
  html, body { background: #fff; margin: 0; }
  body > *:not(#rb-print) { display: none !important; }
  #rb-print { display: block !important; }
  #rb-print .rb-page { box-shadow: none !important; margin: 0 !important; break-after: page; page-break-after: always; }
  #rb-print .rb-page:last-child { break-after: auto; page-break-after: auto; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
