/*
 * Feuille de style custom — Rendez-vous Contes
 *
 * Réservé aux surcharges CSS qui ne peuvent pas être gérées dans l'UI Bricks :
 * emails transactionnels, éléments hors builder, cas limites.
 *
 * La palette et la typographie sont définies dans Bricks Builder (Global Settings).
 * Ne pas dupliquer les variables ici sauf nécessité explicite.
 */

/* ────────────────────────────────────────────────────────────────────────
 * Classes fonctionnelles du pont Bricks — NE JAMAIS RENOMMER NI RETIRER
 *
 * .rdvc-agenda (sur l'élément à boucle) et .rdvc-evenement (sur l'item de
 * boucle) ne sont pas des accroches de style : elles sont posées dans l'UI
 * Bricks (contrôle « CSS classes ») et lues par Rdvc_Bricks
 * (plugins/rdvc-plugin/includes/bricks/class-rdvc-bricks.php). Les retirer
 * en croyant « nettoyer » ne change rien à l'écran mais débranche
 * silencieusement le tri/filtrage de la requête (.rdvc-agenda) ou la classe
 * d'état (.rdvc-evenement). Voir CLAUDE.md § Pont Bricks. La couleur d'accent
 * du type ne passe plus par une classe : voir la balise dynamique
 * {rdvc_couleur} (Rdvc_Bricks), à brancher dans l'UI Bricks. Ne jamais se
 * servir de .rdvc-agenda/.rdvc-evenement comme sélecteur de style principal :
 * préférer une classe dédiée posée à côté (c'est le rôle des classes
 * ci-dessous, purement décoratives, posées automatiquement par le pont).
 * ──────────────────────────────────────────────────────────────────────── */

/* ── États d'inscription (classe rdvc-etat-* posée par Rdvc_Bricks::classe_etat()) ──
 * non-eligible, complet, passe : retrait visuel léger — l'événement reste
 * lisible mais se signale comme secondaire. ouverte et les autres états
 * (avant-ouverture, fermee, deja-inscrit, sans-inscription) restent en
 * pleine lisibilité par défaut, faute de règle demandée explicitement pour
 * eux — à ajuster en recette si un autre traitement est préféré.
 */
.rdvc-etat-non-eligible,
.rdvc-etat-complet,
.rdvc-etat-passe {
	opacity: 0.65;
	border-color: var(--mid);
}

.rdvc-etat-ouverte,
.rdvc-etat-avant-ouverture,
.rdvc-etat-fermee,
.rdvc-etat-deja-inscrit,
.rdvc-etat-sans-inscription {
	opacity: 1;
}

/* ── Motif de non-éligibilité ({rdvc_motif_non_eligible} et [rdvc_zone_inscription]) ──
 * Deux usages : à poser MANUELLEMENT par Jean dans le builder sur l'élément
 * texte qui affiche la balise {rdvc_motif_non_eligible} (agenda) — elle n'est
 * lue par aucun PHP dans ce cas, sans elle le motif s'affiche quand même,
 * simplement sans cette mise en forme discrète. Le shortcode
 * [rdvc_zone_inscription] (fiche événement) pose lui-même cette classe sur sa
 * note de motif, automatiquement.
 */
.rdvc-motif {
	font-size: var(--text-s);
	font-style: italic;
	color: var(--mid);
}

/* ── Zone d'inscription [rdvc_zone_inscription] (fiche événement) ── */
.rdvc-zone-inscription__cta {
	display: inline-block;
	padding: 0.6rem var(--space-s);
	border-radius: 4px;
	text-decoration: none;
	font-weight: 600;
}

.rdvc-zone-inscription__cta--actif {
	background-color: var(--turquoise);
	color: var(--bg);
}

.rdvc-zone-inscription__cta--inactif {
	background-color: transparent;
	color: var(--mid);
	border: 1px solid var(--mid);
	cursor: default;
}

.rdvc-zone-inscription__places {
	color: var(--mid);
	font-size: var(--text-s);
}

/* Participant·es (Rdvc_Participants) : fiche et « Mes inscriptions ». */
.rdvc-participants {
	margin: var(--space-2xs) 0 0;
	color: var(--mid);
	font-size: var(--text-s);
}

.rdvc-zone-inscription__complet {
	color: var(--orange);
	font-weight: 600;
}

/* ── Autres dates de la série [rdvc_autres_dates] (fiche événement) ── */
.rdvc-autres-dates {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rdvc-autres-dates li {
	margin-bottom: 0.4rem;
}

.rdvc-autres-dates a:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

/* ── Tarifs ({rdvc_tarifs}, fiche événement) ──
 * En <dl>, pas en tableau : un libellé fusionné (« Membre actif·ve et
 * personnes en formation de base ») peut devenir long, et une ligne en
 * flexbox se replie proprement sur mobile là où un tableau à deux colonnes
 * strictes se serre ou déborde.
 */
/* Volet fermé par défaut (<details> natif, sans JavaScript). Les précisions
 * restent hors du volet : voir Rdvc_Evenements_Presentation::tarifs_tableau(). */
.rdvc-tarifs__volet {
	border-top: 1px solid var(--mid);
	border-bottom: 1px solid var(--mid);
	padding: var(--space-2xs) 0;
}

.rdvc-tarifs__resume {
	cursor: pointer;
	font-weight: 600;
}

.rdvc-tarifs__volet[open] .rdvc-tarifs__resume {
	margin-bottom: var(--space-2xs);
}

.rdvc-tarifs__resume:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

/* La dernière ligne de la grille jouxte la bordure basse du volet : sa propre
 * bordure ferait un double trait. */
.rdvc-tarifs__volet .rdvc-tarifs__ligne:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.rdvc-tarifs__lignes {
	margin: 0;
}

.rdvc-tarifs__ligne {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--space-2xs);
	padding: 0.4rem 0;
	border-bottom: 1px solid var(--mid);
}

