/* ══════════════════════════════════════════════════════════════════════════
   tigrebois.fr — css/pages/hall-of-fame.css
   La salle des trophées. Feuille propre à /hall-of-fame, chargée après
   components.css. Aucune couleur en dur : tout vient de tokens.css.
   Propriétaire du fichier : agent Hall of Fame.

   Sommaire
     1. Hero — la coupe en colonne
     2. Chiffres clés du hero
     3. Le tableau des champions
     4. Le Grand Chelem
     5. Récompenses et trophées
     6. Palmarès collectif et vignettes photo (≤ 500 px, visages)
     7. Distinctions individuelles
     8. Notes de bas de section
     9. Mouvement réduit
   ══════════════════════════════════════════════════════════════════════════ */

/* Les ancres du hero ne doivent pas passer sous l'en-tête collant. */
#champions,
#grand-chelem,
#palmares,
#recompenses,
#distinctions{
  scroll-margin-top:calc(var(--tb-header-h) + var(--tb-e4));
}


/* ══ 1. HERO ══════════════════════════════════════════════════════════════
   Fond vert profond, halo de projecteur, colonne de texte + colonne coupe.
   La photo garde son ratio portrait (0,596) : elle n'est ni recadrée, ni
   étirée, ni posée en fond.
   ═══════════════════════════════════════════════════════════════════════ */

.tb-hof-hero{
  position:relative;
  overflow:hidden;
  padding-top:var(--tb-e10);
}
@media (min-width:768px){
  .tb-hof-hero{ padding-top:var(--tb-e11); }
}

/* Projecteur : un halo vert clair tombant du haut, comme une salle de trophées. */
.tb-hof-hero::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:var(--tb-degrade-tapis);
  pointer-events:none;
  z-index:0;
}

.tb-hof-hero__inner{
  display:grid;
  gap:var(--tb-e9);
  align-items:center;
  justify-items:center;
  text-align:center;
}
@media (min-width:900px){
  .tb-hof-hero__inner{
    grid-template-columns:minmax(0,1fr) minmax(240px,340px);
    gap:var(--tb-e10);
    justify-items:start;
    text-align:left;
  }
}

.tb-hof-hero__texte{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:0;
}
@media (min-width:900px){
  .tb-hof-hero__texte{ align-items:flex-start; }
}

.tb-hof-hero__titre{
  margin-top:var(--tb-e4);
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-weight:600;
  font-size:var(--tb-t-display);
  line-height:.95;
  letter-spacing:-.025em;
  color:var(--tb-blanc);
  text-wrap:balance;
}

/* Filet or sous le titre : deux traits et un losange, discrets. */
.tb-hof-hero__filet{
  width:min(280px,60%);
  height:2px;
  margin-top:var(--tb-e5);
  border-radius:var(--tb-rond);
  background-image:var(--tb-lisere-or);
}
@media (min-width:900px){
  .tb-hof-hero__filet{ width:240px; }
}

.tb-hof-hero__chapo{
  margin-top:var(--tb-e5);
  max-width:46ch;
}

/* ── 2. Chiffres clés ────────────────────────────────────────────────────── */

.tb-hof-cles{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(96px,1fr));
  gap:var(--tb-e5) var(--tb-e4);
  width:100%;
  margin:var(--tb-e8) 0 0;
  padding:0;
  list-style:none;
}
@media (min-width:600px){
  .tb-hof-cles{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:var(--tb-e6) var(--tb-e8);
  }
}
@media (min-width:900px){
  .tb-hof-cles{ justify-content:flex-start; }
}
.tb-hof-cles[data-etat='chargement']{ min-height:var(--tb-e10); }

.tb-hof-cle{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  padding-left:var(--tb-e4);
  border-left:2px solid color-mix(in srgb, var(--tb-or) 45%, transparent);
  text-align:left;
}

.tb-hof-cle__valeur{
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:2rem;
  line-height:1;
  font-variant-numeric:tabular-nums;
  color:var(--tb-or-clair);
}

