/* ==========================================================================
   DE MONTIGNY — base.css
   Remise à zéro des styles navigateur + styles typographiques de fond.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

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

body {
  margin: 0;
  background: var(--blanc);
  color: var(--noir);
  font-family: var(--font-texte);
  font-size: var(--t-texte);
  line-height: 1.65;
  font-weight: var(--w-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, video { max-width: 100%; height: auto; display: block; }

/* L'attribut hidden doit l'emporter sur nos propres règles d'affichage :
   sans cela, une classe qui déclare display:grid rendrait visible un bloc
   pourtant marqué hidden. */
[hidden] { display: none !important; }

h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }

a { color: inherit; text-decoration: none; }

button, input, select, textarea {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  padding: 0;
}
button { cursor: pointer; }

/* --- Accessibilité : anneau de focus visible au clavier uniquement ------- */
:focus-visible {
  outline: 2px solid var(--azalea);
  outline-offset: 3px;
}

/* --- Classes typographiques ---------------------------------------------- */

/* Nom de marque, hero. Capitales, très serrées, très grasses. */
.t-geant {
  font-family: var(--font-titre);
  font-size: var(--t-geant);
  font-weight: var(--w-noir);
  letter-spacing: var(--ls-serre);
  line-height: 0.86;
  text-transform: uppercase;
}

/* Titre de section. */
.t-titre-1 {
  font-family: var(--font-titre);
  font-size: var(--t-titre-1);
  font-weight: var(--w-noir);
  letter-spacing: var(--ls-serre);
  line-height: 0.92;
  text-transform: uppercase;
}

/* Titre de produit. */
.t-titre-2 {
  font-family: var(--font-titre);
  font-size: var(--t-titre-2);
  font-weight: var(--w-gras);
  letter-spacing: -0.02em;
  line-height: 1.1;
  text-transform: uppercase;
}

/* Accent éditorial en serif italique : « Eugénie », citations, chapôs. */
.t-serif {
  font-family: var(--font-serif);
  font-weight: var(--w-normal);
  font-style: italic;
  letter-spacing: 0.01em;
  line-height: 1.15;
  text-transform: none;
}

/* Label en petites capitales très espacées : catégories, mentions, boutons. */
.t-label {
  font-family: var(--font-texte);
  font-size: var(--t-label);
  font-weight: var(--w-medium);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  line-height: 1.4;
}

/* Texte courant long. */
.t-texte  { font-size: var(--t-texte); line-height: 1.7; max-width: 62ch; }
.t-petit  { font-size: var(--t-petit); line-height: 1.6; color: var(--gris); }

/* --- Utilitaires de mise en page ----------------------------------------- */
.contenu     { padding-inline: var(--marge-page); }
.pleine-page { width: 100%; }
.centre      { margin-inline: auto; }
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
}
