.cv-page .section {
  width: min(880px, calc(100% - 40px));
}

.cv-page .cv-section {
  padding: clamp(18px, 2.6vw, 32px) 0;
}

.cv-hero h1 {
  font-size: clamp(1.9rem, 7.4vw, 3.4rem);
  text-wrap: balance;
}

.cv-affiliation {
  margin: 16px 0 0;
  font-size: 1.18rem;
  font-weight: 600;
}

.cv-affiliation a {
  color: inherit;
}

.cv-contact {
  margin: 8px 0 0;
  color: var(--muted);
}

.cv-print-button {
  margin-top: 18px;
  padding: 10px 18px;
  min-height: var(--tap-min);
  border: 1px solid var(--accent);
  border-radius: 999px;
  background: var(--paper);
  color: var(--accent);
  font: inherit;
  font-size: 0.92rem;
  cursor: pointer;
}

.cv-print-button:hover {
  background: var(--soft);
}

.cv-section h2 {
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line);
}

.cv-section h3 {
  margin: 18px 0 6px;
}

.cv-list {
  margin: 8px 0 0;
  padding-left: 1.4em;
}

.cv-list li {
  margin: 0.4em 0;
}

.cv-list ul {
  margin: 0.25em 0 0;
  padding-left: 1.3em;
  list-style: disc;
}

.cv-list ul li {
  margin: 0.2em 0;
}

@page {
  size: A4;
  margin: 16mm 18mm;
}

@media print {
  .site-header,
  .cv-print-button,
  .site-footer-links {
    display: none;
  }

  body {
    background: #fff;
    color: #000;
  }

  .cv-page .section,
  .site-footer {
    width: 100%;
  }

  .cv-page .cv-section,
  .cv-page.cv-page .page-hero {
    padding: 10px 0;
    border-bottom: none;
  }

  .cv-section h2 {
    break-after: avoid;
  }

  .cv-list li {
    break-inside: avoid;
  }

  .cv-page a {
    color: inherit;
    text-decoration: none;
  }

  .site-footer {
    margin-top: 12px;
    padding: 0;
    border-top: none;
    color: #444;
    font-size: 9pt;
  }
}
