/* ===== CV page (A4 at 96dpi = 794 x 1123 px) ===== */
.cv {
  --ink: #1e2328;
  --muted: #5d6670;
  --line: #d9dde2;
  width: 210mm;
  min-height: 297mm;
  box-sizing: border-box;
  background: #fff;
  color: var(--ink);
  font: 9.6pt/1.45 "Source Sans 3", "Segoe UI", Arial, sans-serif;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  overflow-wrap: anywhere;
}
.cv *, .cv *::before, .cv *::after { box-sizing: border-box; }
.cv h1, .cv h2, .cv h3, .cv p, .cv ul, .cv dl, .cv dd { margin: 0; padding: 0; }
.cv ul { list-style: none; }
.cv .muted { color: var(--muted); }
.cv .dot { color: var(--muted); padding: 0 .15em; }
.cv .nw { white-space: nowrap; }
.cv .ic { width: 1em; height: 1em; fill: currentColor; flex: none; }
.cv .ct { display: inline-flex; align-items: center; gap: .45em; }
.cv .sec { margin-top: 5.5mm; }
.cv h2 { font-size: 8.4pt; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--accent); margin-bottom: 2.5mm; }
.cv h3 { font-size: 10.2pt; font-weight: 700; }
.cv .org { color: var(--muted); }
.cv .when { color: var(--muted); white-space: nowrap; font-size: 8.8pt; font-variant-numeric: tabular-nums; }
.cv .summary { font-size: 10pt; }
.cv .job { break-inside: avoid; page-break-inside: avoid; }
.cv .job + .job { margin-top: 4mm; }
.cv .job-head { display: flex; justify-content: space-between; gap: 4mm; align-items: baseline; }
.cv .job ul { margin-top: 1.4mm; }
.cv .job li { position: relative; padding-left: 4mm; margin-top: .6mm; }
.cv .job li::before { content: ""; position: absolute; left: .6mm; top: .62em; width: 1.4mm; height: 1.4mm; border-radius: 50%; background: var(--accent); }
.cv .edu { display: flex; justify-content: space-between; gap: 4mm; break-inside: avoid; }
.cv .edu + .edu { margin-top: 2mm; }
.cv .chips { display: flex; flex-wrap: wrap; gap: 1.6mm; }
.cv .chips li { padding: .7mm 2.4mm; border-radius: 99px; background: color-mix(in srgb, var(--accent) 10%, #fff); color: var(--accent); font-weight: 600; font-size: 8.8pt; }
.cv .plain li + li { margin-top: 1mm; }
.cv .extras div { display: flex; gap: 2mm; }
.cv .extras div + div { margin-top: 1mm; }
.cv .extras dt { font-weight: 700; }
.cv .extras dt::after { content: ":"; }
.cv .refs { display: grid; grid-template-columns: repeat(auto-fill, minmax(52mm, 1fr)); gap: 3mm 6mm; }
.cv .ref { break-inside: avoid; font-size: 9pt; }

/* ===== Classic ===== */
.t-classic { padding: 16mm 18mm; }
.t-classic .hd { text-align: center; padding-bottom: 5mm; border-bottom: 1.4pt solid var(--accent); }
.t-classic h1 { font: 600 25pt/1.1 "Source Serif 4", Georgia, serif; color: var(--accent); letter-spacing: .01em; }
.t-classic .role-title { margin-top: 1.5mm; font: italic 11.5pt "Source Serif 4", Georgia, serif; color: var(--muted); }
.t-classic .contacts { margin-top: 3mm; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.5mm; }
.t-classic h2 { display: flex; align-items: center; gap: 3mm; }
.t-classic h2::after { content: ""; flex: 1; height: .6pt; background: var(--line); }
.t-classic .summary { font-family: "Source Serif 4", Georgia, serif; font-size: 10.4pt; }

/* ===== Modern ===== */
.t-modern { display: grid; grid-template-columns: 64mm 1fr; background: linear-gradient(90deg, var(--accent) 64mm, #fff 64mm); }
.t-modern .side { color: #fff; padding: 14mm 7mm 12mm 9mm; font-size: 9pt; }
.t-modern .side h2 { color: #fff; opacity: .75; border-bottom: .6pt solid rgba(255, 255, 255, .35); padding-bottom: 1.4mm; }
.t-modern .side .muted, .t-modern .side .org { color: rgba(255, 255, 255, .78); }
.t-modern .mono { width: 22mm; height: 22mm; border-radius: 50%; border: 1.2pt solid rgba(255, 255, 255, .7); display: grid; place-items: center; font: 600 15pt "Inter", sans-serif; letter-spacing: .04em; }
.t-modern .contacts { display: grid; gap: 1.8mm; }
.t-modern .refs { grid-template-columns: 1fr; }
.t-modern .main { padding: 14mm 14mm 12mm 11mm; }
.t-modern h1 { font: 700 24pt/1.05 "Inter", sans-serif; letter-spacing: -.02em; }
.t-modern .role-title { margin-top: 2mm; font-size: 11.5pt; color: var(--accent); font-weight: 600; }
.t-modern .hd { padding-bottom: 1mm; }
.t-modern .main .sec:first-of-type { margin-top: 6mm; }

/* ===== Minimal ===== */
.t-minimal { padding: 18mm 18mm 16mm; font-family: "Work Sans", "Source Sans 3", sans-serif; font-size: 9.2pt; }
.t-minimal h1 { font: 300 28pt/1.05 "Work Sans", sans-serif; letter-spacing: -.01em; }
.t-minimal .role-title { margin-top: 2mm; color: var(--accent); font-weight: 500; font-size: 11pt; }
.t-minimal .contacts { margin-top: 4mm; display: flex; flex-wrap: wrap; gap: 1mm 6mm; color: var(--muted); }
.t-minimal .hd { padding-bottom: 7mm; border-bottom: .6pt solid var(--line); }
/* label column via absolute heading (grid rows fragment badly when printing) */
.t-minimal .sec.row { position: relative; padding-left: 40mm; margin-top: 6.5mm; }
.t-minimal .sec.row h2 { position: absolute; left: 0; top: .5mm; width: 34mm; font-weight: 600; font-size: 7.8pt; margin: 0; }
.t-minimal .job li::before { background: none; border: .9pt solid var(--accent); }
.t-minimal h3 { font-weight: 600; }

/* ===== Bold ===== */
.t-bold { font-family: "Inter", sans-serif; font-size: 9pt; }
.t-bold .hd { background: var(--accent); color: #fff; padding: 13mm 16mm 10mm; display: flex; justify-content: space-between; align-items: flex-end; gap: 8mm; }
.t-bold h1 { font: 800 27pt/1 "Inter", sans-serif; letter-spacing: -.025em; }
.t-bold .role-title { margin-top: 2.5mm; font-size: 11pt; font-weight: 500; opacity: .85; }
.t-bold .hd .contacts { display: grid; gap: 1.3mm; font-size: 8.6pt; text-align: right; justify-items: end; }
.t-bold .body { display: grid; grid-template-columns: 1fr 58mm; gap: 9mm; padding: 4mm 16mm 14mm; }
.t-bold .side .sec .when { font-size: 8.4pt; }
.t-bold .side .edu { flex-direction: column; gap: .5mm; }
.t-bold .refs { grid-template-columns: 1fr; }
.t-bold h2 { color: var(--ink); border-left: 1mm solid var(--accent); padding-left: 2mm; }

/* ===== Executive ===== */
.t-executive { padding: 15mm 17mm; }
.t-executive .hd { display: flex; justify-content: space-between; align-items: flex-end; gap: 8mm; padding-bottom: 4mm; border-bottom: 2pt solid var(--accent); box-shadow: 0 1.6mm 0 -1.1mm #fff, 0 1.9mm 0 -1.1mm var(--accent); }
.t-executive h1 { font: 600 26pt/1.05 "Source Serif 4", Georgia, serif; color: var(--ink); }
.t-executive .role-title { margin-top: 1.5mm; font: 600 10.5pt "Source Sans 3", sans-serif; color: var(--accent); letter-spacing: .06em; }
.t-executive .hd .contacts { display: grid; gap: 1mm; justify-items: end; font-size: 8.8pt; color: var(--muted); }
.t-executive .hd .contacts .ic { color: var(--accent); }
.t-executive .sec { margin-top: 6mm; }
.t-executive h2 { font: 600 12pt "Source Serif 4", Georgia, serif; letter-spacing: 0; text-transform: none; color: var(--accent); padding-bottom: 1.2mm; border-bottom: .6pt solid var(--line); }
.t-executive .cols ul { column-count: 3; column-gap: 6mm; }
.t-executive .cols li { break-inside: avoid; padding-left: 3mm; position: relative; }
.t-executive .cols li + li { margin-top: 0; }
.t-executive .cols li::before { content: ""; position: absolute; left: 0; top: .6em; width: 1.2mm; height: 1.2mm; background: var(--accent); }

/* ===== Timeline ===== */
.t-timeline { padding: 8mm 16mm 14mm; border-top: 5mm solid var(--accent); font-family: "Inter", sans-serif; font-size: 9pt; }
.t-timeline .hd { padding: 2mm 0 5mm; border-bottom: .6pt solid var(--line); }
.t-timeline h1 { font: 700 24pt/1.05 "Inter", sans-serif; letter-spacing: -.02em; }
.t-timeline .role-title { margin-top: 1.5mm; color: var(--accent); font-weight: 600; font-size: 11pt; }
.t-timeline .hd .contacts { margin-top: 3.5mm; display: flex; flex-wrap: wrap; gap: 1mm 6mm; color: var(--muted); font-size: 8.6pt; }
.t-timeline .job { position: relative; padding-left: 34mm; }
.t-timeline .job + .job { margin-top: 0; padding-top: 4mm; }
.t-timeline .job-head { display: block; }
.t-timeline .job .when { position: absolute; left: 0; top: .15em; width: 27mm; white-space: normal; font-weight: 600; color: var(--accent); }
.t-timeline .job + .job .when { top: calc(4mm + .15em); }
.t-timeline .job::before { content: ""; position: absolute; left: 29.6mm; top: 0; bottom: -0.1mm; width: .8pt; background: var(--line); }
.t-timeline .job:first-child::before { top: .55em; }
.t-timeline .job::after { content: ""; position: absolute; left: 28.6mm; top: .4em; width: 2.6mm; height: 2.6mm; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 .9mm var(--accent); }
.t-timeline .job + .job::after { top: calc(4mm + .4em); }

/* ===== Compact ===== */
.t-compact { padding: 11mm 13mm; font-size: 8.9pt; line-height: 1.38; }
.t-compact .hd { display: flex; justify-content: space-between; align-items: flex-end; gap: 6mm; padding-bottom: 3mm; border-bottom: 1.2pt solid var(--accent); }
.t-compact h1 { font: 700 20pt/1.05 "Source Sans 3", sans-serif; color: var(--accent); }
.t-compact .role-title { font-weight: 600; font-size: 10pt; margin-top: .8mm; }
.t-compact .hd .contacts { display: grid; gap: .4mm; justify-items: end; font-size: 8.4pt; color: var(--muted); }
.t-compact .sec { margin-top: 4mm; }
.t-compact h2 { margin-bottom: 1.6mm; }
.t-compact .job + .job { margin-top: 2.6mm; }
.t-compact .job ul { margin-top: .6mm; }
.t-compact .job li { margin-top: .2mm; }
.t-compact .split { column-count: 2; column-gap: 8mm; }
.t-compact .split .sec { break-inside: avoid; }
.t-compact .split .sec:first-child { margin-top: 4mm; }

/* ===== Elegant ===== */
.t-elegant { padding: 17mm 19mm; }
.t-elegant .hd { text-align: center; }
.t-elegant h1 { font: 500 31pt/1.05 "Cormorant Garamond", "Source Serif 4", serif; letter-spacing: .04em; }
.t-elegant .role-title { margin-top: 1.5mm; font: italic 500 13pt "Cormorant Garamond", serif; color: var(--accent); }
.t-elegant .rule { width: 22mm; height: 1pt; background: var(--accent); margin: 4mm auto 3mm; }
.t-elegant .hd .contacts { display: flex; flex-wrap: wrap; justify-content: center; gap: 1mm 6mm; color: var(--muted); font-size: 8.8pt; }
.t-elegant .sec { margin-top: 6.5mm; }
.t-elegant h2 { display: flex; align-items: center; gap: 4mm; font: 600 13pt "Cormorant Garamond", serif; font-variant: small-caps; letter-spacing: .1em; text-transform: lowercase; color: var(--accent); }
.t-elegant h2::before, .t-elegant h2::after { content: ""; flex: 1; height: .5pt; background: var(--line); }
.t-elegant h3 { font-weight: 600; }
.t-elegant .summary { text-align: center; font: italic 11.5pt/1.45 "Cormorant Garamond", serif; }
.t-elegant .job li::before { width: 1mm; height: 1mm; border-radius: 0; transform: rotate(45deg); }

/* ===== Fresh ===== */
.t-fresh { padding: 12mm 15mm 14mm; font-family: "Nunito", "Source Sans 3", sans-serif; font-size: 9.3pt; }
.t-fresh .hd { padding: 8mm 9mm; border-radius: 5mm; background: color-mix(in srgb, var(--accent) 9%, #fff); }
.t-fresh h1 { font: 800 25pt/1.05 "Nunito", sans-serif; color: var(--accent); }
.t-fresh .role-title { margin-top: 1mm; font-weight: 700; font-size: 11.5pt; }
.t-fresh .hd .contacts { margin-top: 4mm; display: flex; flex-wrap: wrap; gap: 2mm; }
.t-fresh .hd .ct { padding: 1mm 3mm; border-radius: 99px; background: #fff; font-size: 8.6pt; }
.t-fresh .hd .ic { color: var(--accent); }
.t-fresh h2 { display: inline-block; padding: 1mm 4mm; border-radius: 99px; background: var(--accent); color: #fff; letter-spacing: .02em; text-transform: none; font-size: 9.5pt; font-weight: 800; }
.t-fresh h3 { font-weight: 800; }
.t-fresh .chips li { font-weight: 700; }

/* ===== Studio (right sidebar) ===== */
.t-studio { display: grid; grid-template-columns: 1fr 62mm; background: linear-gradient(90deg, #fff calc(100% - 62mm), color-mix(in srgb, var(--accent) 8%, #fff) calc(100% - 62mm)); font-family: "Inter", sans-serif; font-size: 9pt; }
.t-studio .main { padding: 15mm 10mm 12mm 15mm; }
.t-studio .side { padding: 15mm 9mm 12mm 8mm; font-size: 8.7pt; }
.t-studio h1 { font: 800 25pt/1.02 "Inter", sans-serif; letter-spacing: -.03em; color: var(--accent); }
.t-studio .role-title { margin-top: 2mm; font-weight: 600; font-size: 11pt; color: var(--muted); }
.t-studio .main .sec:first-of-type { margin-top: 7mm; }
.t-studio .side .sec:first-child { margin-top: 0; }
.t-studio .side .contacts { display: grid; gap: 1.8mm; }
.t-studio .side .ic { color: var(--accent); }
.t-studio .side .chips li { background: #fff; }
.t-studio .refs { grid-template-columns: 1fr; }
.t-studio h2 { color: var(--ink); }
.t-studio h2::after { content: ""; display: block; width: 8mm; height: 1.2pt; margin-top: 1.4mm; background: var(--accent); }

/* ===== Ribbon ===== */
.t-ribbon { padding: 14mm 15mm; font-family: "Work Sans", sans-serif; font-size: 9pt; }
.t-ribbon .hd { display: flex; justify-content: space-between; align-items: center; gap: 8mm; padding-bottom: 4mm; }
.t-ribbon h1 { font: 600 25pt/1.05 "Work Sans", sans-serif; letter-spacing: -.01em; }
.t-ribbon .role-title { margin-top: 1.5mm; color: var(--accent); font-weight: 500; font-size: 11pt; }
.t-ribbon .hd .contacts { display: grid; gap: 1mm; font-size: 8.6pt; color: var(--muted); }
.t-ribbon .hd .ic { color: var(--accent); }
.t-ribbon h2 { padding: 1.4mm 3mm; background: color-mix(in srgb, var(--accent) 11%, #fff); border-left: 1.4mm solid var(--accent); color: var(--accent); margin-bottom: 3mm; }
.t-ribbon .sec > *:not(h2) { padding-left: 4.4mm; }
.t-ribbon h3 { font-weight: 600; }

/* ===== First Job ===== */
.t-starter { padding: 14mm 16mm; font-family: "Nunito", "Source Sans 3", sans-serif; font-size: 9.4pt; }
.t-starter .hd { display: flex; align-items: center; gap: 7mm; padding-bottom: 6mm; border-bottom: 1pt dashed color-mix(in srgb, var(--accent) 45%, #fff); }
.t-starter .mono { flex: none; width: 24mm; height: 24mm; border-radius: 6mm; display: grid; place-items: center; background: var(--accent); color: #fff; font: 800 17pt "Nunito", sans-serif; letter-spacing: .03em; }
.t-starter h1 { font: 800 24pt/1.05 "Nunito", sans-serif; }
.t-starter .role-title { margin-top: 1mm; color: var(--accent); font-weight: 700; font-size: 11pt; }
.t-starter .hd .contacts { margin-top: 2.5mm; display: flex; flex-wrap: wrap; gap: 1mm 5mm; font-size: 8.6pt; color: var(--muted); }
.t-starter .hd .ic { color: var(--accent); }
.t-starter h2 { color: var(--accent); letter-spacing: .08em; }
.t-starter h3 { font-weight: 800; }
.t-starter .edu strong { font-weight: 800; }

/* ===== Driver ===== */
.t-driver { font-family: "Barlow", "Source Sans 3", sans-serif; font-size: 9.6pt; }
.t-driver .hd { display: flex; justify-content: space-between; align-items: flex-end; gap: 8mm; padding: 13mm 15mm 8mm; background: var(--accent); color: #fff; }
.t-driver h1 { font: 700 28pt/1 "Barlow Condensed", "Barlow", sans-serif; letter-spacing: .01em; text-transform: uppercase; }
.t-driver .role-title { margin-top: 1.5mm; font-weight: 600; font-size: 12pt; opacity: .9; }
.t-driver .hd .contacts { display: grid; gap: 1.2mm; justify-items: end; font-size: 9pt; }
.t-driver .road { height: 4mm; background: #2b2f33 linear-gradient(90deg, #f2c230 0 9mm, transparent 9mm 15mm) 0 50% / 15mm 0.9mm repeat-x; }
.t-driver .body { padding: 2mm 15mm 14mm; }
.t-driver h2 { font: 700 11pt "Barlow Condensed", sans-serif; letter-spacing: .08em; color: var(--accent); }
.t-driver h3 { font-weight: 700; font-size: 10.5pt; }
.t-driver .fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3mm; }
.t-driver .fact { display: grid; gap: .6mm; padding: 2.6mm 3.2mm; border-radius: 2mm; border: .8pt solid color-mix(in srgb, var(--accent) 35%, #fff); background: color-mix(in srgb, var(--accent) 5%, #fff); break-inside: avoid; }
.t-driver .fact span { font-size: 8pt; color: var(--muted); }
.t-driver .fact strong { font-size: 10.5pt; color: var(--ink); }
.t-driver .job li::before { border-radius: 0; width: 1.6mm; height: 1.6mm; }

/* ===== Trade (artisans) ===== */
.t-trade { padding: 13mm 15mm 14mm; font-family: "Barlow", "Source Sans 3", sans-serif; font-size: 9.6pt; }
.t-trade .hd { display: flex; justify-content: space-between; align-items: center; gap: 8mm; padding: 0 0 5mm 6mm; border-left: 2.5mm solid var(--accent); border-bottom: 1.4pt solid var(--ink); }
.t-trade h1 { font: 700 30pt/.95 "Barlow Condensed", "Barlow", sans-serif; text-transform: uppercase; letter-spacing: .01em; }
.t-trade .role-title { margin-top: 1.8mm; font: 600 12pt "Barlow", sans-serif; color: var(--accent); }
.t-trade .hd .contacts { display: grid; gap: 1.2mm; justify-items: end; font-size: 9pt; color: var(--muted); }
.t-trade .hd .ic { color: var(--accent); }
.t-trade .sec { margin-top: 6mm; }
.t-trade h2 { display: flex; align-items: center; gap: 2.5mm; font: 700 11.5pt "Barlow Condensed", sans-serif; letter-spacing: .07em; color: var(--ink); }
.t-trade h2::before { content: ""; width: 3mm; height: 3mm; background: var(--accent); flex: none; }
.t-trade h3 { font-weight: 700; font-size: 10.5pt; }
.t-trade .quals .edu { padding: 2mm 3mm; background: color-mix(in srgb, var(--accent) 6%, #fff); border-left: 1mm solid var(--accent); }
.t-trade .quals .edu + .edu { margin-top: 1.5mm; }
.t-trade .fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2mm; margin-top: 2mm; }
.t-trade .fact { display: grid; gap: .4mm; padding: 2mm 3mm; border: .8pt solid var(--line); break-inside: avoid; }
.t-trade .fact span { font-size: 8pt; color: var(--muted); }
.t-trade .fact strong { font-size: 10pt; }
.t-trade .checks { column-count: 2; column-gap: 8mm; }
.t-trade .checks li { position: relative; padding-left: 5.5mm; margin-bottom: 1.2mm; break-inside: avoid; }
.t-trade .checks li::before { content: ""; position: absolute; left: .6mm; top: .25em; width: 1.5mm; height: 2.8mm; border: solid var(--accent); border-width: 0 .7mm .7mm 0; transform: rotate(45deg); }
.t-trade .job li::before { border-radius: 0; }

/* ===== Teacher ===== */
.t-teacher { position: relative; padding: 15mm 16mm 14mm 30mm; font-family: "Source Sans 3", sans-serif; font-size: 9.6pt; }
/* Exercise-book margin: two thin lines down the page */
.t-teacher::before { content: ""; position: absolute; top: 0; bottom: 0; left: 21mm; width: .8mm; border-left: .35mm solid color-mix(in srgb, var(--accent) 55%, #fff); border-right: .35mm solid color-mix(in srgb, var(--accent) 55%, #fff); pointer-events: none; }
.t-teacher h1 { font: 600 27pt/1.05 "Lora", Georgia, serif; color: var(--ink); }
.t-teacher .role-title { margin-top: 1.5mm; font: italic 500 12pt "Lora", Georgia, serif; color: var(--accent); }
.t-teacher .hd { padding-bottom: 5mm; border-bottom: .6pt solid var(--line); }
.t-teacher .hd .contacts { margin-top: 3.5mm; display: flex; flex-wrap: wrap; gap: 1mm 6mm; color: var(--muted); font-size: 8.8pt; }
.t-teacher .hd .ic { color: var(--accent); }
.t-teacher .sec { margin-top: 6mm; }
.t-teacher h2 { font: italic 600 12.5pt "Lora", Georgia, serif; letter-spacing: 0; text-transform: none; color: var(--accent); }
.t-teacher h3 { font-weight: 700; }
.t-teacher .quals .edu { padding: 1.6mm 0; border-bottom: .5pt dashed var(--line); }
.t-teacher .quals .edu + .edu { margin-top: 0; }
.t-teacher .fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5mm; margin-top: 3mm; }
.t-teacher .fact { display: grid; gap: .4mm; padding: 2.2mm 3mm; border-radius: 1.5mm; background: color-mix(in srgb, var(--accent) 7%, #fff); break-inside: avoid; }
.t-teacher .fact span { font-size: 8pt; color: var(--muted); }
.t-teacher .fact strong { font-size: 10pt; }

/* ===== Nurse ===== */
.t-nurse { padding: 14mm 15mm; font-family: "Inter", sans-serif; font-size: 9.1pt; }
.t-nurse .hd { display: flex; justify-content: space-between; align-items: flex-end; gap: 8mm; }
.t-nurse h1 { font: 700 25pt/1.05 "Inter", sans-serif; letter-spacing: -.02em; }
.t-nurse .role-title { margin-top: 1.5mm; color: var(--accent); font-weight: 600; font-size: 11.5pt; }
.t-nurse .hd .contacts { display: grid; gap: 1.2mm; justify-items: end; font-size: 8.7pt; color: var(--muted); }
.t-nurse .hd .ic { color: var(--accent); }
.t-nurse .pulse { display: block; width: 100%; height: 8mm; margin: 3mm 0 1mm; }
.t-nurse .pulse polyline { fill: none; stroke: var(--accent); stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.t-nurse h2 { color: var(--accent); }
.t-nurse .fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5mm; }
.t-nurse .fact { display: grid; gap: .4mm; padding: 2.4mm 3mm; border-radius: 2mm; border: .8pt solid color-mix(in srgb, var(--accent) 30%, #fff); break-inside: avoid; }
.t-nurse .fact span { font-size: 7.8pt; color: var(--muted); }
.t-nurse .fact strong { font-size: 9.8pt; }
.t-nurse .checks { column-count: 2; column-gap: 8mm; }
.t-nurse .checks li { position: relative; padding-left: 5mm; margin-bottom: 1.1mm; break-inside: avoid; }
.t-nurse .checks li::before { content: ""; position: absolute; left: .5mm; top: .25em; width: 1.4mm; height: 2.6mm; border: solid var(--accent); border-width: 0 .6mm .6mm 0; transform: rotate(45deg); }

/* ===== Security (police and security officers) ===== */
.t-security { font-family: "Barlow", "Source Sans 3", sans-serif; font-size: 9.5pt; }
.t-security .hd { display: flex; align-items: center; gap: 6mm; padding: 11mm 15mm 9mm; background: #1c2126; color: #fff; border-bottom: 2.2mm solid var(--accent); }
.t-security .shield { position: relative; flex: none; width: 17mm; height: 19.5mm; display: grid; place-items: center; }
.t-security .shield svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--accent); stroke: #fff; stroke-width: 1.4; }
.t-security .shield span { position: relative; font: 700 13pt "Barlow Condensed", sans-serif; letter-spacing: .04em; margin-top: -1mm; }
.t-security .hd-text { flex: 1; min-width: 0; }
.t-security h1 { font: 700 26pt/1 "Barlow Condensed", "Barlow", sans-serif; text-transform: uppercase; letter-spacing: .02em; }
.t-security .role-title { margin-top: 1.5mm; font-weight: 600; font-size: 11.5pt; color: color-mix(in srgb, var(--accent) 35%, #fff); }
.t-security .hd .contacts { display: grid; gap: 1.2mm; justify-items: end; font-size: 8.8pt; color: #d6dade; }
.t-security .body { padding: 2mm 15mm 14mm; }
.t-security h2 { font: 700 11pt "Barlow Condensed", sans-serif; letter-spacing: .08em; color: var(--ink); padding-bottom: 1.2mm; border-bottom: 1pt solid var(--ink); }
.t-security h3 { font-weight: 700; font-size: 10.5pt; }
.t-security .fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5mm; }
.t-security .fact { display: grid; gap: .4mm; padding: 2.4mm 3mm; border-left: 1.2mm solid var(--accent); background: #f1f3f4; break-inside: avoid; }
.t-security .fact span { font-size: 8pt; color: var(--muted); }
.t-security .fact strong { font-size: 10pt; }
.t-security .checks { column-count: 2; column-gap: 8mm; }
.t-security .checks li { position: relative; padding-left: 5mm; margin-bottom: 1.1mm; break-inside: avoid; }
.t-security .checks li::before { content: ""; position: absolute; left: .5mm; top: .25em; width: 1.4mm; height: 2.6mm; border: solid var(--accent); border-width: 0 .65mm .65mm 0; transform: rotate(45deg); }
.t-security .job li::before { border-radius: 0; }

/* ===== Print ===== */
@media print {
  /* Full-bleed pages; padding repeats on every page so page 2+ keeps its margins. */
  @page { size: A4; margin: 0; }
  .cv { width: 210mm; min-height: 0; }
  .t-classic, .t-minimal, .t-modern .side, .t-modern .main, .t-bold .body,
  .t-executive, .t-timeline, .t-compact, .t-elegant, .t-fresh, .t-ribbon, .t-starter, .t-studio .main, .t-studio .side,
  .t-driver .body, .t-trade, .t-teacher, .t-nurse, .t-security .body {
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
  .t-classic { padding-bottom: 14mm; }
  .t-modern .main, .t-modern .side { padding-top: 14mm; padding-bottom: 12mm; }
  /* Sidebar colour on every printed page: fixed elements repeat per page. */
  .t-modern { background: none; position: relative; }
  .t-modern::before { content: ""; position: fixed; top: 0; bottom: 0; left: 0; width: 64mm; background: var(--accent); z-index: -1; }
  .t-studio { background: none; position: relative; }
  .t-studio::before { content: ""; position: fixed; top: 0; bottom: 0; right: 0; width: 62mm; background: color-mix(in srgb, var(--accent) 8%, #fff); z-index: -1; }
  .t-studio .main, .t-studio .side { padding-top: 14mm; padding-bottom: 12mm; }
  /* Exercise-book margin lines on every printed page */
  .t-teacher { background: none; }
  .t-teacher::before { position: fixed; z-index: -1; }
}