.rdvc-tarifs__statut,
.rdvc-tarifs__montant {
	margin: 0;
}

.rdvc-tarifs__montant {
	font-weight: 600;
	white-space: nowrap;
}

.rdvc-tarifs__ligne--mon-tarif {
	border-color: var(--turquoise);
}

.rdvc-tarifs__ligne--mon-tarif .rdvc-tarifs__statut,
.rdvc-tarifs__ligne--mon-tarif .rdvc-tarifs__montant {
	font-weight: 700;
}

.rdvc-tarifs__mention {
	font-size: var(--text-s);
	font-weight: 600;
	color: var(--turquoise);
	white-space: nowrap;
}

/* Détail textuel (« Conférence 40 CHF · Atelier 50 CHF ») : plus long qu'un
 * montant, il doit pouvoir passer à la ligne sur mobile. */
.rdvc-tarifs__montant--detail {
	white-space: normal;
	text-align: right;
	margin-left: auto;
}

.rdvc-tarifs__precisions {
	margin-top: var(--space-2xs);
	font-size: var(--text-s);
}

/* ── Formulaire d'inscription (Rdvc_Inscription_Front, fiche événement) ──
 * Rendu dans [rdvc_zone_inscription] via le point d'accroche
 * rdvc_avant_inscription. Le bouton emprunte sa forme au Theme Style Bricks
 * (classe bricks-button), il n'est pas restylé ici.
 */
.rdvc-inscription {
	/* Contient le champ leurre, positionné en absolu. */
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2xs);
	margin-bottom: var(--space-xs);
}

.rdvc-inscription__tarif {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--space-2xs);
	margin: 0;
}

.rdvc-inscription__tarif-libelle {
	color: var(--mid);
	font-size: var(--text-s);
}

.rdvc-inscription__tarif-montant {
	font-weight: 700;
	white-space: nowrap;
}

.rdvc-inscription__paiement {
	margin: 0;
	font-size: var(--text-s);
	color: var(--mid);
}

.rdvc-inscription__attente {
	margin: 0;
	color: var(--orange);
	font-weight: 600;
}

/* Déjà inscrit·e : état + renvoi vers l'espace membre, où l'annulation vit. */
.rdvc-inscription__etat {
	margin: 0 0 var(--space-2xs);
	font-weight: 600;
}

.rdvc-inscription__etat--attente {
	color: var(--orange);
}

.rdvc-inscription__lien {
	margin: 0 0 var(--space-xs);
	font-size: var(--text-s);
}

/* Panneau de confirmation d'une demande sans compte (double opt-in). Rien n'est
 * encore inscrit à ce stade : le panneau doit se distinguer d'un formulaire. */
.rdvc-inscription--confirmation {
	align-self: stretch;
	padding: var(--space-xs);
	border: 1px solid var(--turquoise);
	border-radius: 4px;
	background-color: var(--bg);
}

.rdvc-inscription__confirmation-intro {
	margin: 0;
	font-weight: 600;
}

.rdvc-inscription__confirmation-identite {
	margin: 0;
}

.rdvc-inscription__confirmation-email,
.rdvc-inscription__confirmation-remarque {
	display: block;
	font-size: var(--text-s);
	color: var(--mid);
}

.rdvc-inscription__confirmation-remarque {
	margin: 0;
	font-style: italic;
}

.rdvc-inscription__confirmation-libelle {
	font-style: normal;
	font-weight: 600;
}

/* Message de la soumission précédente (schéma POST-redirect-GET). */
.rdvc-inscription__message {
	margin-bottom: var(--space-xs);
	padding: var(--space-2xs) var(--space-xs);
	border-left: 3px solid var(--turquoise);
	background-color: var(--bg);
}

.rdvc-inscription__message--erreur {
	border-left-color: var(--orange);
}

/* ── Formulaire invité·e (chantier 4b, lot 4) ──
 * Personne sans compte : nom, adresse, déclaration de statut. Aucun tarif ici,
 * le tableau des tarifs est plus haut sur la fiche.
 */
.rdvc-inscription--invite {
	align-items: stretch;
	width: 100%;
	/* 54rem, pas 34rem : à la racine html{font-size:62.5%} du thème (1rem = 10px,
	 * pas 16px), 34rem ne rendait que 340px - le formulaire semblait coincé sur
	 * desktop. Voir le même piège déjà consigné dans la charte graphique pour
	 * les tailles de texte. */
	max-width: 54rem;
	gap: var(--space-xs);
}

/* .rdvc-inscription--invite force align-items:stretch sur les champs : sans
 * cette dérogation, le bouton (seule chose qui ne doit pas s'étirer) hérite du
 * même stretch et prend toute la largeur du formulaire. */
.rdvc-inscription--invite .rdvc-inscription__bouton {
	align-self: flex-start;
}

.rdvc-inscription__champ {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin: 0;
}

.rdvc-inscription__champ label {
	font-size: var(--text-s);
	color: var(--mid);
}

.rdvc-inscription__champ input {
	width: 100%;
	padding: var(--space-2xs);
	border: 1px solid var(--mid);
	border-radius: 4px;
	background-color: var(--bg);
	font-family: inherit;
	font-size: var(--text-s);
	color: var(--dark);
}

.rdvc-inscription__champ textarea {
	width: 100%;
	padding: var(--space-2xs);
	border: 1px solid var(--mid);
	border-radius: 4px;
	background-color: var(--bg);
	font-family: inherit;
	font-size: var(--text-s);
	color: var(--dark);
	resize: vertical;
}

.rdvc-inscription__champ input:focus-visible,
.rdvc-inscription__champ textarea:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

/* Le champ « remarque » occupe toute la largeur : une phrase libre s'y écrit,
 * pas un mot. */