.tb-hof-cle__libelle{
  font-size:var(--tb-t-micro);
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--tb-creme-70);
}

/* ── Ancres de navigation interne ────────────────────────────────────────── */

.tb-hof-ancres{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:var(--tb-e3);
  margin-top:var(--tb-e8);
}
@media (min-width:900px){
  .tb-hof-ancres{ justify-content:flex-start; }
}

.tb-hof-ancre{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:var(--tb-e3) var(--tb-e5);
  border:1px solid var(--tb-ligne-claire);
  border-radius:var(--tb-rond);
  font-size:var(--tb-t-petit);
  font-weight:600;
  text-decoration:none;
  color:var(--tb-creme);
  background:rgb(255 255 255 / .05);
  transition:background-color var(--tb-d1) var(--tb-ease),
             border-color var(--tb-d1) var(--tb-ease),
             color var(--tb-d1) var(--tb-ease);
}
.tb-section--vert-profond .tb-hof-ancre:hover{
  background:rgb(255 255 255 / .12);
  border-color:color-mix(in srgb, var(--tb-or-clair) 60%, transparent);
  color:var(--tb-blanc);
}

/* ── La coupe ────────────────────────────────────────────────────────────── */

.tb-hof-coupe{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--tb-e4);
  width:100%;
  max-width:340px;
  margin-inline:auto;
}

.tb-hof-coupe__cadre{
  position:relative;
  width:100%;
  padding:var(--tb-e3);
  border:1px solid color-mix(in srgb, var(--tb-or) 40%, transparent);
  border-radius:var(--tb-r4);
  background:rgb(255 255 255 / .04);
  box-shadow:0 24px 60px rgb(0 0 0 / .38);
}
.tb-hof-coupe__cadre::after{
  content:'';
  position:absolute;
  inset:var(--tb-e2);
  border:1px solid color-mix(in srgb, var(--tb-or-clair) 26%, transparent);
  border-radius:var(--tb-r3);
  pointer-events:none;
}

.tb-hof-coupe img{
  display:block;
  width:100%;
  height:auto;
  border-radius:var(--tb-r3);
}

.tb-hof-coupe__legende{
  max-width:34ch;
  font-size:var(--tb-t-petit);
  line-height:1.5;
  text-align:center;
  color:var(--tb-creme-70);
}

/* Sur les très petits écrans la coupe reste lisible sans écraser le texte. */
@media (max-width:519.98px){
  .tb-hof-coupe{ max-width:230px; }
}


/* ══ 3. LE TABLEAU DES CHAMPIONS ══════════════════════════════════════════
   Pièce maîtresse : filets or, lignes généreuses, avatar monogramme.
   ═══════════════════════════════════════════════════════════════════════ */

.tb-hof-champions{
  position:relative;
  border:1px solid color-mix(in srgb, var(--tb-or) 34%, transparent);
  border-radius:var(--tb-r4);
  background:var(--tb-blanc);
  box-shadow:var(--tb-ombre2);
  overflow:hidden;
}
/* Liseré or en tête de cadre. */
.tb-hof-champions::before{
  content:'';
  position:absolute;
  inset-inline:0;
  top:0;
  height:3px;
  background-image:var(--tb-lisere-or);
  z-index:2;
}

.tb-hof-champions__table{
  width:100%;
  border-collapse:collapse;
  font-family:var(--tb-font-texte);
}

.tb-hof-champions__thead{
  background:color-mix(in srgb, var(--tb-or) 8%, var(--tb-blanc));
}

.tb-hof-champions__th{
  padding:var(--tb-e5) var(--tb-e5);
  border-bottom:1px solid color-mix(in srgb, var(--tb-or) 30%, transparent);
  font-size:var(--tb-t-micro);
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-align:left;
  white-space:nowrap;
  color:var(--tb-encre-70);
}
.tb-hof-champions__th--points{ text-align:right; }

