/* 360RTF — Galerie photo des sorties.
   Reprend les variables et classes deja posees par rtf.css (rtf-wrap,
   rtf-grid, rtf-cell, rtf-kicker, rtf-lede, rtf-filters, rtf-btn, rtf-empty,
   rtf-tag, rtf-reveal, rtf-pagination) plutot que de les redefinir. */

.rtf-gal-tete{
  padding:56px 0 28px;
  background:linear-gradient(180deg,var(--rtf-canvas-2),var(--rtf-canvas));
  border-bottom:1px solid var(--rtf-line);
}
.rtf-gal-tete h1{
  font-family:var(--rtf-display);
  text-transform:uppercase;
  font-size:clamp(2.2rem,1.5rem+2.8vw,4rem);
  line-height:1.02;
  margin:0 0 16px;
  color:var(--rtf-ink);
}
.rtf-gal-page{ padding:48px 0 80px; }

/* ---- Cartes de sortie (Toutes les sorties / Mes sorties) ---- */
.rtf-gal-carte-sortie{
  display:flex;
  flex-direction:column;
  border-radius:14px;
  overflow:hidden;
  background:var(--rtf-panel);
  border:1px solid var(--rtf-line);
  text-decoration:none;
  color:inherit;
  height:100%;
  transition:transform .2s ease, border-color .2s ease;
}
a.rtf-gal-carte-sortie:hover{ transform:translateY(-3px); border-color:var(--rtf-accent); }
.rtf-gal-carte-media{
  position:relative;
  aspect-ratio:4/3;
  background:var(--rtf-panel-2);
  display:block;
  overflow:hidden;
}
.rtf-gal-carte-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.rtf-gal-carte-noimg{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; color:var(--rtf-ink-muted);
}
/* Etiquette « Archives 360RTF » : retirée de l'affichage le 2 septembre 2026.
   Elle induisait en erreur sur des sorties récentes (le mode « historique »
   dit seulement qu'il n'y a pas d'inscriptions fiables, pas que la sortie est
   ancienne). La règle reste ici, corrigée : .rtf-tag fixe déjà right/bottom,
   il faut donc les remettre à auto, sinon les quatre côtés sont imposés en
   même temps et la pastille s'étire sur toute la carte. */
