/* Prise de rendez-vous ADéPA (1.3.0, 28/09/2026).
   ⚠ FICHIER À PART, ET C'EST VOULU : LiteSpeed combine les feuilles de style
   sous un nom qui ne change pas quand leur contenu change, et le CDN garde
   l'ancienne version. Ce fichier n'est chargé que sur la page qui porte
   [adepa_rdv], sous sa propre poignée (adepa-cf-rdv), hors optimisation.
   Sélecteurs préfixés par #afc-rdv : le thème (Astra) et le kit Elementor
   stylent boutons et champs avec des sélecteurs forts. */

#afc-rdv {
	--rdv-nuit: #0B1120;
	--rdv-encre: #1A1F2E;
	--rdv-gris: #5B6275;
	--rdv-trait: #E4E6EC;
	--rdv-fond: #F7F7F8;
	--rdv-or: #D4AF37;
	--rdv-or-fonce: #8A6412;
	--rdv-or-clair: #FBF4DC;
	--rdv-creme: #F5F1E6;
	--rdv-vert: #1E7B3E;
	--rdv-rouge: #B42318;
	max-width: 1120px;
}

/* ------------------------------------------------------------ en-tête */
#afc-rdv .afc-rdv__tete {
	max-width: 760px;
	margin: 0 0 28px;
}
#afc-rdv .afc-rdv__titre {
	margin-bottom: .35em;
}
#afc-rdv .afc-rdv__chapo {
	margin: 0;
}

/* ----------------------------------------------------- la carte claire */
#afc-rdv .afc-rdv__carte {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	border-radius: 18px;
	background: #fff;
	color: var(--rdv-encre);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
	overflow: hidden;
}
#afc-rdv .afc-rdv__carte--seule {
	grid-template-columns: minmax(0, 1fr);
	max-width: 720px;
}
#afc-rdv .afc-rdv__resume {
	padding: 30px 26px;
	border-right: 1px solid var(--rdv-trait);
	background: var(--rdv-fond);
}
#afc-rdv .afc-rdv__org {
	margin: 0 0 18px;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__org span {
	font-size: .82rem;
	font-weight: 500;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__resume-titre {
	margin: 0 0 18px;
	font-family: "DM Sans", system-ui, sans-serif;
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__infos {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
}
#afc-rdv .afc-rdv__infos li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 12px;
	font-size: .98rem;
	font-weight: 500;
	line-height: 1.35;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__infos li[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__infos svg {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	color: var(--rdv-or-fonce);
}
#afc-rdv .afc-rdv__fuseau {
	margin: 0;
	font-size: .85rem;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__corps {
	min-width: 0;
	padding: 28px 32px 32px;
}

/* ------------------------------------------------------------- étapes */
#afc-rdv .afc-rdv__fil {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 22px;
	list-style: none;
	margin: 0 0 22px;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--rdv-trait);
	counter-reset: none;
}
#afc-rdv .afc-rdv__fil[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__fil li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: .9rem;
	font-weight: 500;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__fil li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border: 1.5px solid #C9CDD6;
	border-radius: 50%;
	font-size: .8rem;
	font-weight: 700;
}
#afc-rdv .afc-rdv__fil li[aria-current="step"] {
	color: var(--rdv-encre);
	font-weight: 700;
}
#afc-rdv .afc-rdv__fil li[aria-current="step"] span {
	border-color: var(--rdv-nuit);
	background: var(--rdv-nuit);
	color: #fff;
}
#afc-rdv .afc-rdv__fil li.is-fait span {
	border-color: var(--rdv-or);
	background: var(--rdv-or);
	color: var(--rdv-nuit);
}
#afc-rdv .afc-rdv__etape[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__h {
	margin: 0 0 18px;
	font-family: "DM Sans", system-ui, sans-serif;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--rdv-encre);
	outline: none;
}
#afc-rdv .afc-rdv__h3 {
	margin: 22px 0 12px;
	font-family: "DM Sans", system-ui, sans-serif;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__h3[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__h3 span {
	font-weight: 500;
	color: var(--rdv-gris);
}

/* Boutons : on neutralise d'abord ce que le thème applique à tout <button>. */
#afc-rdv button {
	font-family: inherit;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	cursor: pointer;
}
#afc-rdv button:disabled {
	cursor: not-allowed;
}
#afc-rdv button:focus-visible,
#afc-rdv a:focus-visible,
#afc-rdv input:focus-visible,
#afc-rdv textarea:focus-visible {
	outline: 3px solid var(--rdv-nuit);
	outline-offset: 2px;
	box-shadow: 0 0 0 6px rgba(212, 175, 55, .55);
}

