/* Luxshope CV - Tous droits réservés */

/* Rendu des CV (javascript/cv/render.js) : page A4, indépendante du thème de l'interface (clair / sombre) et de
   Tailwind. Variables posées par le rendu sur .cv-page : --cv-primary, --cv-accent, --cv-text, --cv-muted, --cv-bg,
   --cv-side-bg, --cv-side-text, --cv-font-heading, --cv-font-body, --cv-font-name, --cv-size (texte), --cv-line (interligne),
   --cv-size-name, --cv-size-title, --cv-size-section, --cv-size-item (tailles en px), --cv-side-w, --cv-gap, --cv-pad.
   Classes de design : cv-layout-*, cv-heading-*, cv-skills-*, cv-uppercase. Colonne latérale colorée (mises en page
   sidebar-*) : .cv-side-colored, aux couleurs --cv-side-bg / --cv-side-text ; ailleurs, .cv-side garde celles de la page. */

.cv-page
{
    width: 210mm;
    min-height: 297mm;
    box-sizing: border-box;
    background: var(--cv-bg);
    color: var(--cv-text);
    font-size: var(--cv-size);
    line-height: var(--cv-line, 1.45);
    text-align: left;
    overflow-wrap: anywhere;
    position: relative;
    overflow: hidden;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}
.cv-page *, .cv-page *::before, .cv-page *::after { box-sizing: border-box; }
/* Polices du modèle (global.css impose Montserrat à tous les éléments ; les icônes Font Awesome gardent la leur) */
.cv-page, .cv-page *:not([class*="fa-"]) { font-family: var(--cv-font-body); }
.cv-page .cv-section-title, .cv-page .cv-section-title *:not([class*="fa-"]), .cv-page .cv-item-title { font-family: var(--cv-font-heading); }
.cv-page .cv-name, .cv-page .cv-name *:not([class*="fa-"]) { font-family: var(--cv-font-name); }
.cv-page h1, .cv-page h2, .cv-page h3, .cv-page p, .cv-page ul { margin: 0; padding: 0; }
.cv-page ul { list-style: none; }
.cv-page img { display: block; max-width: 100%; }

/* ─── Mises en page ─── */
.cv-layout-sidebar-left, .cv-layout-sidebar-right { display: grid; grid-template-columns: var(--cv-side-w) minmax(0, 1fr); }
.cv-layout-sidebar-right { grid-template-columns: minmax(0, 1fr) var(--cv-side-w); }
.cv-layout-sidebar-right .cv-side { order: 2; }

