/* Forum membres — page /forum/ (cf. page-forum.php). */

.forum-main { padding: 48px 0 72px; }
.forum-inner { width: 100%; } /* pleine largeur du site (le conteneur porte déjà les marges) */

/* Le titre h1 hérite de .titre1 (Gambetta) défini globalement. */
.forum-main .titre1 { margin-bottom: 24px; }

/* ── Présentation + demande d'accès (visiteur non autorisé) : tout centré ─────────────────── */
.forum-gate { max-width: 640px; margin: 0 auto; text-align: center; }
.forum-pitch {
  font-family: "Archivo", sans-serif;
  font-size: 16px; line-height: 1.6; color: var(--color-text);
  margin: 0; /* paragraphes du pitch collés (pas d'espace entre eux) */
}
.forum-note {
  font-family: "Archivo", sans-serif;
  font-size: 15px; line-height: 1.5; color: var(--color-muted);
  margin: 24px 0 0;
}
/* La note « Vous devez être connecté » colle au bouton juste en dessous. */
.forum-gate .forum-note { margin-bottom: 8px; }
.forum-gate .forum-btn { margin-top: 10px; }
.forum-request-form { margin-top: 24px; }

.forum-btn {
  display: inline-block; margin-top: 28px;
  font-family: "Archivo", sans-serif; font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.8px; text-decoration: none;
  color: #fff; background: var(--color-main);
  border: none; cursor: pointer;
  padding: 14px 28px; transition: opacity 0.2s ease;
}
.forum-btn:hover { opacity: 0.85; color: #fff; }
/* Variante « publier » : fond noir, survol orange, texte blanc (même en lien <a>). */
.forum-btn--dark { background: var(--color-text); }
.forum-btn--dark:hover { background: var(--color-main); opacity: 1; color: #fff; }
/* Le submit natif des commentaires est un <input type="submit"> stylé par GeneratePress
   (sélecteur plus spécifique) : on force la variante noire avec un sélecteur qui l'emporte. */
input[type="submit"].forum-btn { color: #fff; }
input[type="submit"].forum-btn--dark { background: var(--color-text); }
input[type="submit"].forum-btn--dark:hover { background: var(--color-main); opacity: 1; }

/* ── Texte d'accueil (au-dessus du menu) ────────────────────────────────────────────────── */
.forum-welcome {
  font-family: "Archivo", sans-serif; font-size: 15px; line-height: 1.6; color: var(--color-text);
  margin: 0 0 12px; /* le rappel d'identité vient juste dessous */
}
.forum-welcome p { margin: 0; }

/* ── Rappel de l'identité publique (pseudo · métier) ────────────────────────────────────── */
.forum-identity {
  margin: 0 0 72px; font-family: "Archivo", sans-serif; font-size: 15px; line-height: 1.6;
  color: var(--color-text);
}
.forum-identity-lead, .forum-identity-line { display: block; }
.forum-identity strong { color: var(--color-text); font-weight: 400; } /* même épaisseur, aucune distinction */
.forum-identity-todo { color: var(--color-text); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; transition: color 0.2s ease; }
.forum-identity-todo:hover { color: var(--color-main); }
.forum-identity-req { color: var(--color-text); }

/* ── Pop-up d'accueil : choix obligatoire du pseudo ─────────────────────────────────────── */
.forum-pseudo-modal {
  position: fixed; inset: 0; z-index: 100000; background: rgba(0, 0, 0, 0.6);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.forum-pseudo-dialog {
  background: #fff; max-width: 480px; width: 100%; padding: 32px 28px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.25);
}
.forum-pseudo-dialog .titre1 { margin: 0 0 16px; }
.forum-pseudo-dialog p {
  font-family: "Archivo", sans-serif; font-size: 15px; line-height: 1.6; color: var(--color-text);
  margin: 0 0 20px; text-align: justify;
}
.forum-pseudo-modal-form { display: flex; flex-direction: column; gap: 14px; align-items: stretch; }
.forum-pseudo-modal-form input[type="text"] {
  font-family: "Archivo", sans-serif; font-size: 16px; padding: 12px 14px;
  border: 1px solid var(--color-border-strong); background: #fff; width: 100%; box-sizing: border-box;
}
.forum-pseudo-modal-form .forum-btn { align-self: flex-end; margin-top: 0; }
.forum-pseudo-modal-error { color: var(--color-main); font-family: "Archivo", sans-serif; font-size: 13px; margin: 0; }

/* ── Menu horizontal des thématiques — look « barre de filtres » (atlas/agenda) ─────────────
   Libellés majuscules + séparateurs verticaux fins. Défile latéralement, scrollbar masquée ;
   des flèches (gérées par page-forum.js) apparaissent aux extrémités si ça déborde. */
.forum-menu-wrap { position: relative; margin-bottom: 8px; }
.forum-menu {
  display: flex; flex-wrap: nowrap; align-items: center;
  overflow-x: auto; scroll-behavior: smooth;
  scrollbar-width: none; -ms-overflow-style: none;   /* scrollbar masquée (Firefox/IE) */
  border-bottom: 1px solid var(--color-border);
}
.forum-menu::-webkit-scrollbar { display: none; }     /* scrollbar masquée (WebKit) */
.forum-menu-item {
  position: relative; flex: 0 0 auto; white-space: nowrap; padding: 12px 18px;
  font-family: "Archivo", sans-serif; font-size: 13px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 1.8px; color: var(--color-text);
  text-decoration: none; transition: color 0.2s ease;
}
.forum-menu-item + .forum-menu-item::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 1px; height: 16px; background: var(--color-border-strong);
}
.forum-menu-item:hover { color: var(--color-main); }
.forum-menu-item.is-active { color: var(--color-text); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }

/* Flèches de défilement (masquées par défaut, affichées par le JS si débordement).
   Fond transparent (pas de dégradé), chevrons larges. */
.forum-menu-arrow {
  position: absolute; top: 0; bottom: 1px; z-index: 2; width: 52px;
  display: flex; align-items: center; border: none; cursor: pointer; padding: 0;
  font-size: 40px; line-height: 1; color: var(--color-text); background: transparent;
  -webkit-tap-highlight-color: transparent; /* pas de flash au tap sur mobile */
}
/* Jamais de fond (le survol/tap des <button> est coloré par GeneratePress) : seule la couleur change. */
.forum-menu-arrow:hover,
.forum-menu-arrow:focus,
.forum-menu-arrow:active,
.forum-menu-arrow:focus-visible { background: transparent; outline: none; }
.forum-menu-arrow:hover { color: var(--color-main); }
.forum-menu-arrow--left  { left: 0;  justify-content: flex-start; }
.forum-menu-arrow--right { right: 0; justify-content: flex-end; }
.forum-menu-arrow[hidden] { display: none; }

/* Description de la thématique sélectionnée (sous le menu). */
.forum-theme-desc {
  font-family: "Archivo", sans-serif; font-size: 15px; line-height: 1.5; color: var(--color-muted);
  margin: 18px 0 0;
}

/* ── Liste des discussions ──────────────────────────────────────────────────────────────── */
.forum-topics { list-style: none; margin: 0; padding: 0; }
.forum-topic-row {
  display: flex; align-items: flex-start; gap: 14px;
  border-bottom: 1px solid var(--color-border);
}
.forum-topic-link {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column; gap: 6px; padding: 18px 0;
  text-decoration: none; color: var(--color-text);
}
.forum-topic-link:hover .forum-topic-title { color: var(--color-main); }
.forum-topic-title { font-family: "Gambetta", serif; font-size: 20px; line-height: 1.2; transition: color 0.2s ease; }
.forum-topic-excerpt {
  font-family: "Archivo", sans-serif; font-size: 14px; line-height: 1.5; color: var(--color-text);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.forum-topic-sub {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px;
  font-family: "Archivo", sans-serif; font-size: 12px; color: var(--color-muted);
  text-transform: uppercase; letter-spacing: 0.5px;
}
.forum-topic-cat-tag { color: var(--color-muted); font-weight: 700; }

/* Léger fondu pendant le chargement AJAX du listing (changement de thématique / tri). */
.forum-listing { transition: opacity 0.15s ease; }
.forum-listing.is-loading { opacity: 0.45; pointer-events: none; }

/* ── Tri (récentes / votées) ────────────────────────────────────────────────────────────── */
.forum-sort {
  display: flex; align-items: center; gap: 16px; margin: 20px 0 4px;
  font-family: "Archivo", sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: 1px;
}
.forum-sort-label { color: var(--color-muted); font-weight: 500; }
.forum-sort a { color: var(--color-muted); text-decoration: none; font-weight: 500; transition: color 0.2s ease; }
.forum-sort a:hover { color: var(--color-main); }
.forum-sort a.is-active { color: var(--color-text); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ── Contrôle de vote (↑ score ↓) ───────────────────────────────────────────────────────── */
.forum-vote {
  flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding-top: 16px; user-select: none;
}
.forum-vote-btn {
  border: none; background: transparent; cursor: pointer; padding: 0; line-height: 1;
  font-size: 15px; color: var(--color-text); transition: color 0.15s ease;
}
.forum-vote-btn:hover,
.forum-vote-btn:focus,
.forum-vote-btn:active,
.forum-vote-btn:focus-visible { background: transparent; outline: none; }
.forum-vote-btn:hover { color: var(--color-main); }
.forum-vote-up.is-active   { color: var(--color-main); }
.forum-vote-down.is-active { color: #3f6fb0; }
.forum-vote-score {
  font-family: "Archivo", sans-serif; font-size: 13px; font-weight: 700;
  color: var(--color-text); font-variant-numeric: tabular-nums; min-width: 1.5em; text-align: center;
}

/* Fiche discussion + réponses : vote à gauche, contenu à droite. */
.forum-topic { display: flex; align-items: flex-start; gap: 16px; padding-bottom: 32px; border-bottom: 2px solid var(--color-text); }
.forum-topic .forum-vote { padding-top: 4px; }
.forum-topic-main { flex: 1 1 auto; min-width: 0; }
.forum-reply { display: flex; align-items: flex-start; gap: 14px; }
.forum-reply .forum-vote { padding-top: 0; }
.forum-reply-main { flex: 1 1 auto; min-width: 0; }

/* ── Formulaire nouvelle discussion ─────────────────────────────────────────────────────── */
.forum-new-form { display: flex; flex-direction: column; gap: 20px; margin-top: 8px; }
.forum-field { display: flex; flex-direction: column; gap: 6px; }
.forum-field > span {
  font-family: "Archivo", sans-serif; font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; color: var(--color-text);
}
.forum-field input[type="text"],
.forum-field select,
.forum-field textarea,
.forum-comment-field textarea {
  font-family: "Archivo", sans-serif; font-size: 15px; color: var(--color-text);
  padding: 12px 14px; border: 1px solid var(--color-border-strong); background: #fff;
  width: 100%; box-sizing: border-box;
}
.forum-field textarea, .forum-comment-field textarea { resize: vertical; line-height: 1.5; }
.forum-form-actions { display: flex; align-items: center; gap: 20px; }
.forum-form-actions .forum-btn { margin-top: 0; }
.forum-cancel {
  font-family: "Archivo", sans-serif; font-size: 13px; text-transform: uppercase;
  letter-spacing: 1px; color: var(--color-muted); text-decoration: none;
}
.forum-cancel:hover { color: var(--color-main); }
.forum-error {
  font-family: "Archivo", sans-serif; font-size: 14px; color: var(--color-main); font-weight: 600;
  margin: 0 0 16px;
}

/* Rubriques du formulaire : cases à cocher (plusieurs rubriques possibles). */
.forum-field-hint {
  font-family: "Archivo", sans-serif; font-size: 13px; font-weight: 400;
  text-transform: none; letter-spacing: 0; color: var(--color-muted); margin: 0;
}
.forum-checks { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.forum-check {
  display: flex; align-items: center; gap: 8px; cursor: pointer;
  font-family: "Archivo", sans-serif; font-size: 14px; font-weight: 400;
  text-transform: none; letter-spacing: 0; color: var(--color-text);
}
.forum-check input { width: 16px; height: 16px; flex: 0 0 auto; }

/* Invitation en fin de liste, présentée comme une discussion (titre en gris, survol orange). */
.forum-newtopic-row {
  display: block; padding: 18px 0; border-bottom: 1px solid var(--color-border); text-decoration: none;
}
.forum-newtopic-title {
  font-family: "Gambetta", serif; font-size: 20px; line-height: 1.2;
  color: var(--color-text); transition: color 0.2s ease;
}
.forum-newtopic-row:hover .forum-newtopic-title { color: var(--color-main); }

/* Fiche : plusieurs rubriques affichées côte à côte. */
.forum-topic-cats { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 8px; }
.forum-topic-cats .forum-topic-cat { margin-bottom: 0; }

/* ── Fiche discussion + réponses ────────────────────────────────────────────────────────── */
.forum-back { margin: 0 0 20px; }
.forum-back a {
  font-family: "Archivo", sans-serif; font-size: 13px; text-transform: uppercase;
  letter-spacing: 1px; color: var(--color-muted); text-decoration: none;
}
.forum-back a:hover { color: var(--color-main); }
.forum-topic-cat {
  display: inline-block; margin-bottom: 8px;
  font-family: "Archivo", sans-serif; font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; color: var(--color-text); text-decoration: none;
  transition: color 0.2s ease;
}
.forum-topic-cat:hover { color: var(--color-main); }
.forum-single .titre1 { margin-bottom: 10px; }
.forum-topic-meta {
  display: flex; gap: 14px;
  font-family: "Archivo", sans-serif; font-size: 13px; color: var(--color-muted);
  text-transform: uppercase; letter-spacing: 0.5px;
}
/* Auteur · date SOUS le message, alignés à droite (le séparateur pleine largeur est sur .forum-topic). */
.forum-topic-meta--end {
  justify-content: flex-end; flex-wrap: wrap; margin-top: 16px;
}
.forum-topic-body {
  font-family: "Archivo", sans-serif; font-size: 16px; line-height: 1.6; color: var(--color-text);
}
.forum-topic-body p { margin: 0 0 16px; }

.forum-replies { margin-top: 32px; }
.forum-replies-title {
  font-family: "Archivo", sans-serif; font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.5px; color: var(--color-text); margin: 0 0 20px;
}
.forum-reply-list { list-style: none; margin: 0 0 40px; padding: 0; }
.forum-reply { padding: 18px 0; border-bottom: 1px solid var(--color-border); }
.forum-reply-meta {
  display: flex; gap: 12px; margin-bottom: 8px;
  font-family: "Archivo", sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px;
}
.forum-reply-author { font-weight: 700; color: var(--color-muted); }
.forum-reply-date { color: var(--color-muted); }
.forum-reply-body { font-family: "Archivo", sans-serif; font-size: 15px; line-height: 1.6; color: var(--color-text); }
.forum-reply-body p { margin: 0 0 12px; }

/* Réponses imbriquées (réponse à une réponse) : indentation + filet à gauche. */
.forum-reply-children { margin: 12px 0 0; padding-left: 20px; border-left: 2px solid var(--color-border); }

/* Lien « Répondre » sous une réponse (déplie le formulaire inline). */
.forum-reply-toggle {
  border: none; background: transparent; cursor: pointer; padding: 0; margin-top: 10px;
  font-family: "Archivo", sans-serif; font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; color: var(--color-muted); transition: color 0.2s ease;
}
.forum-reply-toggle:hover, .forum-reply-toggle:focus { color: var(--color-main); background: transparent; outline: none; }
.forum-reply-form--inline { margin-top: 12px; }

/* Image d'illustration (discussion ou réponse). */
.forum-msg-image { margin: 16px 0 0; }
.forum-msg-image img { max-width: 100%; height: auto; display: block; }

/* Formulaire de réponse (maison, avec image). */
.forum-reply-form { display: flex; flex-direction: column; gap: 14px; margin-top: 8px; }
.forum-reply-form[hidden] { display: none; } /* reste masqué tant que « Répondre » n'est pas cliqué */

/* Pied du formulaire de réponse : « Ajouter une image » à gauche, « Publier » à droite.
   Même padding vertical (14px) que le bouton → même hauteur, y compris quand ça passe à la
   ligne dans les sous-réponses (formulaire étroit). */
.forum-reply-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
/* Hauteur fixe identique pour les deux → égale même quand le pied passe à la ligne
   (sous-réponses profondes). Le padding vertical est neutralisé, le contenu est centré. */
.forum-reply-foot .forum-imgbox,
.forum-reply-foot .forum-btn {
  box-sizing: border-box; height: 46px; padding-top: 0; padding-bottom: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
.forum-reply-foot .forum-imgbox { flex: 0 0 auto; line-height: 1.1; }
.forum-reply-foot .forum-btn { margin-top: 0; }

/* Ligne « [rectangle image] [zone de texte] » côte à côte (formulaire de nouvelle discussion). */
.forum-reply-row { display: flex; gap: 14px; align-items: stretch; }
.forum-reply-row .forum-comment-field { flex: 1 1 auto; margin: 0; display: flex; }
.forum-reply-row .forum-comment-field textarea { width: 100%; }

/* Rectangle gris « Ajouter une image » (le champ fichier est masqué à l'intérieur). */
.forum-imgbox {
  position: relative;
  flex: 0 0 150px; display: flex; align-items: center; justify-content: center; text-align: center;
  background: #ededed; border: 1px dashed var(--color-border-strong); cursor: pointer;
  padding: 12px; box-sizing: border-box;
  font-family: "Archivo", sans-serif; font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; color: var(--color-text); line-height: 1.3;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.forum-imgbox:hover { color: var(--color-main); border-color: var(--color-main); }
.forum-imgbox.has-file { color: var(--color-main); border-style: solid; border-color: var(--color-main); }
/* Bouton « × » pour retirer l'image : visible seulement quand une image est choisie. */
.forum-imgbox-remove {
  display: none; position: absolute; top: -9px; right: -9px; width: 20px; height: 20px;
  border: none; border-radius: 50%; background: var(--color-main); color: #fff;
  font-size: 15px; line-height: 20px; text-align: center; padding: 0; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.forum-imgbox.has-file .forum-imgbox-remove { display: block; }
.forum-imgbox-remove:hover, .forum-imgbox-remove:focus { background: var(--color-text); outline: none; }

@media (max-width: 600px) {
  .forum-reply-row { flex-direction: column; }
  .forum-imgbox { flex-basis: auto; padding: 18px; }
}

@media (max-width: 900px) {
  .forum-main { padding: 0 0 48px; } /* pas d'espace entre le header et le texte sur mobile */
  .forum-menu-item:first-child { padding-left: 0; } /* « Toutes » collé à la marge gauche du site */
  .forum-welcome { margin-bottom: 12px; }
  .forum-identity { margin-bottom: 44px; }
  .forum-pitch { font-size: 15px; }
  .forum-topic-title { font-size: 18px; }
}
