/*
 * fnce.css : styles COMMUNS écrits à la main (par opposition à styles/css/base.css, généré par Sass).
 *
 * Fichier COMMUN : ne pas modifier depuis une page (le CSS d'une page va dans css/pages/<page>.css).
 * Les couleurs et dimensions de la charte viennent des variables CSS de base.css
 * (--fnce-vert, --fnce-orange, --fnce-menu-largeur...) : ne JAMAIS les redéfinir ici (sauf css/charte-fnce.css, lot 7).
 *
 * Contenu : police des icônes, révélation de la coque, lien d'évitement, états (chargement, vide,
 * erreur), valeur absente, valeur tronquée, ajustements Leaflet, texte courant (mentions légales).
 */

/* --- Icônes : Font Awesome Free 5.15.1, jeu « solid » en woff2 uniquement ------------------------- */
@font-face {
  font-family: "Font Awesome 5 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("../vendors/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2") format("woff2");
}

.fa,
.fas {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}

/* --- Révélation de la coque ------------------------------------------------------------------------- */
/* Les pages protégées restent masquées tant que shell.js n'a pas construit la coque : pas d'éclair de
   contenu sans menu, et rien d'affiché avant le contrôle de session (RG-C4). Sécurité d'affichage : si le
   script échoue, la page devient visible au bout de 3 s plutôt que de rester blanche. */
@keyframes fnce-reveler {
  to { visibility: visible; }
}

body.fnce-page:not(.fnce-pret) {
  visibility: hidden;
  animation: fnce-reveler 0s linear 3s forwards;
}

/* --- Lien d'évitement (WCAG 2.4.1) ------------------------------------------------------------------- */
.fnce-evitement {
  position: fixed;
  top: .5rem;
  left: .5rem;
  z-index: 2000;
  padding: .6rem 1rem;
  color: var(--fnce-vert);
  font-weight: 700;
  text-decoration: none;
  background: #fff;
  border: 2px solid var(--fnce-vert);
  border-radius: .5rem;
  transform: translateY(-300%);
}

.fnce-evitement:focus {
  transform: none;
}

/* --- États : chargement, vide, erreur ------------------------------------------------------------------ */
.fnce-etat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 1.5rem 1rem;
  color: var(--fnce-gris-texte);
  text-align: center;
}

.fnce-etat--chargement {
  flex-direction: row;
  gap: .75rem;
}

.fnce-etat--erreur {
  color: #b02a37; /* rouge foncé : 6,5:1 sur blanc */
}

/* --- Valeurs de la fiche et des tableaux ---------------------------------------------------------------- */
/* « Non renseigné » : atténué et en italique, sans perdre le contraste AA (5,9:1 sur blanc). */
.fnce-absent {
  color: var(--fnce-gris-texte);
  font-style: italic;
}

/* Valeur trop longue : coupée par « … » ; la valeur entière est dans l'attribut title (RG-E1). */
.fnce-tronque {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* --- Leaflet ------------------------------------------------------------------------------------------------ */
.leaflet-container {
  font: inherit;
}

/* La mention « © OpenStreetMap contributors » doit rester lisible même sur une petite carte. */
.leaflet-control-attribution {
  max-width: 100%;
  white-space: normal;
}

.fnce-carte-plein-ecran__bouton {
  font-size: 14px;
  line-height: 30px;
}

/* --- Texte courant (mentions légales) ------------------------------------------------------------------------ */
.fnce-texte {
  max-width: 48rem;
}

.fnce-texte h2 {
  margin-top: 1.5rem;
  font-size: 1.2rem;
  font-weight: 600;
}

.fnce-avertissement {
  padding: .75rem 1rem;
  color: #664d03;
  background: #fff3cd;
  border: 1px solid #ffda6a;
  border-radius: .5rem;
}
