/* Document styles shared by the on-screen preview and the PDF export:
   15 CV templates, cover letters and the one-page Lobby Cheat Sheet. Sizes are in mm/pt
   so the page is real A4. Fonts are bundled (SIL Open Font License, see /fonts).

   Machine-readable (ATS) rules every template follows:
   - no wide letter-spacing on text (at most .06em on small capital headings)
   - every content block is its own stacking layer, so the PDF's text order is the
     reading order (positioned or floated parts can't jump ahead or behind)
   - lists and rows keep real separator characters; nothing relies on CSS gaps alone */

@font-face { font-family: "PC Inter"; font-style: normal; font-weight: 100 900; font-display: block; src: url(/fonts/inter-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "PC Inter"; font-style: normal; font-weight: 100 900; font-display: block; src: url(/fonts/inter-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "PC Jakarta"; font-style: normal; font-weight: 200 800; font-display: block; src: url(/fonts/plus-jakarta-sans-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "PC Jakarta"; font-style: normal; font-weight: 200 800; font-display: block; src: url(/fonts/plus-jakarta-sans-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "PC Serif"; font-style: normal; font-weight: 200 900; font-display: block; src: url(/fonts/source-serif-4-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "PC Serif"; font-style: normal; font-weight: 200 900; font-display: block; src: url(/fonts/source-serif-4-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "PC Grotesk"; font-style: normal; font-weight: 300 700; font-display: block; src: url(/fonts/space-grotesk-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "PC Grotesk"; font-style: normal; font-weight: 300 700; font-display: block; src: url(/fonts/space-grotesk-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "PC Display"; font-style: normal; font-weight: 400 900; font-display: block; src: url(/fonts/playfair-display-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "PC Display"; font-style: normal; font-weight: 400 900; font-display: block; src: url(/fonts/playfair-display-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

@page { size: A4; margin: 0; }
body.doc-print { margin: 0; background: #fff; }
.doc-print .cv-page, .doc-print .cs-page { break-after: page; }
.doc-print .cv-page:last-child, .doc-print .cs-page:last-child { break-after: auto; }

/* ---------- page ---------- */
.cv-doc {
  --accent: #1e3a5f;
  --ink: #1b2230;
  --muted: #5a6474;
  --rule: #d8dce3;
  --tint: color-mix(in srgb, var(--accent) 10%, #fff);
  --line: color-mix(in srgb, var(--accent) 28%, #fff);
  color: var(--ink);
  font-family: "PC Inter", "Segoe UI", system-ui, sans-serif;
  font-size: 9.4pt;
  line-height: 1.42;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.cv-doc *, .cv-doc *::before, .cv-doc *::after { box-sizing: border-box; }
.cv-page { width: 210mm; height: 297mm; position: relative; overflow: hidden; display: flex; background: #fff; }
.cv-col { height: 100%; }
.cv-main { flex: 1; min-width: 0; padding: 15mm 17mm 16mm; }
.cv-flow { display: flow-root; }
/* Each block paints as one unit, in document order – keeps the PDF text in reading order. */
.cv-flow > * { position: relative; z-index: 0; }
.cv-foot { position: absolute; left: 0; right: 0; bottom: 7mm; text-align: center; font-size: 7.4pt; color: var(--muted); }
:where(.cv-doc, .cs-doc) :where(h1, h2, h3, p, ul, ol) { margin: 0; font-size: inherit; font-weight: inherit; }
:where(.cv-doc) :where(h1, h2, h3) { line-height: inherit; }

/* ---------- chosen font (replaces the template's own fonts everywhere) ---------- */
.cv-doc[data-font], .cv-doc[data-font] * { font-family: var(--cv-font), "Segoe UI", system-ui, sans-serif !important; }
.cv-doc[data-font] { word-spacing: var(--cv-ws, 0em); }
.cv-doc[data-font] .cv-name { word-spacing: calc(var(--cv-ws, 0em) + .08em); }
.cv-doc[data-font] .cv-btn { font-family: system-ui, sans-serif !important; }

/* ---------- shared parts ---------- */
/* Names use tight tracking for looks; extra word spacing keeps the words clearly apart for
   recruiters' systems that judge word breaks by the visual gap. */
.cv-name { font-size: 24pt; font-weight: 700; line-height: 1.08; word-spacing: .06em; }
.t-modern .cv-name, .t-silicon .cv-name { word-spacing: .16em; } /* Jakarta's spaces are narrow */
.cv-contacts { display: block; }
.cv-contact { overflow-wrap: anywhere; }
.cv-sec { display: flex; align-items: center; gap: 8pt; break-after: avoid; font-weight: 700; }
.cv-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10pt; }
.sep-h { display: inline-block; width: 0; overflow: hidden; white-space: pre; flex: none; }
.cv-role, .cv-co { font-weight: 650; }
.cv-dates, .cv-loc { flex: none; white-space: nowrap; font-size: .92em; color: var(--muted); font-variant-numeric: tabular-nums; }
.cv-org { color: var(--muted); margin-top: .5pt; }
.cv-details { margin-top: 1.5pt; }
.cv-summary { text-wrap: pretty; }
.cv-bullets { list-style: none; padding: 0 0 0 11pt; }
.cv-bullets li { position: relative; margin: 1.8pt 0; text-wrap: pretty; }
.cv-bullets li::before { content: ""; position: absolute; left: -9pt; top: .58em; width: 3.4pt; height: 3.4pt; border-radius: 50%; background: var(--accent); }
.cv-job { margin-bottom: 2pt; }
.cv-gap { height: 6pt; }
.cv-edu, .cv-cert, .cv-proj, .cv-ref { margin-bottom: 6pt; }
.cv-cert-name { font-weight: 600; }
.cv-skills { line-height: 1.7; }
.cv-pills .cv-skill { display: inline-block; line-height: 1.3; padding: 2pt 7pt; margin: 0 1pt 3pt 0; border-radius: 3pt; background: var(--tint); }
.cv-list .sep { color: var(--muted); }
.cv-sgroups { display: grid; gap: 3pt; }
.cv-sgroup b { font-weight: 650; }
.cv-comp { list-style: none; padding: 0; columns: 3; column-gap: 12pt; }
.cv-comp li { break-inside: avoid; position: relative; padding-left: 10pt; margin: 0 0 3pt; }
.cv-comp li::before { content: ""; position: absolute; left: 1pt; top: .55em; width: 4pt; height: 4pt; background: var(--accent); }
.cv-langs .sep { color: var(--muted); }
.cv-lang-name { font-weight: 600; }
.cv-lang-level { color: var(--muted); }
.cv-hl-fig { font-weight: 800; color: var(--accent); }
.cv-ico { width: 9pt; height: 9pt; fill: none; stroke: var(--accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -1pt; margin-right: 3pt; }
.cv-contact-list { list-style: none; padding: 0; }

/* ---------- 1. The Executive ---------- */
.t-executive .cv-head { text-align: center; padding-bottom: 9pt; border-bottom: 1.3pt solid var(--accent); margin-bottom: 2pt; }
.t-executive .cv-name { font-family: "PC Serif", Georgia, serif; font-size: 25pt; font-weight: 600; }
.t-executive .cv-headline { margin-top: 4pt; font-size: 9.2pt; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.t-executive .cv-contacts { margin-top: 7pt; font-size: 8.5pt; color: var(--muted); }
.t-executive .cv-contacts .sep { color: var(--accent); }
.t-executive .cv-sec { margin: 12pt 0 6pt; padding-bottom: 2.5pt; border-bottom: .6pt solid var(--rule); font-family: "PC Serif", Georgia, serif; font-size: 10.8pt; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.t-executive .cv-role { font-size: 10pt; }
.t-executive .cv-org { color: var(--accent); font-weight: 550; }
.t-executive .cv-list .sep { color: var(--accent); }

/* ---------- 2. Modern Tech (two columns) ---------- */
/* The main column comes first in the file (name, summary, experience) and the sidebar
   second, so machines read the name first; row-reverse still shows the sidebar on the left. */
.t-modern { font-family: "PC Jakarta", "Segoe UI", system-ui, sans-serif; font-size: 9.1pt; word-spacing: .06em; }
.t-modern .cv-page { flex-direction: row-reverse; }
.t-modern .cv-side { width: 67mm; flex: none; padding: 13mm 8mm 14mm 9mm; background: var(--accent); color: #fff; }
.t-modern .cv-main { padding: 15mm 14mm 16mm 11mm; }
.t-modern .cv-side .cv-sec { margin: 13pt 0 6pt; font-size: 8.4pt; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; color: rgba(255, 255, 255, .8); }
.t-modern .cv-side .cv-sec::after { content: ""; flex: 1; height: .6pt; background: rgba(255, 255, 255, .28); }
.t-modern .cv-contact-list { display: grid; gap: 4pt; font-size: 8.3pt; overflow-wrap: anywhere; }
.t-modern .cv-side .cv-pills .cv-skill { background: rgba(255, 255, 255, .14); font-size: 8.1pt; }
.t-modern .cv-side .cv-langs { font-size: 8.5pt; }
.t-modern .cv-side .cv-lang { display: block; margin-bottom: 2pt; }
.t-modern .cv-side .lsep { display: block; height: 0; overflow: hidden; white-space: pre; }
.t-modern .cv-side .cv-lang-level, .t-modern .cv-side .cv-org, .t-modern .cv-side .sep { color: rgba(255, 255, 255, .75); }
.t-modern .cv-side .cv-cert { font-size: 8.5pt; margin-bottom: 5pt; }
.t-modern .cv-side .cv-bullets li::before { background: rgba(255, 255, 255, .7); }
.t-modern .cv-head { margin-bottom: 6pt; }
.t-modern .cv-name { font-size: 24pt; font-weight: 800; letter-spacing: -.028em; }
.t-modern .cv-headline { margin-top: 4pt; font-size: 10.6pt; font-weight: 650; color: var(--accent); }
.t-modern .cv-main .cv-sec { margin: 13pt 0 6pt; font-size: 9.8pt; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.t-modern .cv-main .cv-sec::after { content: ""; flex: 1; height: .8pt; background: var(--line); }
.t-modern .cv-role { font-size: 10pt; font-weight: 750; }
.t-modern .cv-main .cv-org { color: var(--accent); font-weight: 650; font-size: 8.8pt; }

/* ---------- 3. Minimalist Pro (labels in the left margin) ---------- */
.t-minimal { font-size: 9.2pt; color: #20252c; }
.t-minimal .cv-main { padding: 17mm 18mm 17mm; }
.t-minimal .cv-head { padding-bottom: 12pt; margin-bottom: 2pt; border-bottom: .6pt solid var(--rule); }
.t-minimal .cv-name { font-size: 22pt; font-weight: 600; letter-spacing: -.035em; }
.t-minimal .cv-headline { margin-top: 3pt; font-size: 10.4pt; font-weight: 500; color: var(--accent); }
.t-minimal .cv-contacts { margin-top: 8pt; font-size: 8.3pt; color: var(--muted); }
.t-minimal .cv-flow > :not(.cv-head, .cv-sec, .cv-letter-part) { margin-left: 33mm; }
.t-minimal .cv-sec { height: 0; margin: 0; }
.t-minimal .cv-sec > .cv-sec-t { position: absolute; left: 0; top: 13pt; width: 29mm; font-size: 7.8pt; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.t-minimal .cv-sec + * { margin-top: 13pt; }
.t-minimal .cv-sec > .cv-ui { left: 0; right: auto; top: 26pt; }
.t-minimal .cv-role { font-weight: 600; }
.t-minimal .cv-bullets li::before { width: 6pt; height: .8pt; border-radius: 0; top: .72em; left: -10pt; background: var(--muted); }

/* ---------- 4. Bold Creative ---------- */
.t-bold { font-size: 9.3pt; }
.t-bold .cv-page:first-child .cv-main { padding-top: 0; }
.t-bold .cv-head { margin: 0 -17mm 8pt; padding: 13mm 17mm 9mm; background: var(--accent); color: #fff; }
.t-bold .cv-name { font-family: "PC Grotesk", "Segoe UI", sans-serif; font-size: 30pt; font-weight: 700; letter-spacing: -.035em; line-height: 1; }
.t-bold .cv-headline { margin-top: 6pt; font-family: "PC Grotesk", "Segoe UI", sans-serif; font-size: 11.6pt; font-weight: 500; color: rgba(255, 255, 255, .92); }
.t-bold .cv-contacts { margin-top: 9pt; font-size: 8.4pt; color: rgba(255, 255, 255, .92); }
.t-bold .cv-sec { margin: 13pt 0 5pt; font-family: "PC Grotesk", "Segoe UI", sans-serif; font-size: 12.4pt; font-weight: 700; letter-spacing: -.01em; }
.t-bold .cv-sec-t::before { content: ""; display: inline-block; width: 7pt; height: 7pt; margin-right: 6pt; background: var(--accent); vertical-align: .04em; }
.t-bold .cv-role { font-family: "PC Grotesk", "Segoe UI", sans-serif; font-size: 10.6pt; font-weight: 700; }
.t-bold .cv-dates { padding: 1pt 6pt; border-radius: 99px; background: var(--tint); color: var(--accent); font-weight: 650; font-size: 7.9pt; }
.t-bold .cv-org { font-weight: 550; }
.t-bold .cv-pills .cv-skill { color: var(--accent); font-weight: 650; font-size: 8.3pt; padding: 2.5pt 7pt; }

/* ---------- 5. Wall Street (finance) ---------- */
.t-wallstreet { font-size: 9.3pt; }
.t-wallstreet .cv-main { padding: 14mm 16mm 15mm; }
.t-wallstreet .cv-head { text-align: center; margin-bottom: 2pt; }
.t-wallstreet .cv-name { font-family: "PC Serif", Georgia, serif; font-size: 21pt; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.t-wallstreet .cv-headline { margin-top: 2pt; font-family: "PC Serif", Georgia, serif; font-size: 10.6pt; color: var(--accent); }
.t-wallstreet .cv-contacts { margin-top: 5pt; font-size: 8.5pt; }
.t-wallstreet .cv-sec { margin: 11pt 0 5pt; padding-bottom: 2pt; border-bottom: .9pt solid var(--ink); font-family: "PC Serif", Georgia, serif; font-size: 10.6pt; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.t-wallstreet .cv-co { font-size: 9.9pt; font-weight: 700; }
.t-wallstreet .cv-role { font-weight: 600; color: var(--accent); }
.t-wallstreet .cv-dates, .t-wallstreet .cv-loc { color: var(--ink); }
.t-wallstreet .cv-bullets li::before { width: 3pt; height: 3pt; border-radius: 0; background: var(--ink); }

/* ---------- 6. Zurich Swiss Grid ---------- */
.t-zurich { font-size: 9.2pt; }
.t-zurich .cv-main { padding: 16mm 16mm 16mm; }
.t-zurich .cv-head { padding-bottom: 10pt; border-bottom: .6pt solid var(--rule); }
.t-zurich .cv-name { font-size: 25pt; font-weight: 650; letter-spacing: -.035em; }
.t-zurich .cv-headline { margin-top: 3pt; font-size: 10.6pt; color: var(--accent); }
.t-zurich .cv-contacts { margin-top: 7pt; font-size: 8.4pt; color: var(--muted); }
.t-zurich .cv-sec { display: grid; grid-template-columns: max-content 1fr; column-gap: 10pt; margin: 13pt 0 6pt; font-size: 8.6pt; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.t-zurich .cv-sec::after { content: ""; align-self: center; height: .6pt; background: var(--rule); }
.t-zurich .cv-k-grid { display: grid; grid-template-columns: 34mm 1fr; }
.t-zurich .cv-when { padding-right: 8pt; font-size: 8.3pt; color: var(--muted); }
.t-zurich .cv-when .cv-dates, .t-zurich .cv-when .cv-loc { display: block; white-space: normal; font-size: 1em; }
.t-zurich .cv-when .sep-h { display: block; width: auto; height: 0; }
.t-zurich .cv-flow > :not(.cv-head, .cv-sec, .cv-k-grid, .cv-letter-part) { margin-left: 34mm; }
.t-zurich .cv-k-grid > .cv-details { grid-column: 2; }
.t-zurich .cv-role { font-weight: 650; }
.t-zurich .cv-bullets li::before { width: 4pt; height: 1pt; border-radius: 0; top: .7em; background: var(--accent); }

/* ---------- 7. Nordic Minimal ---------- */
.t-nordic { --ink: #2e3338; --muted: #6c7279; font-size: 9.4pt; line-height: 1.55; }
.t-nordic .cv-main { padding: 19mm 20mm 18mm; }
.t-nordic .cv-name { font-size: 27pt; font-weight: 300; letter-spacing: -.02em; }
.t-nordic .cv-headline { margin-top: 4pt; font-size: 10.6pt; font-weight: 500; color: var(--accent); }
.t-nordic .cv-contacts { margin-top: 9pt; font-size: 8.4pt; color: var(--muted); }
.t-nordic .cv-sec { margin: 16pt 0 7pt; font-size: 10.2pt; font-weight: 600; }
.t-nordic .cv-sec::before { content: ""; width: 14pt; height: 2pt; border-radius: 2pt; background: var(--accent); }
.t-nordic .cv-flow > [data-sec="experience"]:not(.cv-sec) { margin-left: 4pt; padding-left: 15pt; border-left: 1pt solid var(--line); }
.t-nordic .cv-job::before { content: ""; position: absolute; left: -5pt; top: 3.5pt; width: 9pt; height: 9pt; border-radius: 50%; background: #fff; border: 1.6pt solid var(--accent); }
.t-nordic .cv-role { font-weight: 600; }
.t-nordic .cv-bullets li::before { background: var(--muted); width: 3pt; height: 3pt; }
.t-nordic .cv-pills .cv-skill { border-radius: 99px; padding: 2.5pt 9pt; }

/* ---------- 8. Silicon Valley ---------- */
.t-silicon { font-family: "PC Jakarta", "Segoe UI", system-ui, sans-serif; font-size: 8.9pt; line-height: 1.38; word-spacing: .05em; }
.t-silicon .cv-main { padding: 12mm 14mm 13mm; }
.t-silicon .cv-head { margin-bottom: 4pt; }
.t-silicon .cv-name { font-size: 21pt; font-weight: 800; letter-spacing: -.025em; }
.t-silicon .cv-headline { margin-top: 2pt; font-size: 10.4pt; font-weight: 650; color: var(--accent); }
.t-silicon .cv-contacts { margin-top: 5pt; font-size: 8.2pt; color: var(--muted); }
.t-silicon .cv-summary { padding: 7pt 10pt; border-radius: 6pt; background: var(--tint); }
.t-silicon .cv-sec { margin: 10pt 0 4pt; padding-bottom: 2pt; border-bottom: 1.2pt solid var(--accent); font-size: 9.2pt; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.t-silicon .cv-role { font-weight: 750; }
.t-silicon .cv-proj .cv-row { justify-content: flex-start; gap: 0; }
.t-silicon .cv-proj .sep-h { width: auto; overflow: visible; color: var(--muted); }
.t-silicon .cv-sgroups { grid-template-columns: 1fr 1fr; gap: 4pt 10pt; }
.t-silicon .cv-sgroup { padding: 4pt 7pt; border-radius: 4pt; background: #f5f7fa; }
.t-silicon .cv-pills .cv-skill { padding: 1.5pt 6pt; font-size: 8.2pt; }
.t-silicon .cv-gap { height: 4pt; }

/* ---------- 9. The Director ---------- */
.t-director { font-size: 9.4pt; }
.t-director .cv-head { text-align: center; padding: 10pt 0 9pt; margin-bottom: 4pt; border-top: 3.5pt double var(--accent); border-bottom: 3.5pt double var(--accent); }
.t-director .cv-name { font-family: "PC Serif", Georgia, serif; font-size: 26pt; font-weight: 600; }
.t-director .cv-headline { margin-top: 3pt; font-size: 9.6pt; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.t-director .cv-contacts { margin-top: 6pt; font-size: 8.5pt; color: var(--muted); }
.t-director .cv-sec { margin: 13pt 0 6pt; padding-left: 8pt; border-left: 3pt solid var(--accent); font-family: "PC Serif", Georgia, serif; font-size: 12pt; font-weight: 600; }
.t-director .cv-comp { padding: 8pt 10pt 5pt; border-radius: 4pt; background: var(--tint); }
.t-director .cv-co { font-size: 10pt; font-weight: 700; }
.t-director .cv-role { color: var(--accent); font-weight: 600; }

/* ---------- 10. London Corporate ---------- */
.t-london { font-size: 9.3pt; }
.t-london .cv-head { padding-bottom: 8pt; border-bottom: 2pt solid var(--accent); }
.t-london .cv-name { font-size: 22pt; font-weight: 750; letter-spacing: -.02em; }
.t-london .cv-headline { margin-top: 2pt; font-size: 10.2pt; font-weight: 600; color: var(--accent); }
.t-london .cv-contacts { margin-top: 5pt; font-size: 8.5pt; color: var(--muted); }
.t-london .cv-sec { margin: 12pt 0 5pt; padding-bottom: 2pt; border-bottom: .6pt solid var(--ink); font-size: 9.6pt; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.t-london .cv-co { font-size: 9.8pt; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.t-london .cv-role { font-weight: 650; color: var(--accent); }
.t-london .cv-dates, .t-london .cv-loc { color: var(--ink); }
.t-london .cv-bullets li::before { width: 5pt; height: .9pt; border-radius: 0; top: .72em; background: var(--ink); }

/* ---------- 11. Nairobi Corporate Pro ---------- */
.t-nairobi { font-size: 9.3pt; }
.t-nairobi .cv-page::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4pt; background: var(--accent); }
.t-nairobi .cv-head { padding-bottom: 7pt; border-bottom: .6pt solid var(--rule); }
.t-nairobi .cv-name { font-size: 22pt; font-weight: 750; letter-spacing: -.02em; }
.t-nairobi .cv-headline { margin-top: 2pt; font-size: 10.4pt; font-weight: 600; color: var(--accent); }
.t-nairobi .cv-contacts { margin-top: 5pt; font-size: 8.5pt; color: var(--muted); }
.t-nairobi .cv-sec { margin: 11pt 0 6pt; padding: 3pt 8pt; border-radius: 3pt; background: var(--tint); color: var(--accent); font-size: 9.6pt; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.t-nairobi .cv-role { font-weight: 700; }
.t-nairobi .cv-hl-list li::before { border-radius: 0; width: 4pt; height: 4pt; }

/* ---------- 12. Milan Editorial ---------- */
.t-milan { font-family: "PC Jakarta", "Segoe UI", system-ui, sans-serif; font-size: 9.2pt; word-spacing: .05em; color: #25282d; }
.t-milan .cv-main { padding: 17mm 18mm 17mm; }
.t-milan .cv-head { text-align: center; padding-bottom: 12pt; margin-bottom: 2pt; border-bottom: .6pt solid var(--line); }
.t-milan .cv-name { font-family: "PC Display", Georgia, serif; font-size: 31pt; font-weight: 500; }
.t-milan .cv-headline { margin-top: 4pt; font-size: 9.4pt; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.t-milan .cv-contacts { margin-top: 9pt; font-size: 8.3pt; color: var(--muted); }
.t-milan .cv-contacts .sep { color: var(--line); }
.t-milan .cv-sec { margin: 14pt 0 6pt; padding-bottom: 3pt; border-bottom: .8pt solid var(--line); font-family: "PC Display", Georgia, serif; font-size: 13.5pt; font-weight: 500; }
.t-milan .cv-role { font-weight: 650; }
.t-milan .cv-org { color: var(--accent); }
.t-milan .cv-bullets li::before { background: var(--line); }

/* ---------- 13. Tokyo Precision (boxed sections) ---------- */
.t-tokyo { --box: #e2e8f0; --shade: #f8fafc; font-size: 9.2pt; }
.t-tokyo .cv-main { padding: 14mm 15mm 15mm; }
.t-tokyo .cv-head { padding-bottom: 6pt; }
.t-tokyo .cv-name { font-size: 22pt; font-weight: 700; letter-spacing: -.02em; }
.t-tokyo .cv-headline { margin-top: 2pt; font-size: 10.2pt; font-weight: 600; color: var(--accent); }
.t-tokyo .cv-contacts { margin-top: 5pt; font-size: 8.4pt; color: var(--muted); }
.t-tokyo .cv-flow > [data-sec] { padding-left: 10pt; padding-right: 10pt; border-left: 1px solid var(--box); border-right: 1px solid var(--box); }
.t-tokyo .cv-flow > .cv-sec { margin-top: 9pt; padding-top: 5pt; padding-bottom: 5pt; border-top: 1px solid var(--box); border-bottom: 1px solid var(--box); border-radius: 5pt 5pt 0 0; background: var(--shade); font-size: 9.4pt; font-weight: 700; color: var(--accent); }
.t-tokyo .cv-flow > .cv-sec + * { padding-top: 7pt; }
.t-tokyo .cv-flow > .cv-bullets { padding-left: 22pt; }
.t-tokyo .cv-flow > .cv-sec-end { padding-bottom: 7pt; border-bottom: 1px solid var(--box); border-radius: 0 0 5pt 5pt; }
.t-tokyo .cv-role { font-weight: 650; }

/* ---------- 14. Emerald Impact (key metrics) ---------- */
.t-emerald { font-size: 9.3pt; }
.t-emerald .cv-main { padding: 15mm 16mm 15mm; }
.t-emerald .cv-page:first-child .cv-main { padding-top: 0; }
.t-emerald .cv-head { margin: 0 -16mm 6pt; padding: 13mm 16mm 9mm; background: var(--tint); border-bottom: 2.5pt solid var(--accent); }
.t-emerald .cv-name { font-size: 24pt; font-weight: 750; letter-spacing: -.02em; }
.t-emerald .cv-headline { margin-top: 2pt; font-size: 10.6pt; font-weight: 650; color: var(--accent); }
.t-emerald .cv-contacts { margin-top: 6pt; font-size: 8.5pt; color: var(--muted); }
.t-emerald .cv-sec { margin: 12pt 0 5pt; font-size: 10.6pt; font-weight: 750; color: var(--accent); }
.t-emerald .cv-sec::after { content: ""; flex: 1; height: 1pt; background: var(--line); }
.t-emerald .cv-hl { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6pt; }
.t-emerald .cv-hl-cell { padding: 7pt 8pt; border: 1pt solid var(--line); border-top: 2.5pt solid var(--accent); border-radius: 4pt; }
.t-emerald .cv-hl-fig { display: block; font-size: 15pt; line-height: 1.1; margin-bottom: 2pt; }
.t-emerald .cv-hl-label { display: block; font-size: 8pt; line-height: 1.35; color: var(--muted); }
.t-emerald .cv-role { font-weight: 700; }
.t-emerald .cv-pills .cv-skill { color: var(--accent); font-weight: 600; }

/* ---------- 15. Fresh Graduate ---------- */
.t-graduate { font-size: 9.4pt; }
.t-graduate .cv-head { padding: 0 0 8pt 12pt; border-left: 4pt solid var(--accent); }
.t-graduate .cv-name { font-size: 24pt; font-weight: 750; letter-spacing: -.025em; }
.t-graduate .cv-headline { margin-top: 3pt; font-size: 10.6pt; font-weight: 600; color: var(--accent); }
.t-graduate .cv-contacts { margin-top: 6pt; font-size: 8.5pt; color: var(--muted); }
.t-graduate .cv-sec { margin: 12pt 0 5pt; padding-bottom: 2pt; border-bottom: 1pt solid var(--line); font-size: 10pt; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.t-graduate .cv-edu .cv-role { font-size: 10.4pt; }
.t-graduate .cv-pills .cv-skill { color: var(--accent); font-weight: 600; }

/* ---------- 16. Kigali Split (light sidebar on the right) ---------- */
.t-kigali { font-size: 9.2pt; }
.t-kigali .cv-main { padding: 15mm 11mm 16mm 16mm; }
.t-kigali .cv-side { width: 64mm; flex: none; padding: 15mm 10mm 14mm 9mm; background: var(--tint); }
.t-kigali .cv-head { margin-bottom: 4pt; padding-bottom: 8pt; border-bottom: 2pt solid var(--accent); }
.t-kigali .cv-name { font-size: 24pt; font-weight: 750; letter-spacing: -.02em; }
.t-kigali .cv-headline { margin-top: 3pt; font-size: 10.6pt; font-weight: 600; color: var(--accent); }
.t-kigali .cv-sec { margin: 12pt 0 5pt; font-size: 9.6pt; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.t-kigali .cv-side .cv-flow > .cv-sec:first-child { margin-top: 0; }
.t-kigali .cv-side .cv-sec { font-size: 8.6pt; }
.t-kigali .cv-contact-list { display: grid; gap: 3pt; font-size: 8.4pt; overflow-wrap: anywhere; }
.t-kigali .cv-side .cv-pills .cv-skill { background: #fff; font-size: 8.2pt; }
.t-kigali .cv-side .cv-langs { font-size: 8.6pt; }
.t-kigali .cv-side .cv-lang { display: block; margin-bottom: 2pt; }
.t-kigali .cv-side .lsep { display: block; height: 0; overflow: hidden; white-space: pre; }
.t-kigali .cv-side .cv-cert { font-size: 8.5pt; margin-bottom: 5pt; }
.t-kigali .cv-role { font-weight: 700; }
.t-kigali .cv-main .cv-org { color: var(--accent); font-weight: 600; }

/* ---------- 17. Berlin Developer ---------- */
.t-berlin { font-size: 9.1pt; }
.t-berlin .cv-main { padding: 14mm 15mm 15mm; }
.t-berlin .cv-head { padding-bottom: 8pt; border-bottom: 1pt dashed var(--line); }
.t-berlin .cv-name { font-size: 23pt; font-weight: 800; letter-spacing: -.025em; }
.t-berlin .cv-headline { margin-top: 3pt; font-family: "PC Mono", monospace; font-size: 9.4pt; color: var(--accent); }
.t-berlin .cv-contacts { margin-top: 6pt; font-family: "PC Mono", monospace; font-size: 7.6pt; color: var(--muted); }
.t-berlin .cv-sec { margin: 12pt 0 5pt; font-family: "PC Mono", monospace; font-size: 9.6pt; font-weight: 700; color: var(--accent); }
.t-berlin .cv-sec::after { content: ""; flex: 1; height: .8pt; background: var(--line); }
.t-berlin .cv-dates { font-family: "PC Mono", monospace; font-size: 7.8pt; }
.t-berlin .cv-role { font-weight: 700; }
.t-berlin .cv-pills .cv-skill { padding: 1.5pt 6pt; border: .8pt solid var(--line); background: #fff; font-family: "PC Mono", monospace; font-size: 7.8pt; }
.t-berlin .cv-bullets li::before { width: 4pt; height: 1.2pt; border-radius: 0; top: .7em; }

/* ---------- 18. Dubai Prestige ---------- */
.t-dubai { font-size: 9.3pt; }
.t-dubai .cv-head { padding-bottom: 10pt; margin-bottom: 2pt; border-bottom: .8pt solid var(--accent); }
.t-dubai .cv-head-split { display: grid; grid-template-columns: 1fr auto; gap: 16pt; align-items: end; }
.t-dubai .cv-name { font-family: "PC Serif", Georgia, serif; font-size: 27pt; font-weight: 600; }
.t-dubai .cv-headline { margin-top: 3pt; font-size: 9.2pt; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.t-dubai .cv-contacts { text-align: right; font-size: 8.4pt; line-height: 1.55; color: var(--muted); }
.t-dubai .cv-head-split .cv-contact { display: block; }
.t-dubai .cv-head-split .cv-contacts .sep { display: block; height: 0; overflow: hidden; white-space: pre; }
.t-dubai .cv-sec { justify-content: center; margin: 13pt 0 7pt; font-family: "PC Serif", Georgia, serif; font-size: 10.6pt; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.t-dubai .cv-sec::before, .t-dubai .cv-sec::after { content: ""; flex: 1; height: .6pt; background: var(--line); }
.t-dubai .cv-co { font-family: "PC Serif", Georgia, serif; font-size: 10.4pt; font-weight: 700; }
.t-dubai .cv-role { color: var(--accent); font-weight: 600; }
.t-dubai .cv-bullets li::before { width: 3.4pt; height: 3.4pt; border-radius: 0; transform: rotate(45deg); }

/* ---------- 19. Singapore Compact ---------- */
.t-singapore { font-size: 8.8pt; line-height: 1.36; }
.t-singapore .cv-main { padding: 12mm 13mm 13mm; }
.t-singapore .cv-head { padding-bottom: 6pt; border-bottom: 1.4pt solid var(--accent); }
.t-singapore .cv-name { font-size: 20pt; font-weight: 750; letter-spacing: -.02em; }
.t-singapore .cv-headline { margin-top: 1pt; font-size: 10pt; font-weight: 600; color: var(--accent); }
.t-singapore .cv-contacts { margin-top: 4pt; font-size: 8pt; color: var(--muted); }
.t-singapore .cv-sec { margin: 8pt 0 3pt; font-size: 8.8pt; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.t-singapore .cv-sec::after { content: ""; flex: 1; height: .6pt; background: var(--rule); }
.t-singapore .cv-inline h3 { display: inline; font-weight: 700; }
.t-singapore .cv-inline .cv-org { color: var(--ink); }
.t-singapore .cv-inline .cv-loc { font-size: 1em; }
.t-singapore .cv-bullets li { margin: 1pt 0; }
.t-singapore .cv-gap { height: 3pt; }
.t-singapore .cv-edu, .t-singapore .cv-cert, .t-singapore .cv-proj, .t-singapore .cv-ref { margin-bottom: 3pt; }

/* ---------- 20. Sydney Rail ---------- */
.t-sydney { font-size: 9.3pt; }
.t-sydney .cv-page::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 7mm; background: var(--accent); }
.t-sydney .cv-main { padding: 16mm 16mm 16mm 22mm; }
.t-sydney .cv-head { padding-bottom: 10pt; }
.t-sydney .cv-name { font-size: 28pt; font-weight: 300; letter-spacing: -.03em; }
.t-sydney .cv-headline { margin-top: 4pt; font-size: 10.8pt; font-weight: 600; color: var(--accent); }
.t-sydney .cv-contacts { margin-top: 8pt; font-size: 8.4pt; color: var(--muted); }
.t-sydney .cv-sec { margin: 14pt 0 6pt; font-size: 10.6pt; font-weight: 700; }
.t-sydney .cv-sec::before { content: ""; position: absolute; left: -15mm; top: 50%; width: 9mm; height: 2pt; margin-top: -1pt; background: var(--accent); }
.t-sydney .cv-role { font-weight: 650; }
.t-sydney .cv-org { color: var(--accent); }
.t-sydney .cv-pills .cv-skill { border-radius: 99px; padding: 2pt 9pt; }

/* ---------- cover letter (uses the CV's template header) ---------- */
.cv-letter-meta { margin: 10pt 0 12pt; display: grid; gap: 10pt; }
.cv-letter-date { color: var(--muted); }
.cv-letter-to { line-height: 1.45; }
.cv-letter-to > div:first-child { font-weight: 600; }
.cv-letter-subject { font-weight: 700; color: var(--accent); margin-bottom: 10pt; }
.cv-letter-salute { margin-bottom: 8pt; }
.cv-para { margin: 0 0 8pt; font-size: 9.9pt; line-height: 1.55; text-wrap: pretty; }
.cv-letter-close { margin-top: 12pt; }
.cv-letter-sign { margin-top: 18pt; font-weight: 650; }
.t-executive .cv-letter-sign, .t-wallstreet .cv-letter-sign, .t-director .cv-letter-sign, .t-dubai .cv-letter-sign { font-family: "PC Serif", Georgia, serif; font-size: 12pt; }
.t-milan .cv-letter-sign { font-family: "PC Display", Georgia, serif; font-size: 14pt; font-weight: 500; }
.t-bold .cv-letter-sign { font-family: "PC Grotesk", "Segoe UI", sans-serif; font-size: 12pt; }
.t-emerald .cv-letter-part:nth-child(2), .t-bold .cv-letter-part:nth-child(2) { margin-top: 4pt; }

/* ---------- editing (preview only – never in the PDF) ---------- */
.is-editing .cv-f { outline: none; border-radius: 2px; cursor: text; min-width: 1ch; transition: box-shadow .12s, background .12s; }
.is-editing .cv-f:hover { box-shadow: 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent); }
.is-editing .cv-f:focus { box-shadow: 0 0 0 1.5px #22c55e; background: rgba(34, 197, 94, .08); }
.is-editing .cv-f:empty::before { content: attr(data-ph); opacity: .42; }
.is-editing .cv-f.has-ph { background: #fff3c4; color: #5c4400; box-shadow: 0 0 0 1px #f2c94c; }
.cv-ui { position: absolute; top: -3pt; right: 0; z-index: 5; display: none; gap: 4px; font-family: system-ui, sans-serif; }
.is-editing .cv-item:hover > .cv-ui, .is-editing .cv-item:focus-within > .cv-ui,
.is-editing .cv-sec:hover > .cv-ui { display: inline-flex; }
.is-editing .cv-lang > .cv-ui, .is-editing .cv-hl-cell > .cv-ui, .is-editing .cv-hl-list li > .cv-ui { position: static; display: none; margin-left: 4px; vertical-align: middle; }
.is-editing .cv-lang:hover > .cv-ui, .is-editing .cv-hl-cell:hover > .cv-ui, .is-editing .cv-hl-list li:hover > .cv-ui { display: inline-flex; }
.cv-btn { font: 600 10px/1 system-ui, sans-serif; letter-spacing: 0; text-transform: none; padding: 4px 7px; border-radius: 6px; border: 1px solid #cfd5dd; background: #fff; color: #1d2430; cursor: pointer; box-shadow: 0 1px 2px rgba(0, 0, 0, .1); white-space: nowrap; }
.cv-btn:hover { background: #f2f5f8; }

/* ---------- Lobby Cheat Sheet (exactly one A4 page) ---------- */
.cs-doc { --accent: #1e3a5f; --ink: #1b2230; --muted: #5a6474; --tint: color-mix(in srgb, var(--accent) 9%, #fff); --line: color-mix(in srgb, var(--accent) 22%, #fff); --s: 1; color: var(--ink); font-family: "PC Jakarta", "Segoe UI", system-ui, sans-serif; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
.cs-doc *, .cs-doc *::before, .cs-doc *::after { box-sizing: border-box; }
.cs-page { width: 210mm; height: 297mm; overflow: hidden; position: relative; background: #fff; padding: 11mm 12mm 10mm; font-size: calc(8.6pt * var(--s)); line-height: 1.38; display: flex; flex-direction: column; gap: calc(7pt * var(--s)); }
.cs-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 12pt; padding-bottom: calc(6pt * var(--s)); border-bottom: 1.4pt solid var(--accent); }
.cs-kicker { font-size: .82em; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); }
.cs-name { font-size: 2.2em; font-weight: 800; letter-spacing: -.03em; line-height: 1.05; margin-top: 2pt; }
.cs-role { font-size: 1.12em; font-weight: 600; color: var(--muted); margin-top: 1pt; }
.cs-badge { text-align: right; font-size: .9em; color: var(--muted); max-width: 66mm; }
.cs-badge b { display: block; color: var(--accent); font-size: 1.05em; }
.cs-label { font-size: .78em; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); margin-bottom: calc(3pt * var(--s)); }
.cs-pitch { background: var(--tint); border-left: 3pt solid var(--accent); border-radius: 0 6pt 6pt 0; padding: calc(7pt * var(--s)) calc(10pt * var(--s)); }
.cs-pitch p { font-size: 1.12em; line-height: 1.5; text-wrap: pretty; }
.cs-qs { display: grid; grid-template-columns: 1fr 1fr; gap: calc(6pt * var(--s)) calc(9pt * var(--s)); }
.cs-q { border: .8pt solid var(--line); border-radius: 6pt; padding: calc(6pt * var(--s)) calc(8pt * var(--s)); break-inside: avoid; }
.cs-q h3 { display: flex; gap: 6pt; font-size: 1.02em; font-weight: 750; line-height: 1.3; margin-bottom: calc(3pt * var(--s)); }
.cs-q h3 i { flex: none; font-style: normal; width: 1.6em; height: 1.6em; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; font-size: .82em; }
.cs-q ul { list-style: none; padding: 0; display: grid; gap: 1.5pt; }
.cs-q li { position: relative; padding-left: 10pt; color: #2b3342; }
.cs-q li::before { content: ""; position: absolute; left: 1pt; top: .55em; width: 4pt; height: 4pt; border-radius: 1pt; background: var(--line); }
.cs-q li b { color: var(--accent); }
.cs-bottom { display: grid; grid-template-columns: 1.1fr 1.2fr .9fr; gap: calc(9pt * var(--s)); }
.cs-box { border-top: 1.2pt solid var(--accent); padding-top: calc(5pt * var(--s)); }
.cs-nums { display: grid; gap: 3pt; }
.cs-num { display: grid; grid-template-columns: auto 1fr; gap: 6pt; align-items: baseline; }
.cs-num b { color: var(--accent); font-size: 1.12em; font-weight: 800; white-space: nowrap; }
.cs-ask { padding-left: 13pt; display: grid; gap: 3pt; }
.cs-ask li::marker { color: var(--accent); font-weight: 800; }
.cs-tips { list-style: none; padding: 0; display: grid; gap: 3pt; }
.cs-tips li { position: relative; padding-left: 12pt; }
.cs-tips li::before { content: ""; position: absolute; left: 1pt; top: .3em; width: 5.5pt; height: 3pt; border-left: 1.4pt solid var(--accent); border-bottom: 1.4pt solid var(--accent); transform: rotate(-45deg); }
.cs-foot { margin-top: auto; text-align: center; font-size: .8em; color: var(--muted); letter-spacing: .04em; }