.tb-hof-champions__ligne{
  border-bottom:1px solid var(--tb-ligne);
  transition:background-color var(--tb-d1) var(--tb-ease);
}
.tb-hof-champions__ligne:last-child{ border-bottom:0; }
.tb-hof-champions__ligne:hover{ background:var(--tb-survol-clair); }

.tb-hof-champions__cell{
  position:relative;
  padding:var(--tb-e6) var(--tb-e5);
  vertical-align:middle;
  font-size:var(--tb-t-corps);
  color:var(--tb-encre);
}

/* Saison — grande, en Cal Sans, avec un liseré de rappel. */
.tb-hof-champions__saison{
  display:inline-block;
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.375rem;
  line-height:1.1;
  letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
  color:var(--tb-vert);
  white-space:nowrap;
}

.tb-hof-champions__cell--champion{ width:42%; }

.tb-hof-champions__vainqueurs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--tb-e3) var(--tb-e6);
}
.tb-hof-champions__vainqueurs--multiple .tb-joueur__nom{ font-size:1rem; }
.tb-hof-champions__vainqueurs .tb-badge{ align-self:center; }

.tb-hof-champions__attente{
  font-size:var(--tb-t-petit);
  font-style:italic;
  color:var(--tb-encre-45);
}

.tb-hof-champions__cell--points{
  text-align:right;
  white-space:nowrap;
}
.tb-hof-champions__points{
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.5rem;
  font-variant-numeric:tabular-nums;
  color:var(--tb-encre);
}
.tb-hof-champions__unite{
  margin-left:var(--tb-e1);
  font-size:var(--tb-t-petit);
  font-weight:600;
  color:var(--tb-encre-45);
}
.tb-hof-champions__tiret{
  font-size:1.25rem;
  color:var(--tb-encre-45);
}

/* Colonne trophée */
.tb-hof-champions__trophee{
  display:inline-flex;
  align-items:center;
  gap:var(--tb-e3);
  font-size:var(--tb-t-petit);
  font-weight:600;
  color:var(--tb-encre-70);
}
.tb-hof-champions__mention{ white-space:nowrap; }
.tb-hof-champions__trophee--chelem{ color:color-mix(in srgb, var(--tb-or) 70%, var(--tb-encre)); }
.tb-hof-champions__trophee--attente{ color:var(--tb-encre-45); }

