/* Studio CV. Les titres de l’app ne doivent jamais gagner sur le papier :
   #view-cv h1 cassait le nom. Tout le papier est préfixé #view-cv .feuille-cv. */

#view-cv .cv-page { max-width: 1280px; margin: 0 auto; padding: 8px 16px 72px; }
#view-cv .cv-page > .kicker {
  margin: 0 0 8px; font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted);
}
#view-cv .cv-page > h1 {
  margin: 0; font-family: var(--serif); font-weight: 500; font-size: 36px;
  letter-spacing: -0.02em; line-height: 1.05; text-transform: none;
}
#view-cv .cv-bar { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 12px; margin: 4px 0 14px; }
#view-cv .cv-bar .k { margin: 0; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
#view-cv .cv-bar b { display: block; font-family: var(--serif); font-weight: 500; font-size: 18px; }
#view-cv .cv-chip {
  padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff;
  color: var(--ink); font: inherit; font-size: 13.5px;
}
#view-cv .cv-chip.on { background: var(--ink); color: #fff; border-color: var(--ink); }
#view-cv .cv-carte {
  display: grid; gap: 10px; text-align: left; padding: 10px 10px 14px; border-radius: 22px;
  border: 1.5px solid var(--line); background: #fff; color: var(--ink); font: inherit;
}
#view-cv .cv-carte:hover { border-color: color-mix(in srgb, var(--ink) 40%, var(--line)); }
#view-cv .cv-carte b { font-family: var(--serif); font-size: 20px; font-weight: 500; }
#view-cv .cv-carte small { font-size: 12.5px; color: var(--muted); }
#view-cv .cv-suite { display: block; margin-top: 20px; width: 100%; min-height: 50px; border-radius: 999px; }
#view-cv .btn { border: 0; font: inherit; cursor: pointer; }
#view-cv .btn.noir { background: var(--ink); color: #fff; }
#view-cv .btn.clair { background: #fff; color: var(--ink); border: 1px solid var(--line); }
#view-cv .btn.bleu { background: var(--accent); color: #fff; min-height: 50px; padding: 0 22px; border-radius: 999px; }
#view-cv .text { background: none; border: 0; padding: 6px; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; font: inherit; }

