.page-hero { padding: 5rem 0 2.5rem; border-bottom: 1px solid var(--border); }
.section-label { font-size: .75rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--accent); margin-bottom: .5rem; }
.page-hero h1 { font-size: clamp(1.6rem, 3.5vw, 2.2rem); font-weight: 800; letter-spacing: -1px; margin-bottom: .35rem; }
.page-hero p { color: var(--text-muted); font-size: 1rem; }

.cv-actions { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; flex-wrap: wrap; }
.cv-buttons { display: flex; gap: .75rem; flex-wrap: wrap; }
.btn-cv-primary, .btn-cv-outline {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .88rem; font-weight: 700; padding: .6rem 1.3rem;
  border-radius: 8px; text-decoration: none; cursor: pointer; border: none;
  transition: opacity .15s, transform .15s;
}
.btn-cv-primary { background: linear-gradient(135deg, var(--accent), var(--accent2)); color: #fff; }
.btn-cv-primary:hover { opacity: .88; transform: translateY(-1px); }
.btn-cv-outline { background: transparent; color: var(--text); border: 1px solid var(--border); }
.btn-cv-outline:hover { border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.04); }

.cv-sheet { padding: 3rem 0 5rem; }
.cv-sheet .container { max-width: 820px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 16px; padding: 3rem; }

.cv-header { border-bottom: 1px solid var(--border); padding-bottom: 1.5rem; margin-bottom: 1.75rem; }
.cv-header h1 { font-size: 1.7rem; font-weight: 800; letter-spacing: -0.5px; margin-bottom: .3rem; }
.cv-title { font-size: .95rem; color: var(--accent); font-weight: 600; margin-bottom: .75rem; }
.cv-contact { font-size: .82rem; color: var(--text-muted); line-height: 1.9; }
.cv-contact a { color: var(--text-muted); }
.cv-contact a:hover { color: var(--text); }

.cv-sheet section { padding: 0 0 1.75rem; }
.cv-section-title {
  font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--accent); margin-bottom: .85rem;
}
.cv-body { font-size: .92rem; color: var(--text-muted); line-height: 1.75; }

.cv-skills-table { width: 100%; border-collapse: collapse; font-size: .87rem; }
.cv-skills-table th { text-align: left; color: var(--text); font-weight: 700; padding: .45rem .8rem .45rem 0; vertical-align: top; width: 34%; white-space: nowrap; }
.cv-skills-table td { color: var(--text-muted); padding: .45rem 0; }
.cv-skills-table tr { border-bottom: 1px solid var(--border); }
.cv-skills-table tr:last-child { border-bottom: none; }

.cv-entry { margin-bottom: 1.5rem; }
.cv-entry:last-child { margin-bottom: 0; }
.cv-entry-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: .5rem; }
.cv-entry-title { font-size: .96rem; font-weight: 700; color: var(--text); }
.cv-entry-date { font-size: .8rem; color: var(--text-muted); white-space: nowrap; }
.cv-list { margin: 0; padding-left: 1.1rem; font-size: .88rem; color: var(--text-muted); line-height: 1.7; }
.cv-list li { margin-bottom: .4rem; }
.cv-list li:last-child { margin-bottom: 0; }
.cv-list strong { color: var(--text); }

@media (max-width: 600px) {
  .cv-sheet .container { padding: 1.75rem 1.25rem; }
}

/* ── PRINT ── */
@media print {
  .no-print { display: none !important; }
  body { background: #fff; color: #111; }
  .cv-sheet { padding: 0; }
  .cv-sheet .container { max-width: 100%; background: #fff; border: none; padding: 0; }
  .cv-header, .cv-sheet section { border-color: #ccc; }
  .cv-section-title, .cv-title { color: #111; }
  .cv-body, .cv-list, .cv-contact, .cv-skills-table td, .cv-entry-date { color: #333; }
  .cv-entry-title, .cv-skills-table th { color: #111; }
  a { color: #111; text-decoration: underline; }
}
