/* ============================================================
   Modèles de CV — dimensions réelles A4 (210 × 297 mm).
   À l'écran, la feuille est réduite par transform: scale().
   À l'impression, elle est rendue à taille réelle.
   Fontes système uniquement : rendu identique à l'impression.
   Chargé sur : /creer-un-cv/, /modeles-cv/, / (vignettes).
   ============================================================ */

.cv-sheet {
  width: 210mm;
  min-height: 297mm;
  background: #fff;
  color: #23262d;
  font-size: 10pt;
  line-height: 1.45;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  position: relative;
}

.cv-sheet p,
.cv-sheet ul {
  margin: 0;
}

.cv-sheet ul {
  padding-left: 4.2mm;
}

.cv-sheet li {
  margin-bottom: 0.8mm;
}

.cv-item {
  break-inside: avoid;
}

.cv-photo {
  object-fit: cover;
}

/* ------------------------------------------------------------
   MODERNE — colonne latérale colorée
   ------------------------------------------------------------ */

.cvt-moderne {
  display: grid;
  grid-template-columns: 66mm 1fr;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.cvt-moderne .cvt-side {
  background: var(--cvt-accent, #2b50e0);
  color: #fff;
  padding: 12mm 8mm;
  display: flex;
  flex-direction: column;
  gap: 7mm;
}

.cvt-moderne .cvt-side .cv-photo {
  width: 34mm;
  height: 34mm;
  border-radius: 50%;
  border: 1.2mm solid rgba(255, 255, 255, 0.35);
  margin-inline: auto;
}

.cvt-moderne .cvt-initiales {
  width: 34mm;
  height: 34mm;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  border: 1.2mm solid rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22pt;
  font-weight: 700;
  margin-inline: auto;
}

.cvt-moderne .cvt-side-section h3,
.cvt-moderne .cvt-side-section .cvt-h {
  font-size: 9pt;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin: 0 0 2.5mm;
  padding-bottom: 1.5mm;
  border-bottom: 0.4mm solid rgba(255, 255, 255, 0.35);
  font-weight: 700;
}

.cvt-moderne .cvt-side-section p,
.cvt-moderne .cvt-side-section li {
  font-size: 8.5pt;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.92);
  word-break: break-word;
}

.cvt-moderne .cvt-side-section ul {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 1.6mm;
}

.cvt-moderne .cvt-langue {
  display: flex;
  justify-content: space-between;
  gap: 2mm;
}
.cvt-moderne .cvt-langue span:last-child {
  color: rgba(255, 255, 255, 0.7);
  font-size: 8pt;
}

.cvt-moderne .cvt-main {
  padding: 12mm 10mm 12mm 9mm;
}

.cvt-moderne .cvt-nom {
  font-size: 23pt;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #1a1e26;
  margin: 0;
}

.cvt-moderne .cvt-titre {
  font-size: 11.5pt;
  color: var(--cvt-accent, #2b50e0);
  font-weight: 600;
  margin: 1.5mm 0 0;
}

.cvt-moderne .cvt-accroche {
  margin-top: 4mm;
  font-size: 9.5pt;
  color: #454d5d;
}

.cvt-moderne .cvt-main-section {
  margin-top: 7mm;
}

.cvt-moderne .cvt-main-section > h3,
.cvt-moderne .cvt-main-section > .cvt-h {
  font-size: 10.5pt;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #1a1e26;
  border-bottom: 0.5mm solid var(--cvt-accent, #2b50e0);
  padding-bottom: 1.5mm;
  margin: 0 0 4mm;
  font-weight: 700;
}

.cvt-moderne .cv-item {
  margin-bottom: 4.5mm;
}

.cvt-moderne .cvt-item-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 4mm;
}

.cvt-moderne .cvt-poste {
  font-weight: 700;
  font-size: 10.5pt;
}

.cvt-moderne .cvt-dates {
  font-size: 8.5pt;
  color: #737b8a;
  white-space: nowrap;
}

.cvt-moderne .cvt-societe {
  font-size: 9.5pt;
  color: var(--cvt-accent, #2b50e0);
  font-weight: 600;
  margin-bottom: 1.2mm;
}

.cvt-moderne .cvt-desc,
.cvt-moderne .cvt-desc li {
  font-size: 9pt;
  color: #454d5d;
}

/* ------------------------------------------------------------
   CLASSIQUE — une colonne, serif, en-tête centré
   ------------------------------------------------------------ */

.cvt-classique {
  font-family: Georgia, 'Times New Roman', serif;
  padding: 14mm 16mm;
}

.cvt-classique .cvt-head {
  text-align: center;
  padding-bottom: 5mm;
  border-bottom: 0.6mm double #23262d;
  margin-bottom: 6mm;
}

.cvt-classique .cv-photo {
  width: 28mm;
  height: 28mm;
  border-radius: 50%;
  margin-bottom: 3mm;
}

.cvt-classique .cvt-nom {
  font-size: 21pt;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0;
  color: #1a1e26;
}

.cvt-classique .cvt-titre {
  font-size: 11pt;
  font-style: italic;
  color: var(--cvt-accent, #2b50e0);
  margin: 1.5mm 0 2.5mm;
}

.cvt-classique .cvt-contact {
  font-size: 9pt;
  color: #454d5d;
}

.cvt-classique .cvt-section {
  margin-bottom: 6mm;
}

.cvt-classique .cvt-section > h3,
.cvt-classique .cvt-section > .cvt-h {
  font-size: 11pt;
  font-variant: small-caps;
  letter-spacing: 0.08em;
  border-bottom: 0.3mm solid #c9c5ba;
  padding-bottom: 1mm;
  margin: 0 0 3.5mm;
  color: #1a1e26;
  font-weight: 700;
}

.cvt-classique .cvt-accroche {
  font-size: 10pt;
  font-style: italic;
  color: #454d5d;
  text-align: center;
  max-width: 150mm;
  margin: 0 auto 6mm;
}

.cvt-classique .cv-item {
  margin-bottom: 4.5mm;
}

.cvt-classique .cvt-item-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 4mm;
}

.cvt-classique .cvt-poste {
  font-weight: 700;
  font-size: 10.5pt;
}

.cvt-classique .cvt-dates {
  font-size: 9pt;
  font-style: italic;
  color: #737b8a;
  white-space: nowrap;
}

.cvt-classique .cvt-societe {
  font-size: 9.5pt;
  color: #454d5d;
  margin-bottom: 1.2mm;
}

.cvt-classique .cvt-desc,
.cvt-classique .cvt-desc li {
  font-size: 9.5pt;
  color: #454d5d;
}

.cvt-classique .cvt-inline-list {
  font-size: 9.5pt;
  color: #454d5d;
}

.cvt-classique .cvt-deux-colonnes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6mm;
}

/* ------------------------------------------------------------
   ÉLÉGANT — en-tête typographique, deux colonnes
   ------------------------------------------------------------ */

.cvt-elegant {
  font-family: Georgia, 'Times New Roman', serif;
  padding: 14mm 15mm;
}

.cvt-elegant .cvt-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 8mm;
  padding-bottom: 5mm;
  border-bottom: 0.8mm solid var(--cvt-accent, #2b50e0);
  margin-bottom: 7mm;
}

.cvt-elegant .cvt-head-left {
  display: flex;
  align-items: center;
  gap: 5mm;
}

.cvt-elegant .cv-photo {
  width: 26mm;
  height: 26mm;
  border-radius: 50%;
}

.cvt-elegant .cvt-nom {
  font-size: 22pt;
  line-height: 1.08;
  margin: 0;
  color: #1a1e26;
}

.cvt-elegant .cvt-nom .cvt-prenom {
  font-weight: 400;
  display: block;
}

.cvt-elegant .cvt-nom .cvt-famille {
  font-weight: 700;
  display: block;
}

.cvt-elegant .cvt-titre {
  font-size: 10.5pt;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cvt-accent, #2b50e0);
  margin: 2mm 0 0;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 500;
}

.cvt-elegant .cvt-head-contact {
  text-align: right;
  font-size: 8.5pt;
  color: #454d5d;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  line-height: 1.7;
  flex-shrink: 0;
}

.cvt-elegant .cvt-corps {
  display: grid;
  grid-template-columns: 58mm 1fr;
  gap: 9mm;
}

.cvt-elegant h3,
.cvt-elegant .cvt-h {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 8.5pt;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--cvt-accent, #2b50e0);
  margin: 0 0 3mm;
  font-weight: 700;
}

.cvt-elegant .cvt-section {
  margin-bottom: 7mm;
}

.cvt-elegant .cvt-accroche {
  font-size: 9.5pt;
  font-style: italic;
  color: #454d5d;
}

.cvt-elegant .cvt-col-gauche p,
.cvt-elegant .cvt-col-gauche li {
  font-size: 9pt;
  color: #454d5d;
}

.cvt-elegant .cvt-col-gauche ul {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 1.6mm;
}

.cvt-elegant .cvt-langue {
  display: flex;
  justify-content: space-between;
}
.cvt-elegant .cvt-langue span:last-child {
  color: #737b8a;
  font-size: 8.5pt;
}

.cvt-elegant .cv-item {
  margin-bottom: 5mm;
}

.cvt-elegant .cvt-poste {
  font-weight: 700;
  font-size: 10.5pt;
  color: #1a1e26;
}

.cvt-elegant .cvt-societe-ligne {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 4mm;
  margin: 0.6mm 0 1.4mm;
}

.cvt-elegant .cvt-societe {
  font-size: 9.5pt;
  font-style: italic;
  color: #454d5d;
}

.cvt-elegant .cvt-dates {
  font-size: 8.5pt;
  color: #737b8a;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  white-space: nowrap;
}

.cvt-elegant .cvt-desc,
.cvt-elegant .cvt-desc li {
  font-size: 9.5pt;
  color: #454d5d;
}

/* ------------------------------------------------------------
   MINIMAL — épuré, dates en colonne
   ------------------------------------------------------------ */

.cvt-minimal {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  padding: 15mm 17mm;
}

.cvt-minimal .cvt-head {
  display: flex;
  align-items: center;
  gap: 6mm;
  margin-bottom: 9mm;
}

.cvt-minimal .cv-photo {
  width: 24mm;
  height: 24mm;
  border-radius: 50%;
}

.cvt-minimal .cvt-nom {
  font-size: 19pt;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
  color: #1a1e26;
}

.cvt-minimal .cvt-titre {
  font-size: 10.5pt;
  color: #737b8a;
  margin: 1mm 0 1.5mm;
}

.cvt-minimal .cvt-contact {
  font-size: 8.5pt;
  color: #737b8a;
}

.cvt-minimal .cvt-section {
  margin-bottom: 7mm;
}

.cvt-minimal h3,
.cvt-minimal .cvt-h {
  font-size: 8.5pt;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: #9aa1ad;
  margin: 0 0 3.5mm;
  font-weight: 600;
}

.cvt-minimal .cvt-accroche {
  font-size: 9.5pt;
  color: #454d5d;
  max-width: 165mm;
}

.cvt-minimal .cv-item {
  display: grid;
  grid-template-columns: 34mm 1fr;
  gap: 4mm;
  margin-bottom: 4.5mm;
}

.cvt-minimal .cvt-dates {
  font-size: 8.5pt;
  color: #9aa1ad;
  padding-top: 0.8mm;
}

.cvt-minimal .cvt-poste {
  font-weight: 600;
  font-size: 10pt;
  color: #1a1e26;
}

.cvt-minimal .cvt-societe {
  font-size: 9pt;
  color: var(--cvt-accent, #2b50e0);
  margin: 0.4mm 0 1.2mm;
  font-weight: 500;
}

.cvt-minimal .cvt-desc,
.cvt-minimal .cvt-desc li {
  font-size: 9pt;
  color: #454d5d;
}

.cvt-minimal .cvt-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 1.8mm;
  list-style: none;
  padding: 0;
}

.cvt-minimal .cvt-chips li {
  border: 0.3mm solid #d9d6cd;
  border-radius: 999px;
  padding: 0.8mm 3mm;
  font-size: 8.5pt;
  color: #454d5d;
  margin: 0;
}

.cvt-minimal .cvt-langues-ligne {
  font-size: 9pt;
  color: #454d5d;
}
