.rx-supporters{width:100%;margin:40px auto 65px}.rx-supporters-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.rx-supporters-head h2{max-width:650px;font-size:clamp(30px,3.3vw,46px);margin:12px 0 0}.rx-supporters-controls{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}.rx-supporters-controls button{min-width:44px;min-height:44px;padding:10px 14px;border:1px solid #E6D8C9;border-radius:4px;background:#FFFCF7;color:#0A0A0A;cursor:pointer;font:600 13px/1.4 'Manrope',Arial,sans-serif}.rx-supporters-controls button:hover,.rx-supporters-controls button[aria-pressed=true]{background:#F5B342}.rx-supporters-controls button:disabled{opacity:.4;cursor:default}.rx-supporters-track{display:flex;gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#A14822 #FFF1D9;padding:5px 3px 20px}.rx-supporter{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start}.rx-supporter-photo{height:360px;display:flex;align-items:center;justify-content:center;background:transparent;overflow:hidden;border-radius:4px}.rx-supporter-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}.rx-supporter h3{font-size:23px!important;margin:20px 0 8px!important}.rx-supporter-role{font-size:12px;font-weight:600;line-height:1.6}.rx-supporter-description{font-size:14px;line-height:1.8;margin-top:12px}.rx-supporters-status{font-size:11px;margin:8px 0;min-height:18px}.elementor-widget-reflex-supporters{width:calc(100% - 80px);max-width:1180px;margin:auto}
/* Une flèche décorative n’est pas soulignée séparément du libellé. */
body.reflex-vivant .rv-buttons .elementor-widget:last-child .elementor-button{text-decoration:none!important;gap:12px!important}body.reflex-vivant .rv-buttons .elementor-widget:last-child .elementor-button .elementor-button-text{text-decoration:underline;text-underline-offset:6px}body.reflex-vivant .rv-buttons .elementor-widget:last-child .elementor-button::after{text-decoration:none!important;align-self:center;line-height:1}.rv-link span{text-decoration:none}
@media(max-width:1000px){.rx-supporter{flex-basis:calc((100% - 24px)/2)}.rx-supporters-head{align-items:flex-start;flex-direction:column;gap:20px}}
@media(max-width:767px){.elementor-widget-reflex-supporters{width:calc(100% - 40px)}.rx-supporter{flex-basis:85%}.rx-supporter-photo{height:350px}.rx-supporters-track{gap:16px}.rx-supporters{margin:25px auto 45px}.rx-supporter h3{font-size:22px!important}}
@media print{.rx-supporters-controls{display:none!important}.rx-supporters-track{overflow:visible;flex-wrap:wrap}.rx-supporter{flex-basis:30%}}
/* 7.2 : même fenêtre portrait 4:5 pour les cinq photographies. */
.rx-supporter-photo{height:auto!important;aspect-ratio:4/5;width:100%}.rx-supporter-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.rx-supporter[data-rx-person="gilles-hoffmann"] .rx-supporter-photo img{object-position:center 52%}.rx-supporter[data-rx-person="amina-jonas"] .rx-supporter-photo img{object-position:center 35%}.rx-supporter[data-rx-person="mourad-nafa"] .rx-supporter-photo img{object-position:center 27%}
/* 7.3 : ruban continu, sans aucune commande visible ni arrêt entre portraits. */
.rx-supporters-controls,.rx-supporters-status{display:none!important}.rx-supporters-viewport{overflow:hidden;width:100%;padding:4px 0}.rx-supporters-track{display:flex;width:max-content;gap:0;overflow:visible;scroll-snap-type:none;padding:0;animation:rx-ribbon var(--rx-duration,24s) linear infinite;will-change:transform}.rx-supporters-group{display:flex;gap:24px;padding-right:24px;flex-shrink:0}.rx-supporters-group>.rx-supporter{flex:0 0 clamp(250px,27vw,360px);width:clamp(250px,27vw,360px)}@keyframes rx-ribbon{to{transform:translateX(-50%)}}.rx-supporters-viewport:focus-within .rx-supporters-track,.rx-supporters-track.rx-motion-paused{animation-play-state:paused}
@media(max-width:767px){.rx-supporters-group{gap:16px;padding-right:16px}.rx-supporters-group>.rx-supporter{width:76vw;flex-basis:76vw}}
@media(prefers-reduced-motion:reduce){.rx-supporters-track{animation:none;transform:none;will-change:auto}.rx-supporters-group[aria-hidden=true]{display:none}.rx-supporters-viewport{overflow-x:auto}}
@media print{.rx-supporters-track{animation:none;transform:none;width:100%}.rx-supporters-group{flex-wrap:wrap}.rx-supporters-group[aria-hidden=true]{display:none}}

/* v7.6 — Deux SULTAN jamais simultanément visibles, quels que soient
   les points de rupture et la position du défilement continu.
   Entre les SULTAN, >= 2 portraits intermédiaires sur les deux sens.
   Desktop : largeur <= 760 et fiche >= 380 : deux fiches se recouvrant
   à 3 positions d'écart ne peuvent physiquement être dans cette fenêtre.
   Mobile : une fiche fait 76vw, la fenêtre étant plus petite que 2 fiches.
 */
.rx-supporters-viewport{width:min(100%,760px);max-width:760px;margin-inline:auto}
.rx-supporters-group>.rx-supporter{flex:0 0 clamp(380px,35vw,460px);width:clamp(380px,35vw,460px)}
@media(max-width:767px){.rx-supporters-viewport{width:100%;max-width:100%}.rx-supporters-group>.rx-supporter{width:76vw;flex-basis:76vw}}

/* v7.7 — Ruban élargi à l'écran, jusqu'à cinq portraits complets sur PC.
   La largeur des fiches est déterminée selon la fenêtre visible par supporters.js.
   Le ruban possède 12 emplacements (dont 5 reprises d'autres portraits) :
   Sacha et Samuel restent à six emplacements de distance, sans exception
   à la jonction de la boucle. Aucune reprise n'est sauvegardée dans Elementor. */
.elementor-widget-reflex-supporters {
  width:min(calc(100vw - 40px), 1620px) !important;
  max-width:none !important;
  position:relative;
  left:50%;
  transform:translateX(-50%);
  margin:40px 0 65px !important;
}
.rx-supporters {width:100%;margin:0 auto;min-width:0}
.rx-supporters-head{max-width:1540px;margin:0 auto 28px;padding:0 4px}
.rx-supporters-viewport{width:100%;max-width:none;margin:0 auto;overflow:hidden}
.rx-supporters-group{gap:var(--rx-gap,20px);padding-right:var(--rx-gap,20px)}
.rx-supporters-group>.rx-supporter{
  flex:0 0 var(--rx-card-width,260px);
  width:var(--rx-card-width,260px);
  min-width:0;
}
.rx-supporter-photo{aspect-ratio:4/5;overflow:hidden;border-radius:6px;background:#f5f0eb}
.rx-supporter-photo img{width:100%;height:100%;object-fit:cover}
.rx-supporter-details{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;align-content:start;padding:0 2px 8px;min-height:102px}
.rx-supporter-details h3{grid-column:1/-1;font-size:clamp(17px,1.48vw,22px)!important;line-height:1.3!important;margin:14px 0 7px!important;overflow-wrap:break-word}
.rx-supporter-role{grid-column:1/-1;margin:0 0 9px!important;font-size:clamp(11px,.9vw,13px)!important;line-height:1.4!important}
.rx-supporter-description{grid-column:1;grid-row:auto;font-size:13px!important;line-height:1.5!important;margin:4px 0 0!important}
.rx-supporter--sucheme .rx-supporter-brand{
  grid-column:2;grid-row:3;
  justify-self:end;align-self:center;
  width:min(100%,126px);min-width:100px;
  margin:3px 0 0;
}
.rx-supporter-brand img{display:block;width:100%;height:auto;object-fit:contain}
.rx-supporter--sucheme .rx-supporter-brand:only-child{grid-row:3}
@media(max-width:767px){
  .elementor-widget-reflex-supporters{width:calc(100vw - 30px)!important;margin:25px 0 45px!important}
  .rx-supporters-head{margin-bottom:18px}
  .rx-supporter-details h3{font-size:20px!important}
  .rx-supporter--sucheme .rx-supporter-brand{width:116px;min-width:80px}
}
@media(prefers-reduced-motion:reduce){
  .rx-supporters-viewport{overflow-x:auto;scrollbar-width:thin}
  .rx-supporters-group[aria-hidden=true]{display:none}
}
@media print{
  .elementor-widget-reflex-supporters{width:100%!important;left:auto;transform:none}
  .rx-supporters-track{width:100%!important}
  .rx-supporters-group{flex-wrap:wrap}
  .rx-supporters-group>.rx-supporter{width:calc((100% - 40px)/3);flex-basis:calc((100% - 40px)/3)}
  .rx-supporter[aria-hidden=true]{display:none}
}

/* v7.8 — Logo SUCHEME ALIGNÉ AU NOM de Samuel, en haut à droite.
   Galerie large inchangée : 5 emplacements sur ordinateur. */
.rx-supporter-details{display:flex!important;flex-direction:column;gap:0;min-height:110px;}
.rx-supporter-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:54px;}
.rx-supporter-title-row h3{margin:10px 0 8px!important;flex:1 1 auto;min-width:0;font-size:clamp(17px,1.35vw,21px)!important;line-height:1.28!important;}
.rx-supporter--sucheme .rx-supporter-title-row h3{font-size:clamp(15px,1.2vw,19px)!important;letter-spacing:-.025em!important;}
.rx-supporter--sucheme .rx-supporter-brand{
 display:flex!important;position:static!important;grid-column:auto!important;grid-row:auto!important;
 align-items:center;justify-content:flex-end;
 flex:0 0 94px;width:94px!important;min-width:0!important;max-width:32%;height:48px;margin:0!important;
}
.rx-supporter--sucheme .rx-supporter-brand img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;}
.rx-supporter-role{margin:0 0 9px!important;}
.rx-supporter-description{margin:4px 0 0!important;}
@media(max-width:767px){
 .rx-supporter--sucheme .rx-supporter-brand{width:86px!important;flex-basis:86px;height:43px;}
 .rx-supporter--sucheme .rx-supporter-title-row h3{font-size:clamp(16px,4.2vw,19px)!important;}
}

