/* =========================================================================
   GeoHomeBase — identité publique
   =========================================================================
   Reprend sur les pages d'entrée (inscription, connexion, retour de paiement)
   l'identité de l'accueil : fond bleu nuit, accent vert tilleul, titres en
   Montserrat.

   Cette feuille se pose APRÈS `geohomebase.css` et n'en redéfinit que les
   jetons. Le système de design n'est pas dupliqué, et la console cliente —
   qui a ses propres thèmes clair et sombre — n'est pas touchée : elle ne
   charge pas ce fichier.
   ========================================================================= */

:root {
  --gh-encre:         #EEEFF7;   /* sur fond sombre, l'« encre » est claire */
  --gh-encre-douce:   #C9CDDE;
  --gh-primaire:      #7BB100;
  --gh-primaire-fonce:#8CC70B;   /* au survol on éclaircit, on n'assombrit pas */
  --gh-primaire-clair:#1A2411;
  --gh-accent:        #E8A33D;   /* réservé aux états, jamais à l'action */
  --gh-danger:        #E07A6A;
  --gh-succes:        #9ACD2E;

  --gh-texte:         #E5E6EA;
  --gh-texte-doux:    #B4B9CC;
  --gh-texte-pale:    #848AA6;

  --gh-fond:          #0E1022;
  --gh-surface:       #181B28;
  --gh-surface-2:     #13162A;
  --gh-bord:          #262B44;

  --gh-ombre:         0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px rgba(0, 0, 0, .3);
  --gh-ombre-forte:   0 20px 55px rgba(0, 0, 0, .55);

  --gh-police: "Roboto", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --gh-police-titre: "Montserrat", var(--gh-police);

  /* Texte posé sur l'aplat vert : l'encre sombre monte à 7,3:1 là où le
     blanc du template plafonne à 2,9:1. */
  --gh-sur-primaire: #0E1022;
}

html { color-scheme: dark; }

h1, h2, h3, h4 {
  font-family: var(--gh-police-titre);
  letter-spacing: -.02em;
}
h1, h2 { font-weight: 700; }

/* --- barre de navigation : la pilule du template --- */

.gh-nav {
  background: rgba(14, 16, 34, .82);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--gh-bord);
}
.gh-marque, .gh-marque span { color: var(--gh-encre); }
.gh-marque-geo { color: var(--gh-primaire); }
.gh-nav-liens a { color: var(--gh-texte-doux); }
.gh-nav-liens a:hover, .gh-nav-liens a.actif { color: var(--gh-primaire); }

/* --- boutons --- */

.gh-btn { border-radius: 999px; font-weight: 600; }
.gh-btn-primaire { background: var(--gh-primaire); color: var(--gh-sur-primaire); border-color: transparent; }
.gh-btn-primaire:hover:not(:disabled) { background: var(--gh-primaire-fonce); }
.gh-btn-secondaire {
  background: var(--gh-surface);
  border-color: var(--gh-bord);
  color: var(--gh-encre);
}
.gh-btn-secondaire:hover:not(:disabled) { border-color: var(--gh-primaire); color: var(--gh-primaire); }
.gh-btn-fantome { color: var(--gh-texte-doux); }
.gh-btn-fantome:hover:not(:disabled) { color: var(--gh-primaire); background: rgba(123, 177, 0, .08); }

/* --- surfaces et champs --- */

.gh-carte {
  background: var(--gh-surface);
  border: 1px solid var(--gh-bord);
  box-shadow: var(--gh-ombre);
}

.gh-champ input,
.gh-champ select,
.gh-champ textarea {
  background: #11142A;
  border: 1px solid var(--gh-bord);
  color: var(--gh-texte);
}
.gh-champ input:focus,
.gh-champ select:focus,
.gh-champ textarea:focus {
  border-color: var(--gh-primaire);
  outline: none;
  box-shadow: 0 0 0 3px rgba(123, 177, 0, .18);
}
.gh-champ input::placeholder { color: var(--gh-texte-pale); }
.gh-champ label { color: var(--gh-encre); }
.gh-aide, .gh-discret { color: var(--gh-texte-doux); }

/* --- messages --- */

.gh-message.erreur { color: var(--gh-danger); }
.gh-message.succes { color: var(--gh-succes); }

/* --- pied de page --- */

.gh-pied {
  background: var(--gh-fond);
  border-top: 1px solid var(--gh-bord);
  color: var(--gh-texte-doux);
}
.gh-pied a { color: var(--gh-texte-doux); }
.gh-pied a:hover { color: var(--gh-primaire); }

a { color: var(--gh-primaire); }

:focus-visible { outline: 2px solid var(--gh-primaire); outline-offset: 2px; }
