@font-face { font-family: "Source Serif 4"; font-weight: 200 900; font-display: swap; src: url(fonts/source-serif-4-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Source Serif 4"; font-weight: 200 900; font-display: swap; src: url(fonts/source-serif-4-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "CVF Inter"; font-weight: 200 900; font-display: swap; src: url(fonts/inter-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "CVF Inter"; font-weight: 200 900; font-display: swap; src: url(fonts/inter-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "CVF Nunito"; font-weight: 200 900; font-display: swap; src: url(fonts/nunito-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "CVF Nunito"; font-weight: 200 900; font-display: swap; src: url(fonts/nunito-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "CVF Montserrat"; font-weight: 200 900; font-display: swap; src: url(fonts/montserrat-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "CVF Montserrat"; font-weight: 200 900; font-display: swap; src: url(fonts/montserrat-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "CVF Lora"; font-weight: 200 900; font-display: swap; src: url(fonts/lora-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "CVF Lora"; font-weight: 200 900; font-display: swap; src: url(fonts/lora-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "CVF Playfair"; font-weight: 200 900; font-display: swap; src: url(fonts/playfair-display-latin-wght-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "CVF Playfair"; font-weight: 200 900; font-display: swap; src: url(fonts/playfair-display-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* Mise en forme du Pass : police par élément, taille, espacement (valeurs posées par builder.js) */
.sheet[data-f-t], .sheet[data-f-t] * { font-family: var(--f-t) !important; }
.sheet[data-f-p] .c-line strong { font-family: var(--f-p) !important; }
.sheet[data-f-r] h2 { font-family: var(--f-r) !important; }
.sheet[data-f-i] .c-title { font-family: var(--f-i) !important; }
.sheet[data-f-n] h1 { font-family: var(--f-n) !important; }
.sheet[data-size="s"] .c-head, .sheet[data-size="s"] .c-main, .sheet[data-size="s"] .c-side { zoom: .9; }
.sheet[data-size="l"] .c-head, .sheet[data-size="l"] .c-main, .sheet[data-size="l"] .c-side { zoom: 1.1; }
.sheet[data-space="t"] .c-sec { margin-bottom: 3.5mm !important; }
.sheet[data-space="t"] .c-item { margin-bottom: 2.2mm !important; }
.sheet[data-space="a"] .c-sec { margin-bottom: 9mm !important; }
.sheet[data-space="a"] .c-item { margin-bottom: 6mm !important; }
/* Le CV (feuille A4) et ses modèles : classique, moderne, sobre (gratuits), dix modèles réservés au Pass et au Pro */
.sheet { position: relative; --acc: #1f4fd8; width: 210mm; min-height: 297mm; background: #fff; color: #1b1f27; font: 10pt/1.42 "Source Sans 3", Arial, Helvetica, sans-serif; box-sizing: border-box; overflow-wrap: anywhere; }
.sheet * { box-sizing: border-box; }
.sheet h1, .sheet h2, .sheet p, .sheet ul { margin: 0; padding: 0; }
.sheet ul { list-style: none; }
.sheet .cv { min-height: inherit; }
.sheet .c-photo { width: 30mm; height: 30mm; border-radius: 50%; object-fit: cover; display: block; }
.sheet .c-photo-s { display: none; }
.sheet .c-contact-s { display: none; }
.sheet .c-list li { margin: 0 0 1mm; }
.sheet .c-sec { margin: 0 0 6mm; break-inside: avoid-page; }
.sheet .c-sec h2 { font: 800 10.5pt/1.2 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: .01em; margin: 0 0 2.5mm; }
.sheet .c-item { margin: 0 0 4mm; break-inside: avoid; }
.sheet .c-line { display: flex; justify-content: space-between; gap: 6mm; align-items: baseline; }
.sheet .c-line strong { font-weight: 700; font-size: 10.5pt; }
.sheet .c-date { white-space: nowrap; font-size: 9pt; color: #4b5565; }
.sheet .c-sub { color: #3b4453; font-weight: 600; font-size: 9.5pt; }
.sheet .c-desc { margin-top: 1mm; }
.sheet .c-desc p { margin: 0 0 1mm; }
.sheet .c-desc ul { list-style: disc; padding-left: 4.5mm; margin: 0 0 1mm; }
.sheet .c-tags { display: flex; flex-wrap: wrap; gap: 1.5mm 1.5mm; }
.sheet .c-tags li { border: .25mm solid #c3cad6; border-radius: 1mm; padding: .6mm 2mm; font-size: 9pt; }
.sheet .c-lang li { display: flex; justify-content: space-between; gap: 3mm; margin: 0 0 1mm; }
.sheet .c-lang li span { color: #4b5565; font-size: 9pt; }

/* classique */
.sheet.t-classique { padding: 15mm 16mm; }
.t-classique .c-head { display: flex; align-items: center; justify-content: space-between; gap: 8mm; flex-wrap: wrap; }
.t-classique .c-id h1 { font: 800 25pt/1.05 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; color: var(--acc); letter-spacing: -.02em; }
.t-classique .c-title { font-size: 12.5pt; font-weight: 600; color: #3b4453; margin-top: 1.5mm; }
.t-classique .c-contact-h { flex-basis: 100%; margin-top: 2mm; padding-top: 3mm; border-top: .5mm solid var(--acc); }
.t-classique .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; }
.t-classique .c-cols { margin-top: 6mm; }
.t-classique .c-sec h2 { color: var(--acc); border-bottom: .25mm solid #c3cad6; padding-bottom: 1mm; }

/* moderne : colonne latérale colorée */
.sheet.t-moderne { padding: 0; }
.t-moderne .cv { display: grid; grid-template-columns: 68mm 1fr; grid-template-areas: "side head" "side body"; grid-template-rows: auto 1fr; min-height: 297mm; }
.t-moderne .c-cols { display: contents; }
.t-moderne .c-head { grid-area: head; padding: 16mm 14mm 0 12mm; display: block; }
.t-moderne .c-head .c-photo-h, .t-moderne .c-contact-h { display: none; }
.t-moderne .c-id h1 { font: 800 26pt/1.02 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #111827; }
.t-moderne .c-title { font-size: 13pt; font-weight: 600; color: var(--acc); margin-top: 2mm; }
.t-moderne .c-main { grid-area: body; padding: 8mm 14mm 14mm 12mm; }
.t-moderne .c-side { grid-area: side; background: var(--acc); color: #fff; padding: 16mm 8mm 14mm; }
.t-moderne .c-photo-s { display: block; margin: 0 auto 8mm; }
.t-moderne .c-contact-s { display: block; }
.t-moderne .c-side .c-sec h2 { color: #fff; border-bottom: .25mm solid rgba(255, 255, 255, .5); padding-bottom: 1mm; }
.t-moderne .c-side .c-tags li { border-color: rgba(255, 255, 255, .6); color: #fff; }
.t-moderne .c-side .c-lang li span { color: rgba(255, 255, 255, .85); }
.t-moderne .c-main .c-sec h2 { color: var(--acc); }
.t-moderne .c-side .c-list li { font-size: 9.5pt; }

/* sobre : une colonne, compact, sans fioritures */
.sheet.t-sobre { padding: 14mm 16mm; font-size: 9.8pt; }
.t-sobre .c-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8mm; flex-wrap: wrap; }
.t-sobre .c-photo { width: 26mm; height: 26mm; border-radius: 1mm; }
.t-sobre .c-id h1 { font: 700 22pt/1.1 "Source Sans 3", Arial, sans-serif; color: #111; }
.t-sobre .c-title { font-size: 11.5pt; color: #333; margin-top: .5mm; }
.t-sobre .c-contact-h { flex-basis: 100%; margin-top: 1.5mm; }
.t-sobre .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 5mm; color: #333; font-size: 9.3pt; }
.t-sobre .c-cols { margin-top: 5mm; }
.t-sobre .c-sec { margin-bottom: 5mm; }
.t-sobre .c-sec h2 { font: 700 10pt/1.2 "Source Sans 3", Arial, sans-serif; text-transform: uppercase; letter-spacing: .08em; color: #111; border-bottom: .35mm solid var(--acc); padding-bottom: 1mm; }
.t-sobre .c-tags li { border: 0; padding: 0; }
.t-sobre .c-tags li:not(:last-child)::after { content: ","; margin-right: .6mm; }
.t-sobre .c-tags { gap: 0 1.5mm; }

/* Modèles du Pass et du Pro : élégant, bandeau, chronologie */
.sheet.t-elegant { padding: 16mm 18mm; }
.t-elegant .c-head { display: block; text-align: center; }
.t-elegant .c-photo-h { margin: 0 auto 4mm; }
.t-elegant .c-id h1 { font: 600 27pt/1.1 "Source Serif 4", Georgia, "Times New Roman", serif; letter-spacing: .01em; color: #111827; }
.t-elegant .c-title { font-size: 10pt; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--acc); margin-top: 2mm; }
.t-elegant .c-contact-h { margin-top: 4mm; padding: 2.2mm 0; border-top: .3mm solid #c9ced8; border-bottom: .3mm solid #c9ced8; }
.t-elegant .c-contact-h .c-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 6mm; font-size: 9.3pt; }
.t-elegant .c-cols { margin-top: 7mm; }
.t-elegant .c-sec h2 { display: flex; align-items: center; gap: 3mm; font: 600 12pt/1.2 "Source Serif 4", Georgia, serif; color: var(--acc); }
.t-elegant .c-sec h2::after { content: ""; flex: 1; height: .25mm; background: #c9ced8; }
.t-elegant .c-tags li { border-color: #d3d8e2; }

.sheet.t-bandeau { padding: 0; }
.t-bandeau .c-head { display: flex; align-items: center; gap: 8mm; flex-wrap: wrap; background: var(--acc); color: #fff; padding: 14mm 16mm 10mm; }
.t-bandeau .c-photo-h { border: .8mm solid #fff; }
.t-bandeau .c-id { flex: 1; min-width: 0; }
.t-bandeau .c-id h1 { font: 800 26pt/1.05 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #fff; }
.t-bandeau .c-title { font-size: 12.5pt; font-weight: 600; color: rgba(255, 255, 255, .92); margin-top: 1.5mm; }
.t-bandeau .c-contact-h { flex-basis: 100%; padding-top: 3mm; border-top: .25mm solid rgba(255, 255, 255, .45); }
.t-bandeau .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.5pt; color: #fff; }
.t-bandeau .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 60mm; column-gap: 9mm; padding: 9mm 16mm 14mm; }
.t-bandeau .c-side { border-left: .25mm solid #dfe3ec; padding-left: 7mm; }
.t-bandeau .c-sec h2 { color: var(--acc); }

.sheet.t-chrono { padding: 0; }
.t-chrono .cv { display: grid; grid-template-columns: minmax(0, 1fr) 64mm; grid-template-areas: "head side" "body side"; grid-template-rows: auto 1fr; min-height: 297mm; }
.t-chrono .c-cols { display: contents; }
.t-chrono .c-head { grid-area: head; padding: 16mm 12mm 0 14mm; display: block; }
.t-chrono .c-head .c-photo-h, .t-chrono .c-contact-h { display: none; }
.t-chrono .c-id h1 { font: 800 26pt/1.02 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #111827; }
.t-chrono .c-title { font-size: 13pt; font-weight: 600; color: var(--acc); margin-top: 2mm; }
.t-chrono .c-main { grid-area: body; padding: 8mm 12mm 14mm 14mm; }
.t-chrono .c-side { grid-area: side; background: #eef2fb; background: color-mix(in srgb, var(--acc) 10%, #fff); padding: 16mm 8mm 14mm; }
.t-chrono .c-photo-s { display: block; margin: 0 auto 8mm; }
.t-chrono .c-contact-s { display: block; }
.t-chrono .c-sec h2 { color: var(--acc); }
.t-chrono .c-side .c-sec h2 { border-bottom: .25mm solid var(--acc); padding-bottom: 1mm; }
.t-chrono .c-side .c-tags li { background: #fff; border-color: transparent; }
.t-chrono .c-main .c-item { position: relative; border-left: .45mm solid var(--acc); padding-left: 5mm; }
.t-chrono .c-main .c-item::before { content: ""; position: absolute; left: -1.5mm; top: 1.6mm; width: 2.6mm; height: 2.6mm; border-radius: 50%; background: var(--acc); }

.sheet, .sheet * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* Marge : les titres de section sont dans la marge gauche */
.sheet.t-marge { padding: 16mm 16mm 14mm 14mm; }
.t-marge .c-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8mm; flex-wrap: wrap; padding-bottom: 5mm; border-bottom: .3mm solid #1b1f27; }
.t-marge .c-id h1 { font: 300 28pt/1.05 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #111827; }
.t-marge .c-title { font-size: 11.5pt; font-weight: 600; color: var(--acc); margin-top: 1.5mm; }
.t-marge .c-contact-h { flex-basis: 100%; }
.t-marge .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.3pt; color: #3b4453; }
.t-marge .c-cols { margin-top: 7mm; }
.t-marge .c-sec { display: grid; grid-template-columns: 36mm minmax(0, 1fr); column-gap: 6mm; margin-bottom: 6mm; }
.t-marge .c-sec > h2 { grid-column: 1; grid-row: 1; font: 700 9pt/1.4 "Source Sans 3", Arial, sans-serif; text-transform: uppercase; letter-spacing: .1em; color: var(--acc); margin: 0; }
.t-marge .c-sec > :not(h2) { grid-column: 2; }
.t-marge .c-contact-s { display: none; }

/* Nuit : colonne sombre */
.sheet.t-nuit { padding: 0; }
.t-nuit .cv { display: grid; grid-template-columns: 70mm minmax(0, 1fr); grid-template-areas: "side head" "side body"; grid-template-rows: auto 1fr; min-height: 297mm; }
.t-nuit .c-cols { display: contents; }
.t-nuit .c-head { grid-area: head; padding: 16mm 14mm 0 12mm; display: block; }
.t-nuit .c-head .c-photo-h, .t-nuit .c-contact-h { display: none; }
.t-nuit .c-id h1 { font: 800 26pt/1.02 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #111827; }
.t-nuit .c-title { font-size: 13pt; font-weight: 600; color: var(--acc); margin-top: 2mm; }
.t-nuit .c-main { grid-area: body; padding: 8mm 14mm 14mm 12mm; }
.t-nuit .c-main .c-sec h2 { color: #111827; border-bottom: .6mm solid var(--acc); padding-bottom: 1mm; display: inline-block; }
.t-nuit .c-side { grid-area: side; background: #1a2233; color: #fff; padding: 16mm 8mm 14mm; }
.t-nuit .c-photo-s { display: block; margin: 0 auto 8mm; border: .7mm solid var(--acc); }
.t-nuit .c-contact-s { display: block; }
.t-nuit .c-side .c-sec h2 { color: #fff; border-bottom: .3mm solid var(--acc); padding-bottom: 1mm; }
.t-nuit .c-side .c-tags li { border-color: rgba(255, 255, 255, .35); color: #fff; }
.t-nuit .c-side .c-lang li span { color: rgba(255, 255, 255, .8); }

/* Cadre : filet d'encadrement */
.sheet.t-cadre { padding: 17mm 19mm; box-shadow: inset 0 0 0 4mm #fff, inset 0 0 0 4.6mm var(--acc); }
.t-cadre .c-head { display: flex; align-items: center; justify-content: space-between; gap: 8mm; flex-wrap: wrap; }
.t-cadre .c-id h1 { font: 800 25pt/1.05 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: .02em; text-transform: uppercase; color: #111827; }
.t-cadre .c-title { font-size: 11.5pt; font-weight: 600; color: var(--acc); margin-top: 1.5mm; }
.t-cadre .c-contact-h { flex-basis: 100%; margin-top: 3mm; padding-top: 3mm; border-top: .3mm solid #c3cad6; }
.t-cadre .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.3pt; }
.t-cadre .c-cols { margin-top: 6mm; }
.t-cadre .c-sec h2 { color: #111827; display: flex; align-items: center; gap: 2.5mm; }
.t-cadre .c-sec h2::before { content: ""; width: 3mm; height: 3mm; background: var(--acc); flex: none; }

/* Ruban : bande verticale colorée et titres en pastille */
.sheet.t-ruban { padding: 15mm 16mm 14mm 20mm; border-left: 6mm solid var(--acc); }
.t-ruban .c-head { display: flex; align-items: center; justify-content: space-between; gap: 8mm; flex-wrap: wrap; }
.t-ruban .c-id h1 { font: 800 25pt/1.05 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #111827; }
.t-ruban .c-title { font-size: 12pt; font-weight: 600; color: #3b4453; margin-top: 1.5mm; }
.t-ruban .c-contact-h { flex-basis: 100%; margin-top: 2.5mm; }
.t-ruban .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.3pt; }
.t-ruban .c-cols { margin-top: 6mm; }
.t-ruban .c-sec h2 { display: inline-block; background: #eef2fb; background: color-mix(in srgb, var(--acc) 13%, #fff); color: var(--acc); padding: .8mm 3mm; border-radius: 1mm; }

/* Journal : serif, double filet */
.sheet.t-journal { padding: 15mm 17mm; font-family: "Source Serif 4", Georgia, "Times New Roman", serif; font-size: 9.8pt; }
.t-journal .c-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8mm; flex-wrap: wrap; padding: 3mm 0; border-top: 1mm solid #111827; border-bottom: .3mm solid #111827; }
.t-journal .c-id h1 { font: 700 28pt/1.05 "Source Serif 4", Georgia, serif; letter-spacing: -.01em; color: #111827; }
.t-journal .c-title { font-size: 11.5pt; font-style: italic; color: var(--acc); margin-top: 1mm; }
.t-journal .c-contact-h { flex-basis: 100%; }
.t-journal .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9pt; color: #3b4453; }
.t-journal .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 56mm; column-gap: 8mm; margin-top: 6mm; }
.t-journal .c-sec h2 { font: 700 10.5pt/1.2 "Source Serif 4", Georgia, serif; font-variant: small-caps; letter-spacing: .06em; color: #111827; border-bottom: .3mm solid #111827; padding-bottom: 1mm; }
.t-journal .c-date, .t-journal .c-sub, .t-journal .c-line strong, .t-journal .c-tags li, .t-journal .c-lang li span { font-family: "Source Serif 4", Georgia, serif; }
.t-journal .c-side { border-left: .25mm solid #c3cad6; padding-left: 6mm; }

/* Bandes : titres en barre pleine largeur */
.sheet.t-bandes { padding: 15mm 16mm; }
.t-bandes .c-head { display: flex; align-items: center; justify-content: space-between; gap: 8mm; flex-wrap: wrap; }
.t-bandes .c-id h1 { font: 800 26pt/1.05 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: var(--acc); }
.t-bandes .c-title { font-size: 12.5pt; font-weight: 600; color: #3b4453; margin-top: 1.5mm; }
.t-bandes .c-contact-h { flex-basis: 100%; margin-top: 2.5mm; }
.t-bandes .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.3pt; }
.t-bandes .c-cols { margin-top: 6mm; }
.t-bandes .c-sec h2 { background: var(--acc); color: #fff; padding: 1.2mm 3mm; margin-bottom: 3mm; }

/* Cartes : blocs doux */
.sheet.t-cartes { padding: 14mm 15mm; background: #fff; }
.t-cartes .c-head { display: flex; align-items: center; justify-content: space-between; gap: 8mm; flex-wrap: wrap; padding: 6mm 7mm; border-radius: 3mm; background: #eef2fb; background: color-mix(in srgb, var(--acc) 12%, #fff); }
.t-cartes .c-id h1 { font: 800 24pt/1.05 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #111827; }
.t-cartes .c-title { font-size: 12pt; font-weight: 600; color: var(--acc); margin-top: 1.5mm; }
.t-cartes .c-contact-h { flex-basis: 100%; }
.t-cartes .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.3pt; }
.t-cartes .c-cols { margin-top: 5mm; }
.t-cartes .c-sec { padding: 4mm 5mm 1mm; border: .3mm solid #dfe3ec; border-radius: 3mm; margin-bottom: 4mm; }
.t-cartes .c-sec h2 { color: var(--acc); }

/* Six modèles de plus pour le Pass : aurore, horizon, minimal, pastel, atelier, prestige */
.sheet.t-aurore { padding: 0; }
.t-aurore .cv { display: flex; flex-direction: column; }
.t-aurore .c-head { display: flex; align-items: center; gap: 8mm; flex-wrap: wrap; padding: 14mm 16mm 9mm; color: #fff; background: #1f4fd8; background: var(--acc); background: linear-gradient(115deg, var(--acc), color-mix(in srgb, var(--acc) 50%, #0f172a)); }
.t-aurore .c-id { flex: 1; min-width: 0; }
.t-aurore .c-id h1 { font: 800 27pt/1.04 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #fff; }
.t-aurore .c-title { font-size: 12.5pt; font-weight: 600; color: rgba(255, 255, 255, .9); margin-top: 1.5mm; }
.t-aurore .c-photo-h { border: .8mm solid rgba(255, 255, 255, .85); }
.t-aurore .c-contact-h { flex-basis: 100%; }
.t-aurore .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.4pt; color: #fff; }
.t-aurore .c-cols { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) 62mm; }
.t-aurore .c-main { padding: 9mm 9mm 14mm 16mm; }
.t-aurore .c-side { padding: 9mm 12mm 14mm 8mm; background: #f1f4fa; background: color-mix(in srgb, var(--acc) 8%, #fff); }
.t-aurore .c-sec h2 { color: var(--acc); }
.t-aurore .c-tags li { background: #fff; border-color: transparent; }

.sheet.t-horizon { padding: 0; border-top: 4mm solid var(--acc); }
.t-horizon .c-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8mm; flex-wrap: wrap; padding: 11mm 16mm 6mm; }
.t-horizon .c-id h1 { font: 800 28pt/1.02 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.025em; color: #111827; }
.t-horizon .c-title { font-size: 12.5pt; font-weight: 600; color: var(--acc); margin-top: 1.5mm; }
.t-horizon .c-contact-h { text-align: right; font-size: 9.3pt; }
.t-horizon .c-contact-h .c-list li { margin: 0 0 .6mm; }
.t-horizon .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 56mm; column-gap: 9mm; padding: 4mm 16mm 14mm; }
.t-horizon .c-sec h2 { color: #111827; margin-bottom: 3.5mm; }
.t-horizon .c-sec h2::after { content: ""; display: block; width: 9mm; height: .8mm; background: var(--acc); margin-top: 1.3mm; }
.t-horizon .c-tags li { border-radius: 5mm; }

.sheet.t-minimal { padding: 17mm 20mm; }
.t-minimal .c-head { display: block; text-align: center; padding-bottom: 5mm; border-bottom: .25mm solid #d4d8e0; }
.t-minimal .c-photo-h { margin: 0 auto 4mm; }
.t-minimal .c-id h1 { font: 300 25pt/1.1 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #111827; }
.t-minimal .c-title { font-size: 9.5pt; letter-spacing: .2em; text-transform: uppercase; color: #6b7280; margin-top: 2.5mm; }
.t-minimal .c-contact-h { margin-top: 4mm; }
.t-minimal .c-contact-h .c-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 6mm; font-size: 9.2pt; color: #4b5565; }
.t-minimal .c-cols { margin-top: 7mm; }
.t-minimal .c-sec h2 { text-align: center; font: 600 8.5pt/1.2 "Source Sans 3", Arial, sans-serif; letter-spacing: .24em; text-transform: uppercase; color: #374151; margin-bottom: 4mm; }
.t-minimal .c-sec h2::before { content: ""; display: block; width: 8mm; height: .5mm; background: var(--acc); margin: 0 auto 2mm; }
.t-minimal .c-date { color: var(--acc); }
.t-minimal .c-tags { justify-content: center; }
.t-minimal .c-tags li { border-color: #d4d8e0; border-radius: 5mm; }
.t-minimal .c-lang { max-width: 90mm; margin: 0 auto; }

.sheet.t-pastel { padding: 0; }
.t-pastel .cv { display: grid; grid-template-columns: 66mm minmax(0, 1fr); grid-template-areas: "side head" "side body"; grid-template-rows: auto 1fr; min-height: 297mm; }
.t-pastel .c-cols { display: contents; }
.t-pastel .c-head { grid-area: head; padding: 16mm 14mm 0 12mm; display: block; }
.t-pastel .c-head .c-photo-h, .t-pastel .c-contact-h { display: none; }
.t-pastel .c-id h1 { font: 800 26pt/1.02 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #111827; }
.t-pastel .c-title { font-size: 13pt; font-weight: 600; color: var(--acc); margin-top: 2mm; }
.t-pastel .c-main { grid-area: body; padding: 8mm 14mm 14mm 12mm; }
.t-pastel .c-main .c-sec h2 { color: var(--acc); }
.t-pastel .c-side { grid-area: side; padding: 16mm 8mm 14mm; background: #eef2fb; background: color-mix(in srgb, var(--acc) 11%, #fff); }
.t-pastel .c-photo-s { display: block; margin: 0 auto 8mm; border-radius: 4mm; width: 34mm; height: 40mm; }
.t-pastel .c-contact-s { display: block; }
.t-pastel .c-side .c-sec h2 { color: #111827; border-bottom: .3mm solid var(--acc); padding-bottom: 1mm; }
.t-pastel .c-side .c-tags li { background: #fff; border-color: transparent; border-radius: 5mm; }
.t-pastel .c-side .c-list li { font-size: 9.5pt; }

.sheet.t-atelier { padding: 15mm 16mm 14mm; }
.t-atelier .c-head { display: flex; align-items: center; justify-content: space-between; gap: 8mm; flex-wrap: wrap; }
.t-atelier .c-id h1 { font: 800 30pt/1 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.03em; text-transform: uppercase; color: #111827; }
.t-atelier .c-title { display: inline-block; font-size: 11pt; font-weight: 700; color: #fff; background: var(--acc); padding: .8mm 3mm; border-radius: 1mm; margin-top: 2.5mm; }
.t-atelier .c-contact-h { flex-basis: 100%; margin-top: 4mm; padding: 2.5mm 0; border-top: .25mm solid #d4d8e0; border-bottom: .25mm solid #d4d8e0; }
.t-atelier .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.3pt; }
.t-atelier .c-contact-h .c-list li { margin: 0; }
.t-atelier .c-cols { margin-top: 6mm; }
.t-atelier .c-sec h2 { display: flex; align-items: center; gap: 2.5mm; color: #111827; }
.t-atelier .c-sec h2::before { content: ""; width: 6mm; height: 1.2mm; background: var(--acc); flex: none; }
.t-atelier .c-side { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 8mm; margin-top: 2mm; padding-top: 5mm; border-top: .25mm solid #d4d8e0; }
.t-atelier .c-side .c-sec { margin-bottom: 0; }
.t-atelier .c-tags li { border-color: var(--acc); }

.sheet.t-prestige { padding: 0; }
.t-prestige .c-head { display: flex; align-items: center; gap: 8mm; flex-wrap: wrap; padding: 14mm 16mm 9mm; background: #171c28; color: #fff; border-bottom: 1.2mm solid var(--acc); }
.t-prestige .c-id { flex: 1; min-width: 0; }
.t-prestige .c-id h1 { font: 600 26pt/1.08 "Source Serif 4", Georgia, "Times New Roman", serif; letter-spacing: .01em; color: #fff; }
.t-prestige .c-title { font-size: 10pt; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #fff; opacity: .85; margin-top: 2mm; }
.t-prestige .c-photo-h { border: .6mm solid var(--acc); }
.t-prestige .c-contact-h { flex-basis: 100%; }
.t-prestige .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.4pt; color: rgba(255, 255, 255, .9); }
.t-prestige .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 58mm; column-gap: 9mm; padding: 9mm 16mm 14mm; }
.t-prestige .c-side { border-left: .25mm solid var(--acc); padding-left: 7mm; }
.t-prestige .c-sec h2 { font: 600 12pt/1.2 "Source Serif 4", Georgia, serif; color: var(--acc); }

/* Six autres : deux sobres (standard, compact) et quatre plus originales (diagonale, bulle, papier, pop) */
.sheet.t-standard { padding: 16mm 18mm; font-family: "Source Serif 4", Georgia, "Times New Roman", serif; font-size: 10pt; }
.t-standard .c-head { display: block; text-align: center; }
.t-standard .c-photo-h { margin: 0 auto 3mm; }
.t-standard .c-id h1 { font: 700 22pt/1.1 "Source Serif 4", Georgia, serif; color: #111; }
.t-standard .c-title { font-size: 11.5pt; font-style: italic; color: #333; margin-top: 1mm; }
.t-standard .c-contact-h { margin-top: 2.5mm; }
.t-standard .c-contact-h .c-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 5mm; font-size: 9.3pt; color: #333; }
.t-standard .c-cols { margin-top: 6mm; }
.t-standard .c-sec h2 { font: 700 10.5pt/1.2 "Source Serif 4", Georgia, serif; text-transform: uppercase; letter-spacing: .06em; color: #111; border-bottom: .3mm solid #111; padding-bottom: 1mm; }
.t-standard .c-date, .t-standard .c-sub, .t-standard .c-line strong, .t-standard .c-tags li, .t-standard .c-lang li span { font-family: "Source Serif 4", Georgia, serif; }
.t-standard .c-sub { color: var(--acc); font-style: italic; font-weight: 600; }
.t-standard .c-tags li { border: 0; padding: 0; }
.t-standard .c-tags li:not(:last-child)::after { content: ","; margin-right: .6mm; }
.t-standard .c-tags { gap: 0 1.5mm; }

.sheet.t-compact { padding: 12mm 14mm; font-size: 9.3pt; line-height: 1.36; }
.t-compact .c-head { display: flex; align-items: center; justify-content: space-between; gap: 6mm; flex-wrap: wrap; padding-bottom: 3mm; border-bottom: .5mm solid var(--acc); }
.t-compact .c-photo { width: 24mm; height: 24mm; }
.t-compact .c-id h1 { font: 800 21pt/1.05 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #111827; }
.t-compact .c-title { font-size: 11pt; font-weight: 600; color: var(--acc); margin-top: 1mm; }
.t-compact .c-contact-h { flex-basis: 100%; }
.t-compact .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 5mm; font-size: 8.8pt; color: #3b4453; }
.t-compact .c-contact-h .c-list li { margin: 0; }
.t-compact .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 52mm; column-gap: 7mm; margin-top: 4mm; }
.t-compact .c-sec { margin-bottom: 4mm; }
.t-compact .c-sec h2 { font-size: 9.8pt; text-transform: uppercase; letter-spacing: .06em; color: var(--acc); margin-bottom: 1.8mm; }
.t-compact .c-item { margin-bottom: 3mm; }
.t-compact .c-side { border-left: .25mm solid #dfe3ec; padding-left: 5mm; }
.t-compact .c-tags li { font-size: 8.6pt; padding: .4mm 1.6mm; }

.sheet.t-diagonale { padding: 0; overflow: hidden; }
.t-diagonale .c-head { position: relative; display: block; padding: 14mm 16mm 0; }
.t-diagonale .c-id { position: relative; z-index: 0; margin: -14mm -16mm 0; padding: 14mm 62mm 22mm 16mm; color: #fff; background: #1f4fd8; background: var(--acc); clip-path: polygon(0 0, 100% 0, 100% 62%, 0 100%); }
.t-diagonale .c-id h1 { font: 800 28pt/1.02 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.025em; color: #fff; }
.t-diagonale .c-title { font-size: 12.5pt; font-weight: 600; color: rgba(255, 255, 255, .92); margin-top: 1.5mm; }
.t-diagonale .c-photo-h { position: absolute; z-index: 1; right: 16mm; top: 12mm; border: .9mm solid #fff; }
.t-diagonale .c-contact-h { position: relative; margin-top: 3mm; }
.t-diagonale .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.4pt; color: #3b4453; }
.t-diagonale .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 58mm; column-gap: 9mm; padding: 4mm 16mm 14mm; }
.t-diagonale .c-sec h2 { color: var(--acc); }

.sheet.t-bulle { padding: 15mm 16mm 14mm; overflow: hidden; }
.t-bulle .c-head { position: relative; display: block; min-height: 44mm; padding-right: 50mm; }
.t-bulle .c-head::before { content: ""; position: absolute; right: -36mm; top: -42mm; width: 86mm; height: 86mm; border-radius: 50%; background: #dbe5fb; background: color-mix(in srgb, var(--acc) 18%, #fff); z-index: 0; }
.t-bulle .c-head::after { content: ""; position: absolute; right: 38mm; top: 18mm; width: 9mm; height: 9mm; border-radius: 50%; background: var(--acc); z-index: 0; }
.t-bulle .c-head > * { position: relative; z-index: 1; }
.t-bulle .c-photo-h { position: absolute; right: 2mm; top: -2mm; width: 34mm; height: 34mm; border: 1.2mm solid #fff; }
.t-bulle .c-id h1 { font: 800 27pt/1.03 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.025em; color: #111827; }
.t-bulle .c-title { font-size: 12.5pt; font-weight: 600; color: var(--acc); margin-top: 1.5mm; }
.t-bulle .c-contact-h { margin-top: 5mm; }
.t-bulle .c-contact-h .c-list { font-size: 9.4pt; }
.t-bulle .c-contact-h .c-list li { display: inline-block; margin: 0 5mm 1mm 0; }
.t-bulle .c-cols { margin-top: 5mm; }
.t-bulle .c-sec h2 { color: #111827; display: flex; align-items: center; gap: 2.2mm; }
.t-bulle .c-sec h2::before { content: ""; width: 3mm; height: 3mm; border-radius: 50%; background: var(--acc); flex: none; }
.t-bulle .c-tags li { border-radius: 5mm; border-color: var(--acc); }

.sheet.t-papier { padding: 16mm 17mm 14mm 24mm; background: #fbf8f1; box-shadow: inset 11mm 0 0 #f3ecda, inset 11.4mm 0 0 var(--acc); }
.t-papier .c-head { display: flex; align-items: center; justify-content: space-between; gap: 8mm; flex-wrap: wrap; }
.t-papier .c-id h1 { font: 700 26pt/1.05 "Source Serif 4", Georgia, "Times New Roman", serif; color: #2a2118; }
.t-papier .c-title { font-size: 12pt; font-style: italic; color: var(--acc); margin-top: 1.5mm; }
.t-papier .c-contact-h { flex-basis: 100%; margin-top: 2.5mm; padding-top: 2.5mm; border-top: .3mm dashed #b9ad94; }
.t-papier .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.3pt; color: #4a3f31; }
.t-papier .c-cols { margin-top: 6mm; }
.t-papier .c-sec h2 { font: 700 11.5pt/1.2 "Source Serif 4", Georgia, serif; color: #2a2118; }
.t-papier .c-sec h2::after { content: ""; display: block; height: .5mm; margin-top: 1mm; background: repeating-linear-gradient(90deg, var(--acc) 0 2mm, rgba(255,255,255,0) 2mm 3.4mm); }
.t-papier .c-tags li { background: #fff; border-color: #d9ceb7; }
.t-papier .c-date, .t-papier .c-sub { color: #5a4d3a; }

.sheet.t-pop { padding: 15mm 16mm 14mm; }
.t-pop .c-head { display: flex; align-items: center; justify-content: space-between; gap: 8mm; flex-wrap: wrap; }
.t-pop .c-id { background: var(--acc); color: #fff; padding: 5mm 7mm; border: .5mm solid #111827; box-shadow: 1.6mm 1.6mm 0 #111827; flex: 1; min-width: 0; }
.t-pop .c-id h1 { font: 800 25pt/1.04 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.02em; color: #fff; }
.t-pop .c-title { font-size: 12pt; font-weight: 700; color: #fff; margin-top: 1.5mm; }
.t-pop .c-photo-h { border: .5mm solid #111827; box-shadow: 1.2mm 1.2mm 0 #111827; border-radius: 3mm; }
.t-pop .c-contact-h { flex-basis: 100%; margin-top: 3mm; }
.t-pop .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.4pt; font-weight: 600; }
.t-pop .c-cols { margin-top: 6mm; }
.t-pop .c-sec h2 { display: inline-block; font-size: 11pt; color: #111827; background: linear-gradient(rgba(255,255,255,0) 55%, #b9cdf8 55%); background: linear-gradient(rgba(255,255,255,0) 55%, color-mix(in srgb, var(--acc) 45%, #fff) 55%); padding: 0 1.5mm; margin-left: -1.5mm; }
.t-pop .c-tags li { border: .35mm solid #111827; border-radius: 1mm; box-shadow: .7mm .7mm 0 #111827; background: #fff; margin: 0 .8mm .8mm 0; }

/* 12 nov 2026 (Jeremy, "il faut des modèles différents, originaux") : huit modèles au caractère marqué.
   Même HTML que les autres (render.js), tout se joue en CSS. Pas de "transparent" dans les dégradés (PDF noir sur iPhone). */

/* affiche : grand bloc noir, nom immense, rubriques numérotées */
.sheet.t-affiche { padding: 0; }
.t-affiche .c-head { background: #111827; color: #fff; padding: 16mm 16mm 9mm; display: flex; align-items: flex-end; gap: 8mm; flex-wrap: wrap; }
.t-affiche .c-id { flex: 1; min-width: 0; }
.t-affiche .c-id h1 { font: 800 38pt/.95 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: -.03em; text-transform: uppercase; color: #fff; }
.t-affiche .c-title { display: inline-block; margin-top: 4mm; background: var(--acc); color: #fff; font-weight: 700; font-size: 11.5pt; padding: 1mm 3mm; }
.t-affiche .c-photo-h { width: 32mm; height: 32mm; border-radius: 0; border: 1mm solid var(--acc); }
.t-affiche .c-contact-h { flex-basis: 100%; }
.t-affiche .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.5pt; color: #d1d5db; }
.t-affiche .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 58mm; column-gap: 10mm; padding: 10mm 16mm 14mm; }
.t-affiche .c-main { counter-reset: aff; }
.t-affiche .c-main .c-sec h2::before { counter-increment: aff; content: "0" counter(aff); display: inline-block; margin-right: 3mm; color: var(--acc); font-size: 15pt; }
.t-affiche .c-sec h2 { font-size: 12pt; text-transform: uppercase; letter-spacing: .04em; color: #111827; border-bottom: .8mm solid #111827; padding-bottom: 1.2mm; }
.t-affiche .c-side { border-top: 2.5mm solid var(--acc); padding-top: 4mm; }
.t-affiche .c-side .c-sec h2 { border-bottom-width: .3mm; font-size: 10pt; }
.t-affiche .c-tags li { border: 0; background: #111827; color: #fff; border-radius: 0; }

/* monogramme : grande initiale dans un rond, tout centré, infos en trois colonnes en bas */
.sheet.t-monogramme { padding: 15mm 18mm; }
.t-monogramme .c-head { text-align: center; display: flex; flex-direction: column; align-items: center; }
.t-monogramme .c-photo-h { order: -1; width: 28mm; height: 28mm; margin-bottom: 4mm; border: .8mm solid var(--acc); }
.t-monogramme .c-id h1 { font: 400 26pt/1.1 "CVF Playfair", Georgia, serif; color: #111827; }
.t-monogramme .c-id { border: .5mm solid var(--acc); border-radius: 50% / 40%; padding: 5mm 14mm 4mm; }
.t-monogramme .c-id h1::first-letter { font-weight: 700; font-style: italic; color: var(--acc); font-size: 1.55em; }
.t-monogramme .c-title { margin-top: 2.5mm; font-size: 10pt; letter-spacing: .22em; text-transform: uppercase; color: var(--acc); font-weight: 700; }
.t-monogramme .c-contact-h { margin-top: 4mm; padding: 2.5mm 0; border-top: .25mm solid #c9ced8; border-bottom: .25mm solid #c9ced8; width: 100%; }
.t-monogramme .c-contact-h .c-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 6mm; font-size: 9.3pt; }
.t-monogramme .c-cols { margin-top: 7mm; }
.t-monogramme .c-sec h2 { font: 400 13pt/1.2 "CVF Playfair", Georgia, serif; color: #111827; text-align: center; margin-bottom: 3.5mm; }
.t-monogramme .c-sec h2::after { content: ""; display: block; width: 12mm; height: .7mm; background: var(--acc); margin: 1.5mm auto 0; }
.t-monogramme .c-side { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 8mm; border-top: .25mm solid #c9ced8; padding-top: 6mm; }
.t-monogramme .c-side .c-tags { justify-content: center; }
.t-monogramme .c-side .c-desc { text-align: center; }

/* sombre : page sombre, accents lumineux */
.sheet.t-sombre { padding: 15mm 16mm; background: #111827; color: #e5e7eb; }
.t-sombre .c-head { display: flex; align-items: center; gap: 8mm; flex-wrap: wrap; }
.t-sombre .c-id { flex: 1; min-width: 0; }
.t-sombre .c-id h1 { font: 800 28pt/1.02 "CVF Montserrat", Arial, sans-serif; color: #fff; letter-spacing: -.01em; }
.t-sombre .c-title { margin-top: 2mm; font-size: 12pt; font-weight: 600; color: color-mix(in srgb, var(--acc) 55%, #fff); }
.t-sombre .c-photo-h { border: .8mm solid color-mix(in srgb, var(--acc) 55%, #fff); }
.t-sombre .c-contact-h { flex-basis: 100%; }
.t-sombre .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.5pt; color: #cbd5e1; }
.t-sombre .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 56mm; column-gap: 9mm; margin-top: 8mm; }
.t-sombre .c-sec h2 { color: color-mix(in srgb, var(--acc) 55%, #fff); text-transform: uppercase; letter-spacing: .1em; font-size: 9.5pt; }
.t-sombre .c-sec h2::after { content: ""; display: block; height: .4mm; margin-top: 1.2mm; background: #374151; }
.t-sombre .c-date, .t-sombre .c-lang li span { color: #9ca3af; }
.t-sombre .c-sub { color: #cbd5e1; }
.t-sombre .c-line strong { color: #fff; }
.t-sombre .c-side { background: #1f2937; border-radius: 3mm; padding: 6mm 5mm; }
.t-sombre .c-tags li { border-color: #4b5563; color: #e5e7eb; }

/* vertical : le nom écrit à la verticale dans une bande à gauche */
.sheet.t-vertical { padding: 0; }
.t-vertical .cv { display: grid; grid-template-columns: 26mm 1fr; grid-template-areas: "band body"; min-height: 297mm; }
.t-vertical .c-head { display: contents; }
.t-vertical .c-id { grid-area: band; background: var(--acc); color: #fff; writing-mode: vertical-rl; transform: rotate(180deg); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2mm; padding: 14mm 0; }
.t-vertical .c-id h1 { font: 800 30pt/1 "Bricolage Grotesque", "Source Sans 3", Arial, sans-serif; letter-spacing: .02em; text-transform: uppercase; color: #fff; white-space: nowrap; }
.t-vertical .c-title { font-size: 10pt; font-weight: 600; color: #fff; opacity: .92; white-space: nowrap; }
.t-vertical .c-photo-h, .t-vertical .c-contact-h { display: none; }
.t-vertical .c-cols { grid-area: body; display: grid; grid-template-columns: minmax(0, 1fr) 56mm; column-gap: 8mm; padding: 16mm 14mm 14mm 11mm; align-content: start; }
.t-vertical .c-cols::before { content: none; }
.t-vertical .c-side { grid-column: 2; grid-row: 1; }
.t-vertical .c-main { grid-column: 1; grid-row: 1; }
.t-vertical .c-photo-s { display: block; width: 34mm; height: 34mm; margin: 0 0 6mm; border-radius: 3mm; }
.t-vertical .c-contact-s { display: block; }
.t-vertical .c-sec h2 { color: var(--acc); font-size: 11pt; }
.t-vertical .c-main .c-sec h2 { font-size: 13pt; }
.t-vertical .c-side .c-sec { padding-left: 4mm; border-left: .6mm solid var(--acc); }

/* retro : machine à écrire sur papier crème */
.sheet.t-retro { padding: 16mm 18mm; background: #fbf6ea; color: #2b2620; font-family: "Courier New", Courier, monospace; font-size: 9.6pt; }
.t-retro .c-head { border: .6mm solid #2b2620; padding: 6mm 7mm; display: flex; align-items: center; gap: 7mm; flex-wrap: wrap; background: #fff; box-shadow: 1.5mm 1.5mm 0 var(--acc); }
.t-retro .c-id { flex: 1; min-width: 0; }
.t-retro .c-id h1 { font: 700 23pt/1.05 "Courier New", Courier, monospace; text-transform: uppercase; color: #2b2620; letter-spacing: .02em; }
.t-retro .c-title { margin-top: 1.5mm; font-size: 10.5pt; color: var(--acc); font-weight: 700; }
.t-retro .c-photo-h { border-radius: 0; filter: grayscale(1); border: .5mm solid #2b2620; }
.t-retro .c-contact-h { flex-basis: 100%; border-top: .3mm dashed #2b2620; padding-top: 2.5mm; }
.t-retro .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 5mm; font-size: 9pt; }
.t-retro .c-cols { margin-top: 8mm; display: grid; grid-template-columns: minmax(0, 1fr) 52mm; column-gap: 9mm; }
.t-retro .c-sec h2 { font: 700 10.5pt/1.2 "Courier New", Courier, monospace; text-transform: uppercase; color: #2b2620; border-bottom: .3mm dashed #2b2620; padding-bottom: 1mm; }
.t-retro .c-sec h2::before { content: "> "; color: var(--acc); }
.t-retro .c-line strong { font-size: 10pt; }
.t-retro .c-date, .t-retro .c-sub, .t-retro .c-lang li span { color: #5a5248; }
.t-retro .c-tags li { border: .3mm solid #2b2620; border-radius: 0; background: #fff; }

/* duo : grand bloc de couleur arrondi, colonne blanche qui le chevauche */
.sheet.t-duo { padding: 0; }
.t-duo .c-head { background: var(--acc); color: #fff; padding: 16mm 82mm 22mm 16mm; border-radius: 0 0 14mm 0; display: flex; flex-direction: column; gap: 2mm; }
.t-duo .c-id h1 { font: 800 30pt/1 "CVF Nunito", Arial, sans-serif; color: #fff; }
.t-duo .c-title { font-size: 12pt; font-weight: 700; color: #fff; opacity: .92; }
.t-duo .c-photo-h { display: none; }
.t-duo .c-contact-h { margin-top: 3mm; }
.t-duo .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 5mm; font-size: 9.3pt; color: #fff; }
.t-duo .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 62mm; column-gap: 9mm; padding: 0 14mm 14mm 16mm; }
.t-duo .c-main { padding-top: 9mm; }
.t-duo .c-side { margin-top: -38mm; background: #fff; border-radius: 6mm; padding: 7mm 6mm; box-shadow: 0 1.5mm 5mm rgba(17, 24, 39, .18); border: .3mm solid #e5e7eb; position: relative; }
.t-duo .c-photo-s { display: block; width: 34mm; height: 34mm; margin: 0 auto 5mm; border: 1mm solid var(--acc); }
.t-duo .c-sec h2 { font: 800 11pt/1.2 "CVF Nunito", Arial, sans-serif; color: var(--acc); }
.t-duo .c-tags li { border: 0; background: color-mix(in srgb, var(--acc) 12%, #fff); border-radius: 99px; padding: .8mm 2.5mm; }

/* géométrie : formes de couleur en haut à droite, titres en pastilles */
.sheet.t-geometrie { padding: 16mm 16mm 14mm; overflow: hidden; }
.t-geometrie .c-head { position: relative; display: flex; align-items: center; gap: 7mm; flex-wrap: wrap; padding-right: 40mm; }
.t-geometrie .c-head::before { content: ""; position: absolute; top: -40mm; right: -42mm; width: 82mm; height: 82mm; border-radius: 50%; background: var(--acc); }
.t-geometrie .c-head::after { content: ""; position: absolute; top: 34mm; right: 4mm; width: 11mm; height: 11mm; background: color-mix(in srgb, var(--acc) 35%, #fff); transform: rotate(45deg); }
.t-geometrie .c-id { flex: 1; min-width: 0; position: relative; }
.t-geometrie .c-id h1 { font: 800 27pt/1.03 "CVF Montserrat", Arial, sans-serif; color: #111827; }
.t-geometrie .c-title { margin-top: 2mm; font-size: 12pt; font-weight: 600; color: var(--acc); }
.t-geometrie .c-photo-h { position: relative; border-radius: 4mm; }
.t-geometrie .c-contact-h { flex-basis: 100%; position: relative; }
.t-geometrie .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 6mm; font-size: 9.4pt; }
.t-geometrie .c-cols { display: grid; grid-template-columns: minmax(0, 1fr) 56mm; column-gap: 9mm; margin-top: 9mm; }
.t-geometrie .c-sec h2 { display: inline-block; background: var(--acc); color: #fff; border-radius: 99px; padding: .8mm 4mm; font-size: 10pt; }
.t-geometrie .c-item { border-left: .6mm solid color-mix(in srgb, var(--acc) 30%, #fff); padding-left: 3.5mm; }
.t-geometrie .c-tags li { border-radius: 99px; border-color: var(--acc); color: var(--acc); }

/* éditorial : allure de magazine, grand titre en italique, filets fins */
.sheet.t-editorial { padding: 16mm 17mm; }
.t-editorial .c-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 8mm; align-items: end; border-bottom: 1.2mm double #111827; padding-bottom: 5mm; }
.t-editorial .c-id h1 { font: italic 600 34pt/1 "CVF Playfair", Georgia, serif; color: #111827; letter-spacing: -.01em; }
.t-editorial .c-title { margin-top: 2.5mm; font: 600 10pt/1.3 "Source Sans 3", Arial, sans-serif; text-transform: uppercase; letter-spacing: .18em; color: var(--acc); }
.t-editorial .c-photo-h { grid-row: span 2; width: 30mm; height: 38mm; border-radius: 0; }
.t-editorial .c-contact-h { grid-column: 1; margin-top: 3mm; }
.t-editorial .c-contact-h .c-list { display: flex; flex-wrap: wrap; gap: 0 5mm; font-size: 9.2pt; color: #374151; }
.t-editorial .c-cols { display: grid; grid-template-columns: 54mm minmax(0, 1fr); column-gap: 9mm; margin-top: 7mm; }
.t-editorial .c-side { grid-column: 1; grid-row: 1; border-right: .25mm solid #d1d5db; padding-right: 7mm; }
.t-editorial .c-main { grid-column: 2; grid-row: 1; }
.t-editorial .c-sec h2 { font: italic 600 14pt/1.2 "CVF Playfair", Georgia, serif; color: #111827; border-bottom: .25mm solid #111827; padding-bottom: 1mm; }
.t-editorial .c-main .c-sec:first-child .c-desc p:first-child::first-letter { float: left; font: 700 28pt/.85 "CVF Playfair", Georgia, serif; color: var(--acc); margin: 1mm 2mm 0 0; }
.t-editorial .c-tags li { border: 0; padding: 0; }
.t-editorial .c-tags li:not(:last-child)::after { content: " ·"; color: var(--acc); }

/* Filigrane de la version gratuite : bandeau image (pas de texte, donc rien dans le texte lu par les logiciels de recrutement) */
.sheet .wm { position: absolute; left: 0; right: 0; bottom: 0; height: 16mm; background: #dfe6f1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 60'%3E%3Ctext x='260' y='41' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-size='34' font-weight='700' fill='%231d4ed8'%3Ecvlibre.com%3C/text%3E%3C/svg%3E") center / auto 70% no-repeat; border-top: .4mm solid #9aa8bf; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* Impression sur plusieurs pages : marges, cadres et colonnes colorées se répètent sur chaque page */
@media print {
  /* 12 nov 2026 : sur iPhone, « transparent » dans un dégradé sortait en NOIR dans le PDF : on met du blanc */
  .sheet, .sheet .cv, .sheet .c-main, .sheet .c-side, .sheet .c-cols { -webkit-box-decoration-break: clone; box-decoration-break: clone; }
  /* colonnes colorées : le fond est porté par la grille, donc il couvre toute la hauteur de chaque page */
  .t-moderne .cv { background: linear-gradient(90deg, var(--acc) 0 68mm, #fff 68mm); }
  .t-vertical .cv { background: linear-gradient(90deg, var(--acc) 0 26mm, #fff 26mm); }
  .t-vertical .c-id { background: none; }
  .t-nuit .cv { background: linear-gradient(90deg, #1a2233 0 70mm, #fff 70mm); }
  .t-pastel .cv { background: linear-gradient(90deg, #eef2fb 0 66mm, #fff 66mm); background: linear-gradient(90deg, color-mix(in srgb, var(--acc) 11%, #fff) 0 66mm, #fff 66mm); }
  .t-chrono .cv { background: linear-gradient(90deg, #fff calc(100% - 64mm), #eef2fb calc(100% - 64mm)); background: linear-gradient(90deg, #fff calc(100% - 64mm), color-mix(in srgb, var(--acc) 10%, #fff) calc(100% - 64mm)); }
}