.rdvc-inscription__champ--commentaire {
	align-self: stretch;
}

.rdvc-inscription__aide {
	font-size: var(--text-s);
	color: var(--mid);
}

/* Déclaration de statut : une question factuelle, pas un menu de prix. */
.rdvc-inscription__declaration {
	margin: 0;
	padding: var(--space-2xs) var(--space-xs);
	border: 1px solid var(--mid);
	border-radius: 4px;
}

.rdvc-inscription__declaration legend {
	padding: 0 0.4rem;
	font-size: var(--text-s);
	color: var(--mid);
}

.rdvc-inscription__choix {
	display: inline-flex;
	align-items: baseline;
	gap: 0.4rem;
	margin-right: var(--space-s);
}

.rdvc-inscription__donnees {
	margin: 0;
	font-size: var(--text-s);
	color: var(--mid);
}

.rdvc-inscription__reserve {
	margin: 0 0 var(--space-2xs);
	font-weight: 600;
}

/* Chemin vers l'adhésion, sobre : ce que le statut apporte, pas une accroche. */
.rdvc-inscription__adhesion {
	margin: 0;
	font-size: var(--text-s);
	color: var(--mid);
}

.rdvc-inscription__connexion {
	margin: 0 0 var(--space-xs);
	font-size: var(--text-s);
}

/* Au-dessus du formulaire invité·e : encadré discret, pour qu'on le voie avant
 * de commencer à remplir des champs. */
.rdvc-inscription__connexion--avant {
	padding: var(--space-2xs) var(--space-xs);
	border-left: 3px solid var(--turquoise);
	background-color: var(--bg);
}

.rdvc-inscription__connexion-avantage {
	display: block;
	color: var(--mid);
}

/* Leurre anti-robot : hors écran, JAMAIS display:none — un robot ignore plus
 * facilement ce qui est déclaré invisible que ce qui est simplement déplacé.
 * aria-hidden + tabindex="-1" sont posés dans le HTML : personne d'humain ne
 * rencontre ce champ. Partagé avec le formulaire de demande de conterie.
 */
.rdvc-inscription__leurre,
.rdvc-conterie__leurre {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Turnstile (Rdvc_Turnstile, lot L), partagé par les deux formulaires publics.
 * En `interaction-only`, le conteneur reste vide tant que Cloudflare ne demande
 * rien : aucune marge, pour ne pas creuser un vide au-dessus du bouton. Le
 * widget `flexible` suit la largeur du formulaire, jamais au-delà.
 */
.rdvc-inscription__turnstile,
.rdvc-conterie__turnstile {
	max-width: 100%;
}

.rdvc-inscription__turnstile-noscript,
.rdvc-conterie__turnstile-noscript {
	padding: var(--space-2xs) var(--space-xs);
	border-left: 3px solid var(--orange);
	background-color: var(--bg);
}

/* ── Demande de conterie [rdvc_demande_conterie] (Rdvc_Conterie_Front, lot J) ──
 * Formulaire public. Seul Turnstile (lot L) demande JavaScript. Conditions
 * au-dessus, trois groupes de champs, case d'acceptation avant le bouton
 * (forme Theme Style Bricks).
 */
.rdvc-conterie {
	/* Contient le champ leurre, positionné en absolu. */
	position: relative;
	/* 64rem, pas 40rem : même correction que .rdvc-inscription--invite, la
	 * racine html{font-size:62.5%} ramenait 40rem à 400px au lieu des 640px
	 * visés. */
	max-width: 64rem;
}

.rdvc-conterie__message {
	margin-bottom: var(--space-xs);
	padding: var(--space-2xs) var(--space-xs);
	border-left: 3px solid var(--turquoise);
	background-color: var(--bg);
}

.rdvc-conterie__message--erreur {
	border-left-color: var(--orange);
}

.rdvc-conterie__obligatoire,
.rdvc-conterie__flyer,
.rdvc-conterie__donnees {
	margin: 0 0 var(--space-xs);
	font-size: var(--text-s);
	color: var(--mid);
}

.rdvc-conterie__conditions {
	margin-bottom: var(--space-l);
	padding: var(--space-xs) var(--space-s);
	border: 1px solid var(--mid);
	border-radius: 4px;
}

.rdvc-conterie__conditions h3{
	margin-bottom: var(--space-s);
}

.rdvc-conterie__conditions ul {
	margin: 0;
	padding-left: 1.2em;
	font-size: var(--text-s);
}

.rdvc-conterie__conditions li + li {
	margin-top: 0.4rem;
}

.rdvc-conterie__form {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-xs);
}

.rdvc-conterie__groupe {
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
	margin: 0;
	padding: var(--space-xs) var(--space-s);
	border: 1px solid var(--mid);
	border-radius: 4px;
}

.rdvc-conterie__groupe legend {
	padding: 0 0.4rem;
	font-weight: 600;
}

.rdvc-conterie__champ {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin: 0;
}

.rdvc-conterie__champ label {
	font-size: var(--text-s);
	color: var(--mid);
}

.rdvc-conterie__champ input,
.rdvc-conterie__champ textarea {
	width: 100%;
	padding: var(--space-2xs);
	border: 1px solid var(--mid);
	border-radius: 4px;
	background-color: var(--bg);
	font-family: inherit;
	font-size: var(--text-s);
	color: var(--dark);
}

.rdvc-conterie__champ input:focus-visible,
.rdvc-conterie__champ textarea:focus-visible,
.rdvc-conterie__acceptation input:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

.rdvc-conterie__acceptation {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	margin: 0;
	font-weight: 600;
}

.rdvc-conterie__bouton {
	align-self: flex-start;
}

/* ── Barre de filtres [rdvc_filtres_agenda] ── */
.rdvc-filtres-agenda fieldset {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: var(--space-xs);
	border: 1px solid var(--mid);
	border-radius: 4px;
	padding: var(--space-xs);
}

