:root {
  --couleur-principale: #2f9e44;        /* vert naturel franc */
  --couleur-principale-fonce: #1f7a33;  /* survols, titres, footer */
  --couleur-accent: #8fd19e;            /* vert clair décoratif */
  --couleur-clair: #e3f4e6;             /* fonds de sections */
  --couleur-fond: #f4faf5;
  --couleur-texte: #1f2a22;
  --police-titres: "Playfair Display", serif;
  --police-texte: "Inter", sans-serif;
  --largeur-max: 1200px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--police-texte);
  color: var(--couleur-texte);
  background: var(--couleur-fond);
  line-height: 1.6;
}

h1, h2, h3 { font-family: var(--police-titres); line-height: 1.2; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

.conteneur {
  width: 100%;
  max-width: var(--largeur-max);
  margin: 0 auto;
  padding: 0 1.25rem;
}

.btn {
  display: inline-block;
  padding: 0.8rem 1.6rem;
  background: var(--couleur-principale);
  color: #fff;
  border-radius: 6px;
  font-weight: 600;
  transition: transform 0.2s, background 0.2s;
}
.btn:hover { background: var(--couleur-principale-fonce); transform: translateY(-2px); }

.btn-clair { background: #fff; color: var(--couleur-principale-fonce); }
.btn-clair:hover { background: var(--couleur-clair); }