:root { --link: #087e2b; --text: #1e1e1e; --muted: #606060; --card: #f8f9fa; --accent: #e9f7ef; --border: #e0e3e7; }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.55; color: var(--text); background: white; }
a, a:visited { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--link); outline-offset: 3px; }
.container { max-width: 980px; margin: 0 auto; padding: 1rem 1rem 3rem; }
.toolbar { max-width: 980px; margin: 0 auto; padding: .75rem 1rem 0; display: flex; flex-wrap: wrap; gap: .65rem; }
.toolbar a:last-child { margin-left: auto; }
.toolbar [aria-current] { font-weight: bold; text-decoration: underline; }
.skip-link { position: absolute; left: -10000px; }
.skip-link:focus { left: 1rem; top: .5rem; padding: .5rem; background: white; z-index: 1; }
header { border-bottom: 1px solid var(--border); margin-bottom: .75rem; padding-bottom: .75rem; }
.header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; }
.title { margin: 0; font-size: 2rem; line-height: 1.2; }
.subtitle { margin: .25rem 0 0; color: var(--muted); font-weight: 600; }
.profile-pic { width: 192px; height: 192px; object-fit: cover; border-radius: 8px; border: 1px solid var(--border); }
.contact { display: grid; grid-template-columns: 1fr; gap: .15rem .5rem; margin-top: .5rem; padding: .5rem; background: var(--accent); border: 1px solid var(--border); border-radius: 6px; }
.contact p { margin: 0; overflow-wrap: anywhere; }
.section { padding: .5rem .75rem; margin: .6rem 0; background: var(--card); border: 1px solid var(--border); border-radius: 6px; }
h2 { font-size: 1.3rem; margin: 0 0 .4rem; }
h3 { margin: .5rem 0 .1rem; font-size: 1.2rem; }
h4 { margin: 0 0 .2rem; font-size: 1.05rem; }
p { margin: .25rem 0 .5rem; }
.dates { color: var(--muted); font-weight: 600; font-size: .85em; }
.employer-link { margin: 0 0 .4rem; }
.employer + .employer { border-top: 1px solid var(--border); margin-top: .75rem; padding-top: .5rem; }
.role { padding-left: .7rem; border-left: 2px solid var(--border); margin: .5rem 0; }
.role h4 em { color: var(--muted); font-weight: normal; }
.meta p { margin: 0; }
.meta { margin: .2rem 0 .35rem; font-size: .9em; }
ul { padding-left: 1.1rem; margin: .25rem 0 .5rem; }
li { margin: .15rem 0; }
.columns { columns: 2; column-gap: 2rem; }
.columns li { break-inside: avoid; }
@media (max-width: 640px) {
  .header-inner { grid-template-columns: minmax(0, 1fr); }
  .profile-pic { width: 144px; height: 144px; }
  .title { font-size: 1.7rem; }
  .columns { columns: 1; }
  .container { padding: 1rem .75rem; }
  .section { padding: .6rem; }
}
@page { size: A4; margin: 8mm 10mm; }
@media print {
  body { font-size: 9pt; line-height: 1.32; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  html[lang="es"] body { font-size: 8.5pt; line-height: 1.3; }
  a, a:visited { color: #00a02d; }
  .toolbar, .skip-link { display: none; }
  .container { max-width: none; padding: 0; margin: 0; }
  header { margin-bottom: 5pt; padding-bottom: 5pt; }
  .header-inner { grid-template-columns: minmax(0, 1fr) 68pt; gap: 10pt; }
  .title { font-size: 16pt; }
  .subtitle { margin-top: 1pt; font-size: 9pt; }
  .profile-pic { width: 68pt; height: 68pt; border-radius: 5px; }
  .contact { grid-template-columns: auto 1fr; margin-top: 4pt; padding: 4pt 5pt; column-gap: 12pt; font-size: 8pt; }
  .contact p { white-space: nowrap; overflow-wrap: normal; }
  .section { padding: 5pt 6pt; margin: 5pt 0; border-radius: 4pt; }
  #about p { text-align: justify; }
  h2 { font-size: 11pt; margin: 0 0 3pt; break-after: avoid; }
  h3 { font-size: 10.5pt; margin: 3pt 0 1pt; break-after: avoid; }
  h4 { font-size: 9pt; margin: 0 0 2pt; break-after: avoid; }
  p { margin: 2pt 0 0; }
  .employer-link { margin: 0 0 3pt; font-size: 8pt; break-after: avoid; }
  .role { padding-left: 6pt; margin: 4pt 0; border-left-width: 1pt; }
  .meta { font-size: 8pt; margin: 2pt 0 3pt; break-inside: avoid; break-after: avoid; }
  .meta p { margin: 0; }
  ul { padding-left: 11pt; margin: 2pt 0 3pt; }
  li { margin: 1pt 0; orphans: 2; widows: 2; }
  .employer + .employer { break-before: page; border: 0; padding-top: 0; margin-top: 0; line-height: 1.2; }
  .employer + .employer li { margin: .5pt 0; }
  #education, #certifications, #skills { break-inside: avoid; padding: 4pt 6pt; margin: 4pt 0; }
  #skills { font-size: 8.5pt; }
  .columns { columns: 2; column-gap: 17pt; }
}
