/* Hérite de la typo du thème ; seule la couleur d'accent est à ajuster (--fl-accent). */
.fl-don {
  --fl-accent: #002395;
  --fl-accent-contrast: #fff;
  --fl-border: #b8bcc6;
  --fl-muted: #5f6472;
  --fl-radius: 6px;
  max-width: 40rem;
  margin-inline: auto;
}
.fl-don fieldset { border: 0; padding: 0; margin: 0 0 1.75rem; min-width: 0; }
.fl-don legend { font-weight: 700; font-size: 1.1em; padding: 0; margin-bottom: .75rem; }
.fl-don label { display: block; font-size: .95em; }
.fl-don input:not([type="checkbox"]) {
  display: block; width: 100%; box-sizing: border-box; margin-top: .3rem;
  padding: .6rem .75rem; font: inherit; color: inherit; background: transparent;
  border: 1px solid var(--fl-border); border-radius: var(--fl-radius);
}
.fl-don input:focus-visible,
.fl-don button:focus-visible { outline: 2px solid var(--fl-accent); outline-offset: 2px; }

.fl-don [hidden] { display: none !important; }

/* Fréquence : deux boutons exclusifs (radios) */
.fl-don-frequence { display: flex; flex-wrap: wrap; gap: .5rem; }
.fl-don .fl-don-frequence label { flex: 1 1 8rem; cursor: pointer; }
.fl-don-frequence input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fl-don-frequence span {
  display: block; padding: .7rem .5rem; text-align: center; font-weight: 700;
  color: var(--fl-accent); border: 2px solid var(--fl-accent); border-radius: var(--fl-radius);
}
.fl-don-frequence input:checked + span { color: var(--fl-accent-contrast); background: var(--fl-accent); }
.fl-don-frequence input:focus-visible + span { outline: 2px solid var(--fl-accent); outline-offset: 2px; }

/* Montants */
.fl-don-presets { display: grid; grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr)); gap: .5rem; margin-bottom: 1rem; }
.fl-don .fl-don-presets button {
  padding: .8rem .5rem; font: inherit; font-weight: 700; font-size: 1.1em; cursor: pointer;
  color: var(--fl-accent); background: transparent;
  border: 2px solid var(--fl-accent); border-radius: var(--fl-radius);
}
.fl-don .fl-don-presets button[aria-pressed="true"] { color: var(--fl-accent-contrast); background: var(--fl-accent); }

/* Coordonnées */
.fl-don-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1rem; }
.fl-don-full { grid-column: 1 / -1; }
@media (max-width: 480px) { .fl-don-grid { grid-template-columns: 1fr; } }

.fl-don-adhesion { margin: 0 0 1.75rem; padding: .8rem 1rem; border: 1px solid var(--fl-border); border-radius: var(--fl-radius); text-align: left; }
.fl-don .fl-don-adhesion label { display: flex; gap: .6rem; align-items: flex-start; line-height: 1.4; cursor: pointer; }
.fl-don-adhesion input { flex: none; margin-top: .2em; }
.fl-don-adhesion.is-disabled label { opacity: .5; cursor: not-allowed; }
.fl-don-adhesion-hint { margin: .4rem 0 0 1.6rem; font-size: .85em; color: var(--fl-muted); }
.fl-don-portal { margin-top: 1rem; font-size: .9em; }

.fl-don-optional { font-weight: 400; font-size: .85em; color: var(--fl-muted); }

.fl-don-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Messages */
.fl-don-error,
.fl-don-notice { padding: .6rem .8rem; border-left: 3px solid; margin: 0 0 1rem; }
.fl-don-error { color: #a4001d; background: #fdecee; }
.fl-don-notice { border-color: var(--fl-accent); background: #eef1fa; }

/* Actions */
.fl-don .fl-don-btn {
  display: block; width: 100%; padding: .9rem 1rem; font: inherit; font-weight: 700; cursor: pointer;
  color: var(--fl-accent-contrast); background: var(--fl-accent); border: 0; border-radius: var(--fl-radius);
}
.fl-don .fl-don-btn:disabled { opacity: .6; cursor: progress; }
.fl-don-sep { display: flex; align-items: center; gap: .75rem; margin: 1rem 0; color: var(--fl-muted); font-size: .9em; }
.fl-don-sep::before,
.fl-don-sep::after { content: ""; flex: 1; border-top: 1px solid var(--fl-border); }

.fl-don-rgpd { margin-top: 1.5rem; font-size: .8em; color: var(--fl-muted); }
.fl-don--merci { padding: 1.25rem 1.5rem; color: rgba(20,56,72,1); border-left: 3px solid rgba(20,56,72,1); background: #eef5fa; text-align: left; }
.fl-don--merci p { margin: 0 0 .6rem; color: inherit; }
.fl-don--merci p:last-child { margin-bottom: 0; }