/* ---- Papier A4. Jamais les h1/h2 de l’app. ---- */
#view-cv .feuille-cv {
  width: 210mm; min-height: 297mm; padding: 16mm 17mm 14mm;
  background: #fffefb; color: var(--cv-encre, #16181c);
  font-family: var(--sans); font-size: 10.4pt; line-height: 1.36;
  transform: scale(var(--cv-z, 0.45)); transform-origin: top left;
  box-sizing: border-box;
}
#view-cv .feuille-cv h1 {
  margin: 0; font-family: var(--serif); font-weight: 500; font-size: 26pt;
  letter-spacing: -0.02em; line-height: 1; text-transform: none; color: inherit;
}
#view-cv .feuille-cv.c-encre { --cv-encre: #16181c; }
#view-cv .feuille-cv.c-marine { --cv-encre: #1b2a4a; }
#view-cv .feuille-cv.c-bleu { --cv-encre: #1f4bdb; }
#view-cv .feuille-cv.c-terre { --cv-encre: #9a3412; }
#view-cv .feuille-cv.c-vert { --cv-encre: #2f6f4e; }
#view-cv .feuille-cv.c-bordeaux { --cv-encre: #7f1d1d; }
#view-cv .feuille-cv.c-ardoise { --cv-encre: #3f4a5a; }
#view-cv .feuille-cv.p-serif, #view-cv .feuille-cv.p-serif h1, #view-cv .feuille-cv.p-serif h2 { font-family: var(--serif); }
#view-cv .feuille-cv.p-sans, #view-cv .feuille-cv.p-sans h1 { font-family: var(--sans); }
#view-cv .feuille-cv.p-mix { font-family: var(--sans); }
#view-cv .feuille-cv.p-mix h1 { font-family: var(--serif); }
#view-cv .feuille-cv.p-times, #view-cv .feuille-cv.p-times h1 { font-family: Georgia, "Times New Roman", Times, serif; }
#view-cv .feuille-cv.p-helvetica, #view-cv .feuille-cv.p-helvetica h1 { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
#view-cv .feuille-cv h2 {
  margin: 0 0 6pt; font-family: inherit; font-size: 8.3pt; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; border-bottom: 0.6pt solid currentColor;
  padding-bottom: 3pt; color: inherit; line-height: 1.2;
}
#view-cv .feuille-cv p { margin: 0; }
#view-cv .feuille-cv header { margin-bottom: 11pt; }
#view-cv .feuille-cv .cv-titre { margin: 5pt 0 0; font-size: 11pt; color: #3c4250; }
#view-cv .feuille-cv .cv-contact { margin: 6pt 0 0; font-size: 8.7pt; color: #5b6170; letter-spacing: 0.01em; }
#view-cv .feuille-cv section { margin-top: 12pt; }
#view-cv .feuille-cv [data-edit] { cursor: pointer; border-radius: 2pt; }
#view-cv .feuille-cv [data-edit]:hover { background: rgba(12, 27, 61, 0.035); }
#view-cv .feuille-cv .cv-jobs { list-style: none; margin: 0; padding: 0; display: grid; gap: 9pt; }
#view-cv .feuille-cv .cv-j-tete { display: flex; justify-content: space-between; gap: 12pt; align-items: baseline; }
#view-cv .feuille-cv .cv-j-tete b,
#view-cv .feuille-cv .cv-j-ligne b { font-size: 14px; font-weight: 600; font-family: var(--sans); }
#view-cv .feuille-cv .cv-j-tete em { font-style: normal; font-size: 8.6pt; color: #667; white-space: nowrap; font-variant-numeric: tabular-nums; }
#view-cv .feuille-cv .cv-jobs > li > span,
#view-cv .feuille-cv .cv-j-ligne span { display: block; font-size: 9.3pt; color: #4a5060; font-style: italic; }
#view-cv .feuille-cv .cv-jobs p { margin: 2pt 0 0; font-size: 9.5pt; padding-left: 9pt; position: relative; }
#view-cv .feuille-cv .cv-jobs p::before {
  content: ""; position: absolute; left: 0; top: 0.55em;
  width: 3.2pt; height: 3.2pt; border-radius: 50%; background: currentColor; opacity: 0.4;
}
#view-cv .feuille-cv .cv-phrase { font-size: 10pt; }
#view-cv .feuille-cv .cv-skills { font-size: 9.6pt; }
#view-cv .feuille-cv .cv-skills span + span::before { content: "· "; color: #8a8f99; }
#view-cv .feuille-cv .cv-hobbies { font-size: 9.6pt; }
#view-cv .feuille-cv.m-marketing-campagne .cv-skills,
#view-cv .feuille-cv.m-tech-startup .cv-skills { display: flex; flex-wrap: wrap; gap: 4pt; }
#view-cv .feuille-cv.m-marketing-campagne .cv-skills span,
#view-cv .feuille-cv.m-tech-startup .cv-skills span {
  border: 0.5pt solid currentColor; padding: 1pt 6pt; border-radius: 99pt; font-size: 8.4pt;
}
#view-cv .feuille-cv.m-marketing-campagne .cv-skills span + span::before,
#view-cv .feuille-cv.m-tech-startup .cv-skills span + span::before { content: none; }
#view-cv .feuille-cv .cv-liste { list-style: none; margin: 0; padding: 0; font-size: 9.5pt; }
#view-cv .feuille-cv .cv-liste li { display: flex; justify-content: space-between; gap: 8pt; }
#view-cv .feuille-cv .cv-liste b { font-weight: 550; }
#view-cv .feuille-cv .cv-liste em { font-style: normal; color: #667; }
#view-cv .feuille-cv .cv-cols { display: grid; grid-template-columns: 58mm minmax(0, 1fr); gap: 7mm; align-items: start; }
#view-cv .feuille-cv aside h2 { letter-spacing: 0.08em; font-size: 7.2pt; }
#view-cv .feuille-cv aside .cv-contact { display: grid; gap: 4pt; margin: 0 0 11pt; }
#view-cv .feuille-cv aside .cv-contact span { display: block; overflow-wrap: anywhere; font-size: 8.2pt; }
#view-cv .feuille-cv aside .cv-liste li { display: block; margin: 0 0 4pt; }
#view-cv .feuille-cv aside .cv-liste em { display: block; font-size: 8pt; }
#view-cv .feuille-cv aside .cv-skills { font-size: 8.6pt; line-height: 1.45; }
#view-cv .feuille-cv[data-layout="dates"] .cv-j-ligne {
  display: grid; grid-template-columns: 24mm minmax(0, 1fr); gap: 6pt 9pt; align-items: start;
}
#view-cv .feuille-cv[data-layout="dates"] .cv-j-ligne > em {
  font-style: normal; font-size: 7.8pt; color: #667; padding-top: 2pt; line-height: 1.35;
  font-variant-numeric: tabular-nums; white-space: normal;
}