.tb-hof-coupe-icone{
  flex:0 0 auto;
  fill:none;
  stroke:var(--tb-or);
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tb-hof-champions__ligne--chelem .tb-hof-coupe-icone{
  fill:color-mix(in srgb, var(--tb-or-clair) 32%, transparent);
}
.tb-hof-coupe-icone--attente{
  stroke:var(--tb-encre-45);
  stroke-dasharray:3 3;
}

/* La saison sacrée porte un liseré or à gauche ; la saison en cours, un liseré
   orange en pointillé et un fond très léger : elle est « en jeu », pas vide. */
.tb-hof-champions__ligne--sacree .tb-hof-champions__cell:first-child::before,
.tb-hof-champions__ligne--attente .tb-hof-champions__cell:first-child::before{
  content:'';
  position:absolute;
  left:0;
  top:var(--tb-e3);
  bottom:var(--tb-e3);
  width:3px;
  border-radius:var(--tb-rond);
  background:var(--tb-or);
}
.tb-hof-champions__ligne--attente{
  background:color-mix(in srgb, var(--tb-orange) 5%, transparent);
}
.tb-hof-champions__ligne--attente .tb-hof-champions__cell:first-child::before{
  background:var(--tb-orange);
}
.tb-hof-champions__ligne--attente .tb-hof-champions__saison{
  color:color-mix(in srgb, var(--tb-orange) 60%, var(--tb-encre));
}
.tb-hof-champions__ligne--chelem{
  background:color-mix(in srgb, var(--tb-or-clair) 10%, transparent);
}
.tb-hof-champions__ligne--chelem:hover{
  background:color-mix(in srgb, var(--tb-or-clair) 16%, transparent);
}

/* ── Bascule en cartes sous 768 px : aucun défilement horizontal ─────────── */
@media (max-width:767.98px){
  .tb-hof-champions{ border-radius:var(--tb-r3); }
  .tb-hof-champions__table,
  .tb-hof-champions__thead,
  .tb-hof-champions__tbody,
  .tb-hof-champions__ligne,
  .tb-hof-champions__cell{
    display:block;
    width:auto;
  }
  .tb-hof-champions__thead{
    position:absolute;
    width:1px; height:1px;
    padding:0; margin:-1px;
    overflow:hidden; clip-path:inset(50%);
    white-space:nowrap;
  }
  .tb-hof-champions__ligne{
    padding:var(--tb-e5) var(--tb-e5) var(--tb-e5) var(--tb-e6);
    border-bottom:1px solid var(--tb-ligne);
  }
  .tb-hof-champions__cell{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--tb-e4);
    padding:var(--tb-e2) 0;
    text-align:left;
  }
  .tb-hof-champions__cell::before{
    content:attr(data-libelle);
    flex:0 0 auto;
    font-size:var(--tb-t-micro);
    font-weight:600;
    letter-spacing:.10em;
    text-transform:uppercase;
    color:var(--tb-encre-45);
  }
  .tb-hof-champions__cell--saison{
    padding-top:0;
    padding-bottom:var(--tb-e3);
    border-bottom:1px solid var(--tb-ligne);
    margin-bottom:var(--tb-e3);
  }
  .tb-hof-champions__cell--saison::before{ display:none; }
  .tb-hof-champions__cell--saison{ justify-content:flex-start; }
  .tb-hof-champions__cell--champion{ width:auto; }
  .tb-hof-champions__vainqueurs{
    justify-content:flex-end;
    gap:var(--tb-e2) var(--tb-e4);
  }
  .tb-hof-champions__ligne--sacree .tb-hof-champions__cell:first-child::before,
  .tb-hof-champions__ligne--attente .tb-hof-champions__cell:first-child::before{
    display:none;
  }
  .tb-hof-champions__ligne--sacree,
  .tb-hof-champions__ligne--attente{
    border-left:3px solid var(--tb-or);
  }
  .tb-hof-champions__ligne--attente{ border-left-color:var(--tb-orange); }
}
@media (max-width:479.98px){
  .tb-hof-champions__cell{
    flex-wrap:wrap;
    justify-content:flex-start;
  }
  .tb-hof-champions__cell::before{ flex:1 0 100%; }
  .tb-hof-champions__vainqueurs{ justify-content:flex-start; }
}


/* ══ 4. LE GRAND CHELEM ═══════════════════════════════════════════════════
   Sur fond vert : tout texte reste au-dessus de 4,5:1 (crème, crème 72 %,
   or clair). L'or mat n'est employé que pour les traits et les icônes.
   ═══════════════════════════════════════════════════════════════════════ */

.tb-chelem{ display:grid; gap:var(--tb-e10); }

/* Grille des élus : belle avec un seul, tenable jusqu'à cinq. */
.tb-chelem__elus{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),360px));
  justify-content:center;
  gap:var(--tb-e7);
  margin:0;
  padding:0;
  list-style:none;
}

.tb-chelem__carte{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--tb-e3);
  padding:var(--tb-e10) var(--tb-e6) var(--tb-e7);
  border:1px solid color-mix(in srgb, var(--tb-or) 46%, transparent);
  border-radius:var(--tb-r4);
  background:
    radial-gradient(80% 60% at 50% 0%, rgb(227 197 103 / .16) 0%, rgb(227 197 103 / 0) 70%),
    rgb(0 0 0 / .18);
  box-shadow:0 18px 48px rgb(0 0 0 / .28);
  text-align:center;
}
.tb-chelem__carte::after{
  content:'';
  position:absolute;
  inset:var(--tb-e2);
  border:1px solid color-mix(in srgb, var(--tb-or-clair) 20%, transparent);
  border-radius:var(--tb-r3);
  pointer-events:none;
}

