/* ============================================================
   PAGES LEGALES
   ============================================================
   CGV, mentions legales, politique de confidentialite, credits.

   Contrainte propre a ces pages : un texte long, dense, que
   personne ne lit en entier. On optimise donc le reperage
   (sommaire ancre, titres numerotes) avant le confort de
   lecture continue.
   ============================================================ */

body.casamore-legal-page {
	--lg-bg: #ffffff;
	--lg-surface: #f7f4f0;
	--lg-ink: #1a1714;
	--lg-muted: #6b635b;
	--lg-accent: var(--casamore-color-accent, #9f7344);
	--lg-stroke: #e2dcd4;

	/* Le header est sticky : sans cet offset, un clic dans le
	   sommaire fait atterrir le titre vise derriere le header. */
	--lg-header-offset: 104px;

	background: var(--lg-bg);
	color: var(--lg-ink);
}

body.admin-bar.casamore-legal-page {
	--lg-header-offset: 136px;
}

.casamore-legal-page .site-content > .ast-container {
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}

.casamore-legal-page .entry-content {
	max-width: none;
	margin: 0 !important;
}

/* ============================================================
   EN-TETE
   ============================================================ */

.casamore-legal__header {
	width: min(calc(100% - 48px), 1080px);
	margin: 0 auto;
	padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(1.75rem, 3.5vw, 2.5rem);
	border-bottom: 1px solid var(--lg-stroke);
}

.casamore-legal__eyebrow {
	margin: 0 0 0.75rem !important;
	font-family: "Oswald", sans-serif;
	font-size: 0.74rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--lg-accent);
}

.casamore-legal__title.wp-block-heading {
	margin: 0 !important;
	font-size: clamp(2.1rem, 5vw, 3.4rem) !important;
	line-height: 1.1;
}

.casamore-legal__updated {
	margin: 1rem 0 0 !important;
	font-size: 0.85rem;
	color: var(--lg-muted);
}

/* ============================================================
   MISE EN PAGE : SOMMAIRE + CORPS
   ============================================================ */

.casamore-legal {
	display: grid;
	grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	width: min(calc(100% - 48px), 1080px);
	margin: 0 auto;
	padding: clamp(2rem, 4vw, 3.25rem) 0 clamp(3rem, 6vw, 5rem);
	align-items: start;
}

.casamore-legal__toc {
	position: sticky;
	top: calc(var(--lg-header-offset) + 16px);
	max-height: calc(100vh - var(--lg-header-offset) - 48px);
	overflow-y: auto;
	padding: 1.35rem 1.25rem;
	border: 1px solid var(--lg-stroke);
	background: var(--lg-surface);
	overscroll-behavior: contain;
}

/* Desktop : le sommaire reste deploye en permanence, le
   <summary> ne sert que de bouton sur mobile. */
.casamore-legal__toc > summary {
	display: none;
}

.casamore-legal__toc-title {
	margin: 0 0 0.85rem !important;
	font-family: "Oswald", sans-serif;
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--lg-muted);
}

.casamore-legal__toc ol {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	counter-reset: toc;
}

.casamore-legal__toc li {
	margin: 0 0 0.55rem !important;
	padding: 0 !important;
	list-style: none !important;
	line-height: 1.4;
}

.casamore-legal__toc a {
	font-size: 0.86rem;
	color: var(--lg-muted);
	text-decoration: none;
	transition: color 0.18s ease;
}

