/* Lakour des Fées — styles des blocs du plugin.
   Les variables sont fournies par le thème ; les valeurs de repli
   permettent au plugin de rester présentable sur un autre thème. */

.lkf-form-wrap,
.lkf-editions,
.lkf-pass,
.lkf-partenaires,
.lkf-roulette,
.lkf-prochaine {
	--c-cream: var(--lkf-cream, #FBF7F1);
	--c-deep: var(--lkf-cream-deep, #F4EDE3);
	--c-ink: var(--lkf-ink, #3E3327);
	--c-soft: var(--lkf-ink-soft, #766A5E);
	--c-violet: var(--lkf-violet, #6B3F8F);
	--c-violet-l: var(--lkf-violet-light, #A87BC7);
	--c-mist: var(--lkf-mauve-mist, #F0E4F7);
	--c-gold: var(--lkf-gold, #C9A961);
	--c-sage: var(--lkf-sage, #A8CFA5);
	--c-line: var(--lkf-line, #E4D9C8);
	--f-display: var(--lkf-font-display, "Marcellus", Georgia, serif);
	--f-body: var(--lkf-font-body, "Tenor Sans", system-ui, sans-serif);
	color: var(--c-ink);
	font-family: var(--f-body);
}

/* ---------- Boutons ---------- */
.lkf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	padding: .95em 2em;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--f-body);
	font-size: 1rem;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: transform .25s ease, background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.lkf-btn--primary {
	background: var(--c-violet);
	color: #fff;
	box-shadow: 0 10px 26px -14px rgba(107, 63, 143, .9);
}
.lkf-btn--primary:hover { background: #59327a; transform: translateY(-2px); color: #fff; }
.lkf-btn--ghost {
	background: transparent;
	color: var(--c-violet);
	border-color: color-mix(in srgb, var(--c-violet) 35%, transparent);
}
.lkf-btn--ghost:hover { background: var(--c-mist); }
.lkf-btn:focus-visible { outline: 3px solid var(--c-gold); outline-offset: 3px; }

/* ---------- Messages ---------- */
.lkf-alert {
	border-radius: 14px;
	padding: 1.1rem 1.4rem;
	margin-bottom: 2rem;
	border: 1px solid var(--c-line);
	background: var(--c-deep);
}
.lkf-alert--error { background: #FCEDEC; border-color: #E8B4AF; }
.lkf-alert--info { background: var(--c-mist); border-color: color-mix(in srgb, var(--c-violet) 25%, transparent); }
.lkf-alert p { margin: .4rem 0 0; }
.lkf-vide { color: var(--c-soft); font-style: italic; }

/* ---------- Formulaire ---------- */
.lkf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lkf-form {
	background: var(--c-cream);
	border: 1px solid var(--c-line);
	border-radius: 22px;
	padding: clamp(1.4rem, 4vw, 2.8rem);
	box-shadow: 0 30px 70px -50px rgba(62, 51, 39, .55);
}
.lkf-fieldset { border: 0; padding: 0; margin: 0 0 2.4rem; }
.lkf-legend {
	display: flex;
	align-items: center;
	gap: .7rem;
	font-family: var(--f-display);
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	color: var(--c-violet);
	margin-bottom: 1.1rem;
	padding: 0;
}
.lkf-legend__num {
	display: grid;
	place-items: center;
	width: 1.9em;
	height: 1.9em;
	border-radius: 50%;
	background: var(--c-mist);
	color: var(--c-violet);
	font-size: .68em;
	flex: none;
}
.lkf-fieldset__note { color: var(--c-soft); font-size: .95rem; margin: -.5rem 0 1.2rem; }

/* Choix de la date */
.lkf-editions-choice { display: grid; gap: .8rem; }
.lkf-edition-card { cursor: pointer; display: block; }
.lkf-edition-card input { position: absolute; opacity: 0; pointer-events: none; }
.lkf-edition-card__inner {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	padding: 1rem 1.2rem;
	border: 1.5px solid var(--c-line);
	border-radius: 16px;
	background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.lkf-edition-card:hover .lkf-edition-card__inner { border-color: var(--c-violet-l); transform: translateY(-1px); }
.lkf-edition-card input:checked + .lkf-edition-card__inner {
	border-color: var(--c-violet);
	background: var(--c-mist);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-violet) 16%, transparent);
}
.lkf-edition-card input:focus-visible + .lkf-edition-card__inner { outline: 3px solid var(--c-gold); outline-offset: 2px; }
.lkf-edition-card__date {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 14px;
	background: var(--c-violet);
	color: #fff;
	flex: none;
	line-height: 1;
}
.lkf-edition-card__jour { font-family: var(--f-display); font-size: 1.45rem; }
.lkf-edition-card__mois { font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; margin-top: .15rem; }
.lkf-edition-card__body { display: grid; gap: .15rem; }
.lkf-edition-card__titre { font-family: var(--f-display); font-size: 1.1rem; }
.lkf-edition-card__lieu { color: var(--c-soft); font-size: .92rem; }
.lkf-edition-card__places { color: var(--c-violet); font-size: .85rem; }

/* Radios pilules */
.lkf-radios { display: flex; flex-wrap: wrap; gap: .7rem; }
.lkf-radio-pill input { position: absolute; opacity: 0; pointer-events: none; }
.lkf-radio-pill span {
	display: inline-block;
	padding: .8em 1.6em;
	border: 1.5px solid var(--c-line);
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
	transition: all .2s ease;
}
.lkf-radio-pill input:checked + span { background: var(--c-violet); border-color: var(--c-violet); color: #fff; }
.lkf-radio-pill input:focus-visible + span { outline: 3px solid var(--c-gold); outline-offset: 2px; }

/* Champs */
.lkf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.4rem; }
.lkf-field--full { grid-column: 1 / -1; }
.lkf-field label { display: block; font-size: .95rem; margin-bottom: .35rem; color: var(--c-ink); }
.lkf-req { color: #B4453C; margin-left: .2em; }
.lkf-opt { color: var(--c-soft); font-size: .85em; }
.lkf-field input,
.lkf-field textarea {
	width: 100%;
	padding: .85em 1em;
	border: 1.5px solid var(--c-line);
	border-radius: 12px;
	background: #fff;
	font-family: var(--f-body);
	font-size: 1rem;
	color: var(--c-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.lkf-field input:focus,
.lkf-field textarea:focus {
	outline: none;
	border-color: var(--c-violet);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-violet) 14%, transparent);
}
.lkf-field textarea { resize: vertical; min-height: 5.5em; }
.lkf-help { display: block; color: var(--c-soft); font-size: .82rem; margin-top: .3rem; }
.lkf-error { color: #B4453C; font-size: .85rem; margin: .35rem 0 0; }
.lkf-field.is-invalid input,
.lkf-field.is-invalid textarea { border-color: #B4453C; background: #FDF6F5; }
.lkf-editions-choice.is-invalid,
.lkf-radios.is-invalid { padding: .6rem; border: 1.5px solid #B4453C; border-radius: 14px; }

.lkf-field--consent { margin: 1.6rem 0; }
.lkf-checkbox { display: flex; gap: .7rem; align-items: flex-start; cursor: pointer; }
.lkf-checkbox input { width: 1.15em; height: 1.15em; margin-top: .2em; flex: none; accent-color: var(--c-violet); }
.lkf-checkbox span { font-size: .95rem; color: var(--c-soft); }

.lkf-note-paiement {
	background: var(--c-deep);
	border-left: 4px solid var(--c-gold);
	border-radius: 0 14px 14px 0;
	padding: 1.2rem 1.5rem;
	margin: 2rem 0;
}
.lkf-note-paiement h3 { font-family: var(--f-display); color: var(--c-violet); margin: 0 0 .5rem; font-size: 1.15rem; }
.lkf-note-paiement p { margin: 0; color: var(--c-soft); font-size: .96rem; }

.lkf-submit { text-align: center; }
.lkf-submit__note { color: var(--c-soft); font-size: .9rem; margin-top: .9rem; }

@media (max-width: 640px) {
	.lkf-grid { grid-template-columns: 1fr; }
}

/* ---------- Liste des éditions ---------- */
.lkf-editions { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1.8rem; }
.lkf-edition {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .3s ease, box-shadow .3s ease;
}
.lkf-edition:hover { transform: translateY(-4px); box-shadow: 0 26px 54px -34px rgba(62, 51, 39, .5); }
.lkf-edition.is-closed { opacity: .72; }
.lkf-edition__media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--c-deep); overflow: hidden; }
.lkf-edition__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.lkf-edition:hover .lkf-edition__media img { transform: scale(1.05); }
.lkf-edition__badge {
	position: absolute;
	top: .9rem;
	left: .9rem;
	display: grid;
	place-items: center;
	width: 3.4rem;
	height: 3.4rem;
	border-radius: 14px;
	background: rgba(251, 247, 241, .95);
	color: var(--c-violet);
	line-height: 1;
	backdrop-filter: blur(6px);
}
.lkf-edition__jour { font-family: var(--f-display); font-size: 1.4rem; }
.lkf-edition__mois { font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; }
.lkf-edition__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.lkf-edition__num { font-size: .74rem; text-transform: uppercase; letter-spacing: .18em; color: var(--c-gold); margin: 0; }
.lkf-edition__titre { font-family: var(--f-display); font-size: 1.25rem; margin: 0; line-height: 1.25; }
.lkf-edition__titre a { color: inherit; text-decoration: none; }
.lkf-edition__titre a:hover { color: var(--c-violet); }
.lkf-edition__meta { margin: 0; color: var(--c-soft); font-size: .92rem; }
.lkf-edition__lieu { margin: 0; font-size: .92rem; }
.lkf-edition__lieu span { color: var(--c-soft); font-size: .86rem; }
.lkf-edition__places { margin: .4rem 0 .8rem; font-size: .92rem; color: var(--c-violet); }
.lkf-edition__body .lkf-btn { margin-top: auto; align-self: flex-start; }
.lkf-tag {
	display: inline-block;
	padding: .35em .9em;
	border-radius: 999px;
	background: var(--c-deep);
	color: var(--c-soft);
	font-size: .8rem;
}
.lkf-tag--complet { background: var(--c-violet); color: #fff; }

/* ---------- Prochaine date ---------- */
.lkf-prochaine {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
	background: var(--c-cream);
	border: 1px solid var(--c-line);
	border-radius: 26px;
	padding: clamp(1.4rem, 3vw, 2.4rem);
}
.lkf-prochaine__media { border-radius: 18px; overflow: hidden; aspect-ratio: 3 / 4; }
.lkf-prochaine__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lkf-prochaine__kicker { font-size: .76rem; text-transform: uppercase; letter-spacing: .2em; color: var(--c-gold); margin: 0 0 .6rem; }
.lkf-prochaine__titre { font-family: var(--f-display); font-size: clamp(1.7rem, 4vw, 2.6rem); margin: 0 0 .6rem; line-height: 1.15; }
.lkf-prochaine__date { font-size: 1.05rem; margin: 0 0 .3rem; color: var(--c-violet); }
.lkf-prochaine__lieu { color: var(--c-soft); margin: 0 0 1.6rem; }
.lkf-prochaine__actions { display: flex; flex-wrap: wrap; gap: .8rem; }

@media (max-width: 780px) {
	.lkf-prochaine { grid-template-columns: 1fr; }
	.lkf-prochaine__media { aspect-ratio: 16 / 10; }
}

/* ---------- Pass des Fées ---------- */
.lkf-pass { display: grid; gap: clamp(2rem, 5vw, 3.6rem); }
.lkf-pass__kicker { font-size: .76rem; text-transform: uppercase; letter-spacing: .2em; color: var(--c-gold); margin: 0 0 .6rem; }
.lkf-pass__titre { font-family: var(--f-display); font-size: clamp(1.6rem, 4vw, 2.5rem); margin: 0 0 .8rem; line-height: 1.2; }
.lkf-pass__intro { color: var(--c-soft); max-width: 58ch; margin: 0 0 2rem; }

.lkf-couleurs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: clamp(.8rem, 3vw, 2rem);
}
.lkf-couleur {
	display: grid;
	justify-items: center;
	gap: .45rem;
	text-align: center;
	position: relative;
	flex: 1 1 6rem;
	min-width: 5.5rem;
}
.lkf-couleur:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 1.85rem;
	right: calc(-1 * clamp(.4rem, 1.5vw, 1rem));
	width: clamp(.5rem, 2vw, 1.3rem);
	height: 1.5px;
	background: var(--c-line);
}
.lkf-couleur__pastille {
	display: grid;
	place-items: center;
	width: 3.7rem;
	height: 3.7rem;
	border-radius: 50%;
	background: var(--lkf-c);
	color: #fff;
	font-family: var(--f-display);
	font-size: 1.35rem;
	box-shadow: 0 12px 26px -14px var(--lkf-c);
}
.lkf-couleur__nom { font-family: var(--f-display); font-size: 1rem; }
.lkf-couleur__places { font-size: .78rem; color: var(--c-soft); }

.lkf-pass__regles { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2rem; }
.lkf-pass__carte {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 18px;
	padding: 1.5rem 1.6rem;
}
.lkf-pass__carte h3 {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-family: var(--f-display);
	font-size: 1.1rem;
	margin: 0 0 .6rem;
	line-height: 1.3;
}
.lkf-pass__num {
	display: grid;
	place-items: center;
	width: 2em;
	height: 2em;
	border-radius: 50%;
	background: var(--c-mist);
	color: var(--c-violet);
	font-size: .75em;
	flex: none;
}
.lkf-pass__carte p { margin: 0; color: var(--c-soft); font-size: .94rem; line-height: 1.65; }
.lkf-pass__carte--final { background: var(--c-mist); border-color: color-mix(in srgb, var(--c-violet) 25%, transparent); }
.lkf-pass__carte--final .lkf-pass__num { background: var(--c-violet); color: #fff; }

/* ---------- Partenaires ---------- */
.lkf-partenaires { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.6rem; }
.lkf-partenaire {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .3s ease, box-shadow .3s ease;
}
.lkf-partenaire:hover { transform: translateY(-3px); box-shadow: 0 24px 48px -32px rgba(62, 51, 39, .48); }
.lkf-partenaire__media { aspect-ratio: 3 / 2; background: var(--c-mist); display: grid; place-items: center; overflow: hidden; }
.lkf-partenaire__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lkf-partenaire__initiale { font-family: var(--f-display); font-size: 2.6rem; color: var(--c-violet); }
.lkf-partenaire__body { padding: 1.3rem 1.4rem 1.5rem; display: grid; gap: .4rem; }
.lkf-partenaire__nom { font-family: var(--f-display); font-size: 1.15rem; margin: 0; }
.lkf-partenaire__activite { margin: 0; color: var(--c-violet); font-size: .9rem; }
.lkf-partenaire__commune { margin: 0; color: var(--c-soft); font-size: .85rem; }
.lkf-partenaire__texte { color: var(--c-soft); font-size: .92rem; }
.lkf-partenaire__texte p { margin: .4rem 0 0; }
.lkf-partenaire__offre {
	margin: .6rem 0 0;
	display: inline-block;
	align-self: flex-start;
	padding: .4em 1em;
	border-radius: 999px;
	background: var(--c-mist);
	color: var(--c-violet);
	font-size: .85rem;
}
.lkf-partenaire__liens { margin: .5rem 0 0; display: flex; gap: 1rem; font-size: .88rem; }
.lkf-partenaire__liens a { color: var(--c-violet); }

/* ---------- Roue des Fées ---------- */
.lkf-roulette {
	background: var(--c-cream);
	border: 1px solid var(--c-line);
	border-radius: 26px;
	padding: clamp(1.6rem, 4vw, 3rem);
}
.lkf-roulette__intro { text-align: center; max-width: 56ch; margin: 0 auto 2.4rem; }
.lkf-roulette__kicker { font-size: .76rem; text-transform: uppercase; letter-spacing: .2em; color: var(--c-gold); margin: 0 0 .5rem; }
.lkf-roulette__titre { font-family: var(--f-display); font-size: clamp(1.6rem, 4vw, 2.4rem); margin: 0 0 .7rem; }
.lkf-roulette__intro p { color: var(--c-soft); margin: 0; }

.lkf-roulette__jeu {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(1.6rem, 4vw, 3rem);
	align-items: center;
}
.lkf-roulette__plateau { position: relative; max-width: 340px; margin: 0 auto; width: 100%; }
.lkf-roulette__roue {
	width: 100%;
	height: auto;
	display: block;
	filter: drop-shadow(0 20px 40px rgba(62, 51, 39, .25));
	transition: transform 4.5s cubic-bezier(.16, .84, .28, 1);
}
.lkf-roulette__fleche {
	position: absolute;
	top: -6px;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 11px solid transparent;
	border-right: 11px solid transparent;
	border-top: 20px solid var(--c-gold);
	z-index: 2;
	filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .2));
}
.lkf-roulette__form { display: grid; gap: 1rem; }
.lkf-roulette__form .lkf-field label { font-size: .95rem; }
.lkf-roulette__go { justify-self: start; }
.lkf-roulette__go[disabled] { opacity: .55; cursor: not-allowed; transform: none; }
.lkf-roulette__msg { margin: 0; font-size: .92rem; min-height: 1.4em; }
.lkf-roulette__msg.is-error { color: #B4453C; }

.lkf-roulette__resultat { margin-top: 2.4rem; text-align: center; }
.lkf-roulette__gagne { font-family: var(--f-display); font-size: 1.6rem; color: var(--c-violet); margin: 0 0 1rem; }
.lkf-roulette__carte {
	display: inline-grid;
	gap: .5rem;
	background: #fff;
	border: 2px dashed var(--c-violet-l);
	border-radius: 18px;
	padding: 1.6rem 2rem;
	max-width: 420px;
	text-align: center;
}
.lkf-roulette__carte img { width: 90px; height: 90px; object-fit: cover; border-radius: 50%; justify-self: center; }
.lkf-roulette__carte .code {
	font-family: var(--f-display);
	font-size: 1.8rem;
	letter-spacing: .08em;
	color: var(--c-ink);
}
.lkf-roulette__carte .nom { font-family: var(--f-display); font-size: 1.2rem; color: var(--c-violet); }
.lkf-roulette__carte .offre { color: var(--c-soft); }
.lkf-roulette__carte .exp { font-size: .85rem; color: var(--c-soft); }

@media (max-width: 780px) {
	.lkf-roulette__jeu { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.lkf-roulette__roue { transition-duration: .01ms; }
	.lkf-edition, .lkf-partenaire, .lkf-btn { transition: none; }
}

/* ---------- Compteur ---------- */
.lkf-places { font-family: var(--f-display); color: var(--c-violet); }

/* ============================================================
   Parcours en étapes du formulaire
   Sans JavaScript, le formulaire reste affiché d’un seul tenant
   et fonctionne exactement comme avant.
   ============================================================ */

.lkf-form.is-etape .lkf-etape-panneau { display: none; }
.lkf-form.is-etape .lkf-etape-panneau.is-actif { display: block; animation: lkf-entre .45s var(--lkf-ease, ease); }

@keyframes lkf-entre {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: none; }
}

/* --- Barre de progression --- */
.lkf-progression { margin-bottom: 2.2rem; }
.lkf-progression__piste {
	position: relative;
	display: flex;
	justify-content: space-between;
	margin-bottom: .9rem;
}
.lkf-progression__piste::before {
	content: "";
	position: absolute;
	top: 17px;
	left: 17px;
	right: 17px;
	height: 2px;
	background: var(--c-line);
}
.lkf-progression__remplie {
	position: absolute;
	top: 17px;
	left: 17px;
	height: 2px;
	background: linear-gradient(90deg, var(--c-violet-l), var(--c-violet));
	transition: width .5s var(--lkf-ease, ease);
}
.lkf-etape-pas {
	position: relative;
	display: grid;
	justify-items: center;
	gap: .45rem;
	background: transparent;
	border: 0;
	padding: 0;
	cursor: default;
	font-family: var(--f-body);
	flex: 1;
}
.lkf-etape-pas__rond {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--c-cream);
	border: 2px solid var(--c-line);
	color: var(--c-soft);
	font-size: .92rem;
	transition: background-color .35s ease, border-color .35s ease, color .35s ease, transform .35s ease;
}
.lkf-etape-pas__nom {
	font-size: .78rem;
	color: var(--c-soft);
	text-align: center;
	max-width: 11ch;
	line-height: 1.3;
}
.lkf-etape-pas.is-actif .lkf-etape-pas__rond {
	background: var(--c-violet);
	border-color: var(--c-violet);
	color: #fff;
	transform: scale(1.08);
}
.lkf-etape-pas.is-actif .lkf-etape-pas__nom { color: var(--c-violet); }
.lkf-etape-pas.is-faite { cursor: pointer; }
.lkf-etape-pas.is-faite .lkf-etape-pas__rond {
	background: var(--c-sage);
	border-color: var(--c-sage);
	color: #fff;
}
.lkf-etape-pas.is-faite:hover .lkf-etape-pas__rond { transform: scale(1.06); }

/* --- Navigation entre étapes --- */
.lkf-etape-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: 2rem;
	padding-top: 1.6rem;
	border-top: 1px solid var(--c-line);
}
.lkf-etape-nav__retour {
	background: none;
	border: 0;
	padding: .6em 0;
	color: var(--c-soft);
	font-family: var(--f-body);
	font-size: .95rem;
	cursor: pointer;
	transition: color .25s ease;
}
.lkf-etape-nav__retour:hover { color: var(--c-violet); }
.lkf-etape-nav__retour[hidden] { visibility: hidden; display: block; }

/* --- Récapitulatif de la dernière étape --- */
.lkf-recap {
	background: var(--c-cream);
	border: 1px solid var(--c-line);
	border-radius: 16px;
	padding: 1.4rem 1.6rem;
	margin-bottom: 1.8rem;
}
.lkf-recap h3 {
	font-family: var(--f-display);
	font-size: 1.15rem;
	color: var(--c-violet);
	margin: 0 0 1rem;
}
.lkf-recap__ligne {
	display: flex;
	gap: 1rem;
	padding: .55rem 0;
	border-bottom: 1px solid var(--c-line);
	font-size: .95rem;
}
.lkf-recap__ligne:last-child { border-bottom: 0; }
.lkf-recap__cle { flex: none; width: 11rem; color: var(--c-soft); }
.lkf-recap__val { flex: 1; min-width: 0; word-break: break-word; }
.lkf-recap__modifier {
	display: inline-block;
	margin-top: .9rem;
	background: none;
	border: 0;
	padding: 0;
	color: var(--c-violet);
	font-family: var(--f-body);
	font-size: .9rem;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: .2em;
}

@media (max-width: 560px) {
	.lkf-etape-pas__nom { font-size: .7rem; max-width: 8ch; }
	.lkf-recap__ligne { flex-direction: column; gap: .15rem; }
	.lkf-recap__cle { width: auto; font-size: .82rem; }
	.lkf-etape-nav { flex-direction: column-reverse; align-items: stretch; }
	.lkf-etape-nav .lkf-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.lkf-form.is-etape .lkf-etape-panneau.is-actif { animation: none; }
	.lkf-etape-pas__rond, .lkf-progression__remplie { transition: none; }
}