/* Espace resserré autour du bloc formulaire bénévoles */
.section--tight-bottom {
  padding-bottom: 0.5rem !important;
  margin-bottom: 0 !important;
}

.section--tight-top {
  padding-top: 0.25rem !important;
  margin-top: 0 !important;
}

/* (revert) retirer la variante compacte top */
/* .section--compact-top supprimée */

/* Ajustements mobiles pour un rendu moins tassé */
@media (max-width: 576px) {
  .section--tight-bottom { padding-bottom: 0.6rem !important; }
  .section--tight-top { padding-top: 0.5rem !important; }
}

/* Neutraliser la marge haute du premier élément dans la section serrée */
.section--tight-top > .container > *:first-child {
  margin-top: 0 !important;
}

/* En-tête visuelle au-dessus du formulaire intégré */
.form-embed-header {
  margin: 0 0 0.75rem 0;
}
.form-embed-header img {
  width: 100%;
  height: auto; /* pas de crop, conserve les proportions */
  max-width: 900px; /* limite la largeur pour éviter un visuel trop imposant */
  display: block;
  margin-left: auto;
  margin-right: auto;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}

@media (max-width: 576px) {
  .form-embed-header img {
    height: auto; /* pas de crop sur mobile non plus */
  }
}

/* Conteneur légèrement plus large pour le bloc formulaire bénévoles */
.container-wide {
  max-width: 1320px; /* plus large que container lg Bootstrap classique */
}
@media (min-width: 1400px) {
  .container-wide { max-width: 1440px; }
}

/* Hauteur de l'iframe Google Forms (retour aux valeurs stables, sans JS) */

.gform-iframe {
  width: 100%;
  height: 150vh; /* base desktop par défaut */
  border: 0;
}

/* Petits écrans */
@media (max-width: 576px) {
  .gform-iframe { height: 200vh; }
}

/* Tablettes */
@media (min-width: 577px) and (max-width: 991.98px) {
  .gform-iframe { height: 170vh; }
}

/* Grands écrans */
@media (min-width: 992px) and (max-width: 1399.98px) {
  .gform-iframe { height: 150vh; }
}

/* Très grands écrans */
@media (min-width: 1400px) {
  .gform-iframe { height: 140vh; }
}
/* Pré-footer: libellé au-dessus du logo */
.pre-brand {
  display:block;
  margin-bottom:12px;
  color:#fff;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:600;
  text-align:center;
}
/* Contexte du pré-footer sombre: forcer blanc même si .text-muted est présent */
.bg-gray-900 .pre-brand,
.section.bg-gray-900 .pre-brand,
.pre-brand.small.text-uppercase.text-muted {
  color:#fff !important;
  opacity:1 !important;
  text-align:center !important;
}
@media (max-width: 576px) {
  .pre-brand { font-size:.68rem; margin-bottom:10px; }
}

/* Taille du logo uniquement sous le libellé du pré-footer */
.pre-brand + .brand .brand-logo-light {
  max-width: 180px;
  height: auto;
  width: auto;
  display:block;
  margin:4px auto 0;
}
@media (max-width: 576px) {
  .pre-brand + .brand .brand-logo-light { max-width: 150px; }
}

/* CTA partenaires (section bas de page) */
.cta-partenaire,
section.cta-partenaire {
  /* Laisser le fond gérer par bg-default du thème */
  position: relative;
  overflow: hidden;
}
.cta-partenaire .cta-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: .2px;
  margin-bottom: .5rem;
}
.cta-partenaire .cta-subtitle {
  font-size: 1.1rem;
  opacity: .9;
  margin: 0 auto 1.5rem;
  max-width: 52ch;
}
.cta-partenaire .cta-icon {
  font-size: 2.5rem;
  margin-bottom: .75rem;
}

/* Boîte contrastée pour focaliser le regard */
.cta-box {
  background: rgba(16, 18, 34, 0.85);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  padding: 34px 26px 36px;
  box-shadow: 0 20px 60px -20px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.04) inset;
  position: relative;
}
.cta-box::before {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  /* Halo neutre discret */
  background: radial-gradient(1200px 220px at 50% 0%, rgba(59,72,99,0.25), rgba(31,41,55,0.18), rgba(0,0,0,0) 70%);
  pointer-events: none;
  filter: blur(2px);
}
.cta-pretitle {
  font-size: .78rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #9fb3ff; /* accent froid et lisible */
  opacity: .95;
  font-weight: 800;
  margin-bottom: 6px;
}
.cta-partenaire .button.button-lg {
  font-size: 1.05rem;
  padding: 18px 34px;
  /* Ombre bouton ajustée au magenta brand */
  box-shadow: 0 10px 30px rgba(217,14,144,0.35);
}

/* Bouton avec légère pulsation pour attirer l’œil (non intrusif) */
.button-cta-pulse {
  position: relative;
  will-change: transform, box-shadow;
  animation: ctaPulse 2.8s ease-in-out infinite;
}
@keyframes ctaPulse {
  0%, 100% { transform: translateZ(0) scale(1); box-shadow: 0 0 0 rgba(0,0,0,0); }
  50% { transform: translateZ(0) scale(1.02); box-shadow: 0 10px 24px rgba(0,0,0,.25); }
}

@media (max-width: 575.98px) {
  .cta-partenaire .cta-title { font-size: 1.6rem; }
  .cta-partenaire .cta-subtitle { font-size: 1rem; }
}

/* Bande CTA top et bouton flottant retirés (styles supprimés) */
/*
========================================
  AZERTY PARTY - Feuille de styles personnalisée
  ----------------------------------------
  Glossaire des sections :
  1. Animations & page 404
  2. Icônes FontAwesome
  3. Boutons tournois
  4. Blocs tournois
  5. Divers (FAQ, contact, etc.)
  6. Barres de progression
  7. Responsive & layout accordion
  8. Boutons full-toggle
  9. Correction du débordement visuel
 10. Countdown & preloader
 11. Galerie responsive
 12. Boutons année & groupe
========================================
*/

/* === 1. ANIMATIONS & PAGE 404 ===
   Effets visuels et animations pour la page d'erreur 404
*/
@keyframes pulse404 {
  0% { transform: scale(1); }
  100% { transform: scale(1.05); }
}

.error-404-container {
  animation: fadeInUp 0.8s ease-out;
}

.error-content {
  animation: fadeInUp 0.8s ease-out 0.2s both;
}

.error-actions {
  animation: fadeInUp 0.8s ease-out 0.4s both;
}

.quick-nav {
  animation: fadeInUp 0.8s ease-out 0.6s both;
}