/* v7.9 — Logo Y.N.I Solutions aligné sur la ligne du nom Yohann VIGNERON.
   Même logique que le logo SUCHEME de Samuel, sans modifier largeur ou vitesse de la galerie. */
.rx-supporter--yni .rx-supporter-title-row{
  min-height:94px;align-items:center;gap:10px;
}
.rx-supporter--yni .rx-supporter-title-row h3{
  font-size:clamp(15px,1.2vw,19px)!important;
  letter-spacing:-.025em!important;
  margin:10px 0 8px!important;
}
.rx-supporter--yni .rx-supporter-brand--yni{
  display:flex!important;position:static!important;
  flex:0 0 76px;width:76px;min-width:0;max-width:31%;height:94px;
  margin:0!important;align-items:center;justify-content:center;
}
.rx-supporter--yni .rx-supporter-brand--yni img{
  display:block;width:100%;height:100%;object-fit:contain;object-position:center;
}
@media(max-width:767px){
  .rx-supporter--yni .rx-supporter-title-row{min-height:92px}
  .rx-supporter--yni .rx-supporter-brand--yni{flex-basis:72px;width:72px;height:90px}
  .rx-supporter--yni .rx-supporter-title-row h3{font-size:clamp(16px,4.2vw,19px)!important}
}