/* Étape 1 : les tuiles d'objet (même forme que la carte « Quelle est votre situation ? ») */
#afc-rdv .afc-rdv__motifs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
#afc-rdv .afc-rdv__motif {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 150px;
	margin: 0;
	padding: 20px 14px;
	border: 1px solid var(--rdv-trait);
	border-radius: 14px;
	background: #fff;
	color: #B8871B;
	text-align: center;
	transition: border-color .15s, box-shadow .15s, background-color .15s;
}
#afc-rdv .afc-rdv__motif svg {
	width: 34px;
	height: 34px;
}
#afc-rdv .afc-rdv__motif strong {
	color: var(--rdv-encre);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.25;
}
#afc-rdv .afc-rdv__motif small {
	color: var(--rdv-gris);
	font-size: .85rem;
	line-height: 1.35;
}
#afc-rdv .afc-rdv__motif:hover {
	border-color: var(--rdv-or);
	background: #fff;
	box-shadow: 0 8px 24px rgba(26, 31, 46, .10);
}
#afc-rdv .afc-rdv__motif[aria-pressed="true"] {
	border: 2px solid var(--rdv-or);
	background: var(--rdv-or-clair);
	padding: 19px 13px;
}

/* Liens-boutons de retour */
#afc-rdv .afc-rdv__retour,
#afc-rdv .afc-rdv__lienbouton {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 14px;
	padding: 6px 2px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--rdv-or-fonce);
	font-size: .92rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}
#afc-rdv .afc-rdv__retour:hover,
#afc-rdv .afc-rdv__lienbouton:hover {
	background: transparent;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__lienbouton {
	margin: 0;
}
#afc-rdv .afc-rdv__charge {
	margin: 0 0 12px;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__charge[hidden] {
	display: none;
}

/* Étape 2 : les jours, en liste horizontale */
#afc-rdv .afc-rdv__jours-cadre {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
}
#afc-rdv .afc-rdv__jours-cadre[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__jours {
	display: flex;
	gap: 10px;
	flex: 1 1 auto;
	min-width: 0;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
	padding: 6px 4px 10px;
	-webkit-overflow-scrolling: touch;
}
#afc-rdv .afc-rdv__jour {
	flex: 0 0 76px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 10px 6px 11px;
	border: 1px solid var(--rdv-trait);
	border-radius: 12px;
	background: #fff;
	color: var(--rdv-encre);
	scroll-snap-align: start;
	transition: border-color .15s, background-color .15s;
}
#afc-rdv .afc-rdv__jour-sem,
#afc-rdv .afc-rdv__jour-mois {
	font-size: .78rem;
	font-weight: 500;
	color: var(--rdv-gris);
	text-transform: lowercase;
}
#afc-rdv .afc-rdv__jour-num {
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.15;
}
#afc-rdv .afc-rdv__jour:hover {
	border-color: var(--rdv-or);
	background: #fff;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__jour[aria-pressed="true"] {
	border-color: var(--rdv-nuit);
	background: var(--rdv-nuit);
	color: #fff;
}
#afc-rdv .afc-rdv__jour[aria-pressed="true"] .afc-rdv__jour-sem,
#afc-rdv .afc-rdv__jour[aria-pressed="true"] .afc-rdv__jour-mois {
	color: var(--rdv-creme);
}
#afc-rdv .afc-rdv__defile {
	flex: 0 0 36px;
	width: 36px;
	height: 36px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--rdv-trait);
	border-radius: 50%;
	background: #fff;
	color: var(--rdv-encre);
	font-size: 1.4rem;
	line-height: 1;
}
#afc-rdv .afc-rdv__defile:hover:not(:disabled) {
	border-color: var(--rdv-or);
	background: #fff;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__defile:disabled {
	opacity: .35;
}
#afc-rdv .afc-rdv__jours-cadre.sans-defile .afc-rdv__defile {
	display: none;
}

/* Étape 2 : les heures */
#afc-rdv .afc-rdv__heures {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
	gap: 10px;
}
#afc-rdv .afc-rdv__heure {
	margin: 0;
	padding: 12px 6px;
	border: 1.5px solid #C9A227;
	border-radius: 10px;
	background: #fff;
	color: var(--rdv-encre);
	font-size: 1rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	transition: background-color .15s, color .15s;
}
#afc-rdv .afc-rdv__heure:hover {
	border-color: #C9A227;
	background: var(--rdv-or-clair);
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__heure[aria-pressed="true"] {
	border-color: var(--rdv-nuit);
	background: var(--rdv-nuit);
	color: #fff;
}

