/* =========================================================================
   legal.css — pages légales (mentions légales, politique de confidentialité).
   Chargé uniquement sur ces pages (inc/consent.php). Tout est scopé .sip-legal.

   Direction « Registre » : en-tête compact aligné à gauche sur le bleu pâle
   des piliers, puis deux colonnes décalées — un sommaire numéroté collant à
   gauche (Sora), le texte à droite (Inter, 70 caractères par ligne).
   Couleurs en OKLCH à partir de la teinte de marque (--sip-hue), repli hex.
   Espacements sur une grille de 4 px.
   ========================================================================= */

.sip-legal{
	--c-ink: #15294F;
	--c-text: #3A4A66;
	--c-muted: #5B6B86;
	--c-soft: #EAF2FB;
	--c-line: #DCE4EF;
	--c-link: #2B6CB0;
	--c-link-hover: #15294F;
	--c-rule: #e2392e;
	--c-chip: #E7F1FB;
	--c-focus: #4D9DE0;
	--c-paper: #FBFCFE;
}
@supports (color: oklch(0% 0 0)){
	.sip-legal{
		--sip-hue: 262;
		--c-ink: oklch(28.7% 0.074 var(--sip-hue));
		--c-text: oklch(41% 0.045 var(--sip-hue));
		--c-muted: oklch(52% 0.04 var(--sip-hue));
		--c-soft: oklch(95.8% 0.015 calc(var(--sip-hue) - 11));
		--c-line: oklch(91.5% 0.015 var(--sip-hue));
		--c-link: oklch(52.4% 0.126 calc(var(--sip-hue) - 10));
		--c-link-hover: oklch(28.7% 0.074 var(--sip-hue));
		--c-rule: oklch(60.2% 0.207 calc(var(--sip-hue) + 127));
		--c-chip: oklch(95.4% 0.017 calc(var(--sip-hue) - 14));
		--c-focus: oklch(67.5% 0.127 calc(var(--sip-hue) - 15));
		--c-paper: oklch(99% 0.003 var(--sip-hue));
	}
}

.sip-legal{
	background: var(--c-paper);
	color: var(--c-text);
	font-family: 'Inter', system-ui, -apple-system, sans-serif;
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
.sip-legal *{ box-sizing: border-box; }
.sip-legal :where(h1, h2, h3, p, ul, ol, table){ margin: 0; }

/* --- En-tête ---------------------------------------------------------- */
.sip-legal__head{
	background: var(--c-soft);
	border-bottom: 1px solid var(--c-line);
}
.sip-legal__head-in{
	max-width: 1200px;
	margin: 0 auto;
	padding: 24px clamp(16px, 5vw, 48px) 48px;
}
.sip-legal__crumb ol{
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--c-muted);
}
.sip-legal__crumb li{ display: inline-flex; align-items: center; gap: 8px; }
.sip-legal__crumb li + li::before{
	content: "›";
	color: var(--c-link);
}
.sip-legal__crumb a{ color: var(--c-muted); text-decoration: none; }
.sip-legal__crumb a:hover{ color: var(--c-ink); }

.sip-legal__eyebrow{
	display: inline-block;
	margin-top: 40px;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--c-chip);
	color: var(--c-link);
	font-family: 'Sora', sans-serif;
	font-weight: 600;
	font-size: 12px;
	letter-spacing: .07em;
	text-transform: uppercase;
}
.sip-legal .sip-legal__title{
	max-width: 16ch;
	margin-top: 16px;
	font-family: 'Sora', sans-serif;
	font-weight: 800;
	font-size: clamp(34px, 5vw, 52px);
	line-height: 1.05;
	letter-spacing: -.025em;
	color: var(--c-ink);
}
.sip-legal__lead{
	max-width: 62ch;
	margin-top: 16px;
	font-size: 17px;
	color: var(--c-text);
}
.sip-legal__date{
	margin-top: 20px;
	font-size: 13px;
	color: var(--c-muted);
}

/* --- Corps : sommaire + texte ------------------------------------------ */
.sip-legal__body{
	max-width: 1200px;
	margin: 0 auto;
	padding: 56px clamp(16px, 5vw, 48px) 96px;
	display: grid;
	grid-template-columns: 240px minmax(0, 720px);
	gap: 32px 72px;
	align-items: start;
}

.sip-legal__toc{
	position: sticky;
	top: 112px;
	padding-left: 16px;
	border-left: 3px solid var(--c-rule);
}
.sip-legal__toc-title{
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--c-ink);
}
.sip-legal__toc ol{
	list-style: none;
	margin-top: 12px;
	padding: 0;
	counter-reset: toc;
}
.sip-legal__toc li{
	counter-increment: toc;
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.4;
}
.sip-legal__toc a{
	display: flex;
	gap: 8px;
	color: var(--c-muted);
	text-decoration: none;
}
.sip-legal__toc a::before{
	content: counter(toc, decimal-leading-zero);
	font-family: 'Sora', sans-serif;
	font-weight: 600;
	font-size: 12px;
	line-height: 1.7;
	color: var(--c-link);
}
.sip-legal__toc a:hover{ color: var(--c-ink); }

