/*
 * Feuille de style d'impression du CV
 * Structure inspirée d'un CV de référence : en-tête sobre, sections titrées,
 * compétences en grille libellé/contenu, expériences en 2 colonnes
 * ENVIRONNEMENT / MISSIONS.
 * Palette : bleu du site (#2563eb).
 */

@page {
  size: A4 portrait;
  margin: 0.8cm 1.1cm 1.2cm 1.1cm;
}

/* Media queries pour gérer l'affichage écran vs impression */
@media screen {
  #print-only-content {
    display: none !important;
  }
}

@media print {
  html,
  body {
    margin: 0;
    padding: 0;
  }

  body {
    background-color: white;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    line-height: 1.35;
    color: #1f2937;
  }

  /* Masquer le contenu web à l'impression */
  #web-content {
    display: none !important;
  }

  /* Afficher le contenu impression */
  #print-only-content {
    display: block !important;
  }

  /* ============================ En-tête ============================ */
  /* Pas de filet : simple espace vertical sous l'en-tête (~2 lignes). */
  #header-print {
    padding-bottom: 6px;
    margin-bottom: 30px;
  }

  #header-print h1 {
    margin: 0;
    font-size: 20pt;
    letter-spacing: 0.3px;
    color: #111827;
  }

  /* Nom et prénom dans la même couleur que le h1 (sobre à l'impression) */
  #header-print h1 #identite_nom {
    color: inherit;
  }

  #header-print h2 {
    margin: 2px 0 0 0;
    font-size: 12pt;
    font-weight: normal;
    color: #6b7280;
  }

  .print-pitch {
    margin: 8px 0 0 0;
    font-size: 9.5pt;
    color: #475569;
    text-align: justify;
  }

  /* ======================= Titres de section ======================= */
  /* Espacement généreux : la page 1 est dédiée à la présentation,
     les sections y sont aérées pour occuper la page. */
  .cv-section {
    margin-top: 22px;
  }

  .cv-section-title {
    font-size: 13pt;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #2563eb;
    margin: 0 0 10px 0;
    padding-bottom: 4px;
    border-bottom: 1px solid #2563eb;
    break-after: avoid;
    page-break-after: avoid;
  }

  /* Tous les titres de section de même niveau alignés sur la même marge
     (bord gauche de la page), comme « Expériences professionnelles ». */

  /* ==================== Compétences (grille) ==================== */
  #competences-print {
    width: 100%;
    box-sizing: border-box;
  }

  .comp-grid {
    margin: 0;
    padding: 0;
  }

  .comp-row {
    display: table;
    width: 100%;
  }

  .comp-label,
  .comp-value {
    display: table-cell;
    vertical-align: top;
    font-size: 9pt;
    padding-bottom: 5px;
  }

  .comp-label {
    width: 32%;
    text-align: right;
    font-weight: bold;
    color: #374151;
    padding-right: 12px;
  }

  .comp-value {
    width: 68%;
    color: #1f2937;
  }

  /* ==================== Formations (grille) ==================== */
  #formations-print {
    width: 100%;
    box-sizing: border-box;
  }

  /* Sous-titres Diplômes / Certifications : alignés sur la colonne
     des libellés (32%, comme les valeurs de la grille). */
  .formation-subtitle {
    font-size: 10pt;
    font-weight: bold;
    color: #374151;
    margin: 10px 0 4px 32%;
    break-after: avoid;
    page-break-after: avoid;
  }

  .formation-grid {
    margin: 0;
    padding: 0;
  }

  .formation-row {
    display: table;
    width: 100%;
  }

  .formation-date,
  .formation-label {
    display: table-cell;
    vertical-align: top;
    font-size: 9pt;
    padding-bottom: 5px;
  }

  .formation-date {
    width: 32%;
    text-align: right;
    font-weight: bold;
    color: #374151;
    padding-right: 12px;
    white-space: nowrap;
  }

  .formation-label {
    width: 68%;
    color: #1f2937;
  }

  /* ======================= Expériences ======================= */
  #experiences-print-container {
    width: 100%;
    /* Page 1 dédiée à la présentation (en-tête, formations, compétences) :
       les expériences démarrent toujours sur une nouvelle page. */
    page-break-before: always;
    break-before: page;
  }

  #experiences-print-container > .cv-section-title {
    margin-top: 16px;
  }

  #experiences-print {
    margin-top: 0;
  }

  .xp-item {
    margin-bottom: 14px;
  }

  .xp-head {
    overflow: hidden;
    margin-bottom: 4px;
    break-after: avoid;
    page-break-after: avoid;
  }

  .xp-logo {
    float: left;
    max-width: 42px;
    max-height: 42px;
    margin-right: 10px;
    object-fit: contain;
  }

  .xp-headline {
    display: block;
  }

  .xp-date {
    font-weight: bold;
    font-size: 9pt;
    color: #374151;
    margin-right: 10px;
  }

  .xp-company {
    font-weight: bold;
    font-size: 13pt;
    color: #111827;
  }

  .xp-contract-head {
    margin: 6px 0 3px 0;
    break-after: avoid;
    page-break-after: avoid;
  }

  .xp-title {
    color: #2563eb;
    font-size: 11.5pt;
    text-transform: uppercase;
    letter-spacing: 0.4px;
  }

  .xp-desc {
    font-style: italic;
    font-size: 9pt;
    color: #6b7280;
    margin: 0 0 3px 0;
    break-after: avoid;
    page-break-after: avoid;
  }

  .xp-team {
    font-weight: bold;
    font-size: 8.5pt;
    color: #374151;
    margin: 0 0 6px 0;
    break-after: avoid;
    page-break-after: avoid;
  }

  /* Deux colonnes ENVIRONNEMENT / MISSIONS */
  .xp-cols {
    display: table;
    width: 100%;
    border-collapse: collapse;
  }

  .xp-env,
  .xp-missions {
    display: table-cell;
    vertical-align: top;
  }

  .xp-env {
    width: 34%;
    padding-right: 16px;
  }

  .xp-missions {
    width: 66%;
  }

  .xp-cols h4 {
    font-size: 9pt;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #111827;
    margin: 0 0 4px 0;
    padding-bottom: 2px;
    border-bottom: 1px solid #d1d5db;
    break-after: avoid;
    page-break-after: avoid;
  }

  .xp-env-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .xp-env-list li {
    position: relative;
    font-size: 8.5pt;
    color: #374151;
    padding-left: 10px;
    margin-bottom: 2px;
  }

  .xp-env-list li::before {
    content: "\2022";
    position: absolute;
    left: 0;
    color: #2563eb;
  }

  .xp-mission-list {
    margin: 0;
    padding-left: 14px;
  }

  .xp-mission-list > li {
    font-size: 9pt;
    margin-bottom: 3px;
  }

  .xp-sub {
    margin: 2px 0;
    padding-left: 14px;
  }

  .xp-sub li {
    list-style-type: circle;
    font-size: 8.5pt;
    color: #4b5563;
    margin-bottom: 1px;
  }

  /* Détail : autoriser la coupure si le bloc est long */
  .mission-detail .xp-item {
    break-inside: auto;
  }

  /* Résumés : garder les blocs compacts d'un seul tenant */
  .mission-resume .xp-item,
  .mission-resume-court,
  .mission-leger {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* ================ Autres missions (résumés) ================ */
  .autres-missions-niveau1,
  .autres-missions-niveau2,
  .missions-leger {
    margin-top: 12px;
  }

  .autres-missions-niveau1 .cv-section-title,
  .autres-missions-niveau2 .cv-section-title,
  .missions-leger .cv-section-title {
    font-size: 11pt;
    margin-bottom: 5px;
  }

  .mission-resume-court {
    margin-bottom: 8px;
  }

  .mission-resume-court h3 {
    font-size: 10.5pt;
    margin: 5px 0 2px 0;
    color: #111827;
  }

  .mission-resume-court .client-resume-court {
    font-size: 8pt;
    font-style: italic;
    margin: 2px 0 4px 0;
    color: #6b7280;
  }

  .mission-resume-court .titre-periode {
    font-size: 9pt;
    margin: 3px 0;
    color: #555;
  }

  .mission-resume-court .titre-periode strong {
    font-weight: bold;
  }

  .missions-list {
    margin: 2px 0 2px 10px;
    padding-left: 10px;
  }

  .missions-list li {
    font-size: 8pt;
    list-style-type: disc;
    margin: 1px 0;
  }

  /* Gestion des sauts de page */
  table,
  figure,
  img {
    page-break-inside: avoid;
  }

  /* Nos tableaux de mise en page peuvent se couper sur plusieurs pages */
  .comp-row,
  .xp-cols {
    page-break-inside: auto;
    break-inside: auto;
  }

  hr {
    border: none;
    border-top: 1px solid #d1d5db;
    margin: 10px 0;
  }

  /* Suppression des éléments inutiles à l'impression */
  #formations {
    display: none !important;
  }
}
