/* diet-montpellier.fr — feuille de style unique, écrite pour ce site.
   Aucune dépendance externe, aucune police distante. */

:root {
  --papier: #fbfaf7;
  --papier-creux: #f2efe8;
  --encre: #24211d;
  --encre-pale: #5d574e;
  --trait: #ddd7cb;
  --vert: #3f6b4a;
  --vert-clair: #eaf1ea;
  --gouttiere: 1.15rem;
  --colonne: 44rem;
}

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

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

body {
  margin: 0;
  background: var(--papier);
  color: var(--encre);
  font: 400 17px/1.65 Georgia, "Iowan Old Style", "Times New Roman", serif;
}

.enveloppe {
  width: 100%;
  max-width: var(--colonne);
  margin: 0 auto;
  padding: 0 var(--gouttiere);
}

a { color: var(--vert); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: #2a4c33; }

.evitement { position: absolute; left: -9999px; }
.evitement:focus {
  left: 0; top: 0; z-index: 10;
  background: var(--vert); color: #fff; padding: .6rem 1rem;
}

/* --- Bandeau --- */
.bandeau {
  border-bottom: 1px solid var(--trait);
  background: #fff;
  padding: 1.5rem 0 .9rem;
}
.bandeau__marque { margin: 0; font-size: 1.45rem; letter-spacing: .01em; }
.bandeau__marque a { color: var(--encre); text-decoration: none; }
.bandeau__accroche {
  margin: .25rem 0 1rem;
  color: var(--encre-pale);
  font-size: .92rem;
  font-style: italic;
}
.menu ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .35rem 1.1rem;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: .88rem;
}
.menu a { text-decoration: none; }
.menu a:hover { text-decoration: underline; }

/* --- Corps --- */
main { padding: 2.2rem 0 1rem; }

h1 { font-size: 1.95rem; line-height: 1.22; margin: 0 0 .8rem; font-weight: 400; }
h2 {
  font-size: 1.3rem; line-height: 1.3; margin: 2.4rem 0 .7rem;
  font-weight: 400; padding-bottom: .3rem; border-bottom: 1px solid var(--trait);
}
h3 {
  font-size: 1.05rem; margin: 1.6rem 0 .4rem;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-weight: 600;
}

p { margin: 0 0 1rem; }

.chapo {
  font-size: 1.08rem;
  border-left: 3px solid var(--vert);
  padding-left: 1rem;
  margin-bottom: 1.8rem;
}

ul, ol { padding-left: 1.2rem; }
li { margin-bottom: .4rem; }

table {
  width: 100%; border-collapse: collapse; margin: 1.3rem 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: .92rem;
}
caption {
  caption-side: bottom; text-align: left; color: var(--encre-pale);
  font-size: .82rem; padding-top: .45rem;
}
th, td { border: 1px solid var(--trait); padding: .5rem .6rem; text-align: left; vertical-align: top; }
th { background: var(--papier-creux); font-weight: 600; }
.tableau-defilant { overflow-x: auto; }

/* --- Encarts --- */
.garde-fou {
  background: var(--vert-clair);
  border: 1px solid #cfe0d2;
  padding: .9rem 1.1rem;
  margin: 1.6rem 0;
  font-size: .95rem;
}
.garde-fou p:last-child { margin-bottom: 0; }
.garde-fou strong { display: block; margin-bottom: .3rem; }

.questions dt { font-weight: 700; margin-top: 1.1rem; }
.questions dd { margin: .3rem 0 0; }

.sources {
  margin-top: 2.6rem; padding-top: 1rem;
  border-top: 2px solid var(--trait);
  font-size: .9rem; color: var(--encre-pale);
}
.sources h2 {
  font-size: 1.02rem; border: 0; margin: 0 0 .5rem;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-weight: 600; color: var(--encre);
}
.sources ul { padding-left: 1.1rem; }

/* --- Bloc partenaires (accueil uniquement) --- */
.partenaires {
  margin: 3rem 0 1rem; padding: 1.2rem 1.3rem;
  background: #fff; border: 1px solid var(--trait);
}
.partenaires h2 {
  margin: 0 0 .5rem; border: 0; font-size: 1.1rem;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-weight: 600;
}
.partenaires p { font-size: .93rem; color: var(--encre-pale); }
.partenaires ul { margin: .8rem 0 0; padding-left: 1.1rem; font-size: .96rem; }

/* --- Sommaire de l'accueil --- */
.rubriques { list-style: none; padding: 0; margin: 1.4rem 0 0; }
.rubriques li { border-top: 1px solid var(--trait); padding: .85rem 0; margin: 0; }
.rubriques a { font-size: 1.05rem; }
.rubriques span {
  display: block; color: var(--encre-pale); font-size: .92rem; margin-top: .2rem;
}

/* --- Pied --- */
.pied {
  margin-top: 3.5rem; border-top: 1px solid var(--trait);
  background: var(--papier-creux); padding: 1.6rem 0 2.2rem;
  font-size: .88rem; color: var(--encre-pale);
}
.pied__liens {
  list-style: none; padding: 0; margin: 0 0 .9rem;
  display: flex; flex-wrap: wrap; gap: .3rem .9rem;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.pied__avertissement { margin-bottom: .9rem; }

@media (min-width: 44rem) {
  body { font-size: 18px; }
  h1 { font-size: 2.25rem; }
}