/* Couronne posée à cheval sur le bord haut de la carte. */
.tb-chelem__couronne{
  position:absolute;
  top:0;
  left:50%;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  width:var(--tb-e10);
  height:var(--tb-e10);
  border-radius:50%;
  border:1px solid color-mix(in srgb, var(--tb-or) 50%, transparent);
  background:var(--tb-vert-profond);
}
.tb-hof-couronne{
  fill:var(--tb-or-clair);
  stroke:none;
}
.tb-hof-couronne__socle{
  stroke:var(--tb-vert-profond);
  stroke-width:2.5;
}

.tb-chelem__avatar{
  display:grid;
  place-items:center;
  padding:var(--tb-e1);
  border-radius:50%;
  background:rgb(255 255 255 / .06);
}
.tb-chelem__avatar .tb-avatar{ width:104px; height:104px; }

.tb-chelem__nom{
  margin-top:var(--tb-e2);
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.75rem;
  line-height:1.1;
  color:var(--tb-blanc);
  overflow-wrap:anywhere;
}

.tb-chelem__saison{
  font-size:var(--tb-t-micro);
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-variant-numeric:tabular-nums;
  color:var(--tb-or-clair);
}

.tb-chelem__stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--tb-e2);
  width:100%;
  margin:var(--tb-e5) 0 0;
  padding:var(--tb-e4) 0;
  border-top:1px solid var(--tb-ligne-claire);
  border-bottom:1px solid var(--tb-ligne-claire);
}
.tb-chelem__stat{ display:flex; flex-direction:column-reverse; gap:2px; min-width:0; }
.tb-chelem__stat-libelle{
  font-size:var(--tb-t-micro);
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--tb-creme-70);
}
.tb-chelem__stat-valeur{
  margin:0;
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.5rem;
  line-height:1.1;
  font-variant-numeric:tabular-nums;
  color:var(--tb-creme);
}
/* La règle générique .tb-section--vert dd passe le dd en crème 72 % : ici on
   veut la pleine intensité pour les chiffres. */
.tb-section--vert .tb-chelem__stat-valeur{ color:var(--tb-creme); }

.tb-chelem__distinction{
  display:flex;
  flex-direction:column;
  gap:var(--tb-e1);
  margin-top:var(--tb-e4);
  font-size:var(--tb-t-petit);
  color:var(--tb-creme-70);
}
.tb-chelem__distinction-ligne{ display:block; }
.tb-chelem__distinction-ligne::before{
  content:'✦';
  margin-right:var(--tb-e2);
  color:var(--tb-or-clair);
}

.tb-chelem__carte .tb-badge{ margin-top:var(--tb-e4); }

/* ── Les saisons sans doublé ─────────────────────────────────────────────── */

.tb-chelem__manquees{
  max-width:var(--tb-conteneur-etroit);
  margin-inline:auto;
  padding-top:var(--tb-e7);
  border-top:1px solid var(--tb-ligne-claire);
  text-align:center;
}

.tb-chelem__manquees-titre{
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:var(--tb-t-h3);
  color:var(--tb-blanc);
}

.tb-chelem__manquees-chapo{
  margin-top:var(--tb-e2);
  font-size:var(--tb-t-petit);
  color:var(--tb-creme-70);
}

.tb-chelem__manquees-liste{
  display:grid;
  gap:var(--tb-e3);
  margin:var(--tb-e6) 0 0;
  padding:0;
  list-style:none;
  text-align:left;
}

.tb-chelem__manquee{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:var(--tb-e2) var(--tb-e4);
  padding:var(--tb-e4) var(--tb-e5);
  border:1px solid var(--tb-ligne-claire);
  border-left:3px solid color-mix(in srgb, var(--tb-creme) 30%, transparent);
  border-radius:var(--tb-r2);
  background:rgb(0 0 0 / .14);
}
.tb-chelem__manquee--encours{
  border-left-color:var(--tb-orange);
  background:color-mix(in srgb, var(--tb-orange) 10%, rgb(0 0 0 / .14));
}