/* Bouton principal (Continuer, Confirmer) */
#afc-rdv .afc-rdv__suite,
#afc-rdv .afc-rdv__confirmer {
	display: block;
	width: 100%;
	margin: 22px 0 0;
	padding: 15px 20px;
	border: 0;
	border-radius: 12px;
	background: var(--rdv-nuit);
	color: #fff;
	font-size: 1.02rem;
	font-weight: 700;
	text-align: center;
	transition: background-color .15s;
}
#afc-rdv .afc-rdv__suite[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__suite:hover:not(:disabled),
#afc-rdv .afc-rdv__confirmer:hover:not(:disabled) {
	background: #1C2742;
	color: #fff;
}
#afc-rdv .afc-rdv__suite:disabled {
	background: #E4E6EC;
	color: #5B6275;
}
#afc-rdv .afc-rdv__confirmer:disabled {
	opacity: .7;
}
#afc-rdv .afc-rdv__confirmer--annuler {
	background: var(--rdv-rouge);
}
#afc-rdv .afc-rdv__confirmer--annuler:hover:not(:disabled) {
	background: #912018;
}

/* Étape 3 : le formulaire */
#afc-rdv .afc-rdv__rappel {
	margin: 0 0 18px;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--rdv-or-clair);
	color: var(--rdv-encre);
	font-weight: 700;
	font-size: .95rem;
}
#afc-rdv .afc-rdv__champ {
	margin: 0 0 14px;
	min-width: 0;
}
#afc-rdv .afc-rdv__ligne {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 14px;
}
#afc-rdv .afc-rdv__form label,
#afc-rdv .afc-rdv__modes legend {
	display: block;
	margin: 0 0 6px;
	font-size: .9rem;
	font-weight: 700;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__facultatif {
	font-weight: 500;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__oblig[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__form input[type="text"],
#afc-rdv .afc-rdv__form input[type="email"],
#afc-rdv .afc-rdv__form input[type="tel"],
#afc-rdv .afc-rdv__form textarea {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 11px 13px;
	border: 1px solid #B9BECB;
	border-radius: 10px;
	background: #fff;
	color: var(--rdv-encre);
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
	box-shadow: none;
}
#afc-rdv .afc-rdv__form textarea {
	min-height: 90px;
	resize: vertical;
}
#afc-rdv .afc-rdv__form input::placeholder,
#afc-rdv .afc-rdv__form textarea::placeholder {
	color: #6B7285;
}
#afc-rdv .afc-rdv__form input[aria-invalid="true"] {
	border-color: var(--rdv-rouge);
}
#afc-rdv .afc-rdv__aide,
#afc-rdv .afc-rdv__err {
	margin: 5px 0 0;
	font-size: .82rem;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__err {
	color: var(--rdv-rouge);
	font-weight: 700;
}
#afc-rdv .afc-rdv__err[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__modes {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin: 4px 0 16px;
	padding: 0;
	border: 0;
	min-width: 0;
}
#afc-rdv .afc-rdv__modes legend {
	grid-column: 1 / -1;
	padding: 0;
	float: left;
	width: 100%;
}
#afc-rdv .afc-rdv__form .afc-rdv__mode {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--rdv-trait);
	border-radius: 12px;
	background: #fff;
	font-weight: 400;
	cursor: pointer;
}
#afc-rdv .afc-rdv__mode:has(input:checked) {
	border: 2px solid var(--rdv-or);
	background: var(--rdv-or-clair);
	padding: 11px 13px;
}
#afc-rdv .afc-rdv__mode input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--rdv-nuit);
}
#afc-rdv .afc-rdv__mode span {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
#afc-rdv .afc-rdv__mode strong {
	font-size: .98rem;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__mode small {
	font-size: .84rem;
	line-height: 1.35;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__rgpd {
	margin: 4px 0 0;
	font-size: .82rem;
	line-height: 1.5;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__rgpd a,
#afc-rdv .afc-rdv__lien,
#afc-rdv .afc-rdv__ics {
	color: var(--rdv-or-fonce);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}
#afc-rdv .afc-rdv__ics[hidden] {
	display: none;
}