.cv-side { display: flex; flex-direction: column; gap: calc(var(--cv-gap) * 1.6); padding: var(--cv-pad) calc(var(--cv-pad) * .62); }
.cv-main { display: flex; flex-direction: column; gap: calc(var(--cv-gap) * 1.6); padding: var(--cv-pad); min-width: 0; }
.cv-side-colored
{
    background: var(--cv-side-bg);
    color: var(--cv-side-text);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

/* Bandeau (header) puis deux colonnes */
.cv-band { position: relative; overflow: hidden; display: flex; align-items: center; gap: calc(var(--cv-gap) * 1.6); padding: calc(var(--cv-pad) * .85) var(--cv-pad);
           background: var(--cv-primary); color: var(--cv-on-primary); }
.cv-band-text { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.cv-band .cv-title { color: var(--cv-on-primary); opacity: .85; }
.cv-columns { display: grid; grid-template-columns: minmax(0, 1fr) var(--cv-side-w); }
.cv-columns-single { grid-template-columns: minmax(0, 1fr); }
.cv-layout-header .cv-side, .cv-layout-hero .cv-side { border-left: 1px solid color-mix(in srgb, var(--cv-primary) 14%, transparent); padding-left: calc(var(--cv-pad) * .55); }
.cv-layout-header .cv-main, .cv-layout-hero .cv-main { padding-right: calc(var(--cv-pad) * .7); }

/* Une colonne */
.cv-header-single { display: flex; align-items: center; gap: calc(var(--cv-gap) * 1.6); padding: var(--cv-pad) var(--cv-pad) 0; }
.cv-header-text { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.cv-layout-single .cv-header-single { padding-bottom: calc(var(--cv-gap) * .4); }

/* ─── Identité ─── */
.cv-identity { display: flex; flex-direction: column; gap: 4px; }
.cv-name { font-size: var(--cv-size-name); line-height: 1.08; font-weight: 400; letter-spacing: -.01em; color: var(--cv-primary); }
.cv-last { font-weight: 700; }
.cv-uppercase .cv-name { text-transform: uppercase; letter-spacing: .02em; }
.cv-title { font-size: var(--cv-size-title); font-weight: 500; color: var(--cv-accent); }
.cv-band .cv-name { color: var(--cv-on-primary); }
.cv-header { padding-bottom: calc(var(--cv-gap) * .2); }

.cv-photo { flex-shrink: 0; width: 120px; height: 120px; overflow: hidden; }
.cv-photo img { width: 100%; height: 100%; object-fit: cover; }
.cv-photo-circle { border-radius: 50%; }
.cv-photo-rounded { border-radius: 16px; }
.cv-photo-square { border-radius: 0; }
.cv-side > .cv-photo { align-self: center; width: 132px; height: 132px; border: 3px solid color-mix(in srgb, var(--cv-side-text) 25%, transparent); }
.cv-band .cv-photo { width: 104px; height: 104px; border: 3px solid color-mix(in srgb, var(--cv-on-primary) 35%, transparent); }
.cv-header-single .cv-photo { width: 96px; height: 96px; }

/* Coordonnées */
.cv-contact { display: flex; flex-direction: column; gap: 7px; }
.cv-contact li { display: flex; align-items: flex-start; gap: 9px; font-size: .92em; }
.cv-contact i { width: 14px; flex-shrink: 0; margin-top: .25em; font-size: .9em; text-align: center; color: var(--cv-accent); }
.cv-side-colored .cv-contact i { color: inherit; opacity: .8; }
.cv-contact-inline { flex-direction: row; flex-wrap: wrap; gap: 6px 16px; }
.cv-contact-inline li { align-items: center; }
.cv-contact-inline i { margin-top: 0; }
.cv-band .cv-contact-inline { color: var(--cv-on-primary); }
.cv-band .cv-contact-inline i { color: inherit; }

/* ─── Sections ─── */
.cv-section { display: flex; flex-direction: column; gap: calc(var(--cv-gap) * .75); }
.cv-section-title { break-after: avoid-page; }
.cv-section-body { display: flex; flex-direction: column; gap: var(--cv-gap); }
.cv-section-title { font-size: var(--cv-size-section); font-weight: 700; color: var(--cv-primary); letter-spacing: .01em; }
.cv-uppercase .cv-section-title { text-transform: uppercase; letter-spacing: .08em; }
.cv-side-colored .cv-section-title { color: var(--cv-side-text); }

/* Styles des titres */
.cv-heading-line .cv-section-title { display: flex; align-items: center; gap: 10px; }
.cv-heading-line .cv-section-title::after { content: ''; flex: 1; height: 1px; background: color-mix(in srgb, var(--cv-primary) 30%, transparent); }
.cv-heading-line .cv-side-colored .cv-section-title::after { background: color-mix(in srgb, var(--cv-side-text) 35%, transparent); }
.cv-heading-underline .cv-section-title span { display: inline-block; padding-bottom: 4px; border-bottom: 2px solid var(--cv-accent); }
.cv-heading-band .cv-section-title { padding: 5px 10px; border-radius: 4px; background: color-mix(in srgb, var(--cv-primary) 10%, transparent); }
.cv-heading-band .cv-side-colored .cv-section-title { background: color-mix(in srgb, var(--cv-side-text) 12%, transparent); }
.cv-heading-plain .cv-section-title { color: var(--cv-accent); }
.cv-heading-plain .cv-side-colored .cv-section-title { color: var(--cv-side-text); opacity: .85; }

/* Expériences, formations, projets */
.cv-item { display: flex; flex-direction: column; gap: 5px; break-inside: avoid; }
.cv-item-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.cv-item-heading { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.cv-item-title { font-size: var(--cv-size-item); font-weight: 700; color: var(--cv-text); }
.cv-item-sub { font-size: .93em; font-weight: 600; color: var(--cv-accent); }
.cv-item-date { flex-shrink: 0; font-size: .86em; font-weight: 600; color: var(--cv-muted); white-space: nowrap; padding-top: .15em; }
.cv-side .cv-item-head { flex-direction: column; gap: 2px; }
.cv-side-colored .cv-item-title { color: inherit; }
.cv-side-colored .cv-item-sub, .cv-side-colored .cv-item-date { color: inherit; opacity: .8; }

.cv-text { display: flex; flex-direction: column; gap: 4px; color: var(--cv-text); }
.cv-side-colored .cv-text { color: inherit; }
.cv-bullets { display: flex; flex-direction: column; gap: 2px; }
.cv-bullets li { position: relative; padding-left: 14px; }
.cv-bullets li::before { content: ''; position: absolute; left: 2px; top: .62em; width: 5px; height: 5px; border-radius: 50%; background: var(--cv-accent); }
.cv-side-colored .cv-bullets li::before { background: currentColor; }

/* Listes simples (certifications) */
.cv-list { display: flex; flex-direction: column; gap: 7px; }
.cv-list li { display: flex; flex-direction: column; }
.cv-list-title { font-weight: 600; }
.cv-list-sub { font-size: .9em; color: var(--cv-muted); }
.cv-side-colored .cv-list-sub { color: inherit; opacity: .8; }

/* ─── Niveaux : barres, pastilles, étiquettes, texte ─── */
.cv-levels { display: flex; flex-direction: column; gap: 8px; }
.cv-levels li { display: flex; flex-direction: column; gap: 4px; }
.cv-levels-dots li, .cv-levels-text li { flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; }
.cv-level-name { font-weight: 500; }
.cv-bar { display: block; height: 5px; border-radius: 99px; overflow: hidden; background: color-mix(in srgb, var(--cv-primary) 15%, transparent); }
.cv-bar > span { display: block; height: 100%; border-radius: inherit; background: var(--cv-accent); }
.cv-side-colored .cv-bar { background: color-mix(in srgb, var(--cv-side-text) 22%, transparent); }
.cv-side-colored .cv-bar > span { background: var(--cv-side-text); }
.cv-dots { display: inline-flex; gap: 4px; flex-shrink: 0; }
.cv-dots > span { width: 8px; height: 8px; border-radius: 50%; background: color-mix(in srgb, var(--cv-primary) 18%, transparent); }
.cv-dots > span.on { background: var(--cv-accent); }
.cv-side-colored .cv-dots > span { background: color-mix(in srgb, var(--cv-side-text) 25%, transparent); }
.cv-side-colored .cv-dots > span.on { background: var(--cv-side-text); }
.cv-level-text { flex-shrink: 0; font-size: .88em; color: var(--cv-muted); }
.cv-side-colored .cv-level-text { color: inherit; opacity: .8; }

.cv-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.cv-tags li { padding: 3px 9px; border-radius: 99px; font-size: .9em; font-weight: 500; background: color-mix(in srgb, var(--cv-primary) 10%, transparent); color: var(--cv-primary); }
.cv-side-colored .cv-tags li { background: color-mix(in srgb, var(--cv-side-text) 14%, transparent); color: inherit; }
.cv-tag-level { opacity: .7; font-weight: 400; }
.cv-tags-soft li { background: transparent; border: 1px solid color-mix(in srgb, var(--cv-primary) 25%, transparent); }
.cv-side-colored .cv-tags-soft li { background: transparent; border-color: color-mix(in srgb, var(--cv-side-text) 35%, transparent); }

/* ═══ Designs avancés : en-tête « hero », décor, dégradés, styles de titres, d'éléments, de niveaux et de photo ═══ */

/* Contenu au-dessus du décor de fond */
.cv-page > :not(.cv-deco) { position: relative; z-index: 1; }

/* En-tête « hero » : grand bandeau centré, photo à cheval, coordonnées dessous */
.cv-hero { display: flex; flex-direction: column; align-items: center; text-align: center; padding-bottom: calc(var(--cv-gap) * 1.2);
           border-bottom: 1px solid color-mix(in srgb, var(--cv-primary) 12%, transparent); }
.cv-hero-band { width: 100%; justify-content: center; padding: calc(var(--cv-pad) * 1.15) var(--cv-pad) calc(var(--cv-pad) * 1.3); }
.cv-hero-with-photo .cv-hero-band { padding-bottom: 92px; }
.cv-hero-text { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.cv-hero .cv-identity { align-items: center; }
.cv-hero-photo { margin-top: -74px; position: relative; z-index: 2; }
.cv-hero-photo .cv-photo { width: 140px; height: 140px; border: 6px solid var(--cv-bg); }
.cv-hero .cv-contact-inline { justify-content: center; margin-top: calc(var(--cv-gap) * 1.1); padding: 0 var(--cv-pad); color: var(--cv-text); }

/* Nom sur deux lignes : prénom fin au-dessus, nom en grand */
.cv-name-stacked .cv-first { display: block; margin-bottom: .18em; font-size: .42em; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; opacity: .85; }
.cv-name-stacked .cv-last { display: block; }

/* Dégradés : bandeau et colonne latérale vers la couleur d'accent */
.cv-gradient .cv-band { background: linear-gradient(125deg, var(--cv-primary) 0%, var(--cv-accent) 100%); }
.cv-gradient .cv-side-colored { background: linear-gradient(170deg, var(--cv-side-bg) 15%, color-mix(in srgb, var(--cv-side-bg) 55%, var(--cv-accent)) 100%); }

/* Décor : formes (cercles en coin), trame de points, vague et diagonale sous le bandeau */
.cv-deco { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.cv-deco::before, .cv-deco::after { content: ''; position: absolute; }
.cv-deco-shapes .cv-deco::before { width: 360px; height: 360px; top: -170px; right: -130px; border-radius: 50%; background: color-mix(in srgb, var(--cv-accent) 16%, transparent); }
.cv-deco-shapes .cv-deco::after { width: 240px; height: 240px; bottom: -110px; left: -80px; border-radius: 50%; background: color-mix(in srgb, var(--cv-primary) 10%, transparent); }
.cv-layout-sidebar-left.cv-deco-shapes .cv-deco::after { left: auto; right: -90px; }
.cv-deco-shapes .cv-band::before, .cv-deco-shapes .cv-band::after { content: ''; position: absolute; border-radius: 50%; background: color-mix(in srgb, var(--cv-on-primary) 10%, transparent); pointer-events: none; }
.cv-deco-shapes .cv-band::before { width: 260px; height: 260px; top: -120px; right: -60px; }
.cv-deco-shapes .cv-band::after { width: 140px; height: 140px; bottom: -70px; right: 180px; }
.cv-deco-shapes .cv-band > * { position: relative; }
.cv-deco-dots .cv-deco::before, .cv-deco-dots .cv-deco::after
{
    background-image: radial-gradient(color-mix(in srgb, var(--cv-accent) 55%, transparent) 1.7px, transparent 2px);
    background-size: 14px 14px;
}
.cv-deco-dots .cv-deco::before { width: 168px; height: 112px; top: 22px; right: 22px; }
.cv-deco-dots .cv-deco::after { width: 112px; height: 168px; bottom: 22px; right: 22px; opacity: .6; }
.cv-layout-sidebar-right.cv-deco-dots .cv-deco::before, .cv-layout-sidebar-right.cv-deco-dots .cv-deco::after { right: auto; left: 22px; }
.cv-deco-wave .cv-band { padding-bottom: calc(var(--cv-pad) * .85 + 34px); }
.cv-deco-wave .cv-hero-band { padding-bottom: calc(var(--cv-pad) * 1.3 + 34px); }
.cv-deco-wave .cv-hero-with-photo .cv-hero-band { padding-bottom: 120px; }
.cv-wave { position: absolute; left: 0; bottom: -1px; width: 100%; height: 46px; fill: var(--cv-bg); z-index: 1; }
.cv-deco-diagonal .cv-band { clip-path: polygon(0 0, 100% 0, 100% 74%, 0 100%); padding-bottom: calc(var(--cv-pad) * .85 + 40px); }
.cv-deco-diagonal .cv-hero-with-photo .cv-hero-band { padding-bottom: 120px; }

/* Titres de section : icône, numéro, pastille, barre */
.cv-heading-icon .cv-section-title { display: flex; align-items: center; gap: .65em; }
.cv-h-icon { width: 2em; height: 2em; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; font-size: .78em;
             background: var(--cv-primary); color: var(--cv-on-primary); letter-spacing: 0; }
.cv-side-colored .cv-h-icon { background: var(--cv-side-text); color: var(--cv-side-bg); }
.cv-heading-number .cv-main, .cv-heading-number .cv-side { counter-reset: cv-section; }
.cv-heading-number .cv-section-title { display: flex; align-items: baseline; gap: .7em; }
.cv-heading-number .cv-section-title::before { counter-increment: cv-section; content: counter(cv-section, decimal-leading-zero); flex-shrink: 0; white-space: nowrap; font-size: 1.35em; font-weight: 800; letter-spacing: 0; color: var(--cv-accent); }
.cv-heading-number .cv-section-title::after { content: ''; flex: 1 1 12px; min-width: 12px; height: 1px; align-self: center; background: color-mix(in srgb, var(--cv-primary) 22%, transparent); }
.cv-heading-number .cv-side-colored .cv-section-title::before { color: var(--cv-side-text); opacity: .55; }
.cv-heading-number .cv-side-colored .cv-section-title::after { background: color-mix(in srgb, var(--cv-side-text) 30%, transparent); }
.cv-heading-pill .cv-section-title span { display: inline-block; padding: .38em 1.05em; border-radius: 99px; background: var(--cv-primary); color: var(--cv-on-primary); }
.cv-heading-pill .cv-side-colored .cv-section-title span { background: var(--cv-side-text); color: var(--cv-side-bg); }
.cv-heading-bar .cv-section-title { padding-left: .7em; border-left: 4px solid var(--cv-accent); line-height: 1.15; }

/* Expériences, formations, projets : frise chronologique ou cartes (colonne principale) */
.cv-items-timeline .cv-main .cv-section-body { gap: 0; }
.cv-items-timeline .cv-main .cv-item { position: relative; margin-left: 6px; padding: 0 0 var(--cv-gap) 20px; border-left: 2px solid color-mix(in srgb, var(--cv-primary) 20%, transparent); }
.cv-items-timeline .cv-main .cv-item:last-child { padding-bottom: 2px; }
.cv-items-timeline .cv-main .cv-item::before { content: ''; position: absolute; left: -8px; top: .25em; width: 14px; height: 14px; border-radius: 50%;
                                               background: var(--cv-bg); border: 3px solid var(--cv-accent); }
.cv-items-cards .cv-main .cv-item { padding: 12px 14px; border-radius: 10px; background: color-mix(in srgb, var(--cv-primary) 6%, var(--cv-bg));
                                    border: 1px solid color-mix(in srgb, var(--cv-primary) 10%, transparent); }

/* Niveaux : segments et anneaux */
.cv-levels-segments li { flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; }
.cv-segments { display: inline-flex; gap: 3px; flex-shrink: 0; }
.cv-segments > span { width: 14px; height: 6px; border-radius: 2px; background: color-mix(in srgb, var(--cv-primary) 15%, transparent); }
.cv-segments > span.on { background: var(--cv-accent); }
.cv-side-colored .cv-segments > span { background: color-mix(in srgb, var(--cv-side-text) 22%, transparent); }
.cv-side-colored .cv-segments > span.on { background: var(--cv-side-text); }
.cv-levels-rings { display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: 12px 8px; }
.cv-levels-rings li { align-items: center; gap: 5px; text-align: center; }
.cv-levels-rings .cv-level-name { font-size: .88em; line-height: 1.25; }
.cv-ring { width: 50px; height: 50px; }
.cv-ring-track { fill: none; stroke: color-mix(in srgb, var(--cv-primary) 14%, transparent); stroke-width: 3.4; }
.cv-ring-value { fill: none; stroke: var(--cv-accent); stroke-width: 3.4; stroke-linecap: round; }
.cv-ring text { font-size: 9px; font-weight: 700; fill: currentColor; font-family: var(--cv-font-heading); }
.cv-side-colored .cv-ring-track { stroke: color-mix(in srgb, var(--cv-side-text) 22%, transparent); }
.cv-side-colored .cv-ring-value { stroke: var(--cv-side-text); }

/* Photos : anneau, hexagone, forme organique */
.cv-photo-ring { border-radius: 50%; border: 0 !important; box-shadow: 0 0 0 4px var(--cv-bg), 0 0 0 7px var(--cv-accent); overflow: visible; }
.cv-photo-ring img { border-radius: 50%; }
.cv-side-colored .cv-photo-ring { box-shadow: 0 0 0 4px var(--cv-side-bg), 0 0 0 7px var(--cv-accent); }
.cv-band .cv-photo-ring { box-shadow: 0 0 0 4px color-mix(in srgb, var(--cv-on-primary) 25%, transparent), 0 0 0 7px var(--cv-on-primary); }
.cv-hero-photo .cv-photo-ring { box-shadow: 0 0 0 6px var(--cv-bg), 0 0 0 9px var(--cv-accent); }
.cv-photo-hexagon { border: 0 !important; clip-path: polygon(25% 4%, 75% 4%, 100% 50%, 75% 96%, 25% 96%, 0 50%); border-radius: 0; }
.cv-photo-blob { border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%; }

/* ═══ Lettre de motivation (javascript/cv/letter.js) : même identité et même design que le CV associé ═══ */
.cv-letter { display: flex; flex-direction: column; }
.cv-letter-head { display: flex; align-items: center; gap: 22px; }
.cv-letter-plain .cv-letter-head { padding: var(--cv-pad) var(--cv-pad) 22px; margin: 0 var(--cv-pad); padding-left: 0; padding-right: 0;
                                   border-bottom: 2px solid var(--cv-accent); }
.cv-letter-band .cv-letter-head { padding: 34px var(--cv-pad); }
.cv-letter-head .cv-photo { width: 84px; height: 84px; }
.cv-letter-identity { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cv-letter-identity .cv-contact-inline { margin-top: 4px; font-size: .92em; }
.cv-letter-plain .cv-letter-identity .cv-contact-inline { color: var(--cv-muted); }
.cv-letter-content { flex: 1; display: flex; flex-direction: column; gap: 22px; padding: 34px var(--cv-pad) var(--cv-pad); }
.cv-letter-meta { display: flex; flex-direction: column; gap: 22px; }
.cv-letter-recipient { align-self: flex-end; min-width: 42%; max-width: 60%; line-height: 1.5; }
.cv-letter-date { align-self: flex-end; color: var(--cv-muted); }
.cv-letter-subject { color: var(--cv-text); }
.cv-page .cv-letter-subject strong { color: var(--cv-primary); font-family: var(--cv-font-heading); }
.cv-letter-text { display: flex; flex-direction: column; gap: 12px; text-align: justify; hyphens: auto; }
.cv-letter-text p { break-inside: avoid; }
.cv-page .cv-letter-signature { align-self: flex-end; margin-top: 18px; font-family: var(--cv-font-name); font-size: 1.25em; font-weight: 600; color: var(--cv-primary); }

/* ─── Aperçus mis à l'échelle (javascript/cv/preview.js) ─── */
.cv-preview { position: relative; width: 100%; overflow: hidden; }
.cv-preview .cv-page { transform-origin: top left; position: absolute; top: 0; left: 0; }
.cv-preview-page { box-shadow: 0 10px 30px -10px rgba(15, 23, 42, .25), 0 0 0 1px rgba(15, 23, 42, .06); background: #fff; }
.cv-preview-thumb { aspect-ratio: 210 / 297; pointer-events: none; user-select: none; background: #fff; }
.cv-preview-thumb .cv-page { height: 297mm; overflow: hidden; }

/* Plusieurs pages : marges du haut et du bas répétées à chaque page à l'impression ; repères de saut de page dans l'aperçu */
.cv-main, .cv-side { -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.cv-page-break { position: absolute; left: 0; right: 0; z-index: 3; height: 0; border-top: 2px dashed rgba(220, 38, 38, .7); pointer-events: none; }
.cv-page-break::after { content: attr(data-label); position: absolute; right: 6px; top: 4px; padding: 2px 8px; border-radius: 99px;
                        background: rgba(220, 38, 38, .9); color: #fff; font: 600 11px/1.4 Montserrat, sans-serif; }
