/* ==========================================================
   VincenTimes — page CV
   Même DA que le site, en plus sobre et lisible ;
   version imprimable (A4) propre, sans trame ni effets.
   ========================================================== */

.cv { max-width: 820px; gap: 1.6rem; }
.cv .back { margin-bottom: 0.4rem; }

.cv .sheet { padding: clamp(1.3rem, 4.5vw, 2rem); }

/* Corps de texte en Alte Haas Grotesk : plus lisible pour un CV */
.cv-block p, .cv-block li, .cv-block dd, .cv-contact, .when {
  font-family: var(--font-toon);
  font-weight: 400;
  font-size: 0.98rem;
  line-height: 1.5;
}

/* En-tête */
.cv-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.2rem;
}
.cv-head h1 {
  font-family: var(--font-logo);
  font-weight: 700;
  font-size: clamp(2.2rem, 9vw, 3rem);
  line-height: 1.05;
  color: var(--cream);
  -webkit-text-stroke: 5px var(--ink);
  paint-order: stroke fill;
  text-shadow: 4px 5px 0 var(--red);
  filter: url(#pencil-text);
}
.cv-role { margin-top: 0.35rem; font-size: 1.35rem; }
.cv-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 1rem;
  margin-top: 0.7rem;
  list-style: none;
  color: var(--ink-soft);
}
.cv-contact a { color: var(--blue); text-underline-offset: 3px; }
.cv-pdf {
  --fill: var(--red);
  --c: #ff4a3d;
  padding: 0.55rem 1.1rem;
  font-size: 1.2rem;
  color: var(--cream);
  text-decoration: none;
  white-space: nowrap;
}

/* Liens dans le CV : soulignés en pointillé, rouges au survol */
.cv-block a {
  color: inherit;
  text-decoration: underline dotted;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}
.cv-block a:hover { color: var(--red); text-decoration-style: solid; }

/* Blocs */
.cv-block h2 {
  display: inline-block;
  margin-bottom: 1rem;
  padding: 0.05rem 0.7rem 0.15rem;
  font-size: 1.35rem;
  font-weight: 400;
  background: var(--yellow, #ffd21f);
  background: #ffd84d;
  border-radius: 4px 9px 5px 8px;
  box-shadow: 3px 3px 0 var(--red);
  transform: rotate(-1.5deg);
}
.cv-block strong { font-weight: 700; }

.job + .job {
  margin-top: 1.15rem;
  padding-top: 1.15rem;
  border-top: 2px dashed rgba(43, 23, 18, 0.18);
}
.job h3 {
  font-size: 1.28rem;
  font-weight: 400;
  line-height: 1.25;
}
.job .org { color: var(--ink-soft); }
.when {
  margin-top: 0.1rem;
  color: var(--red);
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.02em;
}
.job ul { margin-top: 0.45rem; padding-left: 1.1rem; }
.job li { margin-bottom: 0.25rem; }
.job li::marker { color: var(--red); }

.cv-cols {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 1.6rem;
}
@media (max-width: 700px) { .cv-cols { grid-template-columns: 1fr; } }

.langs { list-style: none; }
.langs li { margin-bottom: 0.3rem; }

.skills {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.55rem 1.2rem;
}
.skills dt { font-size: 1.15rem; line-height: 1.35; }
@media (max-width: 640px) {
  .skills { grid-template-columns: 1fr; gap: 0.1rem; }
  .skills dd { margin-bottom: 0.6rem; }
}

/* ---------- Impression / PDF : A4 sobre ---------- */
@page { size: A4; margin: 8mm 12mm; }
@media print {
  html, body { background: #fff !important; }
  body::before, body::after, .back, .cv-pdf, .cv .footer { display: none !important; }
  .reveal { animation: none !important; }
  .cv { max-width: none; padding: 0; gap: 2.2mm; }
  .cv .sheet { padding: 0; }
  .sketch::before, .sketch::after { display: none !important; }
  .cv-head { border-bottom: 1.5pt solid #2b1712; padding-bottom: 2mm; }
  .cv-head h1 { font-size: 20pt; -webkit-text-stroke: 0; color: #2b1712; text-shadow: none; filter: none; }
  .cv-role { font-size: 11.5pt; margin-top: 0.5mm; }
  .cv-contact { margin-top: 1mm; }
  .cv-contact, .cv-block p, .cv-block li, .cv-block dd { font-size: 8.2pt; line-height: 1.28; }
  .when { font-size: 7.8pt !important; line-height: 1.2; margin-top: 0; }
  .cv-contact a, .cv-block a { color: #2b1712; text-decoration: underline dotted 0.6pt; text-underline-offset: 1.5pt; }
  .cv-block h2 { background: none; box-shadow: none; transform: none; padding: 0; margin-bottom: 1mm; font-size: 11.5pt; color: #e8281e; }
  .job + .job { margin-top: 1.1mm; padding-top: 1.1mm; border-top: 0.5pt dashed #c9bfb8; }
  .job h3 { font-size: 10pt; line-height: 1.2; }
  .job ul { margin-top: 0.6mm; }
  .job li { margin-bottom: 0; }
  .skills { gap: 0.2mm 4mm; }
  .skills dt { font-size: 9.5pt; line-height: 1.3; }
  .langs li { margin-bottom: 0.4mm; }
  .cv-cols { gap: 6mm; }
  .job, .skills dt, .skills dd { break-inside: avoid; }
  /* L'anglais est un peu plus long : on resserre d'un cran pour tenir sur une page */
  html[lang="en"] .cv-block p, html[lang="en"] .cv-block li, html[lang="en"] .cv-block dd { font-size: 8pt; line-height: 1.26; }
  html[lang="en"] .job + .job { margin-top: 0.9mm; padding-top: 0.9mm; }
}
