/* Pages légales : Mentions, Confidentialité, Cookies, Conditions. */
.fl-legal-page { padding-top: clamp(48px, 6vw, 88px); padding-bottom: var(--fl-sec); }
.fl-legal-title { font-size: clamp(24px, 4.8vw, 68px); overflow-wrap: break-word; }
.fl-legal-date { margin: 24px 0 clamp(40px, 5vw, 72px); }

.legal { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.toc { position: sticky; top: calc(var(--fl-header-h) + 24px); display: flex; flex-direction: column; border-left: 1px solid var(--fl-line); }
.toc a { display: flex; align-items: center; min-height: var(--fl-tap); padding: 0 16px; margin-left: -1px; font-size: 14px; color: var(--fl-text-2); text-decoration: none; border-left: 2px solid transparent; transition: color var(--fl-t-xs) var(--fl-ease-out), border-color var(--fl-t-xs) var(--fl-ease-out); }
.toc a:hover { color: var(--fl-white); border-left-color: var(--fl-accent); }
.toc-t { margin: 0 0 12px; padding-left: 16px; }

.prose { max-width: 68ch; min-width: 0; }
.prose h2 { font-size: clamp(22px, 2vw, 28px); line-height: 1.1; margin: 56px 0 16px; scroll-margin-top: calc(var(--fl-header-h) + 24px); }
.prose h2:first-child { margin-top: 0; }
.prose p, .prose li { color: var(--fl-text-2); margin: 0 0 16px; }
.prose ul { padding-left: 1.2em; margin: 0 0 16px; }
.prose li { margin-bottom: 8px; }
.prose a { text-decoration: underline; text-underline-offset: 3px; }
.prose code { font-family: var(--fl-mono); font-size: .9em; color: var(--fl-text); }

.todo { background: var(--fl-surface-2); border-bottom: 1px dashed var(--fl-muted); padding: 0 4px; color: var(--fl-text); }
.spec { display: inline-block; margin: 0 0 24px; padding: 8px 12px; border: 1px dashed #4A4A52; color: var(--fl-muted); }

.dl { display: grid; grid-template-columns: minmax(120px, 200px) minmax(0, 1fr); column-gap: 24px; border-top: 1px solid var(--fl-line); margin: 0 0 16px; }
.dl dt, .dl dd { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--fl-line); }
.dl dt { font-size: 14px; color: var(--fl-muted); }
.dl dd { color: var(--fl-text); overflow-wrap: anywhere; }

/* Tableau des traceurs (page Cookies). */
.fl-table { overflow-x: auto; margin: 0 0 24px; border: 1px solid var(--fl-line); }
.fl-table table { border-collapse: collapse; width: 100%; min-width: 760px; font-size: 14px; line-height: 1.5; }
.fl-table caption { text-align: left; padding: 12px 14px; caption-side: top; }
.fl-table thead tr { background: var(--fl-surface); }
.fl-table th, .fl-table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--fl-line); vertical-align: top; }
.fl-table tbody { color: var(--fl-text-2); }
.fl-table tbody th { font-weight: 400; }
.fl-table tbody tr:last-child > * { border-bottom: 0; }

@media (max-width: 900px) {
	.legal { grid-template-columns: minmax(0, 1fr); }
	.toc { position: static; }
	.dl { grid-template-columns: minmax(0, 1fr); }
	.dl dt { border-bottom: 0; padding-bottom: 0; }
	.dl dd { padding-top: 4px; }
}
