/* Página del CV. Todos los valores vienen de tokens.css (ver la skill design-tokens). */

.cv {
  max-width: var(--measure-page);
  margin: 0 auto;
  padding: calc(var(--nav-h) + var(--space-5xl)) var(--gutter-edge) var(--space-6xl);
}

/* ---------- Cabecera ---------- */
.cv-head { margin-bottom: var(--space-4xl); }
.cv-kicker, .cv .sub {
  margin: 0 0 var(--space-md);
  font-size: var(--text-sm); font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--color-text-soft);
}
.cv h1 {
  margin: 0;
  font-family: var(--font-heavy); font-weight: var(--weight-regular);
  font-size: var(--text-page-title); line-height: var(--leading-none);
}
.cv-role {
  margin: var(--space-xl) 0 0;
  font-size: var(--text-section); font-weight: var(--weight-bold); color: var(--color-accent);
}

.cv-profiles { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin: var(--space-3xl) 0 0; padding: 0; list-style: none; }
.cv-profiles a {
  display: inline-block; padding: var(--space-2xs) var(--space-lg);
  border: var(--border-ink) solid var(--color-ink); border-radius: var(--radius-pill);
  font-size: var(--text-sm); color: inherit; text-decoration: none;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.cv-profiles a:hover { background: var(--color-ink); color: var(--color-paper); }
/* Google Scholar y ResearchGate, al principio de las publicaciones */
.cv-profiles.in-section { margin: 0 0 var(--space-2xl); }

/* ---------- Saltos a cada sección (fijos bajo la barra) ---------- */
.cv-jump {
  position: sticky; top: var(--nav-h); z-index: var(--z-copy);
  display: flex; gap: var(--space-xs); overflow-x: auto; scrollbar-width: none;
  margin-bottom: var(--space-4xl); padding: var(--space-md) 0;
  background: var(--color-bg); border-bottom: var(--border-hair) solid var(--color-rule);
}
.cv-jump a {
  flex: none; padding: var(--space-2xs) var(--space-lg);
  border: var(--border-hair) solid var(--color-rule); border-radius: var(--radius-pill);
  font-size: var(--text-sm); color: inherit; text-decoration: none;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.cv-jump a:hover, .cv-jump a.active { background: var(--color-ink); border-color: var(--color-ink); color: var(--color-paper); }

/* ---------- Secciones ---------- */
.cv-section {
  margin-bottom: var(--space-5xl);
  scroll-margin-top: calc(var(--nav-h) + var(--space-6xl));
}
.cv h2 {
  margin: var(--space-4xl) 0 var(--space-md);
  font-size: var(--text-section); font-weight: var(--weight-bold);
}
.cv-section > h2:first-child { margin-top: 0; }

/* ---------- Entradas: año a la izquierda, contenido a la derecha ---------- */
.entry {
  display: grid; grid-template-columns: var(--col-year) 1fr; gap: var(--space-xl);
  padding: var(--space-lg) 0;
  border-top: var(--border-hair) solid var(--color-rule);
}
.entry .year {
  margin: 0; padding-top: 0.15em;
  font-size: var(--text-md); color: var(--color-text-soft); font-variant-numeric: tabular-nums;
  transition: color var(--dur-fast) var(--ease);
}
.entry:hover .year { color: var(--color-accent); }
.entry h3 { margin: 0 0 var(--space-2xs); font-size: var(--text-lg); font-weight: var(--weight-bold); line-height: var(--leading-story); }
.entry .org { font-weight: var(--weight-regular); color: var(--color-text-soft); }
.entry p { margin: 0 0 var(--space-xs); font-size: var(--text-base); line-height: var(--leading-loose); }
.entry p:last-child { margin-bottom: 0; }
.partners { color: var(--color-text-soft); }
.partners { font-size: var(--text-md); }

.ref { margin: 0; font-size: var(--text-base); line-height: var(--leading-loose); color: var(--color-text); }
.ref b { color: var(--color-text); font-weight: var(--weight-bold); }
.ref .doi { color: var(--color-text-soft); word-break: break-all; }
.ref .doi:hover { color: var(--color-accent); }

.cv-cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4xl); }

.tags { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin: 0; padding: 0; list-style: none; }
.tags li {
  padding: var(--space-2xs) var(--space-md);
  border: var(--border-hair) solid var(--color-rule); border-radius: var(--radius-pill);
  font-size: var(--text-md);
}
.tags li span { color: var(--color-text-soft); }


/* ---------- Tablet y móvil ---------- */
@media (max-width: 820px) {
  .cv-cols { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 600px) {
  .cv { padding: calc(var(--nav-h-mobile) + var(--space-4xl)) var(--gutter-mobile) var(--space-5xl); }
  .cv-jump { top: var(--nav-h-mobile); }
  .entry { grid-template-columns: 1fr; gap: var(--space-2xs); }
}

/* ---------- Impresión: solo el contenido ---------- */
@media print {
  .nav, .cv-jump { display: none; }
  .cv { padding-top: 0; }
  .entry { break-inside: avoid; }
}