.tb-chelem__manquee-saison{
  flex:0 0 auto;
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.0625rem;
  font-variant-numeric:tabular-nums;
  color:var(--tb-or-clair);
}

.tb-chelem__manquee-texte{
  flex:1 1 16ch;
  min-width:0;
  font-size:var(--tb-t-petit);
  line-height:1.55;
  color:var(--tb-creme-70);
}


/* ══ 5. RÉCOMPENSES ET TROPHÉES ═══════════════════════════════════════════ */

.tb-recompenses{ display:grid; gap:var(--tb-e7); }

.tb-recompenses__vedettes,
.tb-recompenses__autres{
  display:grid;
  gap:var(--tb-e5);
  margin:0;
  padding:0;
  list-style:none;
}
@media (min-width:640px){
  .tb-recompenses__autres{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:768px){
  .tb-recompenses__vedettes{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (min-width:1024px){
  .tb-recompenses__autres{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}

.tb-recompense{
  display:flex;
  gap:var(--tb-e4);
  align-items:flex-start;
  padding:var(--tb-e5);
  border:1px solid var(--tb-ligne);
  border-radius:var(--tb-r3);
  background:var(--tb-blanc);
  box-shadow:var(--tb-ombre1);
}

.tb-recompense--vedette{
  flex-direction:column;
  gap:var(--tb-e4);
  padding:var(--tb-e7);
  border-color:color-mix(in srgb, var(--tb-or) 40%, transparent);
  box-shadow:var(--tb-ombre2);
}

/* La casquette verte est la pièce maîtresse du bloc. */
.tb-recompense--casquette{
  background:
    radial-gradient(90% 70% at 0% 0%, rgb(31 122 69 / .12) 0%, rgb(31 122 69 / 0) 60%),
    var(--tb-blanc);
  border-color:color-mix(in srgb, var(--tb-vert) 34%, transparent);
}
.tb-recompense--casquette .tb-recompense__titre{ color:var(--tb-vert); }

.tb-recompense--sans-objet{ background:transparent; box-shadow:none; }
.tb-recompense--sans-objet .tb-recompense__titre{ color:var(--tb-encre-70); }

.tb-recompense__icone{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:var(--tb-e9);
  height:var(--tb-e9);
  border-radius:var(--tb-rond);
  background:var(--tb-ivoire);
  border:1px solid var(--tb-ligne);
  font-size:1.5rem;
  line-height:1;
}
.tb-recompense--vedette .tb-recompense__icone{
  width:var(--tb-e10);
  height:var(--tb-e10);
  font-size:2rem;
}
.tb-recompense--casquette .tb-recompense__icone{
  background:var(--tb-vert-pale);
  border-color:color-mix(in srgb, var(--tb-vert) 26%, transparent);
}

.tb-recompense__textes{ min-width:0; }

.tb-recompense__titre{
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.1875rem;
  line-height:1.2;
  color:var(--tb-vert);
  text-wrap:balance;
}
.tb-recompense--vedette .tb-recompense__titre{ font-size:1.5rem; }

.tb-recompense__soustitre{
  margin-top:var(--tb-e1);
  font-size:var(--tb-t-micro);
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--tb-orange);
}

.tb-recompense__texte{
  margin-top:var(--tb-e3);
  font-size:var(--tb-t-petit);
  line-height:1.65;
  color:var(--tb-encre-70);
}


/* ══ 6. PALMARÈS COLLECTIF ════════════════════════════════════════════════ */

.tb-palmares{
  display:grid;
  gap:var(--tb-e6);
  margin:0;
  padding:0;
  list-style:none;
}
@media (min-width:900px){
  .tb-palmares{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.tb-palmares__carte{
  display:flex;
  flex-direction:column;
  gap:var(--tb-e4);
  padding:var(--tb-e6);
  border:1px solid var(--tb-ligne);
  border-top:3px solid var(--tb-or);
  border-radius:var(--tb-r3);
  background:var(--tb-blanc);
  box-shadow:var(--tb-ombre1);
}

.tb-palmares__tete{
  display:flex;
  align-items:flex-start;
  gap:var(--tb-e4);
}
.tb-palmares__coupe{ display:inline-flex; flex:0 0 auto; margin-top:2px; }
.tb-palmares__coupe .tb-hof-coupe-icone{
  width:30px; height:30px;
  fill:color-mix(in srgb, var(--tb-or-clair) 30%, transparent);
}
.tb-palmares__titres{ flex:1 1 auto; min-width:0; }

.tb-palmares__tournoi{
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:var(--tb-t-h3);
  line-height:1.15;
  color:var(--tb-vert);
  overflow-wrap:anywhere;
}
.tb-palmares__meta{
  margin-top:var(--tb-e1);
  font-size:var(--tb-t-petit);
  color:var(--tb-encre-70);
}

.tb-palmares__equipe{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:var(--tb-e2) var(--tb-e3);
  padding:var(--tb-e3) var(--tb-e4);
  border-radius:var(--tb-r2);
  background:var(--tb-vert-pale);
}
.tb-palmares__equipe-nom{
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.125rem;
  color:var(--tb-vert);
}
.tb-palmares__equipe-mention{
  font-size:var(--tb-t-micro);
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--tb-vert) 78%, var(--tb-encre));
}

.tb-palmares__composition-titre{
  font-size:var(--tb-t-micro);
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--tb-encre-45);
}

.tb-palmares__composition{
  display:flex;
  flex-wrap:wrap;
  gap:var(--tb-e3);
  margin:0;
  padding:0;
  list-style:none;
}
.tb-palmares__membre{
  display:flex;
  padding:var(--tb-e2) var(--tb-e4) var(--tb-e2) var(--tb-e2);
  border:1px solid var(--tb-ligne);
  border-radius:var(--tb-rond);
  background:var(--tb-ivoire);
}
.tb-palmares__membre .tb-joueur__nom{ font-size:1rem; }

.tb-palmares__pied{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:var(--tb-e2) var(--tb-e5);
  margin-top:auto;
  padding-top:var(--tb-e4);
  border-top:1px solid var(--tb-ligne);
}
.tb-palmares__points{
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.25rem;
  font-variant-numeric:tabular-nums;
  color:var(--tb-encre);
}
.tb-palmares__points-libelle,
.tb-palmares__joueurs{
  font-size:var(--tb-t-petit);
  color:var(--tb-encre-70);
}

/* ── Vignettes photo ──────────────────────────────────────────────────────
   CONFIDENTIALITÉ : ces images montrent des visages. Elles ne vivent que dans
   la section palmarès, et leur largeur d'affichage est plafonnée à
   500 px = --tb-photo-restreinte (520) moins --tb-e5 (20). Jamais en fond,
   jamais en pleine largeur.
   ─────────────────────────────────────────────────────────────────────── */

.tb-hof-galerie{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:var(--tb-e7);
  margin-top:var(--tb-e9);
}

.tb-hof-vignette{
  flex:0 1 auto;
  width:100%;
  max-width:calc(var(--tb-photo-restreinte) - var(--tb-e5));
}

.tb-hof-vignette img{
  display:block;
  width:100%;
  max-width:calc(var(--tb-photo-restreinte) - var(--tb-e5));
  height:auto;
  border-radius:var(--tb-r3);
  border:1px solid var(--tb-ligne-forte);
  box-shadow:var(--tb-ombre2);
}

.tb-hof-vignette__legende{
  margin-top:var(--tb-e3);
  font-size:var(--tb-t-petit);
  line-height:1.55;
  color:var(--tb-encre-70);
}


/* ══ 7. DISTINCTIONS INDIVIDUELLES ════════════════════════════════════════ */

.tb-distinctions{
  display:grid;
  gap:var(--tb-e6);
}
@media (min-width:768px){
  .tb-distinctions{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),620px));
    justify-content:center;
  }
}

