/* ══════════════════════════════════════════
   CV — styles specific to /cv
   (shared detail-layout in its own file)
   ══════════════════════════════════════════ */

/* ── CV content max-width override (A4 paper) ── */
#cv-content {
  max-width: 8.27in;
  line-height: 1.55;
  font-size: var(--text-base);
}

/* ── CV content typography ── */
#cv-content a {
  color: var(--accent-mint);
  text-decoration: none;
  background-image: linear-gradient(to right, var(--accent-mint), var(--accent-mint));
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0% 1px;
  transition: background-size var(--dur-med) var(--ease-out);
}
#cv-content a:hover { background-size: 100% 1px; }

#cv-content h1,
#cv-content h2,
#cv-content h3 {
  letter-spacing: -0.01em;
  line-height: 1.25;
  break-after: avoid-page;
  page-break-after: avoid;
  scroll-margin-top: var(--nav-h, 5rem);
}
#cv-content h1 { font-size: var(--text-3xl); margin: 0 0 var(--space-3); }
#cv-content h2 {
  font-size: var(--text-xl);
  margin: var(--space-6) 0 var(--space-3);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--glass-stroke-soft);
}
#cv-content h3 { font-size: var(--text-md); margin: var(--space-4) 0 var(--space-2); }
#cv-content h1:first-child,
#cv-content h2:first-child { margin-top: var(--space-1); }
#cv-content p, #cv-content ul, #cv-content ol,
#cv-content li, #cv-content blockquote {
  break-inside: avoid;
  page-break-inside: avoid;
}
#cv-content p { margin: 0 0 var(--space-3); }
#cv-content ul, #cv-content ol { padding-left: 1.3rem; margin: 0 0 var(--space-3); }
#cv-content li + li { margin-top: var(--space-2); }
#cv-content strong { color: var(--color-white); }

.cv-subsection {
  margin-bottom: var(--space-5);
  padding-bottom: var(--space-4);
  border-bottom: 1px dashed var(--glass-stroke-soft);
  break-inside: avoid;
  page-break-inside: avoid;
}
.cv-subsection:last-child { border-bottom: none; padding-bottom: 0; }

/* ── PDF export: force black-on-white for html2canvas ── */
#cv-content.pdf-export {
  background: #fff;
  color: #000;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
#cv-content.pdf-export a { color: var(--brand-purple); background-image: none; }
#cv-content.pdf-export strong { color: #000; }
#cv-content.pdf-export h2 { border-bottom-color: #ccc; }
#cv-content.pdf-export .cv-subsection { border-bottom-color: #ddd; }

/* ── Print: restore plain ── */
@media print {
  body, .dark-theme { background: var(--print-bg); color: var(--print-text); }
  body::before, body::after { display: none !important; }
  .detail-layout { display: block; max-width: 8.27in; margin: 0 auto; padding: 0; }
  .detail-sidebar, .detail-toc, #scroll-progress-container { display: none !important; }
  #cv-content {
    background: var(--print-bg);
    color: var(--print-text);
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 0;
    max-width: none;
  }
  #cv-content a { color: var(--print-text); background-image: none; }
  #cv-content h2 { border-bottom-color: var(--print-border); }
  .cv-subsection { border-bottom-color: var(--print-border-soft); }
}
