/*
 * LatinosBE CV Studio · seven original document families (A4, print-ready, selectable text).
 * The candidate's document carries no platform mark. Faces: Manrope and Bricolage Grotesque (OFL, served by the
 * theme) or the system serif stack; no remote fonts. Accent text uses --cv-accent-text (≥ 4.5:1 on white).
 */

.cvdoc {
  --cv-ink: #1c232b; --cv-muted: #4b5662; --cv-line: #d3dae0; --cv-soft: #f3f5f7;
  --cv-sans: "Manrope", "Segoe UI", Arial, sans-serif;
  --cv-serif: Georgia, Cambria, "Times New Roman", serif;
  --cv-display: "Bricolage Grotesque", "Manrope", Arial, sans-serif;
  --cv-tint: color-mix(in srgb, var(--cv-accent) 9%, #fff);
  --cv-tint-2: color-mix(in srgb, var(--cv-accent) 18%, #fff);
  box-sizing: border-box; width: 210mm; min-height: 297mm; padding: var(--cv-margin);
  background: #fff; color: var(--cv-ink); font: 400 var(--cv-size)/var(--cv-leading) var(--cv-sans);
  text-align: left; overflow-wrap: anywhere; hyphens: auto; transform-origin: 0 0;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.cvdoc.is-serif { font-family: var(--cv-serif); }
.cvdoc *, .cvdoc *::before, .cvdoc *::after { box-sizing: border-box; }
/* The theme styles bare h1–h3 (display face, weight, balance); documents start from a neutral reset. */
.cvdoc h1, .cvdoc h2, .cvdoc h3, .cvdoc p, .cvdoc ul { margin: 0; padding: 0; font: inherit; letter-spacing: normal; color: inherit; text-wrap: wrap; max-width: none; }
.cvdoc ul { list-style: none; }
.cvdoc ::selection { background: var(--cv-tint-2); }
.cv-hint { color: #8a96a3; font-style: italic; font-weight: 400; }

/* Shared anatomy */
.cvdoc .cv-name { font-size: 2.1em; line-height: 1.08; font-weight: 700; letter-spacing: -.012em; color: var(--cv-ink); }
.cvdoc .cv-headline { margin-top: .3em; font-size: 1.12em; line-height: 1.3; color: var(--cv-accent-text); font-weight: 600; }
.cvdoc .cv-contact { display: flex; flex-wrap: wrap; gap: .15em 1.1em; margin-top: .85em; font-size: .9em; color: var(--cv-muted); }
.cvdoc .cv-sec { margin-top: 1.35em; }
.cvdoc .cv-sec-title { margin-bottom: .6em; font-size: .8em; line-height: 1.3; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; color: var(--cv-accent-text); }
.cvdoc .cv-entry { margin-bottom: .95em; break-inside: avoid; }
.cvdoc .cv-entry:last-child { margin-bottom: 0; }
.cvdoc .cv-entry-title { font-size: 1em; font-weight: 700; line-height: 1.3; }
.cvdoc .cv-org { color: var(--cv-ink); }
.cvdoc .cv-via { color: var(--cv-muted); }
.cvdoc .cv-entry-meta { display: flex; flex-wrap: wrap; gap: 0 .9em; font-size: .88em; color: var(--cv-muted); font-variant-numeric: tabular-nums; }
.cvdoc .cv-text { margin-top: .3em; }
.cvdoc .cv-text p + p, .cvdoc .cv-text ul + p, .cvdoc .cv-text p + ul { margin-top: .3em; }
.cvdoc .cv-text ul { list-style: disc; padding-left: 1.15em; }
.cvdoc .cv-text li + li { margin-top: .12em; }
.cvdoc .cv-text li::marker { color: var(--cv-accent-text); }
.cvdoc .cv-tags { display: flex; flex-wrap: wrap; gap: .3em .45em; }
.cvdoc .cv-langs { display: grid; gap: .25em; }
.cvdoc .cv-lang-level { color: var(--cv-muted); font-variant-numeric: tabular-nums; }
.cvdoc .cv-sec--summary .cv-text, .cvdoc .cv-sec--summary .cv-sec-body > p { max-width: 62em; }

/* 01 · ATS Essential — one column, plain hierarchy, every word where a parser expects it. */
.cvdoc--ats-essential .cv-head { padding-bottom: .9em; border-bottom: 2px solid var(--cv-accent); }
.cvdoc--ats-essential .cv-contact { gap: 0; }
.cvdoc--ats-essential .cv-contact li + li::before { content: "·"; margin: 0 .55em; color: var(--cv-line); }
.cvdoc--ats-essential .cv-sec-title { padding-bottom: .3em; border-bottom: 1px solid var(--cv-line); }
.cvdoc--ats-essential .cv-tags li + li::before, .cvdoc.is-ats .cv-tags li + li::before { content: ", "; }
.cvdoc--ats-essential .cv-tags, .cvdoc.is-ats .cv-tags { display: block; }
.cvdoc--ats-essential .cv-tags li, .cvdoc.is-ats .cv-tags li { display: inline; }

/* 02 · Executive Premium — centred masthead, small capitals, quiet authority. */
.cvdoc--executive-premium .cv-head { text-align: center; padding-bottom: 1.1em; border-bottom: 3px double var(--cv-accent); }
.cvdoc--executive-premium .cv-name { font-family: var(--cv-serif); font-weight: 400; font-size: 2.45em; letter-spacing: .07em; font-variant: small-caps; }
.cvdoc--executive-premium .cv-headline { color: var(--cv-muted); font-weight: 600; font-size: .86em; letter-spacing: .16em; text-transform: uppercase; margin-top: .55em; }
.cvdoc--executive-premium .cv-contact { justify-content: center; gap: 0; }
.cvdoc--executive-premium .cv-contact li + li::before { content: ""; display: inline-block; width: 1px; height: .9em; margin: 0 .75em; vertical-align: -.1em; background: var(--cv-line); }
.cvdoc--executive-premium .cv-sec { margin-top: 1.55em; }
.cvdoc--executive-premium .cv-sec-title { display: flex; align-items: center; gap: .8em; font-family: var(--cv-serif); font-variant: small-caps; text-transform: lowercase; font-size: 1.12em; letter-spacing: .08em; font-weight: 400; }
.cvdoc--executive-premium .cv-sec-title::after { content: ""; flex: 1; height: 1px; background: var(--cv-line); }
.cvdoc--executive-premium .cv-sec--summary .cv-sec-body { font-size: 1.04em; }
.cvdoc--executive-premium .cv-entry { display: grid; grid-template-columns: 1fr auto; column-gap: 1.2em; align-items: baseline; }
.cvdoc--executive-premium .cv-entry-title { grid-column: 1; }
.cvdoc--executive-premium .cv-entry-meta { grid-column: 2; grid-row: 1; justify-content: flex-end; text-align: right; }
.cvdoc--executive-premium .cv-org, .cvdoc--executive-premium .cv-text { grid-column: 1 / -1; }
.cvdoc--executive-premium .cv-org { font-weight: 600; letter-spacing: .04em; text-transform: uppercase; font-size: .84em; color: var(--cv-accent-text); }
.cvdoc--executive-premium .cv-tags li + li::before { content: "·"; margin-right: .45em; color: var(--cv-muted); }

/* 03 · Modern Minimal — label column, generous white, one confident name. */
.cvdoc--modern-minimal .cv-head { display: grid; grid-template-columns: 1fr auto; gap: 1em 2em; align-items: end; padding-bottom: 1.4em; }
.cvdoc--modern-minimal .cv-name { font-family: var(--cv-display); font-weight: 650; font-size: 2.55em; letter-spacing: -.025em; line-height: 1; }
.cvdoc--modern-minimal .cv-headline { font-weight: 500; }
.cvdoc--modern-minimal .cv-contact { flex-direction: column; align-items: flex-end; text-align: right; gap: .1em; margin: 0; }
.cvdoc--modern-minimal .cv-sec { display: grid; grid-template-columns: 24% 1fr; gap: 1.4em; margin-top: 0; padding: 1em 0; border-top: 1px solid var(--cv-line); }
.cvdoc--modern-minimal .cv-sec-title { margin: .15em 0 0; text-transform: none; letter-spacing: 0; font-size: .92em; font-weight: 650; }
.cvdoc--modern-minimal .cv-entry-title { font-weight: 650; }
.cvdoc--modern-minimal .cv-tags li { padding: .05em .55em; border-radius: 99em; background: var(--cv-soft); }

/* 04 · Skills & Technical — tinted masthead, competence column first in the eye, dates as chips. */
.cvdoc--skills-technical .cv-head { margin: calc(-1 * var(--cv-margin)) calc(-1 * var(--cv-margin)) 1.3em; padding: var(--cv-margin) var(--cv-margin) 1.15em; background: var(--cv-tint); border-bottom: 3px solid var(--cv-accent); }
.cvdoc--skills-technical .cv-name { text-transform: uppercase; letter-spacing: .02em; font-weight: 800; font-size: 1.95em; }
.cvdoc--skills-technical.has-side .cv-body { display: grid; grid-template-columns: 31% 1fr; gap: 1.7em; }
.cvdoc--skills-technical .cv-side { order: -1; padding-right: 1.3em; border-right: 1px solid var(--cv-line); }
.cvdoc--skills-technical .cv-side .cv-sec:first-child, .cvdoc--skills-technical .cv-main .cv-sec:first-child { margin-top: 0; }
.cvdoc--skills-technical .cv-tags { flex-direction: column; gap: .3em; }
.cvdoc--skills-technical .cv-tags li { padding: .25em .55em; border: 1px solid var(--cv-tint-2); border-radius: 4px; font-weight: 600; font-size: .93em; }
.cvdoc--skills-technical .cv-langs li { display: grid; grid-template-columns: 1fr auto; gap: .5em; }
.cvdoc--skills-technical .cv-lang-level { font-weight: 700; color: var(--cv-accent-text); }
.cvdoc--skills-technical .cv-entry { display: grid; grid-template-columns: 1fr auto; column-gap: 1em; align-items: start; }
.cvdoc--skills-technical .cv-entry-title { text-transform: uppercase; letter-spacing: .03em; font-size: .95em; }
.cvdoc--skills-technical .cv-entry-meta { grid-column: 2; grid-row: 1 / span 2; flex-direction: column; align-items: flex-end; gap: .2em; text-align: right; }
.cvdoc--skills-technical .cv-entry-meta .cv-date { padding: .05em .45em; border-radius: 3px; background: var(--cv-tint); color: var(--cv-ink); font-weight: 600; }
.cvdoc--skills-technical .cv-org, .cvdoc--skills-technical .cv-text { grid-column: 1; }
.cvdoc--skills-technical .cv-side .cv-entry { display: block; }
.cvdoc--skills-technical .cv-side .cv-entry-title { text-transform: none; letter-spacing: 0; }
.cvdoc--skills-technical .cv-side .cv-entry-meta { flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: .25em; margin-top: .25em; text-align: left; }
.cvdoc--skills-technical .cv-text { grid-column: 1 / -1; }

/* 05 · European Professional — right-aligned label column, dates in their own lane, formal rhythm. */
.cvdoc--european-professional .cv-head { display: grid; grid-template-columns: 1fr auto; gap: .6em 2em; padding-bottom: 1.1em; border-bottom: 1px solid var(--cv-accent); }
.cvdoc--european-professional .cv-name { font-size: 2em; font-weight: 650; }
.cvdoc--european-professional .cv-headline { color: var(--cv-muted); font-weight: 500; }
.cvdoc--european-professional .cv-contact { flex-direction: column; gap: .1em; margin: 0; align-items: flex-end; text-align: right; }
.cvdoc--european-professional .cv-sec { display: grid; grid-template-columns: 27% 1fr; gap: 0 1.5em; margin-top: 1.25em; }
.cvdoc--european-professional .cv-sec-title { margin: 0; text-align: right; font-size: .74em; padding-top: .3em; }
.cvdoc--european-professional .cv-sec-body { padding-left: 1.5em; border-left: 1px solid var(--cv-line); }
.cvdoc--european-professional .cv-entry { display: grid; grid-template-columns: 7.2em 1fr; column-gap: 1em; }
.cvdoc--european-professional .cv-entry > * { grid-column: 2; }
.cvdoc--european-professional .cv-entry-meta { grid-column: 1; grid-row: 1 / span 3; flex-direction: column; gap: .15em; font-size: .84em; }
.cvdoc--european-professional .cv-langs li { display: grid; grid-template-columns: 1fr 6em; border-bottom: 1px dotted var(--cv-line); padding-bottom: .2em; }
.cvdoc--european-professional .cv-lang-level { text-align: right; font-weight: 650; color: var(--cv-ink); }
.cvdoc--european-professional .cv-tags li + li::before { content: "·"; margin-right: .45em; color: var(--cv-muted); }

/* 06 · Creative Signature — full-bleed colour masthead, editorial headings, side panel. */
.cvdoc--creative-signature .cv-head { margin: calc(-1 * var(--cv-margin)) calc(-1 * var(--cv-margin)) 1.6em; padding: calc(var(--cv-margin) * 1.25) var(--cv-margin) 1.4em; background: var(--cv-accent); color: var(--cv-on-accent); }
.cvdoc--creative-signature .cv-name { font-family: var(--cv-display); font-weight: 750; font-size: 3em; line-height: .95; letter-spacing: -.03em; color: inherit; }
.cvdoc--creative-signature .cv-headline { color: inherit; font-weight: 500; font-size: 1.18em; margin-top: .5em; }
.cvdoc--creative-signature .cv-contact { color: inherit; margin-top: 1.1em; }
.cvdoc--creative-signature.has-side .cv-body { display: grid; grid-template-columns: 1fr 34%; gap: 1.8em; }
.cvdoc--creative-signature .cv-side { padding: 1.1em 1.1em 1.3em; background: var(--cv-tint); border-radius: 6px; align-self: start; }
.cvdoc--creative-signature .cv-side .cv-sec:first-child, .cvdoc--creative-signature .cv-main .cv-sec:first-child { margin-top: 0; }
.cvdoc--creative-signature .cv-sec-title { font-family: var(--cv-display); text-transform: none; letter-spacing: -.01em; font-size: 1.22em; font-weight: 650; color: var(--cv-ink); }
.cvdoc--creative-signature .cv-sec-title::before { content: ""; display: block; width: 1.6em; height: 3px; margin-bottom: .4em; background: var(--cv-accent); }
.cvdoc--creative-signature .cv-sec--summary .cv-sec-body { font-size: 1.08em; }
.cvdoc--creative-signature .cv-tags li { padding: .1em .55em; border-radius: 99em; background: #fff; font-size: .92em; }
.cvdoc--creative-signature .cv-entry-title { font-size: 1.05em; }

/* 07 · Career Launch — marker-lit name, profile first, friendly chips without losing order. */
.cvdoc--career-launch .cv-name { display: inline; font-family: var(--cv-display); font-weight: 700; font-size: 2.3em; letter-spacing: -.02em; background: linear-gradient(transparent 60%, var(--cv-tint-2) 60%); box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.cvdoc--career-launch .cv-headline { margin-top: .45em; }
.cvdoc--career-launch .cv-contact { gap: .35em; }
.cvdoc--career-launch .cv-contact li { padding: .12em .65em; border: 1px solid var(--cv-line); border-radius: 99em; }
.cvdoc--career-launch .cv-sec-title { display: flex; align-items: center; gap: .5em; }
.cvdoc--career-launch .cv-sec-title::before { content: ""; width: .55em; height: .55em; border-radius: 50%; background: var(--cv-accent); flex: none; }
.cvdoc--career-launch .cv-sec--summary .cv-sec-body { padding: .8em 1em; border-radius: 8px; background: var(--cv-tint); }
.cvdoc--career-launch .cv-tags li { padding: .15em .65em; border-radius: 99em; background: var(--cv-tint); color: var(--cv-ink); font-weight: 600; font-size: .92em; }

/* ATS mode: same family voice, linear structure — one column, no fills, no chips, no masthead colour. */
.cvdoc.is-ats .cv-head { margin: 0 0 .2em; padding: 0 0 .9em; background: none; color: var(--cv-ink); display: block; text-align: left; border-bottom: 1px solid var(--cv-line); }
.cvdoc.is-ats .cv-name { display: block; background: none; color: var(--cv-ink); font-size: 2em; line-height: 1.1; }
.cvdoc.is-ats .cv-headline { color: var(--cv-accent-text); }
.cvdoc.is-ats .cv-contact { flex-direction: row; align-items: flex-start; justify-content: flex-start; text-align: left; color: var(--cv-muted); margin-top: .8em; gap: 0; }
.cvdoc.is-ats .cv-contact li { padding: 0; border: 0; }
.cvdoc.is-ats .cv-contact li + li::before { content: "·"; display: inline; width: auto; height: auto; margin: 0 .55em; background: none; color: var(--cv-line); }
.cvdoc.is-ats .cv-body, .cvdoc.is-ats .cv-sec, .cvdoc.is-ats .cv-entry, .cvdoc.is-ats .cv-langs li { display: block; }
.cvdoc.is-ats .cv-sec { margin-top: 1.3em; padding: 0; border: 0; }
.cvdoc.is-ats .cv-sec-title { display: block; text-align: left; margin-bottom: .55em; padding: 0 0 .25em; border-bottom: 1px solid var(--cv-line); }
.cvdoc.is-ats .cv-sec-title::before, .cvdoc.is-ats .cv-sec-title::after { content: none; }
.cvdoc.is-ats .cv-sec-body { padding: 0; border: 0; background: none; }
.cvdoc.is-ats .cv-entry-meta { flex-direction: row; text-align: left; justify-content: flex-start; }
.cvdoc.is-ats .cv-entry-meta .cv-date { padding: 0; background: none; font-weight: 400; color: inherit; }
.cvdoc.is-ats .cv-tags li { padding: 0; border: 0; background: none; font-weight: 400; font-size: 1em; }
.cvdoc.is-ats .cv-lang-level::before { content: " – "; }

/* Design tools (optional presentation fields). Absent = the family's own choice; ATS mode ignores them. */
.cvdoc.is-headings-normal .cv-sec-title { text-transform: none; letter-spacing: 0; font-variant: normal; }
.cvdoc.is-headings-upper .cv-sec-title { text-transform: uppercase; letter-spacing: .09em; font-variant: normal; }
.cvdoc.is-head-center .cv-head { display: block; text-align: center; }
.cvdoc.is-head-center .cv-contact { flex-direction: row; justify-content: center; align-items: center; text-align: center; margin-top: .85em; }
.cvdoc.is-head-left .cv-head { text-align: left; }
.cvdoc.is-head-left .cv-contact { justify-content: flex-start; }
.cvdoc.is-skills-tags .cv-tags { display: flex; flex-direction: row; flex-wrap: wrap; gap: .3em .4em; }
.cvdoc.is-skills-tags .cv-tags li { display: inline-block; padding: .12em .6em; border: 1px solid var(--cv-tint-2); border-radius: 99em; background: var(--cv-tint); color: var(--cv-ink); font-weight: 600; font-size: .92em; }
.cvdoc.is-skills-tags .cv-tags li::before, .cvdoc.is-skills-list .cv-tags li::before { content: none; }
.cvdoc.is-skills-list .cv-tags { display: block; padding-left: 1.15em; list-style: disc; }
.cvdoc.is-skills-list .cv-tags li { display: list-item; padding: 0; border: 0; border-radius: 0; background: none; font-weight: 400; font-size: 1em; }
.cvdoc.is-skills-list .cv-tags li::marker { color: var(--cv-accent-text); }
.cvdoc.is-skills-inline .cv-tags { display: block; }
.cvdoc.is-skills-inline .cv-tags li { display: inline; padding: 0; border: 0; background: none; font-weight: 400; font-size: 1em; }
.cvdoc.is-skills-inline .cv-tags li + li::before { content: " · "; margin: 0; color: var(--cv-muted); }
.cv-dots { display: inline-flex; gap: 2px; vertical-align: middle; }
.cv-dots i { width: .52em; height: .52em; border-radius: 50%; background: var(--cv-line); }
.cv-dots i.on { background: var(--cv-accent); }
.cvdoc.is-lang-dots .cv-langs li { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: .55em; border: 0; padding: 0; }
.cvdoc.is-lang-dots .cv-lang-level { font-size: .88em; }

/* Narrow reading on very small previews is handled by scaling; print keeps the real A4 size. */
@media print {
  .cvdoc { transform: none !important; box-shadow: none !important; }
  .cv-hint { display: none; }
}

/* ---------- Cover letter (optional, same type and colour as the CV) ---------- */
.cvdoc.cvletter { line-height: calc(var(--cv-leading) + .1); }
.cvdoc .cvl-from { padding-bottom: .9em; border-bottom: 2px solid var(--cv-accent); }
.cvdoc .cvl-name { font-size: 1.55em; line-height: 1.15; font-weight: 700; color: var(--cv-ink); }
.cvdoc .cvl-contact { display: flex; flex-wrap: wrap; gap: .15em 1.1em; margin-top: .45em; font-size: .9em; color: var(--cv-muted); }
.cvdoc .cvl-to { margin-top: 2.2em; }
.cvdoc.cvletter--fr-BE .cvl-to { margin-left: 52%; }
.cvdoc .cvl-date { margin-top: 1.8em; text-align: right; }
.cvdoc .cvl-subject { margin-top: 1.8em; }
.cvdoc .cvl-subject strong { font-weight: 700; color: var(--cv-accent-text); }
.cvdoc .cvl-salutation { margin-top: 1.6em; }
.cvdoc .cvl-body p { margin-top: .85em; text-align: left; }
.cvdoc .cvl-closing { margin-top: 1.4em; }
.cvdoc .cvl-signature { margin-top: 2.6em; font-weight: 700; }

/* ---------- Optional details (21/10/2026): interim missions and practical info ---------- */
.cvdoc .cv-missions { margin-top: .2em; font-size: .9em; color: var(--cv-muted); }
.cvdoc .cv-missions span { font-weight: 650; color: var(--cv-ink); }
.cvdoc .cv-practical { display: grid; gap: .25em; }
.cvdoc .cv-practical li { position: relative; padding-left: .9em; }
.cvdoc .cv-practical li::before { content: ""; position: absolute; left: 0; top: .62em; width: .32em; height: .32em; border-radius: 50%; background: var(--cv-accent); }

/* Optional photo (21/10/2026): design families only; the ATS family and ATS mode never receive one. */
.cvdoc .cv-head.has-photo { display: flex; align-items: flex-start; gap: 1.2em; }
.cvdoc .cv-head.has-photo > .cv-head-main { flex: 1 1 auto; min-width: 0; }
.cvdoc .cv-photo { display: block; flex: none; width: 28mm; height: 35mm; object-fit: cover; border-radius: 1.5mm; }
.cvdoc--modern-minimal .cv-head-main { display: grid; grid-template-columns: 1fr auto; gap: 1em 2em; align-items: end; }
.cvdoc--european-professional .cv-head-main { display: grid; grid-template-columns: 1fr auto; gap: .6em 2em; }
.cvdoc--executive-premium .cv-head.has-photo, .cvdoc.is-head-center .cv-head.has-photo { display: flex; flex-direction: column; align-items: center; }
.cvdoc--executive-premium .cv-head.has-photo .cv-photo, .cvdoc.is-head-center .cv-head.has-photo .cv-photo { order: -1; }
.cvdoc--executive-premium .cv-head.has-photo > .cv-head-main, .cvdoc.is-head-center .cv-head.has-photo > .cv-head-main { width: 100%; }
.cvdoc--creative-signature .cv-photo { box-shadow: 0 0 0 2px var(--cv-on-accent); }

