/* =============================================================================
   public/css/reset.css
   Rôle : Neutralise les styles par défaut des navigateurs
   Basé sur un reset moderne (inspiré de Josh Comeau's CSS Reset)
   Chargé EN PREMIER avant style.css
   ============================================================================= */


/* -----------------------------------------------------------------------------
   1. BOX-SIZING
   Par défaut les navigateurs calculent la largeur SANS le padding et la bordure
   border-box = largeur INCLUT padding et bordure → beaucoup plus intuitif
   On l'applique à tous les éléments via l'héritage
   ----------------------------------------------------------------------------- */
*, *::before, *::after {
    box-sizing: border-box;
}


/* -----------------------------------------------------------------------------
   2. RESET MARGES ET PADDINGS
   Les navigateurs ajoutent des marges par défaut sur beaucoup d'éléments
   (body, h1-h6, p, ul, ol, figure...) — on les supprime tous
   ----------------------------------------------------------------------------- */
* {
    margin: 0;
    padding: 0;
}


/* -----------------------------------------------------------------------------
   3. HTML ET BODY
   ----------------------------------------------------------------------------- */
html {
    /* Taille de base : 1rem = 16px par défaut navigateur*/
    font-size: 100%;
    /* Défilement fluide pour les ancres */
    scroll-behavior: smooth;
    /* Évite les ajustements de taille de police sur mobile en mode paysage */
    -webkit-text-size-adjust: 100%;
}

body {
    /* Taille de texte de base : 1.6rem = 16px */
    font-size: 1.6rem;
    /* Hauteur de ligne confortable pour la lecture */
    line-height: 1.5;
    /* Rendu des polices plus net */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}


/* -----------------------------------------------------------------------------
   4. ÉLÉMENTS DE LISTE
   Supprime les puces et numéros par défaut
   On les remet manuellement là où on en a besoin
   ----------------------------------------------------------------------------- */
ul, ol {
    list-style: none;
}


/* -----------------------------------------------------------------------------
   5. LIENS
   Supprime le soulignement par défaut
   On le remet manuellement dans style.css où nécessaire
   ----------------------------------------------------------------------------- */
a {
    text-decoration: none;
    color: inherit;
}


/* -----------------------------------------------------------------------------
   6. IMAGES ET MÉDIAS
   ----------------------------------------------------------------------------- */
img, picture, video, canvas, svg {
    /* Évite le débordement hors du conteneur parent */
    display: block;
    max-width: 100%;
}

img {
    /* Évite l'espace blanc sous les images (comportement inline par défaut) */
    display: block;
}


/* -----------------------------------------------------------------------------
   7. FORMULAIRES
   Les éléments de formulaire n'héritent pas de la police par défaut
   ----------------------------------------------------------------------------- */
input, button, textarea, select {
    font: inherit; /* hérite de la police du body */
    border: none;
    background: none;
    outline: none;
}

button {
    cursor: pointer;
}


/* -----------------------------------------------------------------------------
   8. TITRES
   Supprime le gras et la taille par défaut des titres
   On les redéfinit proprement dans style.css
   ----------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
}


/* -----------------------------------------------------------------------------
   9. TABLEAUX
   ----------------------------------------------------------------------------- */
table {
    border-collapse: collapse;
    border-spacing: 0;
}


/* -----------------------------------------------------------------------------
   10. DIVERS
   ----------------------------------------------------------------------------- */

/* Évite que le texte déborde de son conteneur */
p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
}

/* Supprime l'animation pour les utilisateurs qui préfèrent moins de mouvement */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}