/* ============================================================
   Lakour des Fées — socle : jetons, réinitialisation, typographie
   Palette tirée du logo (fées vert sauge, or, blush) et de
   l’affiche du Parcours (violet féerique).
   ============================================================ */

:root {
	/* Fonds */
	--lkf-cream: #FBF7F1;
	--lkf-cream-deep: #F4EDE3;
	--lkf-white: #FFFFFF;

	/* Encres */
	--lkf-ink: #3E3327;
	--lkf-ink-soft: #766A5E;
	--lkf-ink-faint: #A3968A;

	/* Végétal — le logo */
	--lkf-sage: #A8CFA5;
	--lkf-sage-deep: #7BA378;
	--lkf-olive: #5A6B44;

	/* Féerie — l’affiche et le Pass */
	--lkf-violet: #6B3F8F;
	--lkf-violet-light: #A87BC7;
	--lkf-violet-deep: #4E2A6B;
	--lkf-mauve-mist: #F0E4F7;

	/* Précieux */
	--lkf-gold: #C9A961;
	--lkf-gold-light: #E4CE93;
	--lkf-blush: #E9C9C4;

	/* Traits */
	--lkf-line: #E4D9C8;
	--lkf-line-soft: #EFE7DA;

	/* Typographie */
	--lkf-font-display: "Marcellus", Georgia, "Times New Roman", serif;
	--lkf-font-body: "Tenor Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

	/* Rythme */
	--lkf-shell: 1200px;
	--lkf-shell-narrow: 780px;
	--lkf-gutter: clamp(1.15rem, 4vw, 2.75rem);
	--lkf-section: clamp(3.5rem, 9vw, 7rem);

	/* Courbes */
	--lkf-radius: 18px;
	--lkf-radius-lg: 28px;
	--lkf-ease: cubic-bezier(.22, .61, .36, 1);

	/* Ombres */
	--lkf-shadow-sm: 0 12px 28px -22px rgba(62, 51, 39, .55);
	--lkf-shadow: 0 26px 56px -38px rgba(62, 51, 39, .5);
	--lkf-shadow-lg: 0 42px 90px -56px rgba(62, 51, 39, .55);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

body {
	margin: 0;
	background: var(--lkf-cream);
	color: var(--lkf-ink);
	font-family: var(--lkf-font-body);
	font-size: clamp(1rem, .96rem + .2vw, 1.075rem);
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
	font-family: var(--lkf-font-display);
	font-weight: 400;
	line-height: 1.15;
	margin: 0 0 .6em;
	letter-spacing: -.005em;
}
h1 { font-size: clamp(2.1rem, 1.3rem + 3.6vw, 4rem); }
h2 { font-size: clamp(1.65rem, 1.15rem + 2.2vw, 2.75rem); }
h3 { font-size: clamp(1.2rem, 1.05rem + .7vw, 1.6rem); }
h4 { font-size: 1.1rem; }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

a { color: var(--lkf-violet); text-decoration-color: color-mix(in srgb, var(--lkf-violet) 35%, transparent); text-underline-offset: .22em; transition: color .22s var(--lkf-ease); }
a:hover { color: var(--lkf-violet-deep); }

:focus-visible { outline: 3px solid var(--lkf-gold); outline-offset: 3px; border-radius: 4px; }

::selection { background: var(--lkf-mauve-mist); color: var(--lkf-violet-deep); }

hr { border: 0; height: 1px; background: var(--lkf-line); margin: var(--lkf-gutter) 0; }

blockquote {
	margin: 1.8rem 0;
	padding: .2rem 0 .2rem 1.6rem;
	border-left: 3px solid var(--lkf-gold);
	font-family: var(--lkf-font-display);
	font-size: 1.18rem;
	color: var(--lkf-ink-soft);
}

/* Accès clavier */
.ldf-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	background: var(--lkf-violet);
	color: #fff;
	padding: .8rem 1.4rem;
	border-radius: 0 0 12px 0;
}
.ldf-skip:focus { left: 0; color: #fff; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}