/* === MERCI / POST-PURCHASE SECTIONS === */
.purchase-help, .purchase-checklist {
  max-width: 760px;
  margin: 2rem auto 0;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 14px;
  padding: 1.75rem 1.75rem 1.9rem;
  box-shadow: 0 10px 35px -10px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.05);
  position: relative;
}
.purchase-help:before, .purchase-checklist:before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(120deg,rgba(217,14,144,0.12),rgba(130,46,168,0.10) 35%,rgba(255,255,255,0) 70%);
}
.purchase-help summary {
  font-weight:600;
  font-size:1rem;
  list-style:none;
  cursor:pointer;
  position:relative;
}
.purchase-help summary::-webkit-details-marker { display:none; }
.purchase-help[open] summary { color:#d90e90; }
.purchase-help ul {
  margin: .75rem 0 0;
  padding-left: 1.1rem;
  font-size:.95rem;
  line-height:1.4;
}
.purchase-help ul li { margin-bottom:.4rem; }
.purchase-help a { color:#d90e90; }
.purchase-help a:hover { text-decoration:underline; }

.purchase-checklist h2 {
  font-size:1.15rem;
  font-weight:700;
  margin:0 0 1rem;
  text-align:center;
  letter-spacing:.5px;
}
.purchase-checklist ul {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.55rem .9rem;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  font-size:.95rem;
}
.purchase-checklist li {
  position:relative;
  padding-left:1.35rem;
}
.purchase-checklist li:before {
  content:"✔";
  position:absolute;
  left:0;
  top:0;
  color:#2f9e44;
  font-weight:600;
  font-size:.95rem;
}
@media (max-width:600px){
  .purchase-help, .purchase-checklist { padding:1.25rem 1.1rem 1.4rem; }
  .purchase-checklist ul { grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
}


@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.button-secondary {
  transition: all 0.3s ease;
}

.button-secondary:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

/* === 2. ICÔNES FONTAWESOME ===
   Configuration et styles pour les icônes FontAwesome
*/
.fa, .fa-brands, .fa-classic, .fa-regular, .fa-sharp, .fa-solid, .fab, .far, .fas {
  display: inline-grid;
}

/* Configuration simplifiée FontAwesome 6 */
.icon::before {
  display: inline-block;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
}

/* Icônes spécifiques */
.login::before {
  font: var(--fa-font-solid);
  content: "\f007";
}

.tps::before {
  font: var(--fa-font-solid);
  content: "\f1ea";
}
.icon-custom {
    font-size: 25px;
}

.ui-to-top-custom {
  line-height: 0;
  padding-top: 25px;
}

/* === 3. BOUTONS TOURNOIS ===
   Styles pour les boutons officiels et fun des tournois avec effets de survol
*/
.button-tournois-officiel:before, .button-tournois-officiel:after, .button-tournois-officiel:focus:before, .button-tournois-officiel:focus:after, .button-tournois-officiel:active:before, .button-tournois-officiel:active:after,
.button-tournois-fun:before, .button-tournois-fun:after, .button-tournois-fun:focus:before, .button-tournois-fun:focus:after, .button-tournois-fun:active:before, .button-tournois-fun:active:after {
  z-index: -2;
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  transition: .3s ease-out all;
}
.button-tournois-officiel, .button-tournois-officiel:focus, .button-tournois-officiel:active,
.button-tournois-fun, .button-tournois-fun:focus, .button-tournois-fun:active {
  color: #ffffff;
  z-index: 1;
  margin-top: 0px;
}
.button-tournois-officiel:after, .button-tournois-officiel:focus:after, .button-tournois-officiel:active:after,
.button-tournois-fun:after, .button-tournois-fun:focus:after, .button-tournois-fun:active:after {
  opacity: 0;
}
.button-tournois-officiel:hover,
.button-tournois-fun:hover {
  color: #ffffff;
}
.button-tournois-officiel:hover:after,
.button-tournois-fun:hover:after {
  opacity: 1;
  z-index: -1;
}
.button-tournois-officiel:before {
  background-image: -webkit-linear-gradient(top, #ffcc5d 0%, #aa9100 100%);
  background-image: linear-gradient(to top, #ad9e17 0%, #aa9100 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF822EA8', endColorstr='#FFD90E90', GradientType=1);
}
.button-tournois-officiel:after {
  background-image: -webkit-linear-gradient(bottom, #aa9100 15%, #ffcc5d 85%);
  background-image: linear-gradient(to bottom, #aa9100 15%, #ffcc5d 85%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD90E90', endColorstr='#FF822EA8', GradientType=1);
}
.button-tournois-fun:before {
  background-image: -webkit-linear-gradient(top, #ff6969 30%, #cf0556 100%);
  background-image: linear-gradient(to top, #ff6969, 30%, #cf0556 70%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF822EA8', endColorstr='#FFD90E90', GradientType=1);
}
.button-tournois-fun:after {
  background-image: -webkit-linear-gradient(bottom, #cf0556 15%, #ffabab 85%);
  background-image: linear-gradient(to bottom, #cf0556 15%, #ffabab 85%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD90E90', endColorstr='#FF822EA8', GradientType=1);
}

/* === 4. BLOCS TOURNOIS ===
   Mise en page des conteneurs et éléments des tournois
*/
.tournois-body .button {
  position: relative;
  bottom: 0px;
  left: 0;
  width: 100%;
  padding: 15px;
  background-color: #D43171;
  color: #FFFFFF;
  font-size: 17px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  border-radius: 0 0 1.75em 1.75em;
}
.tournois-body {
  position : relative;
}
.tournois-body .button {
  position: relative;
  bottom: 0px;
  left: 0;
  width: 100%;
  padding: 15px;
  background-color: #D43171;
  color: #FFFFFF;
  font-size: 17px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  border-radius: 0 0 1.75em 1.75em;
}
.tournois-officiel {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  position: relative;
  min-width: 290px;
  max-width: 350px;
  min-height: 330px;
  max-height: 350px;
  margin-left: auto;
  margin-right: auto;
  padding: 0px;
  background: linear-gradient(to bottom, #aa9100, #ffcc5d) border-box;
  border-radius: 2em;
  border: 2px solid white;
}
.tournois-fun {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  position: relative;
  min-width: 290px;
  max-width: 350px;
  min-height: 330px;
  max-height: 330px;
  margin-left: auto;
  margin-right: auto;
  padding: 0px;
  background: linear-gradient(to bottom, #cf0556, rgba(255, 175, 175, 0.699)) border-box;
  border-radius: 2em;
  border: 2px solid white;
}
.tournois-img {
  margin-top: 20px;
}
.tournois-index {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  height: 100%;
  position: relative;
  height: 200px;
  margin-left: auto;
  margin-right: auto;
  padding: 0px;
  border-radius: 2em;
  border: 4px solid #F54A4A;
}
  .tournois-index p {
  text-align: center;
}

/* === 5. DIVERS (FAQ, CONTACT, ETC.) ===
   Styles pour la FAQ, le contact et les backgrounds
*/
.customFaq { 
  background-image: linear-gradient(to top, #e89b9b 0%, #cf4c4c 100%);
}

.contactCustomPadd {
  padding: 150px;
}

.bg-accordion {
  background-color: #2e255e;
}

/* === 6. BARRES DE PROGRESSION ===
   Styles pour les barres de progression des tournois
*/
.progress-bar.lol {
  position: relative;
  width: 100%;
  height: 30px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 1px;
  overflow: hidden;
  margin-bottom: 0px;
  margin-top: 20px;
}

.progress-bar.fun {
  position: relative;
  width: 100%;
  height: 30px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 1px;
  overflow: hidden;
  margin-bottom: 0px;
  margin-top: 30px;
}

.progress {
  height: 100%;
  border-radius: 1px;
  transition: width 0.4s ease-in-out, background-color 0.4s ease;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.progress.low {
  background-color: #a5ff9dc0;
}

.progress.medium {
  background-color: #ffaf79af;
}

.progress.high {
  background-color: #ff9d9dc0;
}

.progress-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 13px;
  font-weight: bold;
  white-space: nowrap;
  pointer-events: none;
  z-index: 2;
}

.button.disabled {
  pointer-events: none;
  opacity: 0.5;
  cursor: not-allowed;
}

/* === 7. RESPONSIVE & LAYOUT ACCORDION ===
   Styles responsive pour l'accordéon et ses éléments
*/
@media (max-width: 575.98px) {
  #accordion .card {
    margin-bottom: 12px;
    border-radius: 8px;
    overflow: hidden;
  }

  #accordion .card-header {
    padding: 10px 16px;
    background: linear-gradient(to right, #e64980, #ff6f61);
  }

  #accordion .card-header .btn-link {
    display: block;
    text-align: left;
    white-space: normal;
    padding: 0;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
  }

  #accordion .card-header .btn-link:hover,
  #accordion .card-header .btn-link:focus {
    text-decoration: none;
    color: #fdd;
  }

  #accordion .card-body {
    font-size: 14px;
    line-height: 1.5;
    padding: 12px 16px;
    text-align: left;
  }

  #accordion h4.heading-4 {
    font-size: 16px;
    line-height: 1.4;
    margin: 0;
  }

  dd {
    margin-left: 0;
    margin-bottom: 0.8em;
  }

  iframe.google-map-container {
    min-height: 300px !important;
  }
}

@media (min-width: 576px) {
  #accordion .card {
    margin-bottom: 16px;
    border-radius: 12px;
    border: 1px solid #ccc;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease;
  }

  #accordion .card:hover {
    transform: scale(1.01);
  }

  #accordion .card-header {
    padding: 16px 24px;
    background: linear-gradient(to right, #e64980, #ff6f61);
    color: #fff;
  }

  #accordion .card-header .btn-link {
    display: block;
    width: 100%;
    text-align: left;
    font-size: 17px;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    transition: color 0.2s ease;
  }

  #accordion .card-header .btn-link:hover {
    color: #fdf1f1;
  }

  #accordion .card-body {
    padding: 20px 24px;
    font-size: 15px;
    line-height: 1.6;
    background-color: #2e255e;
    color: #f1f1f1;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }

  #accordion h4.heading-4 {
    font-size: 18px;
    line-height: 1.4;
    margin: 0;
  }

  iframe.google-map-container {
    min-height: 500px;
    width: 100%;
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
  }
}

#accordion .card-header .btn-link {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  text-align: left;
  background: none;
  border: none;
}

/* === 8. BOUTONS FULL-TOGGLE ===
   Boutons qui prennent toute la largeur du header
*/
.btn.full-toggle {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  text-align: left;
  background: transparent;
  border: none;
  padding: 16px 24px;
  font-size: 17px;
  font-weight: bold;
  color: #fff;
}

@media (min-width: 576px) {
  .card-header {
    padding: 0;
  }

  .btn.full-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
    padding: 16px 24px;
    border: none;
    background: linear-gradient(to right, #e64980, #ff6f61);
    color: #fff;
    font-size: 17px;
    font-weight: bold;
    text-align: left;
  }

  .btn.full-toggle:hover {
    background: linear-gradient(to right, #ff6f61, #e64980);
  }
}

@media (min-width: 576px) {
  .card-header {
    padding: 0;
    min-height: 64px;
    position: relative;
  }

  .card-header .btn.full-toggle {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 16px 24px;
    border: none;
    background: linear-gradient(to right, #e64980, #ff6f61);
    color: #fff;
    font-size: 17px;
    font-weight: bold;
    text-align: left;
    width: 100%;
    height: 100%;
    z-index: 1;
  }

  .card-header .btn.full-toggle:hover {
    background: linear-gradient(to right, #ff6f61, #e64980);
  }
}

@media (min-width: 576px) {
  .card-header {
    padding: 0 !important;
    position: relative !important;
    min-height: 80px !important;
    overflow: visible !important;
  }

  .card-header .btn.full-toggle {
    all: unset;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 16px 24px;
    font-size: 18px;
    font-weight: bold;
    background: linear-gradient(to right, #e64980, #ff6f61);
    color: white;
    cursor: pointer;
    z-index: 2;
  }

  .card-header .btn.full-toggle:hover {
    background: linear-gradient(to right, #ff6f61, #e64980);
  }
}


.btn-full-toggle {
  display: block;
  width: 100%;
  text-align: left;
  background: linear-gradient(to right, #e64980, #ff6f61);
  color: white;
  padding: 0;
  font-size: 20px;
  font-weight: 600;
  border: none;
  border-radius: 12px;
  min-height: 80px;
  transition: background 0.3s ease;
}

.btn-text {
  display: inline-block;
  padding: 24px 24px;
  line-height: 1.4;
  letter-spacing: 0.2px;
  width: 100%;
}

/* === 9. CORRECTION DU DÉBORDEMENT VISUEL ===
   Empêche le débordement horizontal du site
*/
body {
  overflow-x: hidden;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
html {
  height: 100%;
  overflow-x: hidden;
}
/* Modale règlement PDF */
.regl-modal .modal-content { box-shadow:0 10px 38px -6px rgba(0,0,0,0.65), 0 2px 8px rgba(0,0,0,0.5); border-radius:18px; }
.regl-modal .modal-header .close { text-shadow:none; }
.regl-modal .modal-header { background:#202746; border-top-left-radius:18px; border-top-right-radius:18px; padding:14px 20px 12px; }
.regl-modal .modal-title { font-size:1rem; font-weight:700; letter-spacing:.5px; }
.regl-modal .modal-dialog { max-width:1200px; width:100%; }
.regl-modal .modal-content { background:#181c2a; border:1px solid rgba(255,255,255,0.15); display:flex; flex-direction:column; height:82vh; max-height:calc(100vh - 60px); overflow:hidden; }
.regl-modal .modal-body { background:#10131d; position:relative; flex:1 1 auto; padding:0; overflow:hidden; }
.regl-modal .modal-body iframe { width:100%; height:100%; border:0; display:block; }
.regl-modal .modal-footer { border-top:1px solid rgba(255,255,255,0.08); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:10px 16px 12px; background:#181c2a; }
.regl-modal .modal-footer .button { margin:0; }
.regl-modal .modal-header .close { color:#fff; opacity:.9; font-size:32px; line-height:1; padding:0 6px; }
.regl-modal .modal-header .close:hover { opacity:1; }
/* Raffinage styles modale règlement */
.regl-modal .modal-header { padding:12px 18px 10px; }
.regl-modal .modal-header .close { position:relative; display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; font-size:26px; border-radius:12px; transition:background .25s, opacity .25s; margin:-4px -8px -4px auto; }
.regl-modal .modal-header .close:hover { background:rgba(255,255,255,0.08); }
.regl-modal .modal-header .close:active { background:rgba(255,255,255,0.14); }
.regl-modal .modal-footer { align-items:center; }
.regl-modal .modal-footer .modal-foot-note { font-size:.62rem; letter-spacing:.55px; text-transform:uppercase; color:#9fb3ff; font-weight:600; opacity:.9; }
.regl-modal .modal-footer .btn-wrap { display:flex; gap:10px; align-items:center; }
.regl-modal .modal-footer .button { font-size:.63rem; letter-spacing:.9px; font-weight:700; text-transform:uppercase; padding:10px 18px 9px; line-height:1; border-radius:40px; min-height:0; box-shadow:0 2px 6px rgba(0,0,0,0.45); }
.regl-modal .modal-footer .button-primary { background:linear-gradient(90deg,#e64980,#ff6f61); border:none; }
.regl-modal .modal-footer .button-secondary { background:linear-gradient(90deg,#2d3550,#222a40); border:1px solid rgba(255,255,255,0.15); }
.regl-modal .modal-footer .button-secondary:hover { background:linear-gradient(90deg,#e64980,#ff6f61); border-color:transparent; }
.regl-modal .modal-footer .button-default-outline { background:transparent; border:1px solid rgba(255,255,255,0.22); color:#d5d9e6; }
.regl-modal .modal-footer .button-default-outline:hover { background:rgba(255,255,255,0.08); }
.regl-modal .modal-footer .button:focus { outline:2px solid rgba(255,255,255,0.25); outline-offset:2px; }
@media (max-width:600px){
  .regl-modal .modal-footer { flex-direction:column; align-items:stretch; gap:14px; }
  .regl-modal .modal-footer .btn-wrap { flex-wrap:wrap; justify-content:flex-start; }
  .regl-modal .modal-footer .button { flex:1 1 auto; text-align:center; }
  .regl-modal .modal-footer .modal-foot-note { order:2; text-align:center; width:100%; }
}
@media (max-width:900px){ .regl-modal .modal-content { height:86vh; } }
@media (max-width:600px){
  .regl-modal .modal-dialog { margin:0.75rem; }
  .regl-modal .modal-content { height:88vh; }
  .regl-modal .modal-body { min-height:55vh; }
  .regl-modal .modal-title { font-size:.9rem; }
}
@media (max-width:600px){
  .regl-modal .modal-dialog { margin:0.75rem; }
  .regl-modal .modal-body { min-height:55vh; }
  .regl-modal .modal-title { font-size:.9rem; }
}

.block-with-svg-gradients {
  position: fixed !important;
  left: -9999px !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* === 10. COUNTDOWN & PRELOADER ===
   Styles pour le compte à rebours et le loader
*/
.countdown-modern {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 18px;
  background: rgba(21,13,74,0.93);
  border-radius: 14px;
  box-shadow: 0 10px 32px 0 rgba(31, 38, 135, 0.28);
  padding: 24px 18px 14px 18px;
  margin: 32px auto 40px auto;
  max-width: 420px;
  font-family: 'Barlow', 'Montserrat', Arial, sans-serif;
}

.countdown-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 48px;
}

.countdown-number {
  font-size: 2.7rem; /* plus grand qu'avant */
  font-weight: 800;
  color: #fff;
  letter-spacing: 2px;
  line-height: 1;
  transition: color 0.3s;
  text-shadow: 0 2px 12px #0003;
}

.countdown-label {
  font-size: 1.1rem; /* plus grand qu'avant */
  color: #f09922;
  margin-top: 6px;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
  opacity: 0.85;
}

.countdown-sep {
  display: none !important;
}

/* Responsive : même design, juste plus petit */
@media (max-width: 600px) {
  .countdown-modern {
    gap: 8px;
    padding: 14px 4vw 10px 4vw;
    max-width: 98vw;
    border-radius: 14px;
    box-shadow: 0 8px 24px 0 rgba(31, 38, 135, 0.32);
  }
  .countdown-number {
    font-size: 2rem;
  }
  .countdown-label {
    font-size: 0.95rem;
  }
  .countdown-modern#finalText {
    font-size: 1.25rem;
  }
}

/* Preloader styles */
.preloader {
  position: fixed;
  left: 0; top: 0; right: 0; bottom: 0;
  z-index: 10000;
  background: rgba(21, 30, 74, 0.985); /* Presque opaque, on devine à peine le fond */
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.7s cubic-bezier(.4,0,.2,1), visibility 0.7s cubic-bezier(.4,0,.2,1);
  opacity: 1;
  pointer-events: all;
  visibility: visible;
}
.preloader.loaded {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
.preloader-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: 90vw;
  margin: 0 auto;
  box-sizing: border-box;
  text-align: center;
  transition: opacity 0.5s, transform 0.7s cubic-bezier(.4,0,.2,1);
  opacity: 1;
  transform: translateY(0);
}
.preloader.loaded .preloader-body {
  opacity: 0;
  transform: translateY(-40px) scale(0.98);
}
.cssload-container {
  width: 48px;
  height: 48px;
  margin: 0 auto 18px auto;
}
.cssload-speeding-wheel {
  border: 4px solid #fff;
  border-top: 4px solid #f09922;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  100% { transform: rotate(360deg); }
}

.countdown-modern#finalText {
  justify-content: center;
  align-items: center;
  font-size: 1.6rem;   /* plus grand pour le texte final */
  font-weight: 800;
  color: #fff;
  min-height: 60px;
  text-align: center;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 600px) {
  .preloader-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100vw;           /* Prend toute la largeur de l'écran */
    box-sizing: border-box; /* Évite tout débordement */
    padding: 0 12px;        /* Un peu de marge à gauche/droite */
  }
  .preloader-body p {
    width: 100%;
    max-width: 320px;       /* Limite la largeur pour éviter un effet trop étiré */
    margin: 12px auto 0 auto;
    text-align: center;
    font-size: 1.05rem;
    padding: 0;
    box-sizing: border-box;
    display: block;
  }
}

/* === 11. GALERIE RESPONSIVE ===
   Grille et images de la galerie, responsive mobile/desktop
*/
.gallery-grid {
  display: flex;
  flex-wrap: wrap;
  margin-left: -8px;
  margin-right: -8px;
  width: 100%;
  max-width: 1600px; /* optionnel, pour éviter d'étirer trop sur très grand écran */
  margin-right: auto;
  margin-left: auto;
  justify-content: center;
}

.gallery-item {
  padding-left: 8px;
  padding-right: 8px;
  margin-bottom: 16px;
  width: 100%;
  /* display: flex;  <-- à supprimer */
  /* justify-content: center; <-- à supprimer */
  /* align-items: stretch; <-- à supprimer */
}

.gallery-item img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.07);
  background: #181c2a;
}

/* 2 images/ligne sur petits écrans */
@media (max-width: 600px) {
  .preloader-body {
    padding: 0 12px;        /* Un peu de marge à gauche/droite */
  }
  .preloader-body p {
    width: 100%;
    text-align: center;
    margin: 0 auto;
    display: block;
  }
}
/* Centrage naturel du texte sous la roue du loader */
.preloader-body p {
  margin: 16px 0 0 0;
  display: block;
  text-align: center;
  font-size: 1.08rem;
  font-weight: 500;
  line-height: 1.5;
  padding: 0;
  box-sizing: border-box;
}
@media (min-width: 1200px) {
  .gallery-item {
    width: 25%;
  }
}

/* === 12. BOUTONS ANNÉE & GROUPE ===
   Styles pour les boutons de sélection d'année et de groupe
*/
.btn-group .btn.active,
.btn-group .btn:active {
  background: #d90e90 !important; /* ou la couleur de ton choix */
  border-color: #d90e90 !important;
  color: #fff !important;
  font-weight: bold;
  box-shadow: 0 2px 8px rgba(217,14,144,0.12);
  transition: background 0.2s;
}

/* Boutons modernes de sélection d'année */
.btn-year {
  background: linear-gradient(to right, #e64980, #ff6f61);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: 0.7em 1.5em;
  margin: 0 0.3em 0.5em 0;
  font-size: 1.13rem;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(230,73,128,0.10);
  transition: background 0.2s, box-shadow 0.2s, transform 0.1s;
  outline: none;
  cursor: pointer;
  position: relative;
  z-index: 1;
  letter-spacing: 0.5px;
}
.btn-year.active,
.btn-year:focus,
.btn-year:hover {
  background: linear-gradient(to right, #ff6f61, #e64980);
  color: #fff;
  box-shadow: 0 6px 24px 0 rgba(255,111,97,0.25), 0 1.5px 0 #fff inset;
  transform: translateY(-3px) scale(1.07);
  position: relative;
  outline: none;
}

.btn-year.active::after {
  content: "";
  display: block;
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: 7px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(to right, #fff2, #fff8, #fff2);
  opacity: 0.85;
  transition: all 0.25s cubic-bezier(.4,0,.2,1);
  z-index: 2;
}
@media (max-width: 600px) {
  .btn-year {
    font-size: 1rem;
    padding: 0.5em 1em;
  }
}

.btn-group {
  display: inline-flex;
  align-items: center;
  gap: 0.2em;
  margin-bottom: 18px;
  margin-top: 2px;
  vertical-align: middle;
}

.label-annee {
  display: inline-block;
  color: #fff;
  font-size: 1.13rem;
  font-weight: 600;
  margin-right: 0.7em;
  vertical-align: middle;
  letter-spacing: 0.2px;
}

/* Décalage automatique sous la navbar fixe (mobile/tablette) via variable CSS */
@media (max-width: 991.98px) {
  .page-wrapper { padding-top: 55px; }
}

/* Desktop: rapprocher le premier bloc du header (éviter le gros padding de .section-md à >=1200px) */
@media (min-width: 1200px) {
  .page-wrapper > section.section-md:first-of-type {
    padding-top: 110px !important; /* encore +10px sur desktop */
  }
}

/* === 13. LISTE D'ÉQUIPES (LoL) ===
   Grille responsive et cartes équipe
*/
.teams-section {
  margin: 28px auto 34px;
}
/* --- Teams listing enhancements (League of Legends page) --- */
.teams-section { margin-top:40px; }
.teams-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.teams-counter { font-size:.9rem; background:linear-gradient(90deg,#822ea8,#d90e90); -webkit-background-clip:text; background-clip:text; color:transparent; font-weight:600; }
.teams-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:18px; }
.team-card { position:relative; background:#1c1b23; border:1px solid #2c2b33; padding:14px 14px 12px; border-radius:10px; box-shadow:0 2px 4px rgba(0,0,0,.25); display:flex; flex-direction:column; gap:10px; transition:border-color .25s, box-shadow .25s; }
.team-card:hover { border-color:#5d2f80; box-shadow:0 4px 10px -2px rgba(0,0,0,.4); }
.team-card.is-incomplete { opacity:.92; }
.team-name { font-size:1.02rem; margin:0 0 2px; font-weight:600; letter-spacing:.5px; }
.team-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:.68rem; text-transform:uppercase; letter-spacing:.6px; }
.team-count { background:#272633; padding:4px 6px 3px; border-radius:4px; font-weight:600; color:#bbb; }
.team-badge { padding:4px 8px 3px; border-radius:4px; font-weight:600; line-height:1; }
.team-badge.complete { background:linear-gradient(95deg,#1d8f4d,#2dbd66); color:#fff; box-shadow:0 0 0 1px #1c6d42 inset; }
.team-badge.incomplete { background:linear-gradient(95deg,#a8551d,#d67324); color:#fff; box-shadow:0 0 0 1px #873d10 inset; }
.team-note { font-size:.6rem; background:#312f3c; padding:3px 6px 2px; border-radius:4px; color:#c9c5d8; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team-fill { position:relative; width:100%; height:6px; background:#272633; border-radius:3px; overflow:hidden; box-shadow:0 0 0 1px #323042 inset; }
.team-fill-bar { position:absolute; top:0; left:0; height:100%; background:linear-gradient(90deg,#822ea8,#d90e90); width:0; transition:width .4s ease; }
.team-members { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:3px; font-size:.78rem; }
.team-member { display:flex; align-items:center; gap:6px; background:#25232e; padding:4px 6px 4px; border-radius:4px; position:relative; }

.team-role.captain { background:#3a304b; color:#e0d9f4; font-size:.55rem; line-height:1; padding:3px 4px 2px; border-radius:3px; text-transform:uppercase; letter-spacing:.5px; font-weight:600; box-shadow:0 0 0 1px #4a3b60 inset; }
.team-pseudo { font-weight:500; color:#f5f4f9; font-size:.72rem; }
@media (max-width:640px){
  .teams-grid { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; }
  .team-card { padding:12px 12px 10px; }
  .team-name { font-size:.95rem; }
  .team-members { font-size:.7rem; }
}
.teams-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 16px;
}
.teams-title {
  margin: 0;
}
.teams-counter {
  background: linear-gradient(to right, #e64980, #ff6f61);
  color: #fff;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: 0.3px;
}
.teams-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 18px;
  justify-items: center;
}
.team-card {
  width: 100%;
  max-width: 320px;
  background: #181c2a;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.18);
  padding: 14px 16px 12px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.team-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.22);
}
.team-name {
  color: #fff;
  font-weight: 800;
  font-size: 1.05rem;
  margin: 0 0 8px;
  letter-spacing: 0.3px;
}
.team-members {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 6px;
}
.team-member {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #f1f1f1;
  font-weight: 600;
}
.team-role {
  display: inline-block;
  font-size: 0.72rem;
  line-height: 1.2;
  padding: 2px 8px;
  border-radius: 999px;
  background: #f09922;
  color: #111;
  font-weight: 800;
  text-transform: uppercase;
}
.team-role.captain {
  background: linear-gradient(to right, #ffd36b, #ffae00);
  color: #111;
}
.teams-empty {
  background: rgba(255,255,255,0.06);
  color: #fff;
  border-radius: 12px;
  padding: 16px;
  margin: 18px auto 0;
  max-width: 560px;
}

/* === 14. TABLEAU DOTATIONS (LoL) ===
   Styles pro & responsive pour le tableau des paliers de cashprize */

/* Placeholder sponsor quand section vide */
.sponsor-modern.placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  border-radius: 12px;
  background: #1f2539;
  border: 1px dashed rgba(255,255,255,0.25);
  color: #fff;
  text-align: center;
  position: relative;
  overflow: hidden;
  padding: 16px;
}
.sponsor-modern.placeholder .placeholder-inner { position: relative; z-index: 1; }
.sponsor-placeholder-icon { font-size: 1.8rem; opacity: .9; margin-bottom: 6px; }
.sponsor-placeholder-title { font-weight: 800; letter-spacing: .3px; margin: 0; }
.sponsor-placeholder-sub { margin: 2px 0 0; color: #9fb3ff; font-weight: 700; letter-spacing: .4px; font-size: .9rem; }
.sponsor-modern.placeholder::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(400px 120px at 50% -10%, rgba(159,179,255,0.12), transparent 70%);
  opacity: .8;
}
.sponsor-modern.placeholder:hover { border-color: rgba(255,255,255,0.45); transform: translateY(-1px); transition: transform .2s, border-color .2s; }

/* Séparation visuelle des sections partenaires */
.partners-section { padding-top: 40px; padding-bottom: 40px; }
.partners-head { position: relative; margin: 0 0 18px; }
.partners-head h3, .partners-head h4 { margin: 0; font-weight: 800; letter-spacing: .3px; }
.partners-head::after { content: ""; display: block; width: 120px; height: 4px; margin: 10px auto 0; border-radius: 40px; background: linear-gradient(90deg,#e64980,#ff6f61); box-shadow: 0 0 0 1px rgba(255,255,255,0.12); }
.partners-panel { background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; }

.table-dotation {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #181c2a;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 6px 24px -4px rgba(0,0,0,0.45), 0 2px 6px rgba(0,0,0,0.35);
  font-variant-numeric: tabular-nums;
}
.table-dotation caption {
  padding: 10px 16px 6px;
  background: linear-gradient(90deg,#e64980,#ff6f61);
  color:#fff;
  font-weight:700;
  font-size:1.05rem;
  letter-spacing:.5px;
  text-align:left;
}
.table-dotation thead tr:first-child th:first-child { border-top-left-radius:18px; }
.table-dotation thead tr:first-child th:last-child { border-top-right-radius:18px; }
.table-dotation col[class^="col-"] { background:transparent !important; }
.table-dotation thead th {
  background: #202746;
  color: #f9f9f9;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  font-weight:700;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .7px;
  padding: 12px 10px 10px;
}
.table-dotation thead th.tier-col-base { font-size:.78rem; letter-spacing:.7px; position:relative; text-align:center; }
/* Le label de base est maintenant rendu comme les autres pour éviter un style trop différent */
.table-dotation thead th.tier-col-base { position:relative; }
.table-dotation thead th.tier-col-base .base-label { display:block; width:100%; font:inherit; font-weight:700; text-transform:uppercase; background:none; box-shadow:none; padding:0; min-height:0; letter-spacing:inherit; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); }
@media (max-width:760px){ .table-dotation thead th.tier-col-base { font-size:.74rem; } }
.table-dotation thead th .sub-h { display:block; font-size:.58rem; font-weight:600; text-transform:none; letter-spacing:.3px; opacity:.85; margin-top:4px; color:#ffb4cf; }
.table-dotation thead tr:first-child th {
  background: #242d52;
  font-size: .74rem;
}
.table-dotation tbody td, .table-dotation tbody th {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  font-size: .92rem;
  color: #f1f1f1;
}
.table-dotation tbody tr:last-of-type td { border-bottom: none; }
.table-dotation tbody tr:hover td { background: rgba(255,255,255,0.03); }
.table-dotation tfoot th, .table-dotation tfoot td {
  background: #1f253f;
  font-weight: 700;
  font-size: .85rem;
  padding: 12px 12px 14px;
  color: #ffd9ec;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.table-dotation .total-col { color:#ffe395; font-weight:800; }
.table-dotation td span { display:inline-block; min-width:54px; }
.table-dotation td.text-end { text-align:right; }

/* Couleurs de colonnes retirées pour préserver la continuité des arrondis supérieurs */
/* === 15. PAGE DÉTAIL TOURNOI LoL === */
.lol-view-dl { max-width: 1080px; margin: 0 auto; text-align:left; }
.lol-view-dl > img { margin: 6px auto 24px; display:block; border-radius:18px; border:1px solid rgba(255,255,255,0.08); box-shadow:0 6px 24px -4px rgba(0,0,0,0.45), 0 2px 6px rgba(0,0,0,0.35); }
.lol-view-dl .heading-4 { margin-top: 54px; margin-bottom: 14px; position:relative; }
.lol-view-dl .heading-4:first-of-type { margin-top: 10px; }
.lol-view-dl .heading-4:not(:first-of-type)::before { content:""; position:absolute; left:0; top:-28px; height:1px; width:120px; background:linear-gradient(90deg,#e64980,#ff6f61); opacity:.55; }
.lol-view-dl dd { margin:0 0 10px; line-height:1.6; }
.lol-view-dl ul.lol-key-points { list-style:none; padding:4px 0 8px; margin:4px 0 18px; display:grid; gap:6px; }
.lol-view-dl ul.lol-key-points li { position:relative; padding-left:18px; font-size:.88rem; line-height:1.35; color:#d1d5e2; }
.lol-view-dl ul.lol-key-points li::before { content:""; position:absolute; left:0; top:6px; width:10px; height:10px; border-radius:50%; background:linear-gradient(90deg,#e64980,#ff6f61); box-shadow:0 0 0 1px rgba(255,255,255,.25); }
.lol-view-dl .teams-section { margin-top:40px; margin-bottom:50px; }
.lol-view-dl .table-dotation { margin-top:18px; margin-bottom:14px; }
.lol-view-dl .table-dotation + p { margin-top:4px; }
.cashprize-disclaimer { font-size:12px; color:#777; margin-top:4px; }
.cashprize-note { font-size:12px; color:#999; margin:2px 0 4px; font-style:italic; }
/* Remplacement badges par barre de progression paliers */
.tier-progress-wrapper { margin:14px 0 10px; }
.tier-progress-bar { position:relative; height:22px; background:#1f2539; border:1px solid rgba(255,255,255,0.12); border-radius:40px; overflow:hidden; box-shadow:0 2px 6px rgba(0,0,0,.4) inset, 0 2px 4px rgba(0,0,0,.3); }
.tier-progress-fill { position:absolute; top:0; left:0; height:100%; background:linear-gradient(90deg,#e64980,#ff6f61); width:0; transition:width .6s cubic-bezier(.4,0,.2,1); box-shadow:0 0 0 1px rgba(255,255,255,.15), 0 4px 12px -2px rgba(0,0,0,.55) inset; }
.tier-progress-base { position:absolute; top:0; left:0; height:100%; background:linear-gradient(90deg,#3a445f,#30394f); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.08); }
.tier-progress-fill-base { position:absolute; top:0; left:0; height:100%; background:linear-gradient(90deg,#4d5770,#687493); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.10), 0 1px 2px rgba(0,0,0,0.4); transition:width .6s cubic-bezier(.4,0,.2,1); mix-blend-mode:normal; }
.tier-progress-next { position:absolute; top:0; height:100%; left:auto; background:repeating-linear-gradient(55deg, rgba(255,255,255,0.10) 0 12px, rgba(255,255,255,0.02) 12px 24px); opacity:.40; animation:nextStripes 26s linear infinite; transition:opacity .3s ease; }
@keyframes nextStripes { 0% { background-position:0 0; } 100% { background-position:480px 0; } }
/* Variante statique: ajouter .no-anim sur .tier-progress-next */
.tier-progress-next.no-anim { animation:none; background:linear-gradient(90deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02)); }
.tier-progress-bar .sep { position:absolute; top:0; bottom:0; width:2px; background:linear-gradient(to bottom, rgba(255,255,255,0.2), rgba(255,255,255,0.05)); transform:translateX(-50%); pointer-events:none; }
/* Anciennes pastilles supprimées */
.tier-progress-scale { position:relative; height:14px; margin:4px 2px 10px; font-size:10px; font-weight:600; letter-spacing:.4px; color:#b8bbca; }
.tier-progress-scale .tick { position:absolute; top:0; transform:translateX(-50%); white-space:nowrap; }
.tier-progress-scale .tick:last-child { transform:translateX(-100%); }
.tier-progress-wrapper { position:relative; }
.tier-progress-bar { margin-bottom:6px; }
.tier-progress-status { font-size:11px; letter-spacing:.3px; color:#d3d5e2; font-weight:500; line-height:1.4; }
.tier-progress-status .next-thresh { color:#ffb4cf; font-weight:600; margin-left:4px; }
.tier-progress-status .pre-base-note { margin-left:6px; color:#7fa3ff; font-weight:600; }
.tier-col.locked, .amount-75.locked, .amount-100.locked, .total-col.locked { opacity:.35; filter:saturate(.3); }
.tier-col.current, .amount-50.current, .amount-75.current, .amount-100.current, .total-col.current { background:linear-gradient(90deg,#e64980,#ff6f61)!important; color:#fff!important; box-shadow:inset 0 0 0 1px rgba(255,255,255,.15); }
.locked-col { opacity:.4; }
.lol-view-dl .teams-empty { margin-top:22px; }
.lol-view-dl a.button { margin-top:14px; }
@media (max-width: 760px) {
  .lol-view-dl .heading-4 { margin-top:42px; }
  .lol-view-dl .heading-4:not(:first-of-type)::before { top:-20px; width:90px; }
  .lol-view-dl .table-dotation { margin-bottom:16px; }
}

/* === 15.b RÈGLEMENT TOURNOI (bloc dédié) === */
.reglement-block { background:#181c2a; border:1px solid rgba(255,255,255,0.08); border-radius:18px; padding:28px 26px 30px; box-shadow:0 6px 24px -4px rgba(0,0,0,0.45),0 2px 6px rgba(0,0,0,0.35); margin:60px auto 40px; position:relative; overflow:hidden; }
.reglement-block::before { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 92% 14%,rgba(255,111,97,0.10),transparent 60%), radial-gradient(circle at 12% 86%,rgba(230,73,128,0.10),transparent 65%); }
.reglement-block h4 { margin:0 0 18px; font-weight:800; letter-spacing:.4px; font-size:1.4rem; position:relative; padding-bottom:12px; }
.reglement-block h4::after { content:""; position:absolute; left:0; bottom:0; height:4px; width:120px; border-radius:40px; background:linear-gradient(90deg,#e64980,#ff6f61); box-shadow:0 0 0 1px rgba(255,255,255,0.10),0 4px 12px -4px rgba(0,0,0,0.6); }
.reglement-block p { margin:0 0 14px; line-height:1.55; font-size:.92rem; color:#cbd1dd; font-weight:500; }
.reglement-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:6px 0 0; }
.reglement-actions .button { margin:0; }
.reglement-badge { background:#202a44; color:#9fb3ff; padding:10px 18px; border-radius:40px; font-size:.68rem; letter-spacing:.9px; font-weight:700; text-transform:uppercase; box-shadow:0 2px 6px rgba(0,0,0,0.4); display:inline-flex; align-items:center; gap:8px; }
.reglement-badge::before { content:"\26A0"; font-size:.9rem; line-height:1; opacity:.9; }
.reglement-note { font-size:.70rem; letter-spacing:.5px; color:#8893ad; margin:10px 0 0; font-weight:600; }
.reglement-placeholder { text-align:center; padding:26px 20px 12px; }
.reglement-placeholder p { margin:0 0 10px; }
.reglement-placeholder .soon { font-size:1.05rem; font-weight:700; color:#fff; letter-spacing:.4px; }
.reglement-placeholder .sub { font-size:.8rem; color:#b8c2d8; }
@media (max-width:760px){
  .reglement-block { padding:24px 18px 28px; margin:46px auto 30px; }
  .reglement-block h4 { font-size:1.2rem; padding-bottom:10px; }
  .reglement-block h4::after { height:3px; width:90px; }
  .reglement-block p { font-size:.85rem; }
  .reglement-actions { gap:10px; }
  .reglement-badge { font-size:.62rem; padding:8px 14px; }
}

/* --- Responsive tableau dotation (mobile: conserver tableau + scroll horizontal) --- */
@media (max-width: 780px) {
  .lol-view-dl .table-responsive { overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
  .lol-view-dl .table-responsive::-webkit-scrollbar { height:6px; }
  .lol-view-dl .table-responsive::-webkit-scrollbar-track { background:rgba(255,255,255,0.06); border-radius:20px; }
/* --- Cashprize mobile enhancements --- */
@media (max-width:780px){
  .cash-mobile-cards { gap:18px; margin-top:18px; }
  .cash-mobile-cards .cash-card { padding:14px 16px 16px; }
  .cash-mobile-cards .cc-place { font-size:1rem; }
  .cash-mobile-cards .cc-current-tier { font-size:.63rem; }
  .cash-mobile-cards .cc-tier { padding:10px 8px 12px; }
  .cash-mobile-cards .cc-tier-label { font-size:.66rem; letter-spacing:.9px; }
  .cash-mobile-cards .cc-amount { font-size:.95rem; }
}
@media (max-width:520px){
  .cash-mobile-cards { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); }
  .cash-mobile-cards .cash-card { padding:14px 14px 15px; }
}
@media (max-width:430px){
  /* Empiler les paliers verticalement pour lisibilité extrême */
  .cash-mobile-cards .cc-rows { flex-direction:column; }
  .cash-mobile-cards .cc-tier { display:flex; align-items:center; justify-content:space-between; text-align:left; padding:10px 12px; }
  .cash-mobile-cards .cc-tier-label { margin:0; font-size:.7rem; }
  .cash-mobile-cards .cc-amount { font-size:1rem; }
}
/* Largeur réduite / permettre scroll sur tableau si forçage d’affichage sur petits écrans (sécurité) */
.table-responsive.desk-cash { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-responsive.desk-cash table { min-width:720px; }
  .lol-view-dl .table-responsive::-webkit-scrollbar-thumb { background:linear-gradient(90deg,#e64980,#ff6f61); border-radius:20px; }
  .table-dotation { min-width:560px; box-shadow:0 4px 16px -4px rgba(0,0,0,0.5); }
  /* Première colonne collante pour référence place */
  .table-dotation tbody td:first-child, .table-dotation thead th:first-child, .table-dotation tfoot th:first-child { position:sticky; left:0; background:#242d52; z-index:2; }
  .table-dotation tbody td:first-child { background:#202949; font-weight:600; }
  /* Gradient fin de scroll */
  .lol-view-dl .table-responsive { position:relative; }
  .lol-view-dl .table-responsive::after { content:""; position:absolute; top:0; right:0; width:36px; height:100%; pointer-events:none; background:linear-gradient(90deg,rgba(24,28,42,0),rgba(24,28,42,0.85)); }
  .table-dotation thead th { padding:10px 8px; font-size:.70rem; letter-spacing:.5px; }
  .table-dotation thead th .sub-h { font-size:.50rem; margin-top:2px; }
  .table-dotation thead th .remp-word { display:none; }
  .table-dotation tbody td, .table-dotation tbody th { padding:8px 8px; font-size:.78rem; }
  .table-dotation tbody td span { min-width:0; }
  .table-dotation tfoot th, .table-dotation tfoot td { padding:9px 8px 10px; font-size:.72rem; }
  .table-dotation caption { font-size:.78rem; padding:8px 10px 6px; }
  /* Alléger épaisseur visuelle */
  .table-dotation tbody tr:hover td { background: rgba(255,255,255,0.05); }
  .scroll-hint { text-align:right; font-size:11px; letter-spacing:.5px; text-transform:uppercase; margin:4px 4px 2px; color:#9ea9c7; position:relative; padding-right:18px; }
  .scroll-hint::after { content:"→"; position:absolute; right:4px; top:50%; transform:translateY(-50%); animation:hintArrow 1.6s ease-in-out infinite; }
  @keyframes hintArrow { 0%,100% { transform:translate(0,-50%); opacity:.55; } 50% { transform:translate(6px,-50%); opacity:1; } }
}

  /* Cartes mobiles cashprize (fallback lisible) */
  .cash-mobile-cards { display:none; gap:14px; margin:12px 0 4px; }
  .cash-mobile-cards .cash-card { background:#1f2539; border:1px solid rgba(255,255,255,0.10); border-radius:16px; padding:10px 14px 12px; box-shadow:0 4px 14px -4px rgba(0,0,0,0.55); position:relative; }
  .cash-mobile-cards .cash-card.total { background:#252d47; }
  .cash-mobile-cards .cc-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
  .cash-mobile-cards .cc-place { font-weight:700; font-size:.9rem; letter-spacing:.4px; }
  .cash-mobile-cards .cc-current-tier { font-size:.60rem; text-transform:uppercase; letter-spacing:.9px; color:#ff9dc2; font-weight:600; }
  .cash-mobile-cards .cc-rows { display:flex; gap:8px; }
  .cash-mobile-cards .cc-tier { flex:1; background:#202a44; border:1px solid rgba(255,255,255,0.08); border-radius:10px; padding:8px 6px 10px; text-align:center; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; }
  .cash-mobile-cards .cc-tier.active { background:linear-gradient(135deg,#e64980,#ff6f61); border-color:rgba(255,255,255,0.20); box-shadow:0 0 0 1px rgba(255,255,255,0.15) inset; }
  .cash-mobile-cards .cc-tier.locked { opacity:.35; filter:saturate(.4); }
  .cash-mobile-cards .cc-tier-label { display:block; font-size:.60rem; letter-spacing:.8px; font-weight:700; text-transform:uppercase; color:#9fb3ff; margin-bottom:4px; }
  .cash-mobile-cards .cc-tier.active .cc-tier-label { color:#fff; }
  .cash-mobile-cards .cc-amount { display:block; font-size:.85rem; font-weight:700; color:#fff; }
  .cash-mobile-cards .cc-tier:not(.active) .cc-amount { color:#dce3f5; }
  .cash-mobile-cards .cc-next { margin-top:8px; font-size:.62rem; letter-spacing:.5px; color:#b5bed6; font-weight:500; }
  .cash-mobile-cards .cc-next strong { color:#fff; font-weight:700; }
  @media (max-width:780px) {
    .desk-cash { display:none; }
    .cash-mobile-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
  }

  /* Partenaires (bande intégrée harmonisée) */
  .partners-band { position:relative; background:#181c2a; /* même base que d'autres blocs */ padding:56px 0 52px; overflow:hidden; border-top:1px solid rgba(255,255,255,0.06); border-bottom:1px solid rgba(255,255,255,0.07); box-shadow:0 6px 24px -6px rgba(0,0,0,0.55) inset; }
  .partners-band-head { display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:24px; position:relative; }
  .partners-band-head::after { content:""; position:absolute; bottom:-10px; height:4px; width:160px; border-radius:40px; background:linear-gradient(90deg,#e64980,#ff6f61); box-shadow:0 0 0 1px rgba(255,255,255,0.15), 0 4px 12px -4px rgba(0,0,0,0.6); }
  .partners-heading { margin:0; font-size:.68rem; letter-spacing:2.4px; font-weight:700; color:#ffb4cf; text-transform:uppercase; opacity:.9; }
  .partners-main-title { margin:0; font-size:2rem; letter-spacing:.5px; font-weight:800; }
  .partners-intro { max-width:680px; text-align:center; margin:6px auto 4px; font-size:.95rem; line-height:1.5; color:#c9cedb; font-weight:500; }
  /* Grille fixe partenaires (toutes tailles) - centrée */
  .partners-grid { display:flex; flex-wrap:wrap; gap:24px 28px; align-items:center; justify-content:center; padding:10px 0 4px; }
  .partners-grid .partner-item { display:flex; align-items:center; justify-content:center; filter:grayscale(25%) brightness(0.95); opacity:.95; transition:filter .3s, opacity .3s; }
  .partners-grid .partner-item img { display:block; max-width:100%; height:auto; max-height:70px; filter:drop-shadow(0 2px 6px rgba(0,0,0,0.35)); }
  .partners-grid .partner-item:hover { filter:grayscale(0%) brightness(1); opacity:1; }
  @media (max-width:600px){ .partners-grid { gap:18px 22px; } .partners-grid .partner-item img { max-height:54px; } .partners-intro { font-size:.8rem; } }

/* === 16. SECTION A PROPOS (Homepage) === */
.about-prehead { font-size:.72rem; letter-spacing:2.2px; font-weight:700; color:#ffb4cf; text-transform:uppercase; margin-bottom:4px; }
.about-title { margin:0 0 14px; font-weight:800; }
.about-lead { font-size:1rem; line-height:1.55; color:#d7dae2; font-weight:500; margin-bottom:24px; }
.about-stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px 16px; margin:0 0 26px; }
.about-stat { display:flex; align-items:center; gap:12px; background:#181c2a; border:1px solid rgba(255,255,255,0.06); border-radius:14px; padding:12px 14px 11px; position:relative; box-shadow:0 4px 16px -4px rgba(0,0,0,.55); overflow:hidden; }
.about-stat.long .as-body { flex-wrap:wrap; }
.about-stat.long .as-val { font-size:.7rem; letter-spacing:.8px; }
.about-stat.long .as-label { font-size:.5rem; letter-spacing:.9px; }
.about-stats-grid { margin-top:18px; }
.about-stat::after { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(140deg,rgba(230,73,128,0.07),rgba(255,111,97,0.07)); opacity:0; transition:opacity .35s; pointer-events:none; }
.about-stat:hover::after { opacity:1; }
.about-stat .as-icon svg { width:34px; height:34px; fill:url(#svg-gradient-primary); filter:drop-shadow(0 2px 6px rgba(0,0,0,0.5)); }
.about-stat .as-body { display:flex; flex-direction:column; line-height:1.15; }
.about-stat .as-val { font-size:.78rem; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:#fff; }
.about-stat .as-label { font-size:.55rem; font-weight:700; letter-spacing:1px; color:#9fb3ff; margin-top:4px; }
.about-highlights { list-style:none; padding:0; margin:0 0 26px; display:grid; gap:10px; }
.about-highlights li { position:relative; padding-left:18px; font-size:.88rem; line-height:1.45; color:#d1d5e2; }
.about-highlights .ah-dot { position:absolute; left:0; top:6px; width:10px; height:10px; border-radius:50%; background:linear-gradient(90deg,#e64980,#ff6f61); box-shadow:0 0 0 1px rgba(255,255,255,.2); }
.about-cta-wrap { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.about-cta { font-weight:700; letter-spacing:.4px; font-size:.85rem; padding:14px 26px; border-radius:50px; text-transform:uppercase; }
.about-cta.big { font-size:1.05rem; padding:20px 46px; letter-spacing:.8px; box-shadow:0 8px 24px -6px rgba(233,79,140,.55),0 0 0 2px rgba(255,255,255,0.05) inset; position:relative; }
.about-cta.big:before { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(90deg,rgba(255,255,255,0.18),rgba(255,255,255,0)); mix-blend-mode:overlay; pointer-events:none; }
.about-cta.big:hover { transform:translateY(-2px); box-shadow:0 12px 30px -6px rgba(233,79,140,.6),0 0 0 2px rgba(255,255,255,0.07) inset; }
.about-cta.big:active { transform:translateY(0); box-shadow:0 6px 18px -4px rgba(233,79,140,.55); }
.about-cta.alt { background:linear-gradient(90deg,#2d3550,#222a40); color:#fff; border:1px solid rgba(255,255,255,0.12); }
.about-cta.alt:hover { background:linear-gradient(90deg,#e64980,#ff6f61); border-color:transparent; }
.about-images { position:relative; }
.about-images img { object-fit:cover; }
@media (max-width:991.98px){ .about-stats-grid { grid-template-columns:repeat(2,minmax(120px,1fr)); } .about-title { font-size:1.8rem; } .about-lead { font-size:.95rem; } }
@media (max-width:600px){ .about-stats-grid { grid-template-columns:repeat(2,minmax(110px,1fr)); gap:12px; } .about-stat { padding:10px 12px 10px; } .about-stat .as-icon svg { width:30px; height:30px; } .about-stat .as-val { font-size:.72rem; } .about-stat .as-label { font-size:.5rem; } .about-highlights li { font-size:.82rem; } .about-cta { font-size:.72rem; padding:12px 20px; } .about-cta.big { font-size:.9rem; padding:16px 34px; } }


/* Amélioration mobile : passage en cartes */
@media (max-width: 760px) {
  .table-dotation thead, .table-dotation colgroup { display: none; }
  .table-dotation, .table-dotation tbody, .table-dotation tr, .table-dotation td { display:block; width:100%; }
  .table-dotation tr { margin: 0 0 16px; background:#202746; border:1px solid rgba(255,255,255,0.08); border-radius:14px; padding:10px 10px 4px; }
  .table-dotation tbody td { border:none; position:relative; padding:8px 10px 8px 120px; font-size:.9rem; }
  .table-dotation tbody td:first-child { padding: 6px 12px 10px; background: linear-gradient(90deg,#e64980,#ff6f61); font-weight:800; font-size:1rem; color:#fff; border-radius:9px; margin-bottom:6px; }
  .table-dotation tbody td[data-label]:not(:first-child)::before { content: attr(data-label); position:absolute; left:12px; top:8px; font-size:.63rem; letter-spacing:.5px; font-weight:700; text-transform:uppercase; color:#ffb4cf; opacity:.85; }
  .table-dotation tfoot { display:block; margin-top:8px; }
  .table-dotation tfoot tr { display:flex; flex-wrap:wrap; gap:8px; background:#181c2a; border:1px solid rgba(255,255,255,0.08); border-radius:14px; padding:10px 12px; }
  .table-dotation tfoot th { flex: 0 0 100%; background:none; border:none; padding:0; font-size:.75rem; text-transform:uppercase; letter-spacing:.7px; color:#ffb4cf; }
  .table-dotation tfoot td, .table-dotation tfoot .total-col { flex:1 1 calc(33.33% - 8px); background:#202746; margin:0; border-radius:10px; text-align:center; font-size:.85rem; padding:8px 6px; color:#ffe395; }
}

/* === 17. BREADCRUMBS (bannière haute) ===
   Variante plus haute pour certaines pages (ex: Joueurs libres) */
.breadcrumbs-custom.breadcrumbs-tall {
  position: relative;
  padding: 80px 0 90px;
  min-height: 320px;
  background-size: cover;
  background-position: top center;
  display: flex;
  align-items: center;
}
.breadcrumbs-custom.breadcrumbs-tall .container {
  position: relative;
  z-index: 1;
}
@media (max-width: 767.98px) {
  .breadcrumbs-custom.breadcrumbs-tall {
    padding: 60px 0 66px;
    min-height: 240px;
  }
}

/* === 18. Visuel Joueurs libres (fun.png) === */
.fun-hero {
  display: block;
  width: 100%;
  max-width: 360px; /* plus grand qu'avant (220px) */
  height: auto;
  margin: 0 auto 22px;
  filter: drop-shadow(0 4px 16px rgba(0,0,0,0.25));
}
@media (min-width: 992px) {
  .fun-hero { max-width: 420px; }
}
@media (max-width: 480px) {
  .fun-hero { max-width: 280px; }
}

/* === 19. PAGE JOUEURS LIBRES: structure & blocs === */
.fun-view-dl { max-width: 1080px; margin: 0 auto; text-align: left; }
.fun-view-dl .heading-4 { margin-top: 54px; margin-bottom: 14px; position: relative; }
.fun-view-dl .heading-4:first-of-type { margin-top: 10px; }
.fun-view-dl .heading-4:not(:first-of-type)::before {
  content: ""; position: absolute; left: 0; top: -28px; height: 1px; width: 120px;
  background: linear-gradient(90deg,#e64980,#ff6f61); opacity: .55;
}
.fun-block {
  background: #181c2a;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 16px 16px 14px;
  box-shadow: 0 6px 24px -4px rgba(0,0,0,0.45), 0 2px 6px rgba(0,0,0,0.35);
  margin: 8px 0 14px;
}
.fun-view-dl dd { margin: 0 0 10px; line-height: 1.6; }
.fun-view-dl ul { padding-left: 18px; }
@media (max-width: 760px) {
  .fun-view-dl .heading-4 { margin-top: 42px; }
  .fun-view-dl .heading-4:not(:first-of-type)::before { top: -20px; width: 90px; }
  .fun-block { padding: 14px; }
}