/*
 * Styles front-end du plugin "INFINITY - Inscriptions Stages".
 * Entièrement scopés sous .infinity-stages pour ne jamais interférer avec le
 * thème Astra ou les styles Elementor du reste du site.
 * Les couleurs/polices par défaut reprennent la charte d'infinitycombat.fr
 * (rouge #dd0b0b, encre #1E1810, fond #F8F7F3, Poppins + Lato) et sont
 * surchargeables depuis Stages > Réglages sans toucher au code.
 */
.infinity-stages{
  --is-accent:#dd0b0b;
  --is-ink:#1E1810;
  --is-body:#62615C;
  --is-offwhite:#F8F7F3;
  --is-font-heading:'Poppins', sans-serif;
  --is-font-body:'Lato', sans-serif;
  --is-radius:4px;
  color:var(--is-body);
  font-family:var(--is-font-body);
  max-width:1200px;
  margin:0 auto;
}
.infinity-stages *{ box-sizing:border-box; }
.infinity-stages h3{
  font-family:var(--is-font-heading);
  font-weight:700;
  color:var(--is-ink);
  margin:0 0 .4em;
}

.infinity-stages-empty{ text-align:center; padding:40px 0; }

/* NOTICES */
.infinity-stages-notice{
  border:1px solid transparent;
  border-radius:var(--is-radius);
  padding:16px 20px;
  margin-bottom:28px;
  font-size:.95rem;
}
.infinity-stages-notice-success{ background:#eaf7ee; border-color:#bfe6cb; color:#245c34; }
.infinity-stages-notice-error{ background:#fdecec; border-color:#f3b9b9; color:#8a1f1f; }

/* GRILLE DE STAGES */
.infinity-stages-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  margin-bottom:40px;
}
.infinity-stages-card{
  background:#fff;
  border:1px solid #e4e1d8;
  display:flex;
  flex-direction:column;
}
.infinity-stages-card-media img{
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
}
.infinity-stages-photo-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  aspect-ratio:4/5;
  background:#F1EFE9;
  border-bottom:1px dashed #4B4F58;
  color:#4B4F58;
  font-size:.8rem;
  font-style:italic;
  text-align:center;
  padding:16px;
}
.infinity-stages-photo-placeholder span{ font-size:1.6rem; font-style:normal; }
.infinity-stages-card-body{ padding:18px; display:flex; flex-direction:column; gap:4px; flex:1; }
.infinity-stages-dates{ font-weight:700; color:var(--is-ink); margin:0; font-size:.9rem; }
.infinity-stages-meta{ margin:0; font-size:.85rem; }
.infinity-stages-card-complet{ opacity:.65; }

.infinity-stages-badge{
  display:inline-block;
  margin-top:12px;
  align-self:flex-start;
  background:#efece3;
  color:var(--is-body);
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:6px 12px;
  border-radius:var(--is-radius);
}

/* BOUTONS (style "outline" de la charte) */
.infinity-stages-btn{
  display:inline-block;
  font-family:var(--is-font-body);
  font-weight:700;
  font-size:.92rem;
  color:var(--is-ink);
  background:transparent;
  border:2px solid var(--is-ink);
  border-radius:var(--is-radius);
  padding:11px 22px;
  cursor:pointer;
  margin-top:14px;
  align-self:flex-start;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.infinity-stages-btn:hover{
  background:var(--is-accent);
  border-color:var(--is-accent);
  color:#fff;
}
.infinity-stages-btn-submit{ align-self:auto; width:100%; text-align:center; margin-top:24px; }

/* FORMULAIRE D'INSCRIPTION */
.infinity-stages-form-wrap{
  background:var(--is-offwhite);
  border:1px solid #e4e1d8;
  padding:32px;
}
.infinity-stages-form-wrap h3{ font-size:1.3rem; margin-bottom:20px; }
.infinity-stages-field{ margin-bottom:18px; display:flex; flex-direction:column; gap:6px; }
.infinity-stages-field label{ font-size:.85rem; font-weight:700; color:var(--is-ink); }
.infinity-stages-field input,
.infinity-stages-field select,
.infinity-stages-field textarea{
  font-family:var(--is-font-body);
  font-size:.95rem;
  padding:10px 12px;
  border:1px solid #d8d4c8;
  border-radius:var(--is-radius);
  background:#fff;
  color:var(--is-ink);
  width:100%;
}
.infinity-stages-field input:focus,
.infinity-stages-field select:focus,
.infinity-stages-field textarea:focus{
  outline:2px solid var(--is-accent);
  outline-offset:1px;
}
.infinity-stages-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.infinity-stages-honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

@media (max-width:960px){
  .infinity-stages-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px){
  .infinity-stages-grid{ grid-template-columns:1fr; }
  .infinity-stages-field-row{ grid-template-columns:1fr; }
  .infinity-stages-form-wrap{ padding:22px; }
}
