/* ---------- CV (A4) ---------- */
.cv {
  --accent: #1f4e79;
  --accent-soft: #e8eef5;
  position: relative;
  width: 210mm;
  min-height: 297mm;
  background: #fff;
  color: #1d2329;
  font-family: "Inter", "Segoe UI", Arial, sans-serif;
  font-size: 9.6pt;
  line-height: 1.45;
  overflow: hidden;
  box-sizing: border-box;
}
.cv *, .cv *::before, .cv *::after { box-sizing: border-box; }
.cv-accent-groen { --accent: #2d6a4f; --accent-soft: #e6f2ec; }
.cv-accent-bordeaux { --accent: #7a1f3d; --accent-soft: #f6e9ee; }
.cv-accent-grijs { --accent: #33393f; --accent-soft: #eceef0; }
.cv-accent-petrol { --accent: #0f6b74; --accent-soft: #e3f2f3; }

.cv h1 { margin: 0; font-size: 22pt; line-height: 1.1; letter-spacing: -0.01em; }
.cv h2 {
  margin: 0 0 2.2mm; font-size: 10.5pt; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--accent); border-bottom: 1.2px solid var(--accent); padding-bottom: 1mm;
}
.cv ul { margin: 1mm 0 0; padding-left: 4.5mm; }
.cv li { margin: 0.4mm 0; }
.cv p { margin: 0; }
.cv-title { font-size: 11.5pt; color: var(--accent); font-weight: 600; margin-top: 1mm; }
.cv-section { margin-bottom: 5mm; break-inside: avoid; }
.cv-entry { margin-bottom: 3mm; break-inside: avoid; }
.cv-entry-head { display: flex; justify-content: space-between; gap: 4mm; }
.cv-date { color: #5b6670; white-space: nowrap; font-size: 9pt; }
.cv-sub { color: #3b454e; font-style: italic; }
.cv-detail { color: #3b454e; }
.cv-photo { width: 32mm; height: 38mm; object-fit: cover; border-radius: 2mm; display: block; }
.cv-tags { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 1.5mm; }
.cv-tags li { background: var(--accent-soft); color: var(--accent); padding: 0.6mm 2.4mm; border-radius: 3mm; margin: 0; font-size: 8.8pt; }
.cv-plain { list-style: none; padding: 0 !important; }
.cv-plain li { display: flex; justify-content: space-between; gap: 2mm; }
.cv-plain em { color: #5b6670; font-style: normal; }
.cv-contact { list-style: none; padding: 0 !important; margin: 0; }
.cv-contact li { display: flex; flex-direction: column; margin-bottom: 1.6mm; word-break: break-word; }
.cv-contact b { font-size: 8pt; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.75; }

/* Klassiek */
.cv-klassiek { padding: 16mm 18mm; }
.cv-klassiek header { display: flex; gap: 6mm; align-items: center; margin-bottom: 6mm; padding-bottom: 4mm; border-bottom: 2.5px solid var(--accent); }
.cv-klassiek .cv-photo { width: 26mm; height: 31mm; }
.cv-contact-line { display: flex; flex-wrap: wrap; gap: 1mm 5mm; margin-top: 2mm; color: #3b454e; font-size: 9pt; }

/* Modern (zijbalk) */
.cv-modern { display: grid; grid-template-columns: 66mm 1fr; min-height: 297mm; }
.cv-modern aside { background: var(--accent); color: #fff; padding: 14mm 7mm; }
.cv-modern aside .cv-photo { margin: 0 auto 7mm; border: 2px solid rgba(255,255,255,.6); }
.cv-modern aside h2 { color: #fff; border-color: rgba(255,255,255,.55); }
.cv-modern aside .cv-tags li { background: rgba(255,255,255,.16); color: #fff; }
.cv-modern aside .cv-plain em { color: rgba(255,255,255,.75); }
.cv-modern main { padding: 14mm 12mm; }
.cv-modern main header { margin-bottom: 7mm; }

/* Creatief */
.cv-creatief header { background: var(--accent); color: #fff; padding: 12mm 16mm; display: flex; gap: 8mm; align-items: center; }
.cv-creatief header .cv-title { color: rgba(255,255,255,.85); }
.cv-creatief header .cv-photo { border-radius: 50%; width: 34mm; height: 34mm; border: 3px solid #fff; }
.cv-creatief header .cv-contact { display: flex; flex-wrap: wrap; gap: 0 6mm; margin-top: 3mm; }
.cv-creatief header .cv-contact li { margin-bottom: 1mm; }
.cv-creatief .cv-body { padding: 9mm 16mm; }
.cv-profile-box { background: var(--accent-soft); border-left: 4px solid var(--accent); padding: 3.5mm 5mm; margin-bottom: 6mm; border-radius: 0 2mm 2mm 0; }
.cv-cols { display: grid; grid-template-columns: 1fr 58mm; gap: 9mm; }

/* Watermerk */
.cv-watermark {
  position: absolute; inset: -40mm; display: flex; flex-wrap: wrap; align-content: space-around; justify-content: space-around;
  transform: rotate(-30deg); pointer-events: none; user-select: none; z-index: 10;
}
.cv-watermark span { font: 800 20pt/1 "Segoe UI", Arial, sans-serif; color: rgba(200, 30, 30, 0.16); padding: 14mm 8mm; white-space: nowrap; }

@media print {
  @page { size: A4; margin: 0; }
  .cv { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cv-watermark span { color: rgba(200, 30, 30, 0.22); }
}

/* Kleine QR-code op betaalde cv's */
.cv-qr { position: absolute; right: 6mm; bottom: 5mm; display: flex; align-items: center; gap: 1.6mm; z-index: 5; }
.cv-qr img { width: 12mm; height: 12mm; opacity: .85; background: #fff; padding: .8mm; image-rendering: pixelated; display: block; }
.cv-qr span { font-size: 5.5pt; line-height: 1.25; color: #6b7480; text-align: left; }
