/* ===== Cœur de Soi — formulaires front (mobile-first, WCAG 2.1 AA) ===== */
/* Variables partagées : la FAQ et le règlement (blocs du thème) ne sont pas dans un .cds-form. */
.cds-form,
.cds-faq,
.cds-reglement {
  --cds-f-texte:   var(--wp--preset--color--texte, #17252A);
  --cds-f-secondaire: var(--wp--preset--color--texte-secondaire, #4B5563);
  --cds-f-fond:    var(--wp--preset--color--fond, #FFFFFF);
  --cds-f-fond-alt:   var(--wp--preset--color--fond-alt, #F6F8FA);
  --cds-f-accent:  var(--wp--preset--color--primaire, #303E7A);
  --cds-f-cta:     var(--wp--preset--color--accent, #F66161);
  --cds-f-cta-h:   var(--wp--preset--color--accent-clair, #FF8A8A);
  --cds-f-succes:  var(--wp--preset--color--succes, #2E7D4F);
  --cds-f-erreur:  var(--wp--preset--color--erreur, #B83232);
  --cds-f-bord:    var(--wp--preset--color--texte-secondaire, #4B5563); /* >= 3:1 sur fond clair */
  --cds-f-rayon:   10px;
  --cds-f-cible:   44px;
  --cds-f-espace:  1.25rem;

  max-width: 40rem; margin-inline: auto; color: var(--cds-f-texte);
  font-family: var(--wp--preset--font-family--texte, system-ui, sans-serif);
  line-height: 1.5;
}
.cds-form *, .cds-form *::before, .cds-form *::after { box-sizing: border-box; }
.cds-form__form { display: grid; gap: var(--cds-f-espace); }

/* Champs */
.cds-field { display: grid; gap: .375rem; margin: 0; }
.cds-label, .cds-legend { font-weight: 600; font-size: 1rem; color: var(--cds-f-texte); padding: 0; }
.cds-req { color: var(--cds-f-erreur); margin-left: .15em; }
.cds-hint { margin: 0; font-size: .9375rem; color: var(--cds-f-secondaire); }
.cds-compteur { margin-top: .25rem; text-align: right; }
.cds-compteur--plein { font-weight: 600; }

.cds-input, .cds-select, .cds-textarea {
  width: 100%; min-height: var(--cds-f-cible);
  padding: .625rem .875rem;
  font: inherit; font-size: 1rem;            /* 16 px : pas de zoom auto iOS */
  color: var(--cds-f-texte); background: #fff;
  border: 2px solid var(--cds-f-bord); border-radius: var(--cds-f-rayon);
  appearance: none;
}
.cds-select {
  padding-right: 2.5rem;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 1.25rem) 50%, calc(100% - .9rem) 50%;
  background-size: .4rem .4rem; background-repeat: no-repeat;
}
.cds-textarea { min-height: 8rem; resize: vertical; }
.cds-input::placeholder, .cds-textarea::placeholder { color: var(--cds-f-secondaire); opacity: 1; }

/* Focus : jamais supprimé, contrasté */
.cds-input:focus-visible, .cds-select:focus-visible, .cds-textarea:focus-visible,
.cds-choice input:focus-visible, .cds-button:focus-visible {
  outline: 3px solid var(--cds-f-accent); outline-offset: 2px;
  border-color: var(--cds-f-accent);
}

/* Cases et boutons radio : cible 44 px */
.cds-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: .5rem; }
.cds-choices { display: flex; flex-wrap: wrap; gap: .5rem .75rem; }
.cds-choice { display: inline-flex; align-items: center; gap: .625rem; min-height: var(--cds-f-cible); padding: .25rem .75rem;
  border: 1px solid var(--cds-f-bord); border-radius: var(--cds-f-rayon); background: #fff; cursor: pointer; }
.cds-choice input { width: 1.375rem; height: 1.375rem; margin: 0; accent-color: var(--cds-f-accent); flex: none; }
.cds-choice:has(input:checked) { background: var(--cds-f-fond-alt); border-color: var(--cds-f-accent); }
.cds-field--consentement .cds-choice { border: 0; background: none; padding-left: 0; align-items: flex-start; }

/* Erreurs : bordure + icône + texte (jamais la couleur seule) */
.cds-field--erreur .cds-input, .cds-field--erreur .cds-select, .cds-field--erreur .cds-textarea,
.cds-input[aria-invalid="true"], .cds-select[aria-invalid="true"], .cds-textarea[aria-invalid="true"] {
  border-color: var(--cds-f-erreur); border-left-width: 6px;
  background: #fff;
}
.cds-error { display: flex; gap: .5rem; align-items: flex-start; margin: 0;
  color: var(--cds-f-erreur); font-weight: 600; font-size: .9375rem; }
.cds-error__icone::before, .cds-notice--erreur .cds-notice__titre::before { content: "⚠"; content: "⚠" / ""; font-weight: 700; } /* icône décorative : texte alternatif vide, tue pour les lecteurs d’écran */

/* Notices : récapitulatif d'erreurs et succès */
.cds-notice { margin: 0 0 var(--cds-f-espace); padding: .875rem 1rem; border-radius: var(--cds-f-rayon);
  border: 2px solid; border-left-width: 8px; background: #fff; }
.cds-notice p { margin: 0; }
.cds-notice__liste { margin: .5rem 0 0; padding-left: 1.25rem; }
.cds-notice__liste a { color: inherit; text-decoration: underline; }
.cds-notice--erreur { border-color: var(--cds-f-erreur); color: var(--cds-f-erreur); }
.cds-notice--succes { border-color: var(--cds-f-succes); color: #1F3D2B; background: #E3EFE6; }
.cds-notice--succes .cds-notice__icone::before { content: "✓ "; font-weight: 700; }
.cds-notice--alerte { border-color: #8A5D22; color: #6E4A17; background: #F6E9D3; }
.cds-notice--info { border-color: var(--cds-f-accent); color: var(--cds-f-texte); background: var(--cds-f-fond-alt); }
.cds-notice:focus-visible { outline: 3px solid var(--cds-f-accent); outline-offset: 2px; }

/* Boutons */
.cds-form__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.cds-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: var(--cds-f-cible); padding: .75rem 1.5rem; width: 100%;
  font: inherit; font-weight: 600; border-radius: var(--cds-f-rayon); border: 2px solid transparent; cursor: pointer; text-decoration: none; }
.cds-button--primary { background: var(--cds-f-cta); color: var(--cds-f-texte); } /* encre sur corail : 5,1:1 */
.cds-button--primary:hover { background: var(--cds-f-cta-h); }
.cds-button--secondaire { background: transparent; color: var(--cds-f-accent); border-color: var(--cds-f-accent); }
.cds-button--secondaire:hover { background: var(--cds-f-fond-alt); }
.cds-button[disabled] { opacity: .6; cursor: not-allowed; } /* contrôle désactivé : exempté de contraste */
.cds-button[aria-disabled="true"] { cursor: progress; } /* envoi en cours : contraste conservé (≥ 4,5:1) */
.cds-button[hidden] { display: none; } /* sinon inline-flex l'emporte sur l'attribut hidden */

/* Anti-spam (honeypot) : hors écran, sans style inline */
.cds-form__piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Tablettes et plus */
@media (min-width: 40em) {
  .cds-button { width: auto; }
  .cds-form--2col .cds-form__form { grid-template-columns: 1fr 1fr; }
  .cds-form--2col .cds-field--large, .cds-form--2col .cds-fieldset,
  .cds-form--2col .cds-form__actions, .cds-form--2col .cds-notice { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) { .cds-form * { transition: none !important; } }
@media (forced-colors: active) {
  .cds-input, .cds-select, .cds-textarea, .cds-choice, .cds-notice { border-color: CanvasText; }
  .cds-button--primary { background: ButtonFace; color: ButtonText; border-color: ButtonText; }
}

/* Tunnel d'inscription (DEV-203, UX-20 / UX-21) */
.cds-inscription__bienvenue { margin: 0 0 1rem; }
.cds-etapes__liste { display: flex; gap: .25rem; margin: 0 0 1.25rem; padding: 0; list-style: none; counter-reset: none; }
.cds-etapes__etape { flex: 1; min-width: 0; position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; font-size: .875rem; color: var(--cds-f-secondaire); }
.cds-etapes__etape::before { content: ""; position: absolute; top: 1.1rem; left: -50%; width: 100%; height: 2px; background: var(--cds-f-bord); z-index: 0; }
.cds-etapes__etape:first-child::before { display: none; }
.cds-etapes__etape--faite::before, .cds-etapes__etape--courante::before { background: var(--cds-f-accent); }
.cds-etapes__lien { display: flex; flex-direction: column; align-items: center; gap: .35rem; min-height: 44px; color: inherit; text-decoration: none; }
a.cds-etapes__lien:hover .cds-etapes__nom { text-decoration: underline; }
a.cds-etapes__lien:focus-visible { outline: 3px solid var(--cds-f-accent); outline-offset: 3px; border-radius: var(--cds-f-rayon); }
.cds-etapes__numero { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem;
  border-radius: 50%; border: 2px solid var(--cds-f-bord); background: var(--cds-f-fond); font-weight: 700; }
.cds-etapes__etape--faite .cds-etapes__numero { border-color: var(--cds-f-accent); background: var(--cds-f-accent); color: #fff; }
.cds-etapes__etape--courante { color: var(--cds-f-texte); font-weight: 600; }
.cds-etapes__etape--courante .cds-etapes__numero { border-color: var(--cds-f-accent); color: var(--cds-f-accent); box-shadow: 0 0 0 3px var(--cds-f-fond-alt); }
.cds-etapes__nom { line-height: 1.2; overflow-wrap: anywhere; }
.cds-inscription__titre { margin: 0 0 1rem; }
.cds-inscription__titre:focus { outline: none; }
.cds-inscription__titre:focus-visible { outline: 3px solid var(--cds-f-accent); outline-offset: 4px; }
.cds-inscription .cds-form__form { margin-bottom: 1rem; }
.cds-inscription .cds-fieldset { margin: 0 0 1.25rem; }
.cds-carte-document { margin: 0 0 1rem; padding: 1rem 1.25rem; border: 1px solid var(--cds-f-bord); border-radius: var(--cds-f-rayon); background: var(--cds-f-fond); }
.cds-carte-document--depose { border-left: 4px solid var(--cds-f-succes); }
.cds-carte-document__titre { margin: 0 0 .5rem; font-size: 1.05rem; }
.cds-carte-document__etat { margin: 0 0 .75rem; color: var(--cds-f-succes); font-weight: 600; word-break: break-word; }
.cds-carte-document__etat a { color: inherit; }
.cds-carte-document__form { display: grid; gap: .5rem; }
.cds-carte-document input[type=file] { padding: .6rem; }
.cds-inscription__rassurance { margin: 1rem 0; padding: .75rem 1rem; border-radius: var(--cds-f-rayon); background: var(--cds-f-fond-alt); }
.cds-inscription__recap { margin: 0 0 1.25rem; padding: 1rem 1.25rem; border-radius: var(--cds-f-rayon); background: var(--cds-f-fond-alt); }
.cds-inscription__sous-titre { margin: 0 0 .5rem; font-size: 1rem; text-transform: uppercase; letter-spacing: .04em; }
.cds-inscription__creneaux { margin: 0 0 .5rem; padding-left: 1.1rem; }
.cds-inscription__montants { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; margin: .75rem 0 0; }
.cds-inscription__montants dt { margin: 0; }
.cds-inscription__montants dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.cds-inscription__montants dt:last-of-type, .cds-inscription__montants dd:last-of-type { padding-top: .35rem; border-top: 1px solid var(--cds-f-bord); }
.cds-inscription__consignes { padding-left: 1.25rem; }
.cds-inscription__consignes > li { margin-bottom: 1rem; }
.cds-inscription__aide { font-weight: 600; }
@media (max-width: 30em) {
  .cds-etapes__nom { font-size: .8125rem; }
  /* Étroit (320 px) : seul le nom de l'étape courante reste visible ; les autres restent lus (aucune perte pour les lecteurs d'écran). */
  .cds-etapes__etape:not(.cds-etapes__etape--courante) .cds-etapes__nom { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
}
.cds-carte-document__mention { font-weight: 400; font-size: .9rem; color: var(--cds-f-secondaire); }
.cds-carte-document input[type=file]::file-selector-button { min-height: 44px; padding: .5rem 1rem; margin-right: .75rem; font: inherit; font-weight: 600; border: 2px solid var(--cds-f-accent); border-radius: var(--cds-f-rayon); background: #fff; color: var(--cds-f-accent); cursor: pointer; }
.cds-inscription__aide a { display: inline-block; padding: .5rem 0; }
@media (forced-colors: active) { .cds-etapes__numero { border-color: CanvasText; } .cds-etapes__etape--courante .cds-etapes__numero { border-width: 4px; } .cds-carte-document { border-color: CanvasText; } }

/* Modalités de paiement (DEV-207) et carte « Prochain règlement » de l'espace (UX-22) */
.cds-paiement__carte, .cds-espace__carte { margin: 0 0 1rem; padding: 1rem 1.25rem; border: 1px solid var(--cds-f-bord); border-radius: var(--cds-f-rayon); background: var(--cds-f-fond); }
.cds-paiement__carte :is(h2, h3), .cds-espace__carte :is(h2, h3), .cds-espace__sous-titre { margin: 0 0 .5rem; font-size: 1.05rem; }
.cds-paiement__carte--prochain { border-left: 4px solid var(--cds-f-accent); }
.cds-paiement__montant { margin: 0 0 .25rem; font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.cds-paiement__coordonnees { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1rem; margin: .75rem 0 0; }
.cds-paiement__coordonnees dt { font-weight: 600; }
.cds-paiement__coordonnees dd { margin: 0; }
.cds-paiement__code { font-size: 1rem; letter-spacing: .02em; word-break: break-all; user-select: all; }
@media (max-width: 30em) { .cds-paiement__coordonnees { grid-template-columns: 1fr; } .cds-paiement__coordonnees dd { margin-bottom: .5rem; } }

/* Tableau de bord du thérapeute (DEV-210, UX-22) */
.cds-espace__creneaux { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.cds-espace__creneaux li { display: grid; gap: .15rem; padding-left: .75rem; border-left: 3px solid var(--cds-f-accent); }
.cds-espace__salle { font-weight: 700; }
.cds-espace__regle { margin: .5rem 0 0; color: var(--cds-f-succes); font-weight: 600; }
.cds-espace__alerte { margin: .5rem 0 0; color: var(--cds-f-erreur); font-weight: 600; }
.cds-espace__raccourcis { margin: 1.5rem 0 1rem; }
.cds-espace__raccourcis ul { list-style: none; margin: 0; padding: 0; }
.cds-espace__raccourcis a { display: inline-flex; align-items: center; min-height: var(--cds-f-cible); color: var(--cds-f-accent); font-weight: 600; }
.cds-espace__raccourcis a::before { content: "→"; content: "→" / ""; margin-right: .5rem; } /* flèche décorative, tue pour les lecteurs d’écran */
.cds-espace__raccourcis a:focus-visible { outline: 3px solid var(--cds-f-accent); outline-offset: 2px; }

/* Mes paiements (DEV-223) */
.cds-form .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.cds-historique { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.cds-historique th, .cds-historique td { padding: .6rem .5rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--cds-f-bord); }
.cds-historique thead th { font-size: .9375rem; }
.cds-historique tbody th { font-weight: 600; }
.cds-historique .cds-hint { display: block; font-size: .875rem; }
.cds-etat { font-weight: 600; }
/* Pictogrammes de statuts (DEV-130, Tabler Icons, MIT) : SVG décoratifs en ligne, couleur du texte, jamais seuls. */
.cds-picto { width: 1.125em; height: 1.125em; flex: none; vertical-align: -.2em; }
.cds-statut__icone { display: inline-flex; }
.cds-espace__creneaux .cds-etat { display: inline-flex; align-items: center; gap: .4rem; }
.cds-etat--en_retard { color: var(--cds-f-erreur); }
.cds-etat--regle { color: var(--cds-f-succes); }
@media (max-width: 36em) {
  .cds-historique thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .cds-historique tr { display: block; padding: .75rem 0; border-bottom: 1px solid var(--cds-f-bord); }
  .cds-historique th, .cds-historique td { display: grid; grid-template-columns: 7rem 1fr; gap: .5rem; padding: .2rem 0; border: 0; }
  .cds-historique th[data-label]::before, .cds-historique td[data-label]::before { content: attr(data-label); font-weight: 400; color: var(--cds-f-secondaire); }
  .cds-historique td > .cds-hint { grid-column: 2; } /* le complément reste sous la valeur, jamais dans la colonne du libellé */
}

/* Ma page (DEV-212, UX-23) : éditeur */
.cds-ma-page__miniature { width: 96px; height: 96px; object-fit: cover; border-radius: var(--cds-f-rayon); border: 1px solid var(--cds-f-bord); }
.cds-ma-page input[type=file]::file-selector-button { min-height: 44px; padding: .5rem 1rem; margin-right: .75rem; font: inherit; font-weight: 600; border: 2px solid var(--cds-f-accent); border-radius: var(--cds-f-rayon); background: #fff; color: var(--cds-f-accent); cursor: pointer; }
.cds-ma-page .wp-editor-wrap { border: 1px solid var(--cds-f-bord); border-radius: var(--cds-f-rayon); overflow: hidden; }
.cds-ma-page__tarif { margin: 0; padding: .75rem 1rem 1rem; border: 1px solid var(--cds-f-bord); border-radius: var(--cds-f-rayon); display: grid; gap: .5rem; }
.cds-ma-page__tarif legend { padding: 0 .25rem; }
.cds-ma-page__prix { display: flex; align-items: center; gap: .5rem; }
.cds-ma-page__prix .cds-input { max-width: 8rem; }
.cds-ma-page__retirer, .cds-ma-page__ajouter { justify-self: start; }
.cds-ma-page__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (min-width: 36em) { .cds-ma-page__tarif { grid-template-columns: 1fr 10rem 9rem; align-items: end; } .cds-ma-page__tarif legend, .cds-ma-page__retirer { grid-column: 1 / -1; } }

/* Ma page : rendu public (aperçu DEV-212, annuaire DEV-214 ; UX-24) */
.cds-page-therapeute__apercu { margin: 0 0 var(--cds-f-espace); padding: 1rem; border: 2px dashed var(--cds-f-bord); border-radius: var(--cds-f-rayon); }
.cds-page-therapeute__bandeau img { display: block; width: 100%; height: auto; max-height: 20rem; object-fit: cover; border-radius: var(--cds-f-rayon); }
.cds-page-therapeute__entete { display: grid; gap: 1rem; margin: 1rem 0; }
@media (min-width: 36em) { .cds-page-therapeute__entete { grid-template-columns: 9rem 1fr; align-items: start; } }
.cds-page-therapeute__portrait { width: 9rem; height: 9rem; object-fit: cover; border-radius: 50%; }
.cds-page-therapeute__nom { margin: 0; }
.cds-page-therapeute__titre { margin: .25rem 0; font-size: 1.125rem; font-weight: 600; }
.cds-page-therapeute__pratiques { margin: 0 0 .5rem; color: var(--cds-f-secondaire); }
.cds-page-therapeute__infos, .cds-page-therapeute__liens { list-style: none; margin: 0 0 .75rem; padding: 0; }
.cds-page-therapeute__contacts { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.cds-page-therapeute__section { padding: 1rem 0; border-top: 1px solid var(--cds-f-bord); }
.cds-page-therapeute__tarifs { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.cds-page-therapeute__tarifs li { display: grid; grid-template-columns: 1fr 5rem 6rem; gap: 1rem; font-variant-numeric: tabular-nums; }
.cds-page-therapeute__prix { grid-column: 3; }
.cds-page-therapeute__prix { font-weight: 700; text-align: right; }
.cds-page-therapeute__liens a { display: inline-flex; align-items: center; min-height: var(--cds-f-cible); color: var(--cds-f-accent); font-weight: 600; }
@media (forced-colors: active) { .cds-ma-page__tarif, .cds-page-therapeute__apercu { border-color: CanvasText; } }
/* Ma page : ancres visibles sous l'en-tête fixe du thème, barre d'outils de l'éditeur aux cibles tactiles de 44 px */
.cds-ma-page [id] { scroll-margin-top: 6rem; }
.cds-ma-page .mce-toolbar .mce-btn button { min-width: 44px; min-height: 44px; }
.cds-ma-page #wp-cds-presentation-wrap:focus-visible { outline: 3px solid var(--cds-f-accent); outline-offset: 2px; }

/* Annuaire des thérapeutes (DEV-214 ; UX-24, UX-25) */
.cds-form.cds-annuaire { max-width: none; }
.cds-annuaire__intro { margin: 0 0 var(--cds-f-espace); font-size: 1.125rem; }
.cds-annuaire__filtre { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; margin: 0 0 1rem; }
.cds-annuaire__filtre fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.cds-annuaire__legende { font-weight: 600; padding: 0; margin-bottom: .5rem; }
.cds-annuaire__choix { display: flex; flex-wrap: wrap; gap: .5rem; }
.cds-annuaire__option { display: inline-flex; align-items: center; gap: .5rem; min-height: var(--cds-f-cible); padding: 0 1rem; border: 1px solid var(--cds-f-bord); border-radius: 999px; cursor: pointer; }
.cds-annuaire__option:has(input:checked) { background: var(--cds-f-accent); border-color: var(--cds-f-accent); color: var(--cds-f-fond); font-weight: 600; }
.cds-annuaire__option input { width: 1.125rem; height: 1.125rem; margin: 0; accent-color: var(--cds-f-accent); }
.cds-annuaire__option:has(input:focus-visible) { outline: 3px solid var(--cds-f-accent); outline-offset: 2px; }
.cds-annuaire__nombre { margin: 0 0 1rem; font-weight: 600; color: var(--cds-f-secondaire); }
.cds-annuaire__grille { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--cds-f-espace); grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.cds-carte-therapeute { position: relative; display: flex; flex-direction: column; gap: .25rem; padding: 1rem; border: 1px solid var(--cds-f-bord); border-radius: var(--cds-f-rayon); background: var(--cds-f-fond); }
.cds-carte-therapeute[hidden] { display: none; }
.cds-carte-therapeute__photo { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: var(--cds-f-rayon); margin-bottom: .5rem; }
.cds-carte-therapeute__photo--vide { background: var(--cds-f-fond-alt); }
.cds-carte-therapeute__nom { margin: 0; font-size: 1.25rem; }
.cds-carte-therapeute__nom a { color: var(--cds-f-texte); text-decoration: none; }
/* Lien étendu à toute la carte ; le focus entoure la carte. */
.cds-carte-therapeute__nom a::after { content: ""; position: absolute; inset: 0; border-radius: var(--cds-f-rayon); }
.cds-carte-therapeute__nom a:focus-visible { outline: none; }
.cds-carte-therapeute__nom a:focus-visible::after { outline: 3px solid var(--cds-f-accent); outline-offset: 2px; }
.cds-carte-therapeute:hover .cds-carte-therapeute__nom a { text-decoration: underline; }
.cds-carte-therapeute__titre { margin: 0; font-weight: 600; }
.cds-carte-therapeute__pratiques, .cds-carte-therapeute__jours { margin: 0; color: var(--cds-f-secondaire); font-size: .9375rem; }
.cds-carte-therapeute__suite { margin-top: auto; padding-top: .5rem; color: var(--cds-f-accent); font-weight: 600; }
.cds-annuaire__recrutement { margin-top: calc(var(--cds-f-espace) * 2); padding: var(--cds-f-espace); border-radius: var(--cds-f-rayon); background: var(--cds-f-fond-alt); }
.cds-annuaire__recrutement h2 { margin: 0 0 .75rem; font-size: 1.25rem; }
.cds-annuaire__recrutement p { margin: 0; }
.cds-annuaire-page__adresse { font-style: normal; margin: 0 0 .75rem; }
.cds-annuaire-page__retour { padding-top: 1rem; border-top: 1px solid var(--cds-f-bord); }
.cds-annuaire-page a:not(.cds-button) { color: var(--cds-f-accent); font-weight: 600; }

/* Gabarit « Fiche thérapeute » du plugin (DEV-219) : photo de pratique en fond du bandeau, sous le voile du thème */
.cds-fiche-bandeau { position: relative; overflow: hidden; }
.cds-fiche-bandeau .cds-hero__fond { position: absolute; inset: 0; z-index: -2; margin: 0; }
.cds-fiche-bandeau .cds-hero__fond img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cds-fiche-bandeau .cds-fiche-portrait { margin: 0 auto 1rem; }
.cds-fiche-bandeau .cds-fiche-portrait img { width: 9rem; height: 9rem; object-fit: cover; border-radius: 50%; }
.cds-fiche-bandeau :is(.cds-fiche-titre, .cds-fiche-pratiques, .cds-fiche-jours) { margin-block: .25rem; }
.cds-fiche-bandeau .cds-fiche-titre { font-size: 1.125rem; font-weight: 600; }
@media (forced-colors: active) { .cds-carte-therapeute, .cds-annuaire__option { border-color: CanvasText; } }

/* Demande de créneau supplémentaire (DEV-215, UX-29) : une carte par jour disponible, sur toute la largeur */
.cds-demande__options { display: grid; gap: .5rem; }
.cds-demande__option { display: grid; grid-template-columns: auto 1fr auto; column-gap: .75rem; row-gap: .125rem; align-items: center; padding: .625rem .875rem; }
.cds-demande__option input { grid-row: 1 / span 3; }
.cds-demande__salle { font-weight: 600; }
.cds-demande__jour { grid-column: 2; }
.cds-demande__tarif { grid-column: 3; grid-row: 1; font-weight: 600; white-space: nowrap; }
.cds-demande__option .cds-hint { grid-column: 2 / -1; }
.cds-demande__suivi { display: grid; gap: .25rem; }
.cds-demande__annuler { margin: .25rem 0 0; }
.cds-etat--en_attente { color: var(--cds-f-texte); }
.cds-etat--validee { color: var(--cds-f-succes); }
.cds-etat--refusee { color: var(--cds-f-erreur); }
.cds-etat--annulee { color: var(--cds-f-secondaire); }
.cds-demande [id] { scroll-margin-top: 6rem; }
.cds-demande__info { background: var(--cds-f-fond-alt); border-left: 4px solid var(--cds-f-accent); }

/* Départ et jours libérés (DEV-216, UX-28) */
.cds-fin [id] { scroll-margin-top: 6rem; }
.cds-fin__info { background: var(--cds-f-fond-alt); border-left: 4px solid var(--cds-f-accent); }
.cds-fin__info ul { margin: .5rem 0 0; padding-left: 1.25rem; }
.cds-fin__date { max-width: 14rem; }
.cds-espace__depart { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--cds-f-bord); font-size: .9375rem; }
.cds-espace__depart a, .cds-espace__lien a, .cds-fin a:not(.cds-button), .cds-fin__annuler { display: inline-flex; align-items: center; min-height: var(--cds-f-cible); }
.cds-espace__lien { margin: 0; }

/* Mes informations / Mon bail (DEV-211) : fiche en lecture seule (empilée sur petit écran), liste des avenants. */
.cds-infos { display: grid; grid-template-columns: minmax(9rem, max-content) 1fr; gap: .35rem 1rem; margin: 0 0 .75rem; }
.cds-infos dt { margin: 0; color: var(--cds-f-secondaire); }
.cds-infos dd { margin: 0; font-weight: 600; word-break: break-word; }
@media (max-width: 30em) { .cds-infos { grid-template-columns: 1fr; gap: 0; } .cds-infos dd { margin-bottom: .5rem; } }
.cds-bail__avenants { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.cds-bail__avenants li { display: grid; gap: .15rem; }
.cds-bail__avenants a { display: inline-flex; align-items: center; min-height: var(--cds-f-cible); font-weight: 600; }

/* FAQ et règlement intérieur (DEV-230) : accordéons du thème (.wp-block-details), focus visible, date du règlement. */
.cds-faq__groupe { margin: 0 0 2rem; }
.cds-faq__theme { margin: 0 0 .5rem; }
.cds-faq__question summary:focus-visible { outline: 3px solid var(--cds-f-accent); outline-offset: 2px; }
.cds-faq__question:target summary { color: var(--cds-f-accent); }
.cds-faq__reponse > :last-child { margin-bottom: 0; }
.cds-reglement__date { color: var(--cds-f-secondaire); font-size: .9375rem; }
.cds-reglement__texte { margin: 0 0 1.5rem; }

/* Home en mode patients (DEV-231, UX-26) : recherche par pratique, thérapeutes en avant, pratiques */
.cds-form.cds-recherche { max-width: 32rem; background: transparent; }
.cds-recherche__formulaire { display: grid; gap: .75rem; padding: var(--cds-f-espace); border-radius: var(--cds-f-rayon); background: var(--cds-f-fond); color: var(--cds-f-texte); text-align: left; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
.cds-recherche__formulaire .cds-button { width: 100%; }
.cds-recherche__tous { margin: 1rem 0 0; }
.cds-recherche__tous a { display: inline-flex; align-items: center; min-height: var(--cds-f-cible); font-weight: 600; }
.cds-en-avant__tous { margin: var(--cds-f-espace) 0 0; text-align: center; }
.cds-pratiques { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); }
.cds-pratiques__lien { display: flex; align-items: center; justify-content: center; min-height: 4.5rem; padding: 1rem; border: 1px solid var(--cds-f-bord); border-radius: var(--cds-f-rayon); background: var(--cds-f-fond); color: var(--cds-f-accent); font-weight: 600; text-align: center; text-decoration: none; }
.cds-pratiques__lien:hover { background: var(--cds-f-fond-alt); text-decoration: underline; }
.cds-pratiques__lien:focus-visible { outline: 3px solid var(--cds-f-accent); outline-offset: 2px; }
@media (forced-colors: active) { .cds-recherche__formulaire, .cds-pratiques__lien { border: 1px solid CanvasText; } }
