/* ===== CV print / "Download PDF" layout =====
   Loaded with media="print". Overrides the screen theme completely so
   the PDF is a clean, recruiter-friendly A4 page. */
@page { size: A4; margin: 13mm 14mm 14mm; }

html, body { background: #fff !important; color: #16171a !important; }
body { font-size: 9.6pt !important; line-height: 1.42 !important; letter-spacing: 0 !important; }
body * { color: inherit !important; background: transparent !important; box-shadow: none !important; text-shadow: none !important; mix-blend-mode: normal !important; }

/* page chrome off */
.nav, .cursor, .loader, .foot, .cta-band, .cv-actions, .ph::before { display: none !important; }
main { padding: 0 !important; margin: 0 !important; }

/* anything an animation left hidden must print */
[data-reveal], [data-reveal] *, .cv *, .ch > span, .w > span {
  opacity: 1 !important; transform: none !important; clip-path: none !important; visibility: visible !important; translate: none !important;
}

.cv { display: block !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }

/* header */
.cv-head { display: grid !important; grid-template-columns: 1fr 26mm !important; gap: 2mm 8mm !important; padding: 0 0 5mm !important; margin: 0 0 4mm !important; border-bottom: 0.6pt solid #16171a !important; min-height: 0 !important; }
.cv-head__id { grid-column: 1 !important; }
.cv-label { font-size: 7pt !important; text-transform: uppercase !important; letter-spacing: 0.12em !important; color: #6b6f78 !important; margin: 0 0 1.5mm !important; }
.cv-name { font-size: 26pt !important; line-height: 1 !important; letter-spacing: -0.02em !important; font-weight: 600 !important; margin: 0 !important; white-space: normal !important; }
.cv-name .ch { display: inline !important; overflow: visible !important; padding: 0 !important; margin: 0 !important; }
.cv-name .ch > span { display: inline !important; }
.cv-role { font-size: 11pt !important; margin: 1.5mm 0 0 !important; }
.cv-photo { rotate: none !important; box-shadow: none !important; grid-column: 2 !important; grid-row: 1 / span 2 !important; width: 26mm !important; height: 32mm !important; aspect-ratio: auto !important; margin: 0 !important; overflow: hidden !important; border-radius: 1mm !important; }
.cv-photo img { width: 100% !important; height: 100% !important; object-fit: cover !important; filter: grayscale(1) !important; }
.cv-contact { grid-column: 1 !important; display: flex !important; flex-wrap: wrap !important; gap: 1mm 5mm !important; list-style: none !important; padding: 0 !important; margin: 2mm 0 0 !important; font-size: 8.6pt !important; }
.cv-contact a { text-decoration: none !important; }

/* sections: heading column + content column */
.cv-sec { display: grid !important; grid-template-columns: 30mm 1fr !important; gap: 6mm !important; padding: 2.6mm 0 !important; margin: 0 !important; border: 0 !important; border-top: 0.4pt solid #c9ccd2 !important; break-inside: avoid; min-height: 0 !important; }
.cv-h { font-size: 7.4pt !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; margin: 0.6mm 0 0 !important; position: static !important; color: #16171a !important; }
.cv-body { margin: 0 !important; padding: 0 !important; }
.cv-profile { font-size: 9.8pt !important; line-height: 1.45 !important; max-width: none !important; margin: 0 !important; }

.cv-list { list-style: none !important; padding: 0 !important; margin: 0 !important; display: grid !important; gap: 2.2mm !important; border: 0 !important; }
.cv-item { display: grid !important; grid-template-columns: 24mm 1fr !important; gap: 4mm !important; padding: 0 !important; border: 0 !important; break-inside: avoid; }
.cv-when { font-size: 8.4pt !important; color: #6b6f78 !important; margin: 0 !important; font-variant-numeric: tabular-nums; }
.cv-org { display: flex !important; gap: 2mm !important; align-items: center !important; font-size: 10.4pt !important; font-weight: 600 !important; margin: 0 !important; letter-spacing: 0 !important; line-height: 1.3 !important; }
.cv-logo { height: 4mm !important; }
.cv-title { font-size: 9pt !important; margin: 0 !important; color: #3d4048 !important; }
.cv-desc { font-size: 8.8pt !important; margin: 0.6mm 0 0 !important; color: #3d4048 !important; max-width: none !important; }

.cv-skills { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 2mm 6mm !important; }
.cv-skill__h { font-size: 8.4pt !important; font-weight: 600 !important; margin: 0 0 0.6mm !important; text-transform: none !important; letter-spacing: 0 !important; }
.cv-skill ul { list-style: none !important; padding: 0 !important; margin: 0 !important; display: block !important; font-size: 8.8pt !important; }
.cv-skill li { display: inline !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
.cv-skill li:not(:last-child)::after { content: " · "; }

.cv-langs { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; gap: 8mm !important; }
.cv-lang { display: block !important; padding: 0 !important; border: 0 !important; }
.cv-lang__name { font-weight: 600 !important; }
.cv-lang__level { margin-left: 1.5mm !important; color: #6b6f78 !important; }
.cv-lang__bar { display: none !important; }

.cv-work { list-style: none !important; padding: 0 !important; margin: 0 !important; display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 0.8mm 6mm !important; }
.cv-work li, .cv-work a { display: block !important; border: 0 !important; padding: 0 !important; text-decoration: none !important; font-size: 8.8pt !important; }
.cv-work__name { font-weight: 600 !important; }
.cv-work__meta { margin-left: 1.5mm !important; color: #6b6f78 !important; }
.cv-work__arrow { display: none !important; }
.smart { background: none !important; padding: 0 !important; display: inline !important; }
.smart__arrow { display: none !important; }
.cv-sec--work::after { content: "Full portfolio: brunoballve.com"; grid-column: 2; font-size: 8.4pt; color: #6b6f78; }