/* v7.10 — Cartes alignées : mêmes repères verticaux sur TOUTES les fiches.
   Le logo Y.N.I près de Yohann est réduit sans changer la taille de la galerie,
   ni les photos, ni le logo SUCHEME, ni la signature du pied de page. */
.rx-supporter-details{
  display:flex!important;
  flex-direction:column;
  gap:0!important;
  min-height:148px;
  padding:0 2px 8px;
}
.rx-supporter-title-row,
.rx-supporter--yni .rx-supporter-title-row{
  display:flex;
  align-items:flex-start!important;
  justify-content:space-between;
  gap:8px!important;
  width:100%;
  height:66px;
  min-height:66px!important;
}
.rx-supporter-title-row h3,
.rx-supporter--yni .rx-supporter-title-row h3,
.rx-supporter--sucheme .rx-supporter-title-row h3{
  align-self:flex-start;
  margin:12px 0 0!important;
  line-height:1.28!important;
}
/* Marque très compacte, placée à droite du nom et dans le même bandeau. */
.rx-supporter--yni .rx-supporter-brand--yni{
  box-sizing:border-box;
  display:flex!important;
  flex:0 0 45px!important;
  width:45px!important;
  max-width:45px!important;
  min-width:0!important;
  height:59px!important;
  margin:1px 0 0!important;
  align-self:flex-start;
  align-items:center;
  justify-content:center;
}
.rx-supporter--yni .rx-supporter-brand--yni img{
  display:block;
  width:100%;height:100%;
  object-fit:contain;object-position:center;
}
/* Les intitulés / rôles disposent du même emplacement, même quand ils sont vides.
   La description (« Donateur »...) commence donc à la même hauteur sur chaque carte. */