.sip-legal__content section{
	padding-bottom: 40px;
	margin-bottom: 40px;
	border-bottom: 1px solid var(--c-line);
	scroll-margin-top: 112px;
}
.sip-legal__content section:last-child{
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}
.sip-legal .sip-legal__content h2{
	margin-bottom: 16px;
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: clamp(21px, 2.4vw, 26px);
	line-height: 1.25;
	letter-spacing: -.015em;
	color: var(--c-ink);
}
.sip-legal .sip-legal__content h3{
	margin: 24px 0 8px;
	font-family: 'Sora', sans-serif;
	font-weight: 600;
	font-size: 17px;
	line-height: 1.35;
	color: var(--c-ink);
}
.sip-legal__content p + p,
.sip-legal__content p + ul,
.sip-legal__content ul + p{ margin-top: 12px; }
.sip-legal__content ul{
	padding-left: 20px;
}
.sip-legal__content li{ margin: 0 0 8px; }
.sip-legal__content li::marker{ color: var(--c-rule); }
.sip-legal__content strong{ color: var(--c-ink); font-weight: 600; }
.sip-legal__content a{
	color: var(--c-link);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	overflow-wrap: anywhere;
}
.sip-legal__content a:hover{ color: var(--c-link-hover); }
.sip-legal a:focus-visible,
.sip-legal button:focus-visible{
	outline: 2px solid var(--c-focus);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Fiche d'identité (éditeur, hébergeur) */
.sip-legal__card{
	margin-top: 16px;
	padding: 20px 24px;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 4px 14px 14px 4px;
	border-left: 3px solid var(--c-ink);
}
.sip-legal__card dl{
	margin: 0;
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 8px 24px;
	font-size: 15px;
}
.sip-legal__card dt{ color: var(--c-muted); }
.sip-legal__card dd{ margin: 0; color: var(--c-ink); font-weight: 500; }

/* Tableau des cookies */
.sip-legal__table-wrap{
	margin-top: 16px;
	overflow-x: auto;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	background: #fff;
}
.sip-legal__content table{
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.5;
}
.sip-legal__content th,
.sip-legal__content td{
	padding: 12px 16px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--c-line);
}
.sip-legal__content thead th{
	background: var(--c-soft);
	font-family: 'Sora', sans-serif;
	font-weight: 600;
	font-size: 12px;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--c-ink);
}
.sip-legal__content tbody tr:last-child td{ border-bottom: 0; }
.sip-legal__content td code{
	font-size: 13px;
	color: var(--c-ink);
	background: var(--c-soft);
	padding: 2px 6px;
	border-radius: 4px;
}

/* Bouton « Gérer les cookies » dans le texte */
.sip-legal .sip-legal__btn{
	appearance: none;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-top: 16px;
	padding: 12px 20px;
	border: 0;
	border-radius: 10px;
	background: var(--c-ink);
	color: #fff;
	box-shadow: none;
	font-family: 'Sora', sans-serif;
	font-weight: 600;
	font-size: 15px;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	transition: background-color .18s ease, transform .18s ease;
}
.sip-legal .sip-legal__btn:hover,
.sip-legal .sip-legal__btn:focus{
	background: var(--c-link);
	color: #fff;
}
.sip-legal .sip-legal__btn:active{ transform: translateY(1px); }
.sip-legal .sip-legal__nojs{ margin-top: 12px; font-size: 14px; color: var(--c-muted); }
.sip-js .sip-legal .sip-legal__nojs{ display: none; }
.sip-legal .sip-legal__btn{ display: none; }
.sip-js .sip-legal .sip-legal__btn{ display: inline-flex; }

/* --- Responsive --------------------------------------------------------- */
@media (max-width: 900px){
	.sip-legal__body{
		grid-template-columns: minmax(0, 1fr);
		padding-top: 40px;
	}
	.sip-legal__toc{
		position: static;
	}
}
@media (max-width: 560px){
	.sip-legal__eyebrow{ margin-top: 32px; }
	.sip-legal__card{ padding: 16px; }
	.sip-legal__card dl{ grid-template-columns: 1fr; gap: 0; }
	.sip-legal__card dd{ margin-bottom: 12px; }
}

@media (prefers-reduced-motion: reduce){
	.sip-legal .sip-legal__btn{ transition: none; }
}
