/* CV au format IT Club : A4, noir et or (#ceb73b, couleur du logo). */ :root { --noir: #111111; --or: #ceb73b; --or-texte: #7d6c12; /* or assombri : lisible en petit corps sur fond blanc */ --gris: #555555; --trait: #d9d6cc; --marge: 14mm; } /* Marges latérales et haute à zéro : le bandeau noir va jusqu'au bord de la feuille. Les marges du texte viennent du tableau .corps, répété sur chaque page. */ @page { size: A4; margin: 0 0 10mm; @bottom-right { content: counter(page) " / " counter(pages); font: 7.5pt Arial, Helvetica, sans-serif; color: #555555; padding-right: 14mm; vertical-align: top; } } * { box-sizing: border-box; } html { -webkit-print-color-adjust: exact; print-color-adjust: exact; } body { margin: 0; background: #e9e7e1; color: var(--noir); font: 9.3pt/1.36 Arial, "Helvetica Neue", Helvetica, sans-serif; } /* Barre d'outils, hors impression ---------------------------------------- */ .outils { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; padding: 0.6rem 1.25rem; background: var(--noir); color: #fff; font-size: 0.9rem; } .outils a { color: #fff; } .versions { display: flex; gap: 0.25rem; } .versions:first-of-type { margin-left: auto; } .versions:last-of-type { margin-right: auto; } .versions a { padding: 0.25rem 0.75rem; border: 1px solid #555; border-radius: 999px; text-decoration: none; } .versions a[aria-current] { background: var(--or); border-color: var(--or); color: var(--noir); font-weight: 700; } .outils .action { font: inherit; font-weight: 700; cursor: pointer; padding: 0.4rem 1rem; text-decoration: none; border: 1px solid var(--or); border-radius: 6px; background: var(--or); color: var(--noir); } .outils a:focus-visible, .outils button:focus-visible { outline: 3px solid #fff; outline-offset: 2px; } /* Messages au-dessus de la feuille, hors impression */ .note { max-width: 210mm; margin: 1rem auto 0; padding: 0.75rem 1rem; background: #fff; border-left: 4px solid var(--or); font-size: 0.9rem; } .note p { margin: 0 0 0.5rem; } .note-erreur { border-left-color: #a3341f; } .note-actions { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: flex-start; } .note button { font: inherit; font-weight: 700; cursor: pointer; padding: 0.4rem 1rem; border: 1px solid var(--noir); border-radius: 6px; background: var(--noir); color: #fff; } .note button[disabled] { opacity: 0.6; cursor: progress; } .note details summary { cursor: pointer; font-weight: 700; padding: 0.4rem 0; } .note ol { margin: 0.4rem 0 0; padding-left: 1.2rem; display: grid; gap: 0.5rem; } .note label { display: block; margin-bottom: 0.4rem; } .note a { color: var(--noir); } /* Feuille ---------------------------------------------------------------- */ .page { width: 210mm; max-width: 100%; min-height: 297mm; margin: 1.5rem auto; padding: var(--marge); background: #fff; box-shadow: 0 2px 14px rgba(0, 0, 0, 0.18); } .bandeau { display: flex; align-items: center; gap: 7mm; margin: calc(-1 * var(--marge)) calc(-1 * var(--marge)) 5mm; padding: 6.5mm var(--marge) 6mm; background: var(--noir); color: #fff; border-bottom: 1mm solid var(--or); } .logo { width: 36mm; height: auto; flex: none; } .identite { border-left: 0.3mm solid var(--or); padding-left: 7mm; min-width: 0; } h1 { margin: 0; font: 400 19pt/1.1 Georgia, "Times New Roman", serif; letter-spacing: 0.01em; overflow-wrap: anywhere; } .titre { margin: 1mm 0 0; color: var(--or); font-size: 10.5pt; letter-spacing: 0.03em; } .reperes { display: flex; flex-wrap: wrap; gap: 0.8mm 7mm; margin: 0 0 3.6mm; padding: 0 0 2.6mm; border-bottom: 0.2mm solid var(--trait); } .reperes span { white-space: nowrap; } .reperes small { font-size: 6.8pt; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gris); margin-right: 0.6mm; } section { margin: 0 0 3.6mm; } h2 { margin: 0 0 1.6mm; padding: 0 0 0.7mm; border-bottom: 0.4mm solid var(--or); font: 400 11pt/1.2 Georgia, "Times New Roman", serif; letter-spacing: 0.02em; break-after: avoid; } h3 { margin: 0 0 0.6mm; font-size: 9.8pt; } p { margin: 0 0 0.6mm; } .competences { width: 100%; border-collapse: collapse; } .competences th { width: 31mm; text-align: left; vertical-align: top; padding: 0.35mm 3mm 0.35mm 0; font-size: 7.3pt; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gris); font-weight: 400; line-height: 1.7; } .competences td { padding: 0.35mm 0; } .techno { white-space: nowrap; } .techno small { color: var(--or-texte); font-size: 7.5pt; } .experience { display: grid; grid-template-columns: 17mm 1fr; gap: 0 4mm; padding: 1.7mm 0; border-top: 0.2mm solid var(--trait); break-inside: avoid; } .experience:first-of-type { border-top: 0; padding-top: 0; } .periode .fleche { display: none; } .periode { margin: 0.3mm 0 0; font-size: 8pt; color: var(--or-texte); font-weight: 700; line-height: 1.3; } .employeur { color: var(--gris); font-weight: 400; font-size: 9pt; margin-left: 1.5mm; } .environnement { font-size: 8.3pt; color: #333; margin: 0.4mm 0 0; } .cadre { font-size: 8.5pt; color: var(--gris); margin: 0.3mm 0 0.6mm; } .mission { font-style: italic; margin: 0 0 0.8mm; } .deux { display: grid; grid-template-columns: 1fr 1fr; gap: 0 7mm; break-inside: avoid; } .deux ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6mm; } .contact { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1mm 6mm; margin-top: 4.5mm; padding: 2.4mm 4mm; background: #f6f3e4; border-left: 1mm solid var(--or); break-inside: avoid; } .signature { font: italic 10pt Georgia, "Times New Roman", serif; } .mentions { margin: 4mm 0 0; font-size: 6.8pt; color: var(--gris); text-align: center; letter-spacing: 0.02em; } .corps { width: 100%; border-collapse: collapse; } .corps > * > tr > td { padding: 0; } .marge-haut, .marge-bas { height: 0; } /* Aperçu sur petit écran : la feuille occupe la largeur disponible */ @media screen and (max-width: 820px) { :root { --marge: 5vw; } .page { margin: 0 auto; min-height: 0; box-shadow: none; } .bandeau { flex-wrap: wrap; gap: 4mm; } .identite { border-left: 0; padding-left: 0; } .experience { grid-template-columns: 1fr; } .periode br { display: none; } .periode .fleche { display: inline; } .periode { margin-bottom: 0.5mm; } .deux { grid-template-columns: 1fr; gap: 3mm; } .versions { margin: 0; } .outils .action { flex: 1 1 auto; text-align: center; } } /* Impression ------------------------------------------------------------- */ @media print { body { background: #fff; } .outils, .note { display: none; } .page { width: auto; min-height: 0; margin: 0; padding: 0 var(--marge); box-shadow: none; } .bandeau { margin: 0 calc(-1 * var(--marge)); } .marge-haut { height: 7mm; } .marge-bas { height: 7mm; } .mentions { position: fixed; left: 0; right: 0; bottom: 0; margin: 0; } a { color: inherit; text-decoration: none; } }