.rtf-gal-archives{
  position:absolute; top:10px; left:10px;
  right:auto; bottom:auto;
  background:rgba(10,11,14,.72);
  backdrop-filter:blur(4px);
}
.rtf-gal-carte-corps{ padding:16px 18px 18px; display:flex; flex-direction:column; gap:4px; }
.rtf-gal-carte-corps strong{
  font-family:var(--rtf-display);
  text-transform:uppercase;
  letter-spacing:.02em;
  font-size:1.15rem;
  color:var(--rtf-ink);
}
.rtf-gal-carte-date{ color:var(--rtf-ink-muted); font-size:.88rem; }
.rtf-gal-carte-compte{ color:var(--rtf-accent); font-size:.82rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.rtf-gal-carte-actions{ display:flex; flex-wrap:wrap; gap:14px; margin:10px 0 0; }
.rtf-gal-carte-actions a{ color:var(--rtf-ink); text-decoration:none; font-size:.9rem; border-bottom:1px solid var(--rtf-line); }
.rtf-gal-carte-actions a:hover{ border-color:var(--rtf-accent); color:var(--rtf-accent); }

/* ---- Grille de photos (album, "toutes les photos") ---- */
.rtf-gal-photos-grille{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:10px;
}
.rtf-gal-vignette{ margin:0; position:relative; }
.rtf-gal-vignette a{ display:block; aspect-ratio:1/1; overflow:hidden; border-radius:8px; background:var(--rtf-panel-2); }
.rtf-gal-vignette img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.rtf-gal-vignette a:hover img{ transform:scale(1.04); }
.rtf-gal-vignette figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:18px 8px 6px;
  background:linear-gradient(0deg,rgba(0,0,0,.72),transparent);
  font-size:.72rem;
  pointer-events:none;
}
.rtf-gal-vignette figcaption a{ color:#fff; text-decoration:none; pointer-events:auto; }

/* ---- Filtres "Toutes les photos" ---- */
.rtf-gal-filtres-photos{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }
.rtf-gal-filtres-photos select{
  background:var(--rtf-panel);
  border:1px solid var(--rtf-line);
  color:var(--rtf-ink);
  border-radius:8px;
  padding:8px 12px;
  font-family:var(--rtf-body);
}

/* ---- Fiche d'un album ---- */
.rtf-gal-album-tete{ margin:0 0 28px; }
.rtf-gal-album-tete .rtf-kicker a{ display:inline-flex; align-items:center; gap:6px; color:var(--rtf-ink-muted); text-decoration:none; }
.rtf-gal-album-tete .rtf-kicker a:hover{ color:var(--rtf-accent); }
.rtf-gal-album-tete .rtf-kicker svg{ transform:rotate(180deg); }
.rtf-gal-album-tete h1{
  font-family:var(--rtf-display);
  text-transform:uppercase;
  font-size:clamp(1.8rem,1.3rem+2vw,3rem);
  margin:6px 0 8px;
}
.rtf-gal-avis-retrait{
  margin:12px 0 0;
  font-size:.7rem;
  line-height:1.5;
  color:var(--rtf-ink-muted);
  opacity:.75;
}
.rtf-gal-avis-retrait a{ color:var(--rtf-accent); text-decoration:none; }
.rtf-gal-avis-retrait a:hover{ text-decoration:underline; }
.rtf-gal-note{
  margin-top:24px;
  padding:14px 16px;
  border-radius:10px;
  background:var(--rtf-panel);
  border:1px solid var(--rtf-line);
  color:var(--rtf-ink-muted);
  font-size:.92rem;
}

/* ---- Formulaire d'ajout de photos ---- */
.rtf-gal-ajout{
  margin-top:48px;
  padding:28px;
  border-radius:16px;
  background:var(--rtf-panel);
  border:1px solid var(--rtf-line);
}
.rtf-gal-ajout h2{
  font-family:var(--rtf-display);
  text-transform:uppercase;
  margin:0 0 6px;
  font-size:1.5rem;
}
.rtf-gal-claim{ border:0; padding:0; margin:14px 0 18px; display:flex; flex-wrap:wrap; gap:18px; }
.rtf-gal-claim legend{ width:100%; font-weight:600; margin-bottom:8px; color:var(--rtf-ink); }
.rtf-gal-claim label{ display:flex; align-items:center; gap:6px; color:var(--rtf-ink-muted); font-size:.92rem; cursor:pointer; }

.rtf-gal-drop{
  border:2px dashed var(--rtf-line);
  border-radius:12px;
  padding:32px 20px;
  text-align:center;
  color:var(--rtf-ink-muted);
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.rtf-gal-drop:hover,
.rtf-gal-drop:focus-visible,
.rtf-gal-drop.is-survol{ border-color:var(--rtf-accent); background:rgba(255,26,26,.04); outline:none; }
.rtf-gal-drop svg{ margin-bottom:8px; color:var(--rtf-accent); }
.rtf-gal-drop-lien{ color:var(--rtf-accent); text-decoration:underline; }

.rtf-gal-apercu{
  list-style:none; margin:18px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px;
}
.rtf-gal-apercu li{
  position:relative;
  aspect-ratio:1/1;
  border-radius:10px;
  overflow:hidden;
  background:var(--rtf-panel-2);
}
.rtf-gal-apercu img{ width:100%; height:100%; object-fit:cover; display:block; }
.rtf-gal-apercu .rtf-gal-retirer{
  position:absolute; top:6px; right:6px;
  width:24px; height:24px; border-radius:50%;
  background:rgba(10,11,14,.75); color:#fff; border:0;
  font-size:14px; line-height:1; cursor:pointer;
}
.rtf-gal-apercu .rtf-gal-progres{
  position:absolute; left:0; right:0; bottom:0; height:4px;
  background:rgba(255,255,255,.15);
}
.rtf-gal-apercu .rtf-gal-progres i{ display:block; height:100%; width:0%; background:var(--rtf-accent); transition:width .15s ease; }
.rtf-gal-apercu .rtf-gal-etat{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(10,11,14,.6);
  color:#fff; font-size:1.4rem; opacity:0;
  transition:opacity .2s ease;
}
.rtf-gal-apercu li.is-ok .rtf-gal-etat,
.rtf-gal-apercu li.is-erreur .rtf-gal-etat{ opacity:1; }
.rtf-gal-apercu li.is-erreur{ outline:2px solid var(--rtf-ko); }

.rtf-gal-ajout-actions{ margin:18px 0 0; }
.rtf-gal-ajout-message{ margin:12px 0 0; font-size:.9rem; color:var(--rtf-ink-muted); min-height:1.2em; }
.rtf-gal-ajout-message.is-ok{ color:var(--rtf-ok); }
.rtf-gal-ajout-message.is-erreur{ color:var(--rtf-ko); }

/* Barre de progression d'ensemble : visible pendant tout l'envoi, pour
   qu'un lot de dix ou quinze photos se voie vraiment avancer. */
.rtf-gal-progres-global{ margin:20px 0 0; }
.rtf-gal-progres-global-barre{
  height:10px; border-radius:999px; overflow:hidden;
  background:var(--rtf-panel-2); border:1px solid var(--rtf-line);
}
.rtf-gal-progres-global-barre i{
  display:block; height:100%; width:0%;
  background:var(--rtf-accent); transition:width .2s ease;
}
.rtf-gal-progres-global-texte{
  margin:8px 0 0; font-size:.9rem; font-weight:600; color:var(--rtf-ink); text-align:center;
}

/* Confirmation finale : remplace la zone d'ajout une fois l'envoi termine
   avec succes, impossible a manquer. */
.rtf-gal-succes{
  margin-top:20px; padding:24px;
  border-radius:12px;
  background:var(--rtf-ok-sourd);
  border:1px solid var(--rtf-ok);
  text-align:center;
}
.rtf-gal-succes-icone{
  display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; margin:0 auto 12px;
  border-radius:50%; background:var(--rtf-ok); color:#0A0B0E;
  font-size:1.5rem; font-weight:700;
}
.rtf-gal-succes p{ margin:0; color:var(--rtf-ink); font-size:1rem; font-weight:600; }

@media (max-width:600px){
  .rtf-gal-ajout{ padding:20px; }
  .rtf-gal-drop{ padding:24px 14px; }
}

/* ---- Integration ailleurs sur le site ---- */

/* Nombre de photos sur une carte de sortie (accueil, agenda, "la suite du programme") */
.rtf-card-galerie{
  display:flex; align-items:center; gap:6px;
  margin:8px 0 0; font-size:.82rem; color:var(--rtf-ink-muted);
}
.rtf-card-galerie a{ display:inline-flex; align-items:center; gap:6px; color:inherit; text-decoration:none; }
.rtf-card-galerie a:hover{ color:var(--rtf-accent); }

/* Bloc galerie sur la fiche d'une sortie */
.rtf-gal-bloc{ margin-top:clamp(40px,6vw,72px); padding-top:clamp(24px,3vw,40px); border-top:1px solid var(--rtf-line); }
.rtf-gal-bloc h2{ font-size:clamp(1.5rem,1.2rem+1vw,2rem); text-transform:uppercase; margin:0 0 18px; }
.rtf-gal-bloc-grille{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:8px; margin-bottom:20px;
}
.rtf-gal-bloc-actions{ display:flex; flex-wrap:wrap; gap:12px; margin:0; }

/* Liens galerie dans "Mes sorties" (espace membre) */
.rtf-insc-galerie{
  display:flex; flex-wrap:wrap; gap:14px;
  margin:6px 0 0; padding:0 2px;
}
.rtf-insc-galerie a{ font-size:.85rem; color:var(--rtf-accent); text-decoration:none; }
.rtf-insc-galerie a:hover{ text-decoration:underline; }