/* Finance */
#view-cv .feuille-cv.m-finance-classique { font-family: var(--serif); }
#view-cv .feuille-cv.m-finance-classique header { text-align: center; border-bottom: 1.6pt solid currentColor; padding-bottom: 9pt; }
#view-cv .feuille-cv.m-finance-classique h1 { font-size: 28pt; letter-spacing: 0.04em; }
#view-cv .feuille-cv.m-finance-classique h2 { letter-spacing: 0.22em; font-family: var(--serif); }
#view-cv .feuille-cv.m-finance-classique .cv-j-tete b { font-family: var(--serif); }

#view-cv .feuille-cv.m-finance-banque { font-family: var(--serif); padding: 0; }
#view-cv .feuille-cv.m-finance-banque > header {
  background: var(--cv-encre, #1b2a4a); color: #fff; margin: 0; padding: 14mm 17mm 11mm;
}
#view-cv .feuille-cv.m-finance-banque > header .cv-titre,
#view-cv .feuille-cv.m-finance-banque > header .cv-contact { color: #d5dde8; }
#view-cv .feuille-cv.m-finance-banque .cv-cols { padding: 8mm 17mm 14mm; gap: 0; }
#view-cv .feuille-cv.m-finance-banque aside {
  background: #eef1f5; margin: 0; padding: 8mm 8mm 8mm 0; color: #1b2a4a;
}
#view-cv .feuille-cv.m-finance-banque .cv-main { padding: 8mm 0 8mm 9mm; }
#view-cv .feuille-cv.m-finance-banque h2 { letter-spacing: 0.18em; }

#view-cv .feuille-cv.m-finance-conseil { font-family: var(--serif); }
#view-cv .feuille-cv.m-finance-conseil h1 { font-size: 20pt; font-weight: 600; letter-spacing: 0; }
#view-cv .feuille-cv.m-finance-conseil header {
  display: grid; grid-template-columns: 1fr auto; grid-template-areas: "nom contact" "titre contact";
  gap: 2pt 12pt; align-items: end; border-bottom: 0.4pt solid #111; padding-bottom: 8pt;
}
#view-cv .feuille-cv.m-finance-conseil header h1 { grid-area: nom; }
#view-cv .feuille-cv.m-finance-conseil header .cv-titre { grid-area: titre; margin: 0; }
#view-cv .feuille-cv.m-finance-conseil header .cv-contact { grid-area: contact; text-align: right; max-width: 48mm; margin: 0; }
#view-cv .feuille-cv.m-finance-conseil h2 { border-bottom-width: 0.35pt; letter-spacing: 0.1em; }

/* Marketing */
#view-cv .feuille-cv.m-marketing-editorial { font-family: var(--serif); padding-top: 20mm; }
#view-cv .feuille-cv.m-marketing-editorial h1 { font-size: 34pt; font-weight: 400; letter-spacing: -0.03em; }
#view-cv .feuille-cv.m-marketing-editorial .cv-titre { font-style: italic; font-size: 13pt; }
#view-cv .feuille-cv.m-marketing-editorial h2 { border: 0; color: #9a3412; letter-spacing: 0.08em; font-family: var(--serif); text-transform: none; font-size: 13pt; font-weight: 500; }

#view-cv .feuille-cv.m-marketing-campagne,
#view-cv .feuille-cv.m-marketing-growth { padding-left: 15mm; box-shadow: inset 8pt 0 var(--cv-encre, #c2410c); }
#view-cv .feuille-cv.m-marketing-campagne h1,
#view-cv .feuille-cv.m-marketing-growth h1 { font-family: var(--sans); font-weight: 650; letter-spacing: -0.03em; font-size: 24pt; }
#view-cv .feuille-cv.m-marketing-campagne h2,
#view-cv .feuille-cv.m-marketing-growth h2 {
  border: 0; background: var(--cv-encre, #c2410c); color: #fff; display: inline-block;
  padding: 2pt 8pt; letter-spacing: 0.12em;
}

#view-cv .feuille-cv.m-marketing-marque > header {
  background: #e7f0ea; margin: -16mm -17mm 10mm; padding: 16mm 17mm 12mm;
}
#view-cv .feuille-cv.m-marketing-marque h1 { font-family: var(--serif); font-size: 28pt; }
#view-cv .feuille-cv.m-marketing-marque h2 { border: 0; color: #2f6f4e; letter-spacing: 0.14em; }

/* Tech */
#view-cv .feuille-cv.m-tech-produit { padding: 20mm 20mm 16mm; }
#view-cv .feuille-cv.m-tech-produit h1 { font-family: var(--sans); font-weight: 550; font-size: 24pt; }
#view-cv .feuille-cv.m-tech-produit h2 { border-color: #d4d8e0; color: #6b7280; font-weight: 500; }

