/*
 * CRYOFAST PLUNGE — Template « Page légale / contenu ».
 *
 * Pages au format « document légal » (CGV, mentions, SAV, politique de
 * confidentialité…). L'objectif : permettre à l'admin de coller son
 * texte dans l'éditeur WordPress et obtenir un rendu propre et lisible
 * immédiatement, sans avoir à styliser quoi que ce soit.
 *
 * Hérite des tokens CSS du thème (--cream, --bsand, --taupe, --navy,
 * --charcoal, --warm-gray, --header-height, --font-titles, --font-body).
 *
 * Snazzy Digital Agency.
 */

/* ── PAGE WRAPPER ─────────────────────────────────────────── */
.cf-legal-page {
	background: var(--cream);
	/* Compense la hauteur du header fixe (variable thème, jamais hardcodée). */
	padding-top: var(--header-height, 62px);
	min-height: 100vh;
}

/* ── EN-TÊTE ──────────────────────────────────────────────── */
.cf-legal-header {
	background: var(--cream);
	border-bottom: 1px solid var(--bsand);
	padding: 48px 24px 32px;
}
.cf-legal-header-inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}
.cf-legal-eyebrow {
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--taupe);
	margin-bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.cf-legal-eyebrow::before,
.cf-legal-eyebrow::after {
	content: '';
	width: 18px;
	height: 1px;
	background: var(--taupe);
}
.cf-legal-title {
	font-family: var(--font-titles);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 400;
	color: var(--charcoal);
	line-height: 1.1;
	letter-spacing: -.4px;
	margin: 0 0 14px;
}
.cf-legal-title em { font-style: italic; }
.cf-legal-intro {
	font-size: 15px;
	color: var(--warm-gray);
	line-height: 1.75;
	font-weight: 300;
	max-width: 620px;
	margin: 0 auto 16px;
}
.cf-legal-meta {
	font-size: 12px;
	color: var(--taupe);
	letter-spacing: .3px;
}

/* ── CORPS ────────────────────────────────────────────────── */
.cf-legal-body {
	max-width: 760px;
	margin: 0 auto;
	padding: 40px 24px 64px;
}

/* ── SOMMAIRE (TOC) ───────────────────────────────────────── */
.cf-legal-toc {
	background: #fff;
	border: 1px solid var(--bsand);
	border-radius: 8px;
	padding: 22px 26px;
	margin: 0 0 36px;
}
.cf-legal-toc-title {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--taupe);
	margin-bottom: 14px;
}
.cf-legal-toc-list {
	list-style: none;
	padding: 0;
	margin: 0;
	counter-reset: cf-toc;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px 24px;
}
.cf-legal-toc-list li { margin: 0; }
.cf-legal-toc-list a {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 6px 0;
	color: var(--charcoal);
	font-size: 13px;
	line-height: 1.5;
	text-decoration: none;
	transition: color .15s;
}
.cf-legal-toc-list a:hover { color: var(--navy); }
.cf-legal-toc-n {
	font-family: var(--font-titles);
	font-style: italic;
	font-size: 13px;
	color: var(--taupe);
	min-width: 22px;
	flex-shrink: 0;
}
.cf-legal-toc-t {
	border-bottom: 1px dotted transparent;
	transition: border-color .15s;
}
.cf-legal-toc-list a:hover .cf-legal-toc-t {
	border-bottom-color: var(--navy);
}

/* ── CONTENU (typographie soignée) ───────────────────────── */
.cf-legal-content {
	font-size: 15px;
	line-height: 1.85;
	color: var(--charcoal);
}
.cf-legal-content > * + * { margin-top: 18px; }
.cf-legal-content p { margin: 0; }