.rdvc-filtres-agenda legend {
	font-weight: 600;
	padding: 0 0.5rem;
}

.rdvc-filtres-agenda__champ {
	display: inline-flex;
	flex-direction: column;
}

.rdvc-filtres-agenda__champ--case {
	flex-direction: row;
	align-items: center;
	gap: 0.4rem;
}

.rdvc-filtres-agenda select:focus-visible,
.rdvc-filtres-agenda button:focus-visible,
.rdvc-filtres-agenda input:focus-visible,
.rdvc-filtres-agenda a:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

/* ── État vide [rdvc_etat_vide_agenda] ── */
.rdvc-etat-vide-agenda {
	color: var(--mid);
	font-style: italic;
}

.rdvc-etat-vide-agenda__reinitialiser,
.rdvc-filtres-agenda__reinitialiser {
	margin-left: 0.5rem;
}

/* ────────────────────────────────────────────────────────────────────────
 * Formulaire de connexion [rdvc_connexion] — /connexion/
 *
 * Le chemin par code est présenté en premier (chemin principal) ; le volet
 * mot de passe est replié dans un <details> (fonctionne sans JavaScript).
 * ──────────────────────────────────────────────────────────────────────── */
.rdvc-connexion {
	/* 42rem, pas 26rem : même correction que .rdvc-inscription--invite, la
	 * racine html{font-size:62.5%} ramenait 26rem à 260px au lieu des 420px
	 * visés. */
	max-width: 42rem;
	margin: 0 auto;
}

.rdvc-connexion__intro {
	color: var(--mid);
	margin-bottom: var(--space-m);
}