#view-cv .feuille-cv.m-tech-ingenieur { font-size: 10pt; padding: 14mm 15mm; }
#view-cv .feuille-cv.m-tech-ingenieur header { border-bottom: 1pt solid #111; padding-bottom: 8pt; }
#view-cv .feuille-cv.m-tech-ingenieur h1 { font-family: var(--sans); font-size: 20pt; font-weight: 600; }
#view-cv .feuille-cv.m-tech-ingenieur aside { background: #f3f4f6; margin: 0; padding: 8mm 7mm 8mm 0; }
#view-cv .feuille-cv.m-tech-ingenieur .cv-cols { gap: 0; }
#view-cv .feuille-cv.m-tech-ingenieur .cv-main { padding-left: 8mm; }

#view-cv .feuille-cv.m-tech-startup h1 {
  font-family: var(--sans); border-bottom: 3.5pt solid #111; display: inline-block; padding-bottom: 2pt; font-size: 26pt;
}
#view-cv .feuille-cv.m-tech-startup h2 { border: 0; text-transform: none; letter-spacing: 0; font-size: 12pt; font-weight: 650; }

/* Général */
#view-cv .feuille-cv.m-general-universel { font-family: var(--serif); }
#view-cv .feuille-cv.m-general-universel header { text-align: center; }
#view-cv .feuille-cv.m-general-universel .cv-titre { font-style: italic; }
#view-cv .feuille-cv.m-general-universel h2 { font-family: var(--serif); letter-spacing: 0.18em; }

#view-cv .feuille-cv.m-general-sobre { color: #3d3d3d; padding: 20mm 20mm 16mm; }
#view-cv .feuille-cv.m-general-sobre h1 { font-family: var(--sans); font-size: 18pt; font-weight: 500; }
#view-cv .feuille-cv.m-general-sobre h2 { color: #6a6a6a; border-color: #d8d8d8; font-weight: 500; }

#view-cv .feuille-cv.m-general-cadre { box-shadow: inset 0 0 0 0.7pt #16181c; padding: 18mm; }
#view-cv .feuille-cv.m-general-cadre h1 {
  font-family: var(--serif); font-size: 22pt; letter-spacing: 0.14em; text-transform: uppercase;
}
#view-cv .feuille-cv.m-general-cadre h2 { letter-spacing: 0.2em; }

#view-cv .feuille-cv.m-finance-audit,
#view-cv .feuille-cv.m-general-compact { font-size: 9.4pt; padding: 12mm 14mm; }
#view-cv .feuille-cv.m-finance-audit h1,
#view-cv .feuille-cv.m-general-compact h1 { font-size: 18pt; }
#view-cv .feuille-cv.m-finance-fonds { font-family: var(--serif); }
#view-cv .feuille-cv.m-finance-fonds h1 { font-size: 18pt; letter-spacing: 0.04em; }
#view-cv .feuille-cv.m-marketing-luxe { padding-top: 22mm; }
#view-cv .feuille-cv.m-marketing-luxe h1 { font-size: 36pt; font-weight: 400; }
#view-cv .feuille-cv.m-tech-data aside { background: color-mix(in srgb, var(--cv-encre) 8%, #fff); }
#view-cv .feuille-cv.m-tech-design h1 { letter-spacing: -0.04em; }
#view-cv .feuille-cv.m-general-lettre { font-family: var(--serif); padding: 22mm 20mm; }
#view-cv .feuille-cv.m-general-lettre h1 { font-size: 30pt; font-weight: 400; }
#view-cv .feuille-cv.m-general-lettre h2 { border: 0; font-family: var(--serif); text-transform: none; letter-spacing: 0; font-size: 13pt; }

@media (min-width: 901px) {
  #view-cv .cv-page { padding: 18px 20px 80px; }
  #view-cv .cv-page > h1 { font-size: 44px; }
  #view-cv .cv-suite { width: auto; min-width: 180px; }
}
#view-cv .cv-retouches-tete {
  display: flex; align-items: center; gap: 14px; font-size: 12px; color: var(--muted);
}
#view-cv .cv-retouches-tete button {
  border: 0; background: none; padding: 0; font: inherit; font-weight: 600; cursor: pointer;
}
#view-cv .cv-retouches { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
#view-cv .cv-retouche {
  flex: 0 0 220px; display: grid; gap: 4px; padding: 10px;
  border-radius: 14px; background: #f4f4f5; border: 1px solid rgba(0,0,0,0.08);
}
#view-cv .cv-retouche b { font-size: 12px; font-weight: 650; }
#view-cv .cv-retouche s { font-size: 12px; color: #8e8e93; }
#view-cv .cv-retouche p { margin: 0; font-size: 14px; }

@media print {
  @page { size: A4; margin: 0; }
}