.tb-distinctions__bloc{
  padding:var(--tb-e6);
  border:1px solid var(--tb-ligne);
  border-radius:var(--tb-r3);
  background:var(--tb-blanc);
  box-shadow:var(--tb-ombre1);
}

.tb-distinctions__tete{
  display:flex;
  align-items:flex-start;
  gap:var(--tb-e4);
  padding-bottom:var(--tb-e4);
  border-bottom:1px solid var(--tb-ligne);
}
.tb-distinctions__titres{ flex:1 1 auto; min-width:0; }
.tb-distinctions__tournoi{
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:var(--tb-t-h3);
  line-height:1.15;
  color:var(--tb-vert);
  overflow-wrap:anywhere;
}
.tb-distinctions__meta{
  margin-top:var(--tb-e1);
  font-size:var(--tb-t-petit);
  color:var(--tb-encre-70);
}

.tb-distinctions__rangs{
  display:grid;
  gap:var(--tb-e3);
  margin:var(--tb-e5) 0 0;
  padding:0;
  list-style:none;
}

.tb-distinctions__rang{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--tb-e3) var(--tb-e4);
  padding:var(--tb-e3);
  border-radius:var(--tb-r2);
  background:var(--tb-ivoire);
}
.tb-distinctions__rang--or{
  background:color-mix(in srgb, var(--tb-or-clair) 16%, var(--tb-ivoire));
}
.tb-distinctions__rang .tb-joueur{ flex:1 1 8ch; min-width:0; }