.rdvc-connexion__form {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.rdvc-connexion__form label {
	font-weight: 600;
	margin-top: 0.6rem;
}

.rdvc-connexion__form input[type="email"],
.rdvc-connexion__form input[type="text"],
.rdvc-connexion__form input[type="password"] {
	padding: 0.6rem 0.7rem;
	border: 1px solid var(--mid);
	border-radius: 4px;
	font-size: var(--text-m);
}

.rdvc-connexion__case {
	flex-direction: row;
	align-items: center;
	gap: 0.4rem;
	font-weight: 400 !important;
}

/* Forme, couleur, padding et typographie viennent de .bricks-button.bricks-background-primary
 * (Bricks Global Theme Style — style-manager.min.css) : ces boutons codés à
 * la main suivent donc automatiquement tout changement fait dans l'UI Bricks
 * (forme, couleur, épaisseur de bordure…). Risque assumé (Jean) : classe
 * interne à Bricks, pas une API publique, peut changer à une mise à jour.
 * Ici, seuls le positionnement et le comportement de lien restent à notre charge. */
.rdvc-connexion__bouton {
	display: inline-block;
	/* .rdvc-connexion__form est en colonne flex sans align-items : le défaut
	 * (stretch) étirerait ce bouton à toute la largeur du formulaire. */
	align-self: flex-start;
	margin-top: var(--space-xs);
	text-decoration: none;
}

/* Message d'état (envoi, erreur). */
.rdvc-connexion__message {
	padding: var(--space-2xs) var(--space-xs);
	border-radius: 4px;
	background-color: var(--jaune-l-2, #fbf6df);
	margin-bottom: var(--space-xs);
}

.rdvc-connexion__message--erreur {
	background-color: var(--rose-l-2, #fbe4f1);
}

/* Liens secondaires (renvoyer, changer d'adresse, mot de passe oublié). */
.rdvc-connexion__liens {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: var(--space-xs);
	font-size: var(--text-s);
}

.rdvc-connexion__renvoyer {
	display: inline;
}

.rdvc-connexion__lien,
.rdvc-connexion__lien-bouton {
	color: var(--turquoise);
	background: none;
	border: none;
	padding: 0;
	font-size: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.rdvc-connexion__separateur {
	color: var(--mid);
}

/* Volet mot de passe. */
.rdvc-connexion__mdp {
	margin-top: var(--space-l);
	border-top: 1px solid var(--mid);
	padding-top: var(--space-xs);
}

.rdvc-connexion__mdp summary {
	cursor: pointer;
	font-weight: 600;
	color: var(--mid);
}

.rdvc-connexion__mdp .rdvc-connexion__lien {
	margin-top: 0.6rem;
	display: inline-block;
}

.rdvc-connexion input:focus-visible,
.rdvc-connexion button:focus-visible,
.rdvc-connexion a:focus-visible,
.rdvc-connexion summary:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

/* ────────────────────────────────────────────────────────────────────────
 * Espace membre [rdvc_espace_nav] / [rdvc_espace_accueil] — /mon-espace/
 * ──────────────────────────────────────────────────────────────────────── */
.rdvc-espace-nav__liste {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem var(--space-s);
	list-style: none;
	margin: 0 0 var(--space-l);
	padding: 0;
	border-bottom: 1px solid var(--mid);
	padding-bottom: var(--space-xs);
}

.rdvc-espace-nav__item a {
	color: var(--dark);
	text-decoration: none;
	font-weight: 600;
}

.rdvc-espace-nav__item a:hover {
	color: var(--turquoise);
}

.rdvc-espace-nav__item--actif a {
	color: var(--turquoise);
	text-decoration: underline;
}

.rdvc-espace-nav__item--deconnexion {
	margin-left: auto;
}

.rdvc-espace-nav__item--deconnexion a {
	font-weight: 400;
	color: var(--mid);
	text-decoration: underline;
}

.rdvc-espace-nav a:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

.rdvc-espace-accueil__salutation {
	font-size: var(--text-l);
	font-weight: 600;
	margin-bottom: 0.3rem;
}

.rdvc-espace-accueil__intro {
	color: var(--mid);
	margin-bottom: var(--space-l);
}

.rdvc-espace-accueil__cartes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: var(--space-s);
	margin-bottom: var(--space-l);
}

.rdvc-espace-accueil__carte {
	display: block;
	padding: var(--space-s) var(--space-m);
	border: 1px solid var(--mid);
	border-radius: 6px;
	text-decoration: none;
	color: var(--dark);
	transition: border-color 0.15s ease;
}

.rdvc-espace-accueil__carte:hover,
.rdvc-espace-accueil__carte:focus-visible {
	border-color: var(--turquoise);
	outline: none;
}

.rdvc-espace-accueil__carte h2 {
	margin: 0 0 0.4rem;
	font-size: var(--text-m);
	color: var(--turquoise);
}

.rdvc-espace-accueil__carte p {
	margin: 0;
	color: var(--mid);
	font-size: var(--text-s);
}

.rdvc-espace-accueil__agenda a {
	color: var(--turquoise);
	text-decoration: underline;
	font-size: var(--text-s);
}

/* ────────────────────────────────────────────────────────────────────────
 * Édition de profil [rdvc_profil_form] — /mon-espace/profil/
 * ──────────────────────────────────────────────────────────────────────── */
.rdvc-profil {
	/* 68rem, pas 42rem : même correction que .rdvc-inscription--invite, la
	 * racine html{font-size:62.5%} ramenait 42rem à 420px au lieu des 672px
	 * visés. */
	max-width: 68rem;
}

.rdvc-profil__titre {
	margin-bottom: 0.3rem;
}

/* Avertissement en tête du profil : les données saisies ne servent encore à rien
 * (annuaire hors V1). Même fond que les messages de statut, sans en être un. */
.rdvc-profil__avis {
	padding: var(--space-xs);
	border-left: 4px solid var(--turquoise);
	border-radius: 4px;
	background-color: var(--jaune-l-2, #fbf6df);
	margin-bottom: var(--space-m);
}

.rdvc-profil__avis p {
	margin: 0;
}

.rdvc-profil__avis p + p {
	margin-top: var(--space-2xs);
}

.rdvc-profil__section {
	margin-bottom: var(--space-l);
	padding-bottom: var(--space-l);
	border-bottom: 1px solid var(--mid);
}

.rdvc-profil__section:last-of-type {
	border-bottom: none;
}

.rdvc-profil__section-titre {
	font-size: var(--text-m);
	color: var(--turquoise);
	margin-bottom: var(--space-xs);
}

.rdvc-profil__form {
	display: flex;
	flex-direction: column;
}

.rdvc-profil__champ {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin-bottom: var(--space-xs);
}

.rdvc-profil__champ label,
.rdvc-profil__label {
	font-weight: 600;
}

.rdvc-profil__champ input[type="text"],
.rdvc-profil__champ input[type="tel"],
.rdvc-profil__champ input[type="url"] {
	padding: 0.6rem 0.7rem;
	border: 1px solid var(--mid);
	border-radius: 4px;
	font-size: var(--text-m);
}

.rdvc-profil__email-lecture-seule {
	padding: 0.6rem 0.7rem;
	background-color: var(--bg);
	border: 1px dashed var(--mid);
	border-radius: 4px;
	color: var(--mid);
	margin: 0;
}

.rdvc-profil__note {
	color: var(--mid);
	font-size: var(--text-s);
	margin-top: 0.3rem;
}

.rdvc-profil__lien-ligne {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-bottom: var(--space-xs);
}

.rdvc-profil__lien-ligne .rdvc-profil__champ {
	flex: 1 1 12rem;
	margin-bottom: 0;
}

.rdvc-profil__case {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.4rem;
	font-weight: 400;
	margin-bottom: 0.6rem;
}

/* Cases qui dépendent de « nom et photo » (Rdvc_Visibilite) : en retrait, et
 * grisées quand profil-visibilite.js les désactive. */
.rdvc-profil__case--dependante {
	margin-left: 1.6rem;
}

.rdvc-profil__case--dependante:has(input:disabled) {
	color: var(--mid);
}

/* Forme, couleur, padding et typographie viennent de .bricks-button.bricks-background-primary
 * (voir le même choix documenté pour .rdvc-connexion__bouton) : seuls le
 * positionnement et le comportement restent à notre charge ici. */
.rdvc-profil__bouton {
	display: inline-block;
	margin-top: var(--space-xs);
	text-decoration: none;
	align-self: flex-start;
}

.rdvc-profil__message {
	padding: var(--space-2xs) var(--space-xs);
	border-radius: 4px;
	background-color: var(--jaune-l-2, #fbf6df);
	margin-bottom: var(--space-xs);
}

.rdvc-profil__message--erreur {
	background-color: var(--rose-l-2, #fbe4f1);
}

.rdvc-profil input:focus-visible,
.rdvc-profil button:focus-visible,
.rdvc-profil a:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

/* ── Photo et galerie (section [rdvc_profil_form], lot D) ──
 * Plusieurs formulaires cohabitent dans cette section : un pour la photo, un
 * par vignette, un pour l'ajout. C'est voulu (voir Rdvc_Profil::rendre_bloc_images()),
 * d'où des marges posées sur les formulaires eux-mêmes. */
.rdvc-profil__form-image {
	display: flex;
	flex-direction: column;
	margin-bottom: var(--space-m);
}

.rdvc-profil__photo-apercu img {
	display: block;
	width: 12rem;
	height: 12rem;
	object-fit: cover;
	border-radius: 4px;
	border: 1px solid var(--mid);
}

.rdvc-profil__actions-image {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs);
	align-items: center;
}

/* .rdvc-profil__bouton est réglé sur align-self: flex-start pour le formulaire
 * principal ; dans cette rangée horizontale, la marge haute suffit. */
.rdvc-profil__actions-image .rdvc-profil__bouton {
	align-self: auto;
}

.rdvc-profil__galerie {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-s);
	list-style: none;
	margin: 0 0 var(--space-m);
	padding: 0;
}

/* Contexte de positionnement des commandes posées sur l'image (flèches,
 * poignée de glissement). Inconditionnel : les flèches existent sans
 * JavaScript, contrairement à la poignée. */
.rdvc-profil__vignette {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	width: 12rem;
}

.rdvc-profil__vignette img {
	display: block;
	width: 12rem;
	height: 12rem;
	object-fit: cover;
	border-radius: 4px;
	border: 1px solid var(--mid);
}

.rdvc-profil__vignette-actions {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	align-items: flex-start;
}

.rdvc-profil__bouton-vignette {
	font-size: var(--text-s);
	text-decoration: none;
}

.rdvc-profil__bouton-vignette[disabled] {
	opacity: 0.4;
	cursor: default;
}

/* ── Flèches d'ordre, posées sur la vignette ──
 * Volontairement SANS la classe bricks-button : ce sont des commandes en
 * pastille superposées à l'image, pas des boutons de formulaire — la forme du
 * Theme Style (pilule, padding large) n'a pas de sens à cette échelle. */
.rdvc-profil__fleche {
	position: absolute;
	top: 6rem;
	transform: translateY(-50%);
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.8rem;
	height: 2.8rem;
	padding: 0;
	border: 1px solid var(--mid);
	border-radius: 50%;
	background-color: var(--bg);
	color: var(--dark);
	font-size: var(--text-s);
	line-height: 1;
	cursor: pointer;
}

.rdvc-profil__fleche--gauche {
	left: 0.4rem;
}

.rdvc-profil__fleche--droite {
	right: 0.4rem;
}

.rdvc-profil__fleche:hover:not([disabled]) {
	background-color: var(--turquoise);
	border-color: var(--turquoise);
	color: var(--bg);
}

/* Extrémités de la galerie : la flèche reste en place pour ne pas faire sauter
 * les autres, mais s'efface et cesse de réagir. */
.rdvc-profil__fleche[disabled] {
	opacity: 0.25;
	cursor: default;
}

.rdvc-profil__note--pleine {
	margin-bottom: var(--space-m);
}

/* ── Glisser-déposer de la galerie (assets/js/profil-galerie.js) ──
 * La poignée arrive avec l'attribut `hidden` et n'est révélée que par le
 * script : sans JavaScript, seuls les boutons Monter/Descendre existent, et
 * rien ne suggère un geste impossible. */
.rdvc-profil__poignee[hidden] {
	display: none;
}

.rdvc-profil__poignee {
	position: absolute;
	top: 0.4rem;
	left: 0.4rem;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.8rem;
	height: 2.8rem;
	border-radius: 4px;
	background-color: var(--bg);
	border: 1px solid var(--mid);
	color: var(--mid);
	font-size: var(--text-s);
	line-height: 1;
	cursor: grab;
	/* Indispensable au tactile : sans ça le navigateur interprète le geste
	 * comme un défilement et le pointermove n'arrive jamais. Cantonné à la
	 * poignée, pour qu'un balayage sur la vignette fasse toujours défiler la
	 * page sur téléphone. */
	touch-action: none;
}

.rdvc-profil__vignette.est-en-glissement {
	opacity: 0.55;
	outline: 2px dashed var(--turquoise);
	outline-offset: 2px;
}

.rdvc-profil__vignette.est-en-glissement .rdvc-profil__poignee {
	cursor: grabbing;
}

/* Pendant le tri, empêcher la sélection de texte parasite sous le pointeur. */
.rdvc-profil__galerie.est-en-tri {
	user-select: none;
}

/* ────────────────────────────────────────────────────────────────────────
 * Mes inscriptions [rdvc_mes_inscriptions] — /mon-espace/inscriptions/
 * ────────────────────────────────────────────────────────────────────────
 * Une liste de cartes plutôt qu'un tableau : sur téléphone, chaque
 * inscription tient en bloc et n'impose aucun défilement horizontal.
 * Espacements pris sur les tokens fluides de Bricks (--space-2xs..2xl),
 * comme la typographie prend --text-*. */
.rdvc-inscriptions__intro {
	color: var(--mid);
	margin-bottom: var(--space-l);
}

.rdvc-inscriptions__liste {
	list-style: none;
	margin: 0 0 var(--space-l);
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-s);
}

.rdvc-inscriptions__ligne {
	padding: var(--space-s) var(--space-m);
	border: 1px solid var(--mid);
	border-radius: 6px;
}

.rdvc-inscriptions__evenement {
	margin: 0 0 var(--space-2xs);
	font-size: var(--text-m);
}

.rdvc-inscriptions__evenement a {
	color: var(--turquoise);
	text-decoration: none;
}

.rdvc-inscriptions__evenement a:hover,
.rdvc-inscriptions__evenement a:focus-visible {
	text-decoration: underline;
}

.rdvc-inscriptions__date {
	margin: 0 0 var(--space-xs);
	color: var(--mid);
	font-size: var(--text-s);
}

/* Remarque écrite par la personne à son inscription : elle la relit ici. */
.rdvc-inscriptions__remarque {
	margin: var(--space-2xs) 0 0;
	font-size: var(--text-s);
	font-style: italic;
	color: var(--mid);
}

.rdvc-inscriptions__remarque-libelle {
	font-style: normal;
	font-weight: 600;
}

/* Pastille d'état. La couleur double le mot, elle ne le remplace jamais :
 * le libellé reste lisible sans distinguer les teintes. */
.rdvc-inscriptions__etat {
	display: inline-block;
	margin: 0;
	padding: 0.3rem var(--space-xs);
	border: 1px solid var(--turquoise);
	border-radius: 999px;
	color: var(--turquoise);
	background-color: var(--bg);
	font-size: var(--text-s);
}

.rdvc-inscriptions__etat--attente {
	border-color: var(--moutarde);
	color: var(--dark);
	background-color: var(--jaune-l-2);
}

.rdvc-inscriptions__etat--annulee {
	border-color: var(--mid);
	color: var(--mid);
}

.rdvc-inscriptions__actions {
	margin-top: var(--space-s);
}

/* Forme, couleur et padding viennent de .bricks-button.bricks-background-muted — même choix
 * documenté pour .rdvc-profil__bouton et les CTA de [rdvc_connexion]. */
.rdvc-inscriptions__bouton {
	display: inline-block;
	text-decoration: none;
}

.rdvc-inscriptions__note {
	margin: var(--space-s) 0 0;
	color: var(--mid);
	font-size: var(--text-s);
}

.rdvc-inscriptions__note a {
	color: var(--turquoise);
}

.rdvc-inscriptions__vide {
	margin-bottom: var(--space-l);
}

.rdvc-inscriptions__message {
	padding: var(--space-xs) var(--space-s);
	border-radius: 4px;
	background-color: var(--jaune-l-2);
	margin-bottom: var(--space-l);
}

.rdvc-inscriptions__message--erreur {
	background-color: var(--rose-l-2);
}

.rdvc-inscriptions__agenda a {
	color: var(--turquoise);
	text-decoration: underline;
	font-size: var(--text-s);
}

.rdvc-inscriptions button:focus-visible,
.rdvc-inscriptions a:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

/* ────────────────────────────────────────────────────────────────────────
 * Gestion des formations [rdvc_gestion_inscriptions] — /mon-espace/gestion-formations/ (lot H)
 * ────────────────────────────────────────────────────────────────────────
 * Tableaux plutôt que cartes : on compare des lignes entre elles (statut,
 * tarif, ordre d'arrivée). Chaque tableau vit dans un conteneur qui défile
 * horizontalement À SA PLACE, la page elle-même ne défile jamais de côté. */
.rdvc-gestion__intro {
	color: var(--mid);
	margin-bottom: var(--space-l);
}

/* L'attribut hidden doit gagner contre toute règle display posée ici : les
 * cases et le bouton Copier ne sont révélés que par le script. */
.rdvc-gestion [hidden] {
	display: none !important;
}

.rdvc-gestion .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.rdvc-gestion__message {
	padding: var(--space-xs) var(--space-s);
	border-radius: 4px;
	background-color: var(--jaune-l-2);
	margin-bottom: var(--space-l);
}

.rdvc-gestion__message--erreur {
	background-color: var(--rose-l-2);
}

.rdvc-gestion__choix {
	margin-bottom: var(--space-xl);
}

.rdvc-gestion__selecteur {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: var(--space-xs) var(--space-s);
}

.rdvc-gestion__label {
	display: block;
	width: 100%;
	font-weight: 600;
}

.rdvc-gestion__selecteur select {
	flex: 1 1 20rem;
	min-width: 0;
	max-width: 100%;
	padding: var(--space-2xs) var(--space-xs);
	font-size: var(--text-m);
}

.rdvc-gestion__bouton {
	display: inline-block;
	text-decoration: none;
}

.rdvc-gestion__bascule,
.rdvc-gestion__date,
.rdvc-gestion__note,
.rdvc-gestion__vide {
	color: var(--mid);
	font-size: var(--text-s);
}

.rdvc-gestion__bascule a {
	color: var(--turquoise);
	text-decoration: underline;
}

.rdvc-gestion__entete {
	margin-bottom: var(--space-l);
}

.rdvc-gestion__evenement {
	margin: 0 0 var(--space-2xs);
	font-size: var(--text-l);
}

.rdvc-gestion__date,
.rdvc-gestion__places,
.rdvc-gestion__note {
	margin: 0 0 var(--space-2xs);
}

.rdvc-gestion__edition {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-top: var(--space-s);
}

/* Bouton « Gérer l'événement » de la fiche ([rdvc_gerer_evenement]). Forme et
 * couleur viennent de .bricks-button.bricks-background-muted. */
.rdvc-gerer-evenement {
	margin: 0;
}

.rdvc-gerer-evenement__bouton {
	display: inline-block;
	text-decoration: none;
}

.rdvc-gestion__copie {
	margin-bottom: var(--space-xl);
	padding: var(--space-s) var(--space-m);
	border: 1px solid var(--mid);
	border-radius: 6px;
}

.rdvc-gestion__cases {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem var(--space-m);
	margin: 0 0 var(--space-s);
	padding: 0;
	border: 0;
}

.rdvc-gestion__cases legend {
	width: 100%;
	margin-bottom: 0.4rem;
	font-weight: 600;
}

.rdvc-gestion__case {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.rdvc-gestion__adresses {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: var(--space-2xs) var(--space-xs);
	font-size: var(--text-s);
	font-family: inherit;
	resize: vertical;
}

.rdvc-gestion__copier {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-s);
	margin: var(--space-s) 0 0;
}

.rdvc-gestion__retour {
	color: var(--mid);
	font-size: var(--text-s);
}

.rdvc-gestion__groupe {
	margin-bottom: var(--space-xl);
}

.rdvc-gestion__groupe-titre {
	margin: 0 0 var(--space-xs);
	font-size: var(--text-m);
}

.rdvc-gestion__defilement {
	max-width: 100%;
	overflow-x: auto;
}

.rdvc-gestion__table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--text-s);
}

.rdvc-gestion__table th,
.rdvc-gestion__table td {
	padding: 0.6rem var(--space-xs);
	border-bottom: 1px solid var(--mid);
	text-align: left;
	vertical-align: top;
}

.rdvc-gestion__table th {
	white-space: nowrap;
}

.rdvc-gestion__table a {
	color: var(--turquoise);
	overflow-wrap: anywhere;
}

.rdvc-gestion__declare,
.rdvc-gestion__association {
	display: block;
	color: var(--mid);
}

/* Remarque laissée à l'inscription : une ligne à part sous la personne, pas une
 * neuvième colonne - jusqu'à 500 caractères dans un tableau déjà large. */
.rdvc-gestion__remarque td {
	padding-top: 0;
	font-size: var(--text-s);
	font-style: italic;
	color: var(--mid);
}

.rdvc-gestion__remarque-libelle {
	font-style: normal;
	font-weight: 600;
}

.rdvc-gestion__groupe--annulee .rdvc-gestion__table td {
	color: var(--mid);
}

.rdvc-gestion button:focus-visible,
.rdvc-gestion a:focus-visible,
.rdvc-gestion select:focus-visible,
.rdvc-gestion textarea:focus-visible,
.rdvc-gestion input:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}

