/* Pages légales — direction "Horizon" (lot 130) : mentions légales, politique de confidentialité.
   Chargée seulement par templates/pages/hz-legal.php. S'appuie sur les variables de horizon.css. */

.hz-legal { font-family: var(--horizon-font-sans, 'Manrope', system-ui, sans-serif); color: var(--horizon-anthracite, #1C201E); background: #FFFFFF; }

/* En-tête */
.hz-legal__top { background: var(--horizon-gris-verre, #F1F2F0); }
.hz-legal__topin { padding-bottom: 30px; max-width: 1120px; }
.hz-legal__top .hz-crumbs { color: var(--horizon-anthracite-soft, #4B5049); }
.hz-legal__top .hz-crumbs a { text-decoration-color: var(--horizon-gris-verre-ligne, #E4E5E2); }
.hz-legal__title { margin: 14px 0 0; font-size: 34px; font-weight: 800; letter-spacing: -0.04em; line-height: 1.05; color: var(--horizon-bleu, #12314A); text-transform: none; text-wrap: balance; }
.hz-legal__meta { margin: 12px 0 0; font-size: 13.5px; color: var(--horizon-anthracite-soft, #4B5049); }

/* Grille : sommaire + texte */
.hz-legal__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; padding-top: 26px; padding-bottom: 72px; }
.hz-legal__toc { border: 1px solid var(--horizon-gris-verre-ligne, #E4E5E2); border-radius: 12px; background: #FFFFFF; }
.hz-legal__toc summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 16px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--horizon-bleu, #12314A); cursor: pointer; list-style: none; }
.hz-legal__toc summary::-webkit-details-marker { display: none; }
.hz-legal__toc summary::after { content: ""; width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform 200ms; }
.hz-legal__toc[open] summary::after { transform: rotate(-135deg) translateY(-1px); }
.hz-legal__toc ol { margin: 0; padding: 0 8px 10px; list-style: none; }
.hz-legal__toc a { display: flex; gap: 10px; padding: 9px 8px; border-radius: 8px; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--horizon-anthracite, #1C201E); text-decoration: none; }
.hz-legal__toc a span { flex: none; min-width: 20px; font-size: 12px; font-weight: 800; color: var(--horizon-laiton, #A8875E); font-variant-numeric: tabular-nums; line-height: 1.6; }
.hz-legal__toc a:hover { background: var(--horizon-gris-verre, #F1F2F0); color: var(--horizon-bleu, #12314A); }
.hz-legal__cookies { margin-top: 12px; width: 100%; min-height: 46px; border-radius: 999px; border: 1.5px solid var(--horizon-bleu, #12314A); background: #FFFFFF; color: var(--horizon-bleu, #12314A); font: 700 14px var(--horizon-font-sans, 'Manrope', sans-serif); cursor: pointer; }
.hz-legal__cookies:hover { background: var(--horizon-bleu, #12314A); color: #FFFFFF; }
.hz-legal__cookies[hidden] { display: none; }

/* Texte (contenu wp-admin, non modifié) */
.hz-legal__prose { max-width: 720px; font-size: 16.5px; line-height: 1.7; overflow-wrap: anywhere; }
.hz-legal__prose > :first-child { margin-top: 0; }
.hz-legal__prose h2 { margin: 44px 0 12px; padding-top: 22px; border-top: 1px solid var(--horizon-gris-verre-ligne, #E4E5E2); font-size: 23px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; color: var(--horizon-bleu, #12314A); text-transform: none; scroll-margin-top: 80px; }
.hz-legal__prose > h2:first-child,
.hz-legal__prose > :first-child > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
/* Le thème enveloppe chaque bloc Gutenberg dans .nq-c-BlockCore : sans marge propre, c'est le texte qui rythme. */
.hz-legal__prose .nq-c-BlockCore { margin: 0; padding: 0; }
.hz-legal__prose .nq-c-BlockCore > :last-child { margin-bottom: 14px; }
.hz-legal__prose h3 { margin: 28px 0 8px; font-size: 18px; font-weight: 800; letter-spacing: -0.02em; color: var(--horizon-bleu, #12314A); text-transform: none; }
.hz-legal__prose p, .hz-legal__prose ul, .hz-legal__prose ol { margin: 0 0 14px; }
.hz-legal__prose ul, .hz-legal__prose ol { padding-left: 22px; }
.hz-legal__prose li { margin: 4px 0; }
.hz-legal__prose li::marker { color: var(--horizon-laiton, #A8875E); }
.hz-legal__prose a { color: var(--horizon-bleu, #12314A); font-weight: 600; text-decoration: underline; text-decoration-color: var(--horizon-laiton, #A8875E); text-underline-offset: 3px; }
.hz-legal__prose strong { color: var(--horizon-bleu, #12314A); }
.hz-legal__prose table { width: 100%; border-collapse: collapse; margin: 0 0 16px; font-size: 14.5px; display: block; overflow-x: auto; }
.hz-legal__prose th, .hz-legal__prose td { padding: 8px 10px; border-bottom: 1px solid var(--horizon-gris-verre-ligne, #E4E5E2); text-align: left; vertical-align: top; }
.hz-legal__end { margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--horizon-gris-verre-ligne, #E4E5E2); font-size: 15px; color: var(--horizon-anthracite-soft, #4B5049); }
.hz-legal__end p { margin: 0 0 8px; }
.hz-legal__sibling { font-weight: 700; }

@media (min-width: 768px) {
  .hz-legal__topin { padding-bottom: 40px; }
  .hz-legal__title { font-size: 46px; }
  .hz-legal__prose { font-size: 17px; }
  .hz-legal__prose h2 { font-size: 26px; }
}
@media (min-width: 1024px) {
  .hz-legal__grid { grid-template-columns: 280px minmax(0, 720px); gap: 64px; padding-top: 44px; }
  .hz-legal__grid--solo { grid-template-columns: minmax(0, 720px); }
  .hz-legal__aside { position: sticky; top: 80px; align-self: start; max-height: calc(100vh - 100px); overflow: auto; }
  .hz-legal__toc summary { pointer-events: none; }
  .hz-legal__toc summary::after { display: none; }
}
@media (prefers-reduced-motion: reduce) { .hz-legal * { transition: none !important; } }
