/* Socle : remise à zéro légère, texte, titres, conteneur, focus. Valeurs : tokens.css seulement. */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--fond);
  color: var(--encre);
  font-family: var(--police-texte);
  font-size: var(--t-corps);
  font-weight: 400;
  line-height: var(--lh-corps);
}

h1, h2, h3, p, ul, dl, dd, figure { margin: 0; }
ul { padding: 0; list-style: none; }
img { display: block; max-inline-size: 100%; }

h1, h2, h3 { font-family: var(--police-titre); font-weight: 500; }
h1 { font-size: var(--t-h1); line-height: 1.08; letter-spacing: var(--ls-h1); text-wrap: balance; }
h2 { font-size: var(--t-h3); line-height: 1.2; }
h3 { font-size: var(--t-h3); line-height: 1.2; }

a { color: inherit; }

.conteneur { inline-size: min(1200px, 100% - 3rem); margin-inline: auto; }

/* Visible pour les lecteurs d'écran seulement */
.masque-visuel {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

:focus-visible { outline: 3px solid var(--dominante); outline-offset: 2px; }

main { transition: opacity var(--d-court) var(--ease-deplacement); }
main.en-bascule { opacity: 0; }

@media (max-width: 759px) {
  .conteneur { inline-size: calc(100% - 2rem); }
}

@media (prefers-reduced-motion: reduce) {
  main { transition: opacity var(--d-micro) linear; }
}
