:root {
  --font-sans: "Source Sans 3", "Source Sans Pro", "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Literata", Georgia, "Times New Roman", serif;   /* titres de livres uniquement */

  /* Tailles — tablette (par défaut). Rien en dessous de 17 px, jamais de graisse light. */
  --text-xs: 17px;      /* badges, méta — gras uniquement */
  --text-sm: 18px;      /* aide de champ, nav sur téléphone */
  --text-body: 20px;    /* texte courant */
  --text-lg: 22px;      /* boutons principaux, champ de recherche */
  --text-h3: 24px;      /* titre de carte */
  --text-h2: 28px;      /* titre de section / de page secondaire */
  --text-h1: 36px;      /* titre de page */
  --text-display: 44px; /* accueil, titre de la fiche livre */

  --leading-tight: 1.15;
  --leading-snug: 1.3;
  --leading-body: 1.6;

  --weight-regular: 400;
  --weight-semibold: 600;
  --weight-bold: 700;
}

/* Téléphone : on descend d'un cran, jamais sous 18 px pour le texte courant */
@media (max-width: 600px) {
  :root {
    --text-body: 18px;
    --text-lg: 20px;
    --text-h3: 22px;
    --text-h2: 26px;
    --text-h1: 30px;
    --text-display: 34px;
  }
}

html { font-family: var(--font-sans); font-size: var(--text-body); line-height: var(--leading-body); color: var(--text-body); background: var(--surface-page); -webkit-font-smoothing: antialiased; }
body { margin: 0; }
h1, h2, h3, p { margin: 0; }
h1 { font-family: var(--font-serif); font-size: var(--text-h1); line-height: var(--leading-tight); font-weight: 600; letter-spacing: -0.005em; }
h2 { font-size: var(--text-h2); line-height: var(--leading-snug); font-weight: var(--weight-bold); }
h3 { font-size: var(--text-h3); line-height: var(--leading-snug); font-weight: var(--weight-bold); }
a { color: var(--color-accent); font-weight: var(--weight-bold); text-decoration: underline; text-underline-offset: 4px; }
a:hover, a:active { color: var(--color-accent-press); }
.book-title { font-family: var(--font-serif); font-weight: 600; letter-spacing: -0.005em; }
.label { font-size: 15px; font-weight: var(--weight-bold); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-label); } /* usage documentaire seulement, pas dans l'app */