/* ────────────────────────────────────────────────────────────────────────
 * Conteries [rdvc_conteries] — /mon-espace/conteries/ (lot N2)
 * ────────────────────────────────────────────────────────────────────────
 * Même grammaire que « Mes inscriptions » : cartes empilées, mobile d'abord,
 * espacements --space-*, typographie --text-*, couleurs de la palette Bricks.
 * Les boutons tiennent leur forme de .bricks-button (charte graphique). */
.rdvc-conteries__intro {
	color: var(--mid);
	margin-bottom: var(--space-l);
}

.rdvc-conteries__message {
	padding: var(--space-xs) var(--space-s);
	border-radius: 4px;
	background-color: var(--jaune-l-2);
	margin-bottom: var(--space-l);
}

.rdvc-conteries__message--erreur {
	background-color: var(--rose-l-2);
}

.rdvc-conteries__message a,
.rdvc-conteries__note a {
	color: var(--turquoise);
}

/* Phrase de profil (non éligible, FB) : une seule fois, pas sur chaque carte. */
.rdvc-conteries__profil {
	padding: var(--space-xs) var(--space-s);
	border-left: 3px solid var(--moutarde);
	margin-bottom: var(--space-l);
	font-size: var(--text-s);
}

.rdvc-conteries__section {
	margin-bottom: var(--space-xl);
}