.rx-supporter-details > .rx-supporter-role{
  box-sizing:border-box;
  display:block;
  flex:0 0 38px;
  height:38px;
  min-height:38px;
  margin:0!important;
  padding:0;
  line-height:1.4!important;
}
.rx-supporter-details > .rx-supporter-description{
  margin:0!important;
  line-height:1.5!important;
}
@media(max-width:767px){
  .rx-supporter-title-row,
  .rx-supporter--yni .rx-supporter-title-row{height:66px;min-height:66px!important;}
  .rx-supporter--yni .rx-supporter-brand--yni{
    flex-basis:43px!important;width:43px!important;
    max-width:43px!important;height:56px!important;
  }
}

/* v7.11.1 — SUCHEME plus lisible, dans la ligne de titre existante. */
.rx-supporter--sucheme .rx-supporter-brand{
 flex-basis:120px;width:120px!important;max-width:44%;height:60px;
}
@media(max-width:767px){
 .rx-supporter--sucheme .rx-supporter-brand{
  flex-basis:110px;width:110px!important;max-width:44%;height:55px;
 }
}


/* v7.14 — Partenaires : marque B1Strike à côté de David, mêmes alignements
   que SUCHEME/Samuel. Les trois logos et URL sont accessibles et cliquables. */
.rx-supporter-title-row a.rx-supporter-brand {
  text-decoration:none!important;
  cursor:pointer;
  border-radius:5px;
  transition:opacity .16s ease;
}
.rx-supporter-title-row a.rx-supporter-brand:hover {opacity:.78}
.rx-supporter-title-row a.rx-supporter-brand:focus-visible,
.rx-supporter-company-site a:focus-visible {
  outline:3px solid #A14822;outline-offset:3px;border-radius:4px;
}
.rx-supporter--b1strike .rx-supporter-title-row h3 {
  font-size:clamp(15px,1.2vw,19px)!important;
  letter-spacing:-.025em!important;
}
.rx-supporter--b1strike .rx-supporter-brand--b1strike {
  display:flex!important;
  position:static!important;
  flex:0 0 60px!important;
  width:60px!important;
  max-width:60px!important;
  min-width:0!important;
  height:60px!important;
  margin:2px 0 0!important;
  align-self:flex-start;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#15191D;
  border-radius:5px;
}
.rx-supporter--b1strike .rx-supporter-brand--b1strike img {
  display:block;width:100%;height:100%;object-fit:contain;object-position:center;
}
.rx-supporter-company-site {
  margin:3px 0 0!important;
  font-size:12px!important;
  line-height:1.4!important;
  overflow-wrap:anywhere;
}
.rx-supporter-company-site a {
  color:#91401B!important;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.rx-supporter-company-site a:hover {color:#54240F!important}
@media(max-width:767px) {
  .rx-supporter--b1strike .rx-supporter-brand--b1strike {
    flex-basis:56px!important;width:56px!important;max-width:56px!important;height:56px!important;
  }
  .rx-supporter-company-site {font-size:12px!important}
}
@media(prefers-reduced-motion:reduce) {
  .rx-supporter-title-row a.rx-supporter-brand {transition:none}
}

/* Le défilement s'arrête quand on survole les liens de sociétés. */
@media(hover:hover) and (pointer:fine){.rx-supporters-viewport:hover .rx-supporters-track{animation-play-state:paused}}