.casamore-legal__toc a:hover,
.casamore-legal__toc a:focus-visible {
	color: var(--lg-accent);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

/* ============================================================
   CORPS DU TEXTE
   ============================================================ */

.casamore-legal__body {
	min-width: 0;
	font-size: 0.98rem;
	line-height: 1.75;
	color: var(--lg-ink);
}

/* 68 caracteres : au-dela, l'oeil perd la ligne suivante sur un
   texte de cette longueur. */
.casamore-legal__body > p,
.casamore-legal__body > ul,
.casamore-legal__body > ol {
	max-width: 68ch;
	color: var(--lg-muted);
}

.casamore-legal__body h2.wp-block-heading {
	max-width: 30ch;
	margin: clamp(2.25rem, 4vw, 3rem) 0 1rem !important;
	padding-top: 1.5rem;
	border-top: 1px solid var(--lg-stroke);
	font-size: clamp(1.35rem, 2.6vw, 1.75rem) !important;
	line-height: 1.25;
	scroll-margin-top: var(--lg-header-offset);
}

.casamore-legal__body h2.wp-block-heading:first-child {
	margin-top: 0 !important;
	padding-top: 0;
	border-top: 0;
}

.casamore-legal__body h3.wp-block-heading {
	max-width: 46ch;
	margin: 1.85rem 0 0.6rem !important;
	font-family: "Oswald", sans-serif;
	font-size: 0.92rem !important;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.45;
	color: var(--lg-ink);
	scroll-margin-top: var(--lg-header-offset);
}

.casamore-legal__body p {
	margin: 0 0 0.9rem !important;
}

.casamore-legal__body ul,
.casamore-legal__body ol {
	margin: 0 0 1.1rem !important;
	padding-left: 1.15rem !important;
}

.casamore-legal__body li {
	margin-bottom: 0.45rem !important;
}

.casamore-legal__body a {
	color: var(--lg-ink);
	text-decoration: underline;
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
}

.casamore-legal__body a:hover,
.casamore-legal__body a:focus-visible {
	color: var(--lg-accent);
}

.casamore-legal__body strong {
	color: var(--lg-ink);
	font-weight: 600;
}

/* Encart de rappel (adresse de reclamation, mediateur…) */
.casamore-legal__callout {
	max-width: 68ch;
	margin: 1.5rem 0 !important;
	padding: 1.1rem 1.25rem;
	border-left: 2px solid var(--lg-accent);
	background: var(--lg-surface);
	font-size: 0.92rem;
	color: var(--lg-ink);
}

.casamore-legal__callout p {
	margin: 0 0 0.4rem !important;
}

.casamore-legal__callout p:last-child {
	margin-bottom: 0 !important;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 921px) {
	.casamore-legal {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}

	/* Le sommaire cesse d'etre sticky et se replie : sur mobile
	   il couterait un ecran entier avant le premier article. */
	.casamore-legal__toc {
		position: static;
		max-height: none;
		padding: 0;
		border: 1px solid var(--lg-stroke);
	}

	.casamore-legal__toc-title {
		display: none;
	}

	.casamore-legal__toc > summary {
		display: block;
		padding: 0.95rem 1.15rem;
		font-family: "Oswald", sans-serif;
		font-size: 0.76rem;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: var(--lg-ink);
		cursor: pointer;
		list-style: none;
	}

	.casamore-legal__toc > summary::-webkit-details-marker {
		display: none;
	}

	.casamore-legal__toc > summary::after {
		content: "+";
		float: right;
		font-size: 1rem;
		line-height: 1;
		color: var(--lg-accent);
	}

	.casamore-legal__toc[open] > summary::after {
		content: "–";
	}

	.casamore-legal__toc > *:not(summary) {
		padding: 0 1.15rem 1.15rem;
	}
}

@media (max-width: 600px) {
	body.casamore-legal-page {
		--lg-header-offset: 80px;
	}

	.casamore-legal,
	.casamore-legal__header {
		width: calc(100% - 32px);
	}

	.casamore-legal__body {
		font-size: 0.94rem;
		line-height: 1.7;
	}
}

/* ============================================================
   IMPRESSION
   ============================================================
   Des CGV s'impriment ou s'archivent en PDF : le sommaire et
   la navigation n'ont plus de sens sur papier.
   ============================================================ */

@media print {
	.casamore-legal__toc,
	.casamore-legal-page #masthead,
	.casamore-legal-page .site-footer {
		display: none !important;
	}

	.casamore-legal {
		display: block;
		width: 100%;
	}

	.casamore-legal__body {
		font-size: 10.5pt;
		line-height: 1.5;
		color: #000;
	}

	.casamore-legal__body h2.wp-block-heading,
	.casamore-legal__body h3.wp-block-heading {
		break-after: avoid;
	}

	.casamore-legal__body p,
	.casamore-legal__body li {
		orphans: 3;
		widows: 3;
	}
}