.rdvc-conteries__section-titre {
	font-size: var(--text-l);
	margin: 0 0 var(--space-s);
}

.rdvc-conteries__liste {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-s);
}

.rdvc-conteries__carte {
	padding: var(--space-s) var(--space-m);
	border: 1px solid var(--mid);
	border-radius: 6px;
	/* Ancre du message : la carte ne passe pas sous un header collant. */
	scroll-margin-top: var(--space-2xl);
}

.rdvc-conteries__carte--passee {
	opacity: 0.75;
}

.rdvc-conteries__nom {
	margin: 0 0 var(--space-2xs);
	font-size: var(--text-m);
}

.rdvc-conteries__quand {
	margin: 0 0 var(--space-xs);
	color: var(--mid);
	font-size: var(--text-s);
}

/* Pastille de statut : le mot porte le sens, la couleur ne fait que doubler. */
.rdvc-conteries__statut {
	display: inline-block;
	margin: 0 0 var(--space-xs);
	padding: 0.3rem var(--space-xs);
	border: 1px solid var(--turquoise);
	border-radius: 999px;
	color: var(--turquoise);
	background-color: var(--bg);
	font-size: var(--text-s);
}

.rdvc-conteries__statut--attribuee {
	border-color: var(--moutarde);
	color: var(--dark);
	background-color: var(--jaune-l-2);
}

