/* =========================================
   CV / RÉSUMÉ
   ========================================= */
.cv-wrapper { max-width: 56rem; margin: 0 auto; }

.cv-top {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
}
@media (min-width: 640px) {
  .cv-top {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.cv-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--burgundy);
  color: var(--white);
  padding: 0.625rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background var(--ease);
}
.cv-download-btn:hover { background: var(--burgundy-dark); }

.cv-card {
  background: var(--surface);
  border: 1px solid var(--gray-200);
  padding: 2rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
@media (min-width: 768px) { .cv-card { padding: 4rem; } }

.cv-name-block {
  border-bottom: 1px solid var(--gray-200);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  text-align: center;
}
@media (min-width: 640px) { .cv-name-block { text-align: left; } }

.cv-name {
  font-family: var(--serif);
  font-size: 1.875rem;
  color: var(--gray-900);
  margin-bottom: 0.5rem;
}
.cv-role {
  color: var(--gray-600);
  margin-bottom: 1rem;
}

.cv-contacts {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  font-size: 0.875rem;
  color: var(--gray-500);
}
@media (min-width: 640px) { .cv-contacts { justify-content: flex-start; } }

.cv-contact-item {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
a.cv-contact-item {
  color: inherit;
  transition: color var(--ease);
}
a.cv-contact-item:hover { color: var(--burgundy); }

.cv-section { margin-bottom: 2.5rem; }

.cv-section-title {
  font-family: var(--serif);
  font-size: 1rem;
  color: var(--burgundy);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 1rem;
}

.cv-entry {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.cv-entry-name {
  font-size: 1rem;
  font-weight: 500;
  color: var(--gray-900);
}
.cv-entry-sub {
  font-size: 0.875rem;
  color: var(--gray-600);
  margin-top: 0.2rem;
}
.cv-entry-date {
  font-size: 0.875rem;
  color: var(--gray-400);
  white-space: nowrap;
}

.cv-bullets {
  list-style: disc;
  list-style-position: inside;
  color: var(--gray-600);
  font-size: 0.875rem;
  margin-top: 0.5rem;
}
.cv-bullets li { margin-bottom: 0.25rem; }

.cv-skills {
  color: var(--gray-600);
  font-size: 0.875rem;
  line-height: 1.85;
}

/* =========================================
   MOBILE
   ========================================= */
@media (max-width: 639px) {
  .cv-top {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
  }

  .cv-download-btn {
    padding: 0.3rem 0.75rem;
    font-size: 0.75rem;
    gap: 0.35rem;
    flex-shrink: 0;
  }
  .cv-download-btn svg { width: 12px; height: 12px; }

  .cv-card { padding: 1rem; }

  .cv-name-block {
    padding-bottom: 0.875rem;
    margin-bottom: 0.875rem;
  }
  .cv-name { font-size: 1.5rem; }

  .cv-section { margin-bottom: 1.25rem; }
  .cv-section-title { margin-bottom: 0.5rem; }

  .cv-entry {
    flex-direction: column;
    gap: 0.05rem;
    margin-bottom: 0.3rem;
  }
  .cv-entry-date {
    font-size: 0.75rem;
    white-space: normal;
  }

  .cv-bullets {
    margin-top: 0.2rem;
    margin-bottom: 0.6rem;
  }
  .cv-bullets li { margin-bottom: 0.1rem; }
}

/* =========================================
   PRINT  (Ctrl/Cmd + P)
   ========================================= */
@media print {
  #site-header,
  #site-footer,
  .cv-top {
    display: none !important;
  }

  body { background: #fff; }
  #main-content { padding: 0 !important; max-width: 100% !important; animation: none !important; }

  .cv-wrapper { max-width: 100% !important; }
  .cv-card {
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
  }

  .cv-section,
  .cv-entry,
  .cv-bullets,
  .cv-name-block {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  a { color: inherit !important; text-decoration: none !important; }
}