/* Titres */
.cf-legal-content h1 { display: none; } /* on a déjà notre titre en haut */
.cf-legal-content h2 {
	font-family: var(--font-titles);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.15;
	color: var(--charcoal);
	letter-spacing: -.3px;
	margin-top: 48px;
	margin-bottom: 6px;
	scroll-margin-top: calc(var(--header-height, 62px) + 16px); /* offset pour ancres TOC */
}
.cf-legal-content h2 em { font-style: italic; }
.cf-legal-content h2::before {
	content: '';
	display: block;
	width: 28px;
	height: 1px;
	background: var(--navy);
	margin-bottom: 14px;
	opacity: .5;
}
.cf-legal-content h3 {
	font-family: var(--font-body);
	font-size: 17px;
	font-weight: 700;
	margin-top: 30px;
	margin-bottom: 4px;
	color: var(--charcoal);
	letter-spacing: -.2px;
}
.cf-legal-content h4 {
	font-size: 14px;
	font-weight: 700;
	margin-top: 22px;
	margin-bottom: 2px;
	color: var(--charcoal);
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* Liens */
.cf-legal-content a {
	color: var(--navy);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}
.cf-legal-content a:hover { color: var(--navy-d, #152E55); }

/* Listes */
.cf-legal-content ul,
.cf-legal-content ol {
	padding-left: 22px;
	margin: 0;
}
.cf-legal-content li { margin-bottom: 6px; }
.cf-legal-content li > ul,
.cf-legal-content li > ol { margin-top: 6px; }
.cf-legal-content ul li::marker { color: var(--taupe); }

/* Citations */
.cf-legal-content blockquote {
	border-left: 3px solid var(--navy);
	padding: 6px 0 6px 22px;
	margin: 28px 0;
	font-family: var(--font-titles);
	font-size: 19px;
	font-weight: 400;
	font-style: italic;
	line-height: 1.5;
	color: var(--charcoal);
}
.cf-legal-content blockquote p { margin: 0; }

/* Code (rare en page légale mais propre quand même) */
.cf-legal-content code {
	background: var(--stone);
	padding: 2px 6px;
	border-radius: 3px;
	font-size: 13px;
}
.cf-legal-content pre {
	background: var(--stone);
	padding: 16px 18px;
	border-radius: 8px;
	overflow-x: auto;
	font-size: 13px;
	line-height: 1.6;
}

/* Tableaux : style sobre, responsive */
.cf-legal-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	margin: 8px 0;
	border: 1px solid var(--bsand);
	border-radius: 6px;
	overflow: hidden;
}
.cf-legal-content table th,
.cf-legal-content table td {
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid var(--bsand);
	vertical-align: top;
	line-height: 1.55;
}
.cf-legal-content table th {
	background: var(--stone);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .4px;
	text-transform: uppercase;
	color: var(--charcoal);
}
.cf-legal-content table tr:last-child td { border-bottom: none; }
.cf-legal-content .cf-legal-table-wrap,
.cf-legal-content figure.wp-block-table {
	overflow-x: auto;
}

/* Hr séparateur */
.cf-legal-content hr {
	border: none;
	border-top: 1px solid var(--bsand);
	margin: 36px auto;
	max-width: 80px;
}

/* Images insérées dans le contenu (rare mais propre) */
.cf-legal-content img,
.cf-legal-content figure img {
	max-width: 100%;
	height: auto;
	border-radius: 6px;
	display: block;
}
.cf-legal-content figure { margin: 24px 0; }
.cf-legal-content figcaption {
	font-size: 11px;
	color: var(--taupe);
	text-align: center;
	margin-top: 6px;
}

/* Pagination wp_link_pages */
.cf-legal-pagelinks {
	margin-top: 32px;
	display: flex;
	gap: 8px;
	align-items: center;
	font-size: 12px;
	color: var(--taupe);
}
.cf-legal-pagelinks a {
	color: var(--navy);
	text-decoration: none;
	padding: 4px 10px;
	border: 1px solid var(--bsand);
	border-radius: 4px;
	transition: background .15s, color .15s;
}
.cf-legal-pagelinks a:hover {
	background: var(--navy);
	color: #fff;
	border-color: var(--navy);
}

/* ── RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 900px) {
	.cf-legal-header { padding: 36px 20px 24px; }
	.cf-legal-title { font-size: 28px; }
	.cf-legal-body { padding: 28px 20px 48px; }
	.cf-legal-content { font-size: 14px; line-height: 1.78; }
	.cf-legal-content h2 { font-size: 22px; margin-top: 36px; }
	.cf-legal-toc-list { grid-template-columns: 1fr; }
	.cf-legal-toc { padding: 18px 20px; }
}
