/* ═════════════════════════════════════════════════════════════════════
   Pages juridiques — /legal-notice/, /privacy-policy/, /gts/.
   Feuille COMMUNE : chargée par le socle sur /legal-notice/, et par
   inc/legal-notice.php sur les deux autres (et dans le canevas). Direction C
   (refonte 0.9.0, lot P5) : un DOCUMENT. Sommaire collant dans la marge
   (colonnes 1–3 de la trame), texte long à la mesure de lecture (colonnes
   4–12, ≈ 70 signes), registres clé / valeur à filets, données en mono.
   Compléments des conditions de vente : css/gts.css.
   ═════════════════════════════════════════════════════════════════════ */

/* ── Hero : titre, puis UNE ligne de données (date, version, identité, lien
   vers le français) au lieu d'une pile — l'en-tête d'un document. ──────── */
.fsa-legal-notice__updated { color: var(--fsa-fg-soft); }
.fsa-legal-notice__updated time { color: var(--fsa-fg-strong); }
.fsa-legal-notice__updated .fsa-pending { margin-left: .3rem; }
@media (min-width: 1024px) {
	.fsa-hero-inner--plain .fsa-hero-inner__grid:has(> :is(.fsa-legal-notice__updated, .fsa-gts__identity, .fsa-gts__fr-link)) {
		display: grid;
		grid-template-columns: auto auto auto minmax(0, 1fr);
		gap: 0 clamp(1.5rem, 2.6vw, 2.75rem);
		align-items: baseline;
	}
	.fsa-hero-inner--plain .fsa-hero-inner__grid:has(> :is(.fsa-legal-notice__updated, .fsa-gts__identity, .fsa-gts__fr-link)) > :is(.fsa-eyebrow, h1, .fsa-h1) { grid-column: 1 / -1; }
}

/* ── Texte : rythme de document, plus serré que les bandes (48 → 88 px sous le
   hero ; voisinage d'une section libre : la règle du socle) ─────────────── */
.fsa-sec:has(> .fsa-legal-notice__layout) { padding-bottom: clamp(3.5rem, 1.75rem + 5vw, 6.5rem); }
.fsa-hero-inner--plain + .fsa-sec:has(> .fsa-legal-notice__layout) { padding-top: clamp(3rem, 1.5rem + 4vw, 5.5rem); }

.fsa-legal-notice__layout {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
	column-gap: var(--fsa-col-gap);
	align-items: start;
}
:where(.fsa-legal-notice__layout) > * { margin: 0; }
.fsa-legal-notice__layout > * { min-width: 0; }

/* ── Marge : sommaire + pages liées (collants) ────────────────────────── */
.fsa-legal-notice__aside {
	position: sticky;
	top: calc(var(--fsa-hdr-h) + 2rem);
	display: grid;
	gap: 2rem;
	max-height: calc(100vh - var(--fsa-hdr-h) - 4rem);
	padding-right: clamp(.5rem, 2vw, 2rem);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
}
:where(.fsa-legal-notice__aside) > * { margin: 0; }
/* Libellés « Contents » / « Related pages » : repères de marge (.fsa-kicker). */
.fsa-legal-notice__label { margin: 0 0 .85rem; }
.fsa-legal-notice__toc ul,
.fsa-legal-notice__related ul { margin: 0; padding: 0; list-style: none; }
.fsa-legal-notice__toc ul { border-left: 1px solid var(--fsa-rule); }
.fsa-legal-notice__toc li { margin: 0; }
.fsa-legal-notice__toc a {
	display: block;
	margin-left: -1px;
	padding: .4rem 0 .4rem 1rem;
	border-left: 2px solid transparent;
	font: 400 var(--fsa-fs-sm)/1.4 var(--fsa-font-sans);
	color: var(--fsa-fg);
	text-decoration: none;
	transition: color var(--fsa-dur) ease, border-color var(--fsa-dur) ease;
}
.fsa-legal-notice__toc a:hover { color: var(--fsa-fg-strong); border-left-color: var(--fsa-rule-strong); }
/* Rubrique en cours de lecture (js/legal-notice.js ; sans JS : rien). */
.fsa-legal-notice__toc a[aria-current="true"] { color: var(--fsa-fg-strong); border-left-color: var(--fsa-accent); font-weight: 500; }
.fsa-legal-notice__toc .fsa-legal-notice__toc-fr { margin-top: .5rem; }
.fsa-legal-notice__related { padding-top: 1.6rem; border-top: 1px solid var(--fsa-rule); }
.fsa-legal-notice__related ul { display: grid; justify-items: start; gap: 1.1rem; }