.tb-distinctions__recompenses{
  display:flex;
  flex-wrap:wrap;
  gap:var(--tb-e2);
}

.tb-distinctions__chip{
  display:inline-flex;
  align-items:center;
  gap:var(--tb-e2);
  padding:4px 10px;
  border:1px solid var(--tb-ligne);
  border-radius:var(--tb-rond);
  background:var(--tb-blanc);
  font-size:var(--tb-t-micro);
  font-weight:600;
  color:var(--tb-encre-70);
  white-space:nowrap;
}
.tb-distinctions__chip-icone{ font-size:.95rem; line-height:1; }
.tb-distinctions__chip--casquette{
  background:var(--tb-vert-pale);
  border-color:color-mix(in srgb, var(--tb-vert) 26%, transparent);
  color:var(--tb-vert);
}
.tb-distinctions__chip--or{
  background:color-mix(in srgb, var(--tb-or-clair) 26%, var(--tb-blanc));
  border-color:color-mix(in srgb, var(--tb-or) 45%, transparent);
}

.tb-distinctions__points{
  margin-left:auto;
  font-family:var(--tb-font-titre);
  font-variation-settings:'wght' 600;
  font-size:1.0625rem;
  font-variant-numeric:tabular-nums;
  color:var(--tb-encre);
  white-space:nowrap;
}


/* ══ 8. NOTES DE BAS DE SECTION ═══════════════════════════════════════════ */

.tb-hof-note{
  max-width:70ch;
  margin-top:var(--tb-e5);
  font-size:var(--tb-t-petit);
  line-height:1.6;
  color:var(--tb-encre-70);
}
.tb-hof-note::before{
  content:'';
  display:inline-block;
  width:var(--tb-e5);
  height:2px;
  margin-right:var(--tb-e3);
  vertical-align:middle;
  border-radius:var(--tb-rond);
  background:var(--tb-or);
}


/* ══ 9. MOUVEMENT RÉDUIT ══════════════════════════════════════════════════
   motion.css neutralise déjà les apparitions ; on retire ici les seules
   transitions propres à cette page.
   ═══════════════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion:reduce){
  .tb-hof-ancre,
  .tb-hof-champions__ligne{ transition:none; }
}