.rdvc-conteries__statut--refusee,
.rdvc-conteries__statut--annulee {
	border-color: var(--mid);
	color: var(--mid);
}

.rdvc-conteries__details {
	margin: 0 0 var(--space-xs);
	font-size: var(--text-s);
}

.rdvc-conteries__detail {
	margin-bottom: var(--space-2xs);
}

.rdvc-conteries__detail dt {
	font-weight: 600;
}

.rdvc-conteries__detail dd {
	margin: 0;
}

/* Dès qu'il y a la place, libellé et valeur côte à côte. */
@media (min-width: 640px) {
	.rdvc-conteries__detail {
		display: grid;
		grid-template-columns: 14rem 1fr;
		gap: var(--space-xs);
	}
}

.rdvc-conteries__places {
	margin: var(--space-xs) 0;
	font-size: var(--text-s);
	font-weight: 600;
}

.rdvc-conteries__inscrit-es {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
}

.rdvc-conteries__inscrit-e {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	font-size: var(--text-s);
}

.rdvc-conteries__photo {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.rdvc-conteries__accompagne {
	display: block;
	color: var(--mid);
	font-style: italic;
}

.rdvc-conteries__actions {
	margin-top: var(--space-s);
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	align-items: center;
}

.rdvc-conteries__formulaire {
	margin: 0;
}

/* Forme et couleurs viennent du Theme Style Bricks par les classes
 * `bricks-background-primary` (S'inscrire : fond orange) et
 * `bricks-background-muted` (se désinscrire : fond clair, contour olive).
 * ⚠️ `primary` / `muted` seules ne correspondent à aucun sélecteur de Bricks
 * 2.x : les deux boutons sortaient identiques (lot N3). */
.rdvc-conteries__bouton {
	display: inline-block;
	text-decoration: none;
}

.rdvc-conteries__note {
	flex-basis: 100%;
	margin: 0;
	color: var(--mid);
	font-size: var(--text-s);
}

.rdvc-conteries__vide {
	margin: 0;
	color: var(--mid);
}

.rdvc-conteries button:focus-visible,
.rdvc-conteries a:focus-visible {
	outline: 2px solid var(--turquoise);
	outline-offset: 2px;
}
