.toc {
  background: var(--vhd-fond-alt);
  border-left: 3px solid var(--vhd-cyan);
  padding: 1.5rem 1.75rem;
  margin: 2rem 0;
  max-width: 56rem;
}
.toc-titre {
  font-size: var(--t-meta);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--vhd-gris);
  margin-bottom: 0.75rem;
}
.toc ol { list-style: none; counter-reset: toc-counter; }
.toc ol li { counter-increment: toc-counter; padding: 0.2rem 0; font-size: 0.875rem; }
.toc ol li::before { content: counter(toc-counter, decimal-leading-zero) " · "; color: var(--vhd-cyan); font-weight: 500; }
.toc a { color: var(--vhd-texte); text-decoration: none; border-bottom: 1px solid transparent; }
.toc a:hover { border-bottom-color: var(--vhd-cyan); }

.legal-section { scroll-margin-top: 5rem; }
.legal-num { font-size: var(--t-meta); letter-spacing: 0.18em; font-weight: 500; color: var(--vhd-gris); margin-bottom: 0.5rem; display: block; }

.art33-encadre {
  background: var(--vhd-fond);
  border-top: 3px solid var(--vhd-or);
  padding: 2rem;
  margin: 2rem 0;
  max-width: 64rem;
}
.art33-encadre blockquote {
  font-size: 1.0625rem;
  line-height: 1.65;
  font-style: normal;
}
.art33-encadre blockquote::before {
  content: "« ";
  color: var(--vhd-or);
  font-size: 1.5rem;
  line-height: 0;
  vertical-align: -0.1em;
}
.art33-encadre blockquote::after {
  content: " »";
  color: var(--vhd-or);
  font-size: 1.5rem;
  line-height: 0;
  vertical-align: -0.1em;
}
.art33-source {
  font-size: var(--t-meta);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--vhd-or);
  font-weight: 500;
  margin-top: 1rem;
}

.finalites-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 2rem;
  font-size: 0.875rem;
}
.finalites-table th {
  text-align: left;
  font-size: var(--t-meta);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--vhd-gris);
  padding: 0.75rem 0.75rem;
  border-bottom: 2px solid var(--vhd-texte);
  vertical-align: bottom;
}
.finalites-table td {
  padding: 1rem 0.75rem;
  border-bottom: 1px solid var(--vhd-filet);
  vertical-align: top;
  line-height: 1.5;
}
.finalites-table td:first-child {
  font-weight: 600;
  width: 22%;
}
.finalites-table .base-legale {
  color: var(--vhd-cyan);
  font-size: var(--t-meta);
  letter-spacing: 0.05em;
}
.finalites-table .duree {
  color: var(--vhd-gris);
  font-style: italic;
}

ul.bullet-clean {
  list-style: none;
  margin-top: 1rem;
}
ul.bullet-clean li {
  padding-left: 1.5rem;
  position: relative;
  margin-bottom: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.6;
}
ul.bullet-clean li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--vhd-or);
}

.droits-table { width: 100%; border-collapse: collapse; margin-top: 1.5rem; font-size: 0.9375rem; }
.droits-table th {
  text-align: left;
  font-size: var(--t-meta);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--vhd-gris);
  padding: 0.75rem 0;
  border-bottom: 2px solid var(--vhd-texte);
}
.droits-table td {
  padding: 1rem 0;
  border-bottom: 1px solid var(--vhd-filet);
  vertical-align: top;
  line-height: 1.55;
}
.droits-table td:first-child {
  font-weight: 600;
  width: 30%;
  padding-right: 2rem;
  color: var(--vhd-cyan);
}

.cookies-table { width: 100%; border-collapse: collapse; margin-top: 1.5rem; font-size: 0.875rem; }
.cookies-table th {
  text-align: left;
  font-size: var(--t-meta);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--vhd-gris);
  padding: 0.75rem 0.5rem;
  border-bottom: 2px solid var(--vhd-texte);
}
.cookies-table td {
  padding: 0.875rem 0.5rem;
  border-bottom: 1px solid var(--vhd-filet);
  vertical-align: top;
  line-height: 1.5;
}
.cookies-table td:first-child { font-weight: 600; }

@media (max-width: 880px) {
  .finalites-table, .finalites-table tbody, .finalites-table tr, .finalites-table td { display: block; }
  .finalites-table th { display: none; }
  .finalites-table td { padding: 0.4rem 0; border-bottom: none; }
  .finalites-table td:first-child { padding-top: 1.25rem; }
  .finalites-table tr { padding-bottom: 1rem; border-bottom: 1px solid var(--vhd-filet); }
  .droits-table td:first-child { width: auto; padding-right: 0; }
  .cookies-table, .cookies-table tbody, .cookies-table tr, .cookies-table td { display: block; }
  .cookies-table th { display: none; }
  .cookies-table td { padding: 0.3rem 0; border-bottom: none; }
  .cookies-table tr { padding: 1rem 0; border-bottom: 1px solid var(--vhd-filet); }
}

.update-mention {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--vhd-filet);
  font-size: 0.875rem;
  color: var(--vhd-gris);
  font-style: italic;
}
