/* ============================================
   FULL CV PAGE (screen and print)
   ============================================ */

.cv-page { background: var(--color-surface-alt); color: var(--color-text); font-family: var(--font-body); line-height: 1.5; }

.cv-bar {
  position: sticky; top: 0; z-index: var(--z-raised, 10);
  background: var(--color-primary); color: var(--color-text-inverse);
}
.cv-bar__inner {
  max-width: 980px; margin: 0 auto; padding: var(--space-3) var(--container-padding);
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
}
.cv-bar a { color: var(--color-text-inverse); text-decoration: none; font-size: var(--text-sm); }
.cv-bar a:hover, .cv-bar a:focus-visible { text-decoration: underline; }

.cv {
  max-width: 980px; margin: var(--space-8) auto var(--space-12);
  padding: var(--space-10) clamp(1.25rem, 5vw, 4rem);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.cv__name {
  font-family: var(--font-heading); font-weight: var(--weight-bold);
  font-size: var(--text-4xl); line-height: 1.1; letter-spacing: -0.02em;
  color: var(--color-primary); margin: 0;
}
.cv__tagline { font-size: var(--text-lg); color: var(--color-text-light); margin: var(--space-2) 0 var(--space-4); }
.cv__contact { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); font-size: var(--text-sm); }
.cv__contact a { color: var(--color-accent); text-decoration: none; }
.cv__contact a:hover { text-decoration: underline; }

.cv__toc {
  display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-6) 0 0; padding: 0; list-style: none;
}
.cv__toc a {
  display: inline-block; padding: var(--space-1) var(--space-3); border-radius: var(--radius-pill);
  background: rgba(233, 69, 96, 0.08); color: var(--color-accent); text-decoration: none; font-size: var(--text-xs); font-weight: var(--weight-medium);
}

.cv h2 {
  font-family: var(--font-heading); font-weight: var(--weight-bold);
  font-size: var(--text-2xl); letter-spacing: -0.01em; color: var(--color-primary);
  margin: var(--space-10) 0 var(--space-4); padding-bottom: var(--space-2);
  border-bottom: 2px solid var(--color-accent);
}
.cv h3 {
  font-family: var(--font-heading); font-weight: var(--weight-semibold);
  font-size: var(--text-lg); color: var(--color-primary); margin: var(--space-5) 0 var(--space-2);
}
.cv h4 {
  font-size: var(--text-xs); font-weight: var(--weight-bold); letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-accent); margin: var(--space-4) 0 var(--space-2);
}
.cv p { margin: 0 0 var(--space-3); font-size: var(--text-sm); line-height: 1.6; }
.cv ul { margin: 0 0 var(--space-3); padding-left: 1.2rem; list-style: disc; }
.cv__toc { list-style: none; padding-left: 0; }
.cv li { font-size: var(--text-sm); line-height: 1.55; margin-bottom: var(--space-1); }

.cv-row {
  display: grid; grid-template-columns: 11rem 1fr; gap: var(--space-5);
  padding: var(--space-3) 0; break-inside: avoid;
}
.cv-row__date { font-size: var(--text-sm); color: var(--color-text-light); font-weight: var(--weight-medium); }
.cv-row__body > :first-child { margin-top: 0; }
.cv-row__org { color: var(--color-text-light); font-size: var(--text-sm); margin: 0 0 var(--space-2); }

.cv table { width: 100%; border-collapse: collapse; margin: var(--space-3) 0 var(--space-4); font-size: var(--text-sm); }
.cv th, .cv td { text-align: left; padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--color-border); vertical-align: top; }
.cv th { font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-text-light); }

.cv-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-3); margin: var(--space-4) 0; }
.cv-stat { border: 1px solid var(--color-border); border-radius: var(--radius-md, 8px); padding: var(--space-3) var(--space-4); }
.cv-stat b { display: block; font-family: var(--font-heading); font-size: var(--text-xl); color: var(--color-primary); }
.cv-stat span { font-size: var(--text-xs); color: var(--color-text-light); }

.cv-note { font-size: var(--text-xs); color: var(--color-text-light); }

@media (max-width: 720px) {
  .cv-row { grid-template-columns: 1fr; gap: var(--space-1); }
  .cv-stats { grid-template-columns: repeat(2, 1fr); }
}

@media print {
  @page { size: Letter; margin: 0.6in 0.65in; }
  html, body { background: #fff !important; }
  .cv-bar, .cv__toc, .no-print { display: none !important; }
  .cv { margin: 0; padding: 0; border: 0; border-radius: 0; max-width: none; }
  .cv__name { font-size: 26pt; }
  .cv__tagline { font-size: 11.5pt; }
  .cv h2 { font-size: 14pt; margin: 16pt 0 6pt; break-after: avoid; }
  .cv h3 { font-size: 11pt; margin: 9pt 0 3pt; break-after: avoid; }
  .cv p, .cv li, .cv td, .cv th, .cv__contact { font-size: 9.3pt; line-height: 1.45; }
  .cv-row { grid-template-columns: 1.55in 1fr; gap: 12pt; padding: 3pt 0; }
  .cv a { color: inherit; text-decoration: none; }
}

.cv-bar .btn {
  display: inline-block; padding: var(--space-2) var(--space-5);
  background: var(--color-accent); color: #fff; border-radius: var(--radius-pill);
  font-weight: var(--weight-semibold); text-decoration: none;
}
.cv-bar .btn:hover, .cv-bar .btn:focus-visible { background: var(--color-accent-hover); text-decoration: none; }
