*{
    /* Réinitialise les marges et espacements de tous les éléments */
    margin: 0;
    padding: 0;
}

body{
    /* Style du corps de la page : définit la hauteur, la police, la couleur du texte et de fond */
    height: 500vh;
    position: relative;
    font-family: 'Inter', sans-serif;
    background-color: rgb(250, 250, 250);
    color: rgb(10, 10, 10);
}

h1, h2 {
    /* Style des titres h1 et h2 : police, couleur et alignement centré */
    font-family: 'Playfair Display', serif;
    color: rgb(110, 0, 20);
    text-align: center;
}

[id] {
  /* Ajoute un espacement lors du défilement pour les éléments avec un identifiant */
  scroll-margin-top: 60px;
}

.subtitle_cv {
    /* Centre le texte des éléments avec la classe .subtitle_cv */
    text-align: center;
}

.menu{
    /* Style du menu : position collante en haut de la page, avec un fond sombre et une hauteur fixe */
    position: sticky;
    top: 0;
    left: 0;
    background-color: rgb(10, 10, 10);
    height: 60px;
    display: flex;
    align-items: center;
    z-index: 1000;
}

.menu > ul{ 
    /* Style des éléments de menu (liens) : suppression du soulignement et ajout d'un fond au survol */
    display: flex;
    list-style: none;
}

.menu li a{
    text-decoration: none;
    color: rgb(250, 250, 250);
    display: block;
    padding: 20px 20px;
}

.menu li a:hover{
    background-color: rgb(100, 100, 100);
}

.has_submenu {
    /* Style des éléments de menu ayant un sous-menu : position relative pour permettre l'affichage du sous-menu */
    position: relative;
}

.submenu {
    /* Style du sous-menu : caché par défaut, affiché au survol */
    list-style: none;
    display: none;
    position: absolute;
    top: 60px;
    left: 0;
    background-color: rgb(10, 10, 10);
    width: max-content;
}

.submenu li a:hover {
    background-color: rgb(100, 100, 100);
}

.has_submenu:hover .submenu{
    display: block;
}

.cv_section {
    /* Style des sections de CV : bordure, ombre et padding pour un effet de boîte */
    border: 1px solid black;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 6px gray;
}

.cv_section h2 {
    margin-top: 0;
    padding-bottom: 8px;
}

table {
    /* Style des tableaux : largeur, police et espacement */
    width: 100%;
    border-collapse: collapse;
    font-family: Arial, sans-serif;
}

td, th {
    /* Style des cellules du tableau : bordures, couleur de texte et espacement */
    border-right: 5px solid black;
    padding: 8px;
    color: rgb(250, 250, 250);
}

tr {
    /* Style des lignes du tableau : couleur de fond et survol */
    background-color: rgb(110, 0, 20);
}

th {
  background: black;
  color: white;
  padding: 10px;
  text-align: left;
}

td {
  padding: 10px;
  border-bottom: 5px solid black;
}

tr:hover {
  background: rgb(130, 0, 30);
}

body ul:not(.menu > ul):not(.submenu) {
    /* Style des listes autres que celles du menu : ajoute des puces et un padding */
    list-style: disc;
    padding-left: 20px;
}