/* Alertes */
#afc-rdv .afc-rdv__alerte,
#afc-rdv .afc-rdv__erreur {
	margin: 0 0 18px;
	padding: 12px 14px;
	border: 1px solid #F1B5AE;
	border-left: 4px solid var(--rdv-rouge);
	border-radius: 10px;
	background: #FEF3F2;
	color: #7A1A12;
	font-size: .95rem;
	font-weight: 500;
}
#afc-rdv .afc-rdv__erreur {
	margin: 16px 0 0;
}
#afc-rdv .afc-rdv__alerte[hidden],
#afc-rdv .afc-rdv__erreur[hidden] {
	display: none;
}
#afc-rdv .afc-rdv__succes {
	margin: 0 0 14px;
	padding: 12px 14px;
	border: 1px solid #B9E3C6;
	border-left: 4px solid var(--rdv-vert);
	border-radius: 10px;
	background: #EAF7EE;
	color: #14532D;
	font-weight: 500;
	outline: none;
}

/* Étape 4 : confirmation */
#afc-rdv .afc-rdv__fin {
	text-align: left;
}
#afc-rdv .afc-rdv__ok {
	display: inline-flex;
	margin: 0 0 10px;
	color: var(--rdv-vert);
}
#afc-rdv .afc-rdv__ok svg {
	width: 44px;
	height: 44px;
}
#afc-rdv .afc-rdv__recap {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: 10px 18px;
	margin: 0 0 18px;
	padding: 16px 18px;
	border: 1px solid var(--rdv-trait);
	border-radius: 12px;
	background: var(--rdv-fond);
}
#afc-rdv .afc-rdv__recap dt {
	margin: 0;
	font-size: .85rem;
	font-weight: 700;
	color: var(--rdv-gris);
}
#afc-rdv .afc-rdv__recap dd {
	margin: 0;
	font-weight: 500;
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__mailinfo,
#afc-rdv .afc-rdv__annul p {
	color: var(--rdv-encre);
}
#afc-rdv .afc-rdv__noscript {
	color: var(--rdv-encre);
}

/* Sous la carte */
#afc-rdv .afc-rdv__autre {
	margin: 22px 0 0;
	color: var(--afc-doux, #C3BFA8);
	font-size: .95rem;
}
#afc-rdv .afc-rdv__autre a {
	color: var(--rdv-or);
	font-weight: 700;
}

/* ------------------------------------------------------------ mobile */
@media (max-width: 900px) {
	#afc-rdv .afc-rdv__carte {
		grid-template-columns: minmax(0, 1fr);
	}
	#afc-rdv .afc-rdv__resume {
		padding: 20px 20px 14px;
		border-right: 0;
		border-bottom: 1px solid var(--rdv-trait);
	}
	#afc-rdv .afc-rdv__org {
		margin-bottom: 8px;
	}
	#afc-rdv .afc-rdv__resume-titre {
		margin-bottom: 10px;
		font-size: 1.2rem;
	}
	#afc-rdv .afc-rdv__infos {
		display: flex;
		flex-wrap: wrap;
		gap: 4px 18px;
		margin-bottom: 8px;
	}
	#afc-rdv .afc-rdv__infos li {
		margin: 0;
		font-size: .92rem;
	}
	#afc-rdv .afc-rdv__infos svg {
		flex-basis: 20px;
		width: 20px;
		height: 20px;
	}
}
@media (max-width: 640px) {
	#afc-rdv .afc-rdv__corps {
		padding: 20px 16px 22px;
	}
	#afc-rdv .afc-rdv__fil {
		gap: 6px 12px;
	}
	#afc-rdv .afc-rdv__fil li {
		font-size: .8rem;
		gap: 5px;
	}
	#afc-rdv .afc-rdv__fil li span {
		width: 22px;
		height: 22px;
	}
	#afc-rdv .afc-rdv__motifs {
		gap: 10px;
	}
	#afc-rdv .afc-rdv__motif {
		min-height: 128px;
		padding: 14px 8px;
	}
	#afc-rdv .afc-rdv__motif[aria-pressed="true"] {
		padding: 13px 7px;
	}
	#afc-rdv .afc-rdv__motif strong {
		font-size: .95rem;
	}
	#afc-rdv .afc-rdv__motif small {
		font-size: .78rem;
	}
	#afc-rdv .afc-rdv__defile {
		display: none;
	}
	#afc-rdv .afc-rdv__jour {
		flex-basis: 66px;
	}
	#afc-rdv .afc-rdv__heures {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	#afc-rdv .afc-rdv__ligne,
	#afc-rdv .afc-rdv__modes {
		grid-template-columns: minmax(0, 1fr);
	}
	#afc-rdv .afc-rdv__recap {
		grid-template-columns: minmax(0, 1fr);
		gap: 2px;
	}
	#afc-rdv .afc-rdv__recap dd {
		margin-bottom: 8px;
	}
}
@media (prefers-reduced-motion: reduce) {
	#afc-rdv * {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
