/**
 * /app/styles/donate.css — la page de soutien.
 *
 * Même gabarit que la vitrine publique du module Jeux
 * (`jeux/public.css`, `.jpub--vitrine`) : une barre de marque en haut, une
 * colonne de 720 px centrée, et le corps peint par la feuille. C'est le patron
 * des pages publiques d'habask, et le reprendre évite d'inventer une troisième
 * mise en page pour la même chose.
 *
 * Aucune couleur en dur : tout vient du contrat de variables du design system,
 * chargé juste avant par `gt_theme_head()`. La version précédente de cette page
 * embarquait 90 lignes de `<style>` en couleurs littérales (#007BFF,
 * rgba(60,96,141,.35)) et servait une page sombre à qui avait choisi un thème
 * clair.
 */

/**
 * Le corps de la page. **C'est ce qui manque le plus facilement.**
 *
 * Une page publique est un document de premier niveau : elle n'hérite du fond
 * d'aucun shell. Sans cette règle, les six feuilles sont bien servies et la
 * page paraît quand même cassée — fond blanc du navigateur sous le texte pâle
 * d'un thème sombre, et du serif partout. C'est le défaut que `881c20a` a
 * corrigé sur les pages du module Jeux ; `quiz/public.css` porte la même règle
 * sur `.qpub` depuis le premier jour.
 *
 * Le jeton est `--font-family-base` : `--font-family` tout court n'existe pas
 * et retomberait silencieusement sur le repli. Inter n'est pas chargée ici —
 * `fonts.css` n'entre pas par `gt_theme_head()` — donc system-ui est la police
 * réellement servie, et c'est voulu : une page qu'on ouvre deux fois par an n'a
 * pas à faire télécharger une fonte.
 */
.donate-page {
  margin: 0;
  background: var(--surface-1);
  color: var(--text);
  font-family: var(--font-family-base, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);
  line-height: 1.5;
}

/* La barre de marque, reprise de `.jpub-bar`. */
.donate-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 20px;
  padding-top: calc(12px + var(--safe-top));
  border-bottom: 1px solid var(--border);
}

.donate-bar img {
  display: block;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-sm);
}

/* Le sélecteur de langue est un <select> nu : `initLanguageSwitcher()` ne
   demande rien de plus, et `.gt-select` lui donne l'apparence des autres champs
   de l'application. Largeur au contenu, pour ne pas écraser le logo sur un
   écran étroit. */
.donate-bar .gt-select {
  width: auto;
  max-width: 12rem;
}

/* 720 px et un padding généreux, comme `.jpub--vitrine .jpub-main`. La version
   précédente tenait dans 520 px : sur un écran de téléphone, chaque phrase se
   brisait en quatre lignes. */
.donate-main {
  max-width: 720px;
  margin: 0 auto;
  padding: 32px 20px 64px;
  padding-bottom: calc(64px + var(--safe-bottom));
}

.donate-title {
  font-size: 1.75rem;
  font-weight: var(--fw-bold);
  line-height: var(--leading-tight);
  margin: 0 0 16px;
  color: var(--text);
}

.donate-text {
  font-size: 1.05rem;
  line-height: 1.55;
  margin: 0 0 12px;
  color: var(--text);
}

.donate-text--muted {
  color: var(--text-muted);
  font-size: .9rem;
}

.donate-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 28px 0 16px;
}

.donate-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}

.donate-links a {
  color: var(--link);
  font-size: .9rem;
  font-weight: var(--fw-medium);
  text-decoration: none;
}

.donate-links a:hover {
  text-decoration: underline;
}
