@media print {
  /* Dimension et marges de page */
	/* Merci Alsacréations */
  @page {
    size: A4 portrait;
    margin: 2cm 1.5cm;
  }

  /* Reset général */
	input,
  textarea,
  select {
    all: revert;
  }

  /* On redéfinit les styles globaux (12pt = 16px) */
  body {
    width: auto;
    margin: 0;
    font-family: serif;
    font-size: 12pt;
    font-family: Georgia, serif;
    line-height: 1.5;
    color: #000000 !important;
    background-color: #ffffff !important;
  }

  /* Espacements typographiques (15pt = 20px) */
  p,
  blockquote,
  label,
  ul,
  ol {
    margin-block: 0 15pt;
  }
  p:last-child {
    margin-bottom: 0;
  }

  /* Titrages (24pt = 32px) */
  h1 {
    margin-block: 0 24pt;
    font-weight: 700;
    font-size: 18pt;
    line-height: 1.1;
  }
  h2 {
    margin-block: 0 18pt;
    font-weight: 700;
    font-size: 16pt;
    line-height: 1.1;
  }
  h3 {
    margin-block: 0 15pt;
    font-weight: 700;
    font-size: 14pt;
  }
  h4 {
    margin-block: 0 12pt;
    font-weight: 700;
    font-size: 12pt;
  }

  /* Classes dédiées print / no-print */
  .print {
    display: revert;
  }
  .no-print {
    display: none;
  }

  /* Pas de veuves ou orphelines (3 lignes minimum) */
  p,
  blockquote {
    orphans: 3;
    widows: 3;
  }

  /* Pas de saut de page au sein de ces éléments */
  blockquote,
  ul,
  ol,
  figure,
  table {
    page-break-inside: avoid;
  }

  /* Pas de saut de page après ces éléments */
  h1,
  h2,
  h3,
  h4,
  caption {
    page-break-after: avoid;
  }

  /* Styles des liens */
  a,
  a:link,
  a:visited {
    background: transparent !important;
    color: unset;
    font-weight: 700;
    text-decoration: underline !important;
  }

  /* On affiche l'URL des liens externes */
  a[href^="http"]:after,
  a[href^="https"]:after {
    content: " (" attr(href) ")";
  }

  /* On masque les vidéos */
  video,
  object,
  iframe {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }
}