/* =====================================================================
   Formulaire de candidature — École internationale de danse soufie
   Fond ivoire, texte noir, une seule colonne, libellés toujours visibles.
   Couleurs réglables dans Elementor (variables --eidsf-*).
   ===================================================================== */

.eidsf {
	--eidsf-bg: #FAF6EE;
	--eidsf-field: #FFFFFF;
	--eidsf-ink: #151311;
	--eidsf-muted: #4F4942;
	--eidsf-accent: #735816;
	--eidsf-border: #8A8278;
	--eidsf-line: #E3DCCD;
	--eidsf-soft: #F2ECDF;
	--eidsf-btn-bg: #151311;
	--eidsf-btn-color: #FAF6EE;
	--eidsf-btn-hover: #735816;
	--eidsf-error: #A1261B;
	--eidsf-error-bg: #FBEDEA;
	--eidsf-max: 760px;
	--eidsf-r-field: 4px;
	--eidsf-r-choice: 4px;
	--eidsf-r-btn: 4px;
	--eidsf-r-box: 4px;

	box-sizing: border-box;
	width: 100%;
	background: var(--eidsf-bg);
	color: var(--eidsf-ink);
	padding: 88px 24px 104px;
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
.eidsf *, .eidsf *::before, .eidsf *::after { box-sizing: border-box; }
.eidsf > * { max-width: var(--eidsf-max); margin-left: auto; margin-right: auto; }
.eidsf [hidden] { display: none !important; }

.eidsf h1, .eidsf h2, .eidsf h3, .eidsf p, .eidsf ol, .eidsf ul, .eidsf fieldset, .eidsf legend { margin: 0; padding: 0; }
.eidsf ol, .eidsf ul { list-style: none; }
.eidsf fieldset { border: 0; min-width: 0; }
.eidsf a { color: var(--eidsf-ink); text-decoration: underline; text-underline-offset: 3px; }
.eidsf a:hover { color: var(--eidsf-accent); }
.eidsf .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.eidsf :focus-visible { outline: 2px solid var(--eidsf-accent); outline-offset: 3px; }

/* ---------- En-tête ---------- */
.eidsf-head { display: flex; flex-direction: column; gap: 12px; padding-bottom: 40px; border-bottom: 1px solid var(--eidsf-line); margin-bottom: 40px; }
.eidsf .eidsf-kicker { font-size: 15px; font-weight: 600; letter-spacing: .02em; color: var(--eidsf-accent); }
.eidsf .eidsf-title { font-size: clamp(30px, 4.4vw, 44px); font-weight: 600; line-height: 1.1; letter-spacing: -0.015em; color: var(--eidsf-ink); }
.eidsf .eidsf-direction { font-size: 17px; color: var(--eidsf-muted); }
.eidsf .eidsf-dates { font-size: 17px; font-weight: 600; color: var(--eidsf-ink); }
.eidsf .eidsf-intro { margin-top: 12px; color: var(--eidsf-ink); }
.eidsf .eidsf-intro p + p { margin-top: 12px; }

/* ---------- Étapes ---------- */
.eidsf-steps { margin-bottom: 40px; }
.eidsf .eidsf-steps__count { font-size: 15px; font-weight: 600; color: var(--eidsf-accent); margin-bottom: 12px; }
.eidsf .eidsf-steps__list { display: grid; grid-template-columns: repeat(var(--eidsf-steps, 4), minmax(0, 1fr)); gap: 12px; }
.eidsf .eidsf-steps__btn {
	all: unset;
	box-sizing: border-box;
	width: 100%;
	display: flex; align-items: flex-start; gap: 10px;
	font: inherit; font-size: 14px; line-height: 1.35; color: var(--eidsf-muted);
	cursor: default;
}
.eidsf .eidsf-steps__btn:not([disabled]) { cursor: pointer; }
.eidsf .eidsf-steps__btn:not([disabled]):hover .eidsf-steps__label { text-decoration: underline; }
.eidsf .eidsf-steps__btn:focus-visible { outline: 2px solid var(--eidsf-accent); outline-offset: 3px; }
.eidsf .eidsf-steps__num {
	flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%;
	border: 1px solid var(--eidsf-border);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 14px; font-weight: 600; background: var(--eidsf-bg);
}
.eidsf .is-current .eidsf-steps__btn { color: var(--eidsf-ink); font-weight: 600; }
.eidsf .is-current .eidsf-steps__num { background: var(--eidsf-ink); border-color: var(--eidsf-ink); color: var(--eidsf-bg); }
.eidsf .is-done .eidsf-steps__num { border-color: var(--eidsf-accent); color: var(--eidsf-accent); }
.eidsf-progress { margin-top: 16px; height: 2px; background: var(--eidsf-line); }
.eidsf-progress span { display: block; height: 100%; width: 25%; background: var(--eidsf-accent); transition: width .3s ease; }

/* ---------- Étape ---------- */
.eidsf-step { display: flex; flex-direction: column; gap: 32px; }
.eidsf .eidsf-step__title { font-size: clamp(24px, 3vw, 30px); font-weight: 600; line-height: 1.2; color: var(--eidsf-ink); }
.eidsf .eidsf-step__title:focus { outline: none; }
.eidsf-block { display: flex; flex-direction: column; gap: 24px; padding-top: 28px; border-top: 1px solid var(--eidsf-line); }
.eidsf .eidsf-block__title { font-size: 21px; font-weight: 600; line-height: 1.3; }
.eidsf .eidsf-sub { font-size: 18px; font-weight: 600; }

/* ---------- Contenu d'une étape ---------- */
.eidsf-stack { display: flex; flex-direction: column; gap: 24px; }
.eidsf .eidsf-stack > .eidsf-block__title { margin-top: 12px; padding-top: 24px; border-top: 1px solid var(--eidsf-line); }
.eidsf .eidsf-stack > .eidsf-block__title:first-child { margin-top: 0; }
.eidsf-letter { display: flex; flex-direction: column; gap: 16px; }
.eidsf .eidsf-letter__title { font-size: 19px; }
.eidsf-field--weeks { gap: 20px; }
.eidsf-pricing { display: flex; flex-direction: column; gap: 8px; }

/* ---------- Tarifs ---------- */
.eidsf .eidsf-prices { width: 100%; border-collapse: collapse; font-size: 17px; margin: 0; }
.eidsf .eidsf-prices th, .eidsf .eidsf-prices td { text-align: left; padding: 12px 0; border: 0; border-bottom: 1px solid var(--eidsf-line); background: none; }
.eidsf .eidsf-prices th { font-size: 14px; font-weight: 600; color: var(--eidsf-muted); }
.eidsf .eidsf-prices td:last-child, .eidsf .eidsf-prices th:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.eidsf .eidsf-prices td:last-child { font-weight: 600; }

/* ---------- Récapitulatif ---------- */
.eidsf-recap { background: var(--eidsf-soft); border-radius: var(--eidsf-r-box); padding: 20px 24px; display: flex; flex-direction: column; gap: 8px; }
.eidsf .eidsf-recap p { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.eidsf .eidsf-recap__k { color: var(--eidsf-muted); }
.eidsf .eidsf-recap__v { text-align: right; font-weight: 600; white-space: pre-line; }
.eidsf .eidsf-recap__total { padding-top: 10px; margin-top: 4px; border-top: 1px solid var(--eidsf-line); font-size: 19px; }
.eidsf .eidsf-recap__total .eidsf-recap__k { color: var(--eidsf-ink); font-weight: 600; }

/* ---------- Champs ---------- */
.eidsf-field { display: flex; flex-direction: column; gap: 8px; }
.eidsf-group { display: flex; flex-direction: column; gap: 16px; }
.eidsf .eidsf-group > legend.eidsf-label { margin-bottom: 14px; padding-bottom: 8px; border-bottom: 1px solid var(--eidsf-line); width: 100%; }
.eidsf-field--compact .eidsf-label { font-weight: 500; font-size: 16px; }
.eidsf .eidsf-label { display: block; font-size: 17px; font-weight: 600; line-height: 1.4; color: var(--eidsf-ink); }
.eidsf .eidsf-req { color: var(--eidsf-accent); }
.eidsf .eidsf-opt { font-weight: 400; color: var(--eidsf-muted); }
.eidsf .eidsf-help { font-size: 15px; line-height: 1.55; color: var(--eidsf-muted); }
.eidsf .eidsf-help--lead { font-size: 16px; }

.eidsf input[type="text"],
.eidsf input[type="email"],
.eidsf input[type="tel"],
.eidsf textarea,
.eidsf select,
.eidsf input[type="file"] {
	width: 100%;
	max-width: none;
	margin: 0;
	font: inherit;
	font-size: 17px;
	line-height: 1.5;
	color: var(--eidsf-ink);
	background: var(--eidsf-field);
	border: 1px solid var(--eidsf-border);
	border-radius: var(--eidsf-r-field);
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.eidsf input[type="text"], .eidsf input[type="email"], .eidsf input[type="tel"], .eidsf input[type="url"] { min-height: 54px; padding: 12px 16px; }
.eidsf select {
	min-height: 54px; padding: 12px 44px 12px 16px; cursor: pointer;
	-webkit-appearance: none; appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%;
	background-size: 6px 6px; background-repeat: no-repeat;
}
.eidsf textarea { padding: 14px 16px; min-height: 150px; resize: vertical; }
.eidsf input[type="file"] { padding: 12px; border-style: dashed; cursor: pointer; }
.eidsf input[type="file"]::file-selector-button {
	font: inherit; font-size: 15px; font-weight: 600; margin-right: 14px; padding: 8px 16px;
	border: 1px solid var(--eidsf-ink); border-radius: var(--eidsf-r-field); background: transparent; color: var(--eidsf-ink); cursor: pointer;
}
.eidsf input[type="url"] {
	width: 100%; margin: 0; font: inherit; font-size: 17px; color: var(--eidsf-ink); background: var(--eidsf-field);
	border: 1px solid var(--eidsf-border); border-radius: var(--eidsf-r-field); box-shadow: none;
}
.eidsf input:focus, .eidsf textarea:focus, .eidsf select:focus { outline: none; border-color: var(--eidsf-ink); box-shadow: 0 0 0 2px var(--eidsf-accent); }
.eidsf input::placeholder { color: #7A736A; }

.eidsf .eidsf-count { font-size: 14px; color: var(--eidsf-muted); font-variant-numeric: tabular-nums; }

/* Choix (cases et boutons radio) */
.eidsf-choice { display: flex; flex-direction: column; gap: 8px; }
.eidsf-options { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.eidsf .eidsf-option, .eidsf .eidsf-check {
	display: flex; align-items: flex-start; gap: 14px;
	padding: 15px 18px;
	background: var(--eidsf-field);
	border: 1px solid var(--eidsf-border);
	border-radius: var(--eidsf-r-choice);
	cursor: pointer;
	font-size: 17px; line-height: 1.45; font-weight: 400;
	transition: border-color .15s ease, background-color .15s ease;
}
.eidsf .eidsf-option:hover, .eidsf .eidsf-check:hover { border-color: var(--eidsf-ink); }
.eidsf .eidsf-option input, .eidsf .eidsf-check input {
	flex: 0 0 22px; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--eidsf-ink); cursor: pointer;
}
.eidsf .eidsf-option:has(input:checked), .eidsf .eidsf-check:has(input:checked) { border-color: var(--eidsf-ink); background: var(--eidsf-soft); box-shadow: inset 0 0 0 1px var(--eidsf-ink); }
.eidsf .eidsf-option:has(input:focus-visible), .eidsf .eidsf-check:has(input:focus-visible) { outline: 2px solid var(--eidsf-accent); outline-offset: 2px; }

/* Choix « Écrire / Joindre » en onglets */
.eidsf-field--segmented .eidsf-options { flex-direction: row; gap: 0; }
.eidsf-field--segmented .eidsf-option { flex: 1 1 0; justify-content: center; border-radius: 0; font-weight: 600; }
.eidsf-field--segmented .eidsf-option:first-child { border-radius: var(--eidsf-r-choice) 0 0 var(--eidsf-r-choice); }
.eidsf-field--segmented .eidsf-option:last-child { border-radius: 0 var(--eidsf-r-choice) var(--eidsf-r-choice) 0; margin-left: -1px; }
.eidsf-field--segmented .eidsf-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.eidsf-field--segmented .eidsf-option:has(input:checked) { background: var(--eidsf-ink); color: var(--eidsf-bg); box-shadow: none; position: relative; z-index: 1; }
.eidsf-field--segmented .eidsf-label { font-size: 15px; font-weight: 500; color: var(--eidsf-muted); }

/* ---------- Erreurs ---------- */
.eidsf .eidsf-error {
	display: flex; gap: 8px; align-items: flex-start;
	font-size: 15px; font-weight: 600; line-height: 1.45; color: var(--eidsf-error);
}
.eidsf .eidsf-error::before {
	content: "!"; flex: 0 0 20px; width: 20px; height: 20px; border-radius: 50%;
	background: var(--eidsf-error); color: #fff; font-size: 13px; line-height: 20px; text-align: center; margin-top: 1px;
}
.eidsf .is-invalid input[type="text"], .eidsf .is-invalid input[type="email"], .eidsf .is-invalid input[type="tel"],
.eidsf .is-invalid textarea, .eidsf .is-invalid input[type="file"], .eidsf .is-invalid select, .eidsf .is-invalid input[type="url"],
.eidsf .is-invalid .eidsf-option, .eidsf .is-invalid .eidsf-check { border-color: var(--eidsf-error); box-shadow: inset 0 0 0 1px var(--eidsf-error); }

.eidsf-errsum, .eidsf-alert {
	padding: 18px 20px; border-radius: var(--eidsf-r-box); background: var(--eidsf-error-bg);
	border-left: 4px solid var(--eidsf-error); color: var(--eidsf-ink); font-size: 16px;
}
.eidsf .eidsf-errsum p { font-weight: 600; margin-bottom: 8px; }
.eidsf .eidsf-errsum ul { display: flex; flex-direction: column; gap: 4px; padding-left: 0; }
.eidsf .eidsf-errsum a { color: var(--eidsf-error); font-weight: 600; }
.eidsf .eidsf-alert:focus { outline: none; }

/* ---------- Vérification ---------- */
.eidsf-review { display: flex; flex-direction: column; gap: 20px; }
.eidsf-review__part { background: var(--eidsf-field); border: 1px solid var(--eidsf-line); border-radius: var(--eidsf-r-box); padding: 22px 24px; }
.eidsf .eidsf-review__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 12px; }
.eidsf .eidsf-review__head h3 { font-size: 19px; font-weight: 600; }
.eidsf .eidsf-review__edit {
	all: unset; cursor: pointer; font-size: 15px; font-weight: 600; color: var(--eidsf-ink);
	text-decoration: underline; text-underline-offset: 3px; padding: 6px 0;
}
.eidsf .eidsf-review__edit:hover { color: var(--eidsf-accent); }
.eidsf .eidsf-review__edit:focus-visible { outline: 2px solid var(--eidsf-accent); outline-offset: 3px; }
.eidsf .eidsf-review dl { margin: 0; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 10px 20px; font-size: 16px; }
.eidsf .eidsf-review dt { color: var(--eidsf-muted); margin: 0; }
.eidsf .eidsf-review dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.eidsf .eidsf-review dd.is-long { max-height: 9.6em; overflow: hidden; position: relative; }
.eidsf .eidsf-review__amount { font-size: 18px; font-weight: 600; }

.eidsf .eidsf-privacy { font-size: 15px; color: var(--eidsf-muted); }
.eidsf .eidsf-admin-warning { display: block; margin-top: 8px; color: var(--eidsf-error); font-size: 14px; }

/* ---------- Navigation ---------- */
.eidsf-nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--eidsf-line); }
.eidsf-nav [data-eidsf-next], .eidsf-nav [data-eidsf-submit] { margin-left: auto; }
.eidsf .eidsf-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding: 12px 28px;
	font: inherit; font-size: 16px; font-weight: 600; line-height: 1.2; letter-spacing: .01em;
	border-radius: var(--eidsf-r-btn); cursor: pointer; text-decoration: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.eidsf .eidsf-btn--primary { background: var(--eidsf-btn-bg); color: var(--eidsf-btn-color); border: 1px solid var(--eidsf-btn-bg); }
.eidsf .eidsf-btn--primary:hover, .eidsf .eidsf-btn--primary:focus-visible { background: var(--eidsf-btn-hover); border-color: var(--eidsf-btn-hover); color: var(--eidsf-btn-color); }
.eidsf .eidsf-btn--ghost { background: transparent; color: var(--eidsf-ink); border: 1px solid var(--eidsf-ink); }
.eidsf .eidsf-btn--ghost:hover, .eidsf .eidsf-btn--ghost:focus-visible { background: var(--eidsf-soft); color: var(--eidsf-ink); }
.eidsf .eidsf-btn[disabled], .eidsf .eidsf-btn[aria-busy="true"] { opacity: .6; cursor: progress; }

/* Anti-robots */
.eidsf-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Confirmation ---------- */
.eidsf-done { background: var(--eidsf-field); border: 1px solid var(--eidsf-line); border-left: 4px solid var(--eidsf-accent); border-radius: var(--eidsf-r-box); padding: 32px; }
.eidsf-done:focus { outline: none; }
.eidsf .eidsf-done__inner { font-size: 18px; line-height: 1.65; }
.eidsf .eidsf-done__inner p + p { margin-top: 14px; }
.eidsf .eidsf-done__inner p:first-child { font-size: 21px; font-weight: 600; line-height: 1.4; }

/* Sur ordinateur, la liste des étapes suffit : le compteur reste lu par les lecteurs d'écran. */
@media (min-width: 768px) {
	.eidsf .eidsf-steps__count {
		position: absolute !important; width: 1px; height: 1px; overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; margin: 0;
	}
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.eidsf { padding: 48px 20px 64px; font-size: 17px; }
	.eidsf-head { padding-bottom: 28px; margin-bottom: 28px; }
	.eidsf-steps { margin-bottom: 28px; }
	.eidsf .eidsf-steps__list { display: none; }
	.eidsf .eidsf-steps__count { font-size: 16px; margin-bottom: 8px; }
	.eidsf-progress { margin-top: 0; height: 4px; border-radius: 2px; }
	.eidsf-block { padding-top: 24px; }
	.eidsf-recap { padding: 18px; }
	.eidsf .eidsf-review dl { grid-template-columns: 1fr; gap: 2px; }
	.eidsf .eidsf-review dd { margin-bottom: 10px; }
	.eidsf-review__part { padding: 18px; }
	.eidsf-nav { flex-direction: column-reverse; align-items: stretch; margin-top: 36px; }
	.eidsf-nav [data-eidsf-next], .eidsf-nav [data-eidsf-submit] { margin-left: 0; }
	.eidsf .eidsf-btn { width: 100%; min-height: 56px; }
	.eidsf-done { padding: 24px 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.eidsf * { transition: none !important; }
}