/* ── Texte long ───────────────────────────────────────────────────────── */
.fsa-legal-notice__body { max-width: 42rem; }
.fsa-legal-notice__body:is(.fsa-prose),
.fsa-legal-notice__body > .fsa-prose { line-height: 1.65; }
.fsa-legal-notice__body :where(h2, h3)[id] { scroll-margin-top: calc(var(--fsa-hdr-h) + 1.5rem); }
.fsa-legal-notice__body.fsa-prose > h2:not(:first-child) { margin-block-start: 1.9em; }

/* Registres clé / valeur (éditeur, hébergeur) : libellé Plex Sans, valeur. */
.fsa-legal-notice__card { margin-top: 1.25rem; }
.fsa-legal-notice__body .fsa-register--kv { --fsa-reg-cols: minmax(0, 11rem) minmax(0, 1fr); }
.fsa-legal-notice__body .fsa-register--kv .fsa-register__row { column-gap: 1.5rem; padding-block: 14px; }
.fsa-legal-notice__body .fsa-register--kv dt { font: 500 var(--fsa-fs-sm)/1.55 var(--fsa-font-sans); letter-spacing: 0; text-transform: none; color: var(--fsa-fg-soft); }
.fsa-legal-notice__body .fsa-register--kv dd { font-size: var(--fsa-fs-m); }
.fsa-legal-notice__body .fsa-register--kv dd .fsa-pending { display: inline-flex; margin-left: .5rem; font-size: var(--fsa-fs-2xs); color: var(--fsa-fg-soft); }
.fsa-legal-notice__body .fsa-register--kv dd > .fsa-pending:first-child { margin-left: 0; }
.fsa-legal-notice__body .fsa-register--kv dd span[lang] { display: inline; font-size: inherit; color: inherit; }
.fsa-legal-notice__mark .fsa-pending,
.fsa-legal-notice__body p > .fsa-pending:first-child { margin-left: 0; }
/* Marqueur « à valider » posé seul au-dessus d'un texte */
.fsa-legal-notice__body > .fsa-legal-notice__mark:first-child { margin-bottom: 1.25rem; }

/* Tableaux du texte (politique de confidentialité) : filet fort en tête, en-têtes
   Plex Sans, colonne de gauche en titre de rangée. Deux colonnes tiennent à
   390 px : plus de défilement latéral. */
.fsa-legal-notice__table { overflow-x: auto; border-top: 1px solid var(--fsa-fg-strong); }
.fsa-legal-notice__table table { width: 100%; }
.fsa-legal-notice__table thead th { font: 500 var(--fsa-fs-s)/1.35 var(--fsa-font-sans); letter-spacing: 0; text-transform: none; color: var(--fsa-fg-soft); }
.fsa-legal-notice__table tbody th { width: 44%; font: 500 var(--fsa-fs-m)/1.45 var(--fsa-font-sans); letter-spacing: 0; text-transform: none; color: var(--fsa-fg-strong); }
.fsa-legal-notice__table td { font-size: var(--fsa-fs-m); line-height: 1.5; }

/* ── Tablette / téléphone : le sommaire passe en tête, entre deux filets, sur
   deux colonnes (cibles 44 px), sans boîte. ───────────────────────────── */
@media (max-width: 1023px) {
	.fsa-legal-notice__layout { grid-template-columns: minmax(0, 1fr); row-gap: clamp(2.25rem, 6vw, 3rem); }
	.fsa-legal-notice__aside {
		position: static;
		gap: 1.1rem;
		max-height: none;
		padding: 1.1rem 0 1.25rem;
		overflow: visible;
		border-top: 1px solid var(--fsa-fg-strong);
		border-bottom: 1px solid var(--fsa-rule);
	}
	.fsa-legal-notice__label { margin-bottom: .35rem; }
	.fsa-legal-notice__toc ul { columns: 3 10rem; column-gap: var(--fsa-col-gap); border-left: 0; }
	.fsa-legal-notice__toc li { break-inside: avoid; }
	.fsa-legal-notice__toc a {
		display: flex;
		align-items: center;
		min-height: 44px;
		margin-left: 0;
		padding: .35rem 0;
		border-left: 0;
		line-height: 1.3;
		color: var(--fsa-link);
	}
	.fsa-legal-notice__toc a:hover { text-decoration: underline; text-underline-offset: .22em; }
	.fsa-legal-notice__toc .fsa-legal-notice__toc-fr { margin-top: 0; }
	.fsa-legal-notice__related { padding-top: .9rem; }
	.fsa-legal-notice__related ul { display: flex; flex-wrap: wrap; gap: 1.25rem 1.75rem; }
}
@media (max-width: 640px) {
	.fsa-legal-notice__body .fsa-register--kv .fsa-register__row { grid-template-columns: minmax(0, 1fr); gap: .2rem; padding-block: 12px; }
}
