/* ============================================================
   Blue Reva Featured Banner – v2.5.1 (FLOAT bottom-right)
   ✅ FIX COMPLET "pastille transparente au chargement" (Elementor/Chrome/Safari)
   - Fond solide fallback + gradient stable
   - Calques GPU stables (translate3d + backface + opacity hack)
   - Isolation / contain pour éviter que les filtres/transform parents impactent
   - Neutralise filter / mix-blend-mode côté widget
   - Scroll manuel horizontal activable via .brfb-shell.is-manual-scroll
============================================================ */

:root{
  --brfb-blue-1:#1F2670;  /* charte */
  --brfb-blue-2:#09A9F8;

  --brfb-gold:#F7C948;
  --brfb-gold-2:#FFD76A;

  --brfb-float-bottom: 22px;
  --brfb-float-right: 18px;

  --brfb-panel-width: 520px;
  --brfb-panel-width-open: 720px;

  --brfb-pill-scale: 1;

  /* GAP cards (doit matcher le JS: GAP = 12) */
  --brfb-gap: 12px;
}

/* ============================================================
   Elementor-safe widget container
============================================================ */
.brfb-shell{
  position: fixed !important;
  bottom: var(--brfb-float-bottom) !important;
  right: var(--brfb-float-right) !important;
  top: auto !important;
  left: auto !important;

  z-index: 999999 !important;
  width: min(var(--brfb-panel-width), calc(100vw - (var(--brfb-float-right) * 2))) !important;
  max-width: calc(100vw - (var(--brfb-float-right) * 2)) !important;
  margin: 0 !important;
  box-sizing: border-box;
  overflow-x: hidden;
  touch-action: pan-y;

  pointer-events: none;

  isolation: isolate;

  /* ✅ Empêche les effets Elementor (filter/blend) de “traverser” */
  filter: none !important;
  mix-blend-mode: normal !important;
}

.brfb-shell *{
  pointer-events: auto;

  /* ✅ évite héritage de blending/filter */
  filter: none;
  mix-blend-mode: normal;
}

.brfb-shell.is-collapsed{ width: auto !important; }
.brfb-shell.is-expanded{
  width: min(var(--brfb-panel-width-open), calc(100vw - (var(--brfb-float-right) * 2))) !important;
  max-width: calc(100vw - (var(--brfb-float-right) * 2)) !important;
}

/* ============================================================
   Pastille
============================================================ */
.brfb-pill-toggle{
  display: inline-flex;
  align-items: center;
  gap: 12px;

  border: 0;
  cursor: pointer;
  padding: 14px 18px;
  border-radius: 999px;

  font-weight: 900;
  color: #fff;

  /* ✅ FIX: fond solide + gradient “stable” (évite flash transparent) */
  background-color: var(--brfb-blue-1);
  background-image: linear-gradient(135deg, var(--brfb-blue-1), var(--brfb-blue-2));

  box-shadow:
    0 16px 42px rgba(15,23,42,.22),
    0 0 0 2px rgba(247,201,72,.55);

  user-select: none;
  position: relative;
  overflow: hidden;
  transform-origin: bottom right;
  -webkit-tap-highlight-color: transparent;

  will-change: auto;
  -webkit-transform: translate3d(0,0,0) scale(var(--brfb-pill-scale));
  transform: translate3d(0,0,0) scale(var(--brfb-pill-scale));
  opacity: 1;
}

.brfb-pill-toggle i.fa-sparkles{
  color: var(--brfb-gold-2);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.25));
}

.brfb-pill-toggle .brfb-pill-text{
  white-space: nowrap;
  font-size: 14px;
  letter-spacing: .2px;
}

/* Animation uniquement replié */
.brfb-shell.is-collapsed .brfb-pill-toggle{
  animation: brfbPulse 2.2s ease-in-out infinite;
}

/* Shine discret */
.brfb-shell.is-collapsed .brfb-pill-toggle::after{
  content:"";
  position:absolute;
  inset:-40% -60%;
  background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,.22) 50%, transparent 60%);
  transform: rotate(12deg) translateX(-60%);
  animation: brfbShine 2.6s ease-in-out infinite;
  pointer-events:none;
}

/* Stop animation on hover */
.brfb-pill-toggle:hover{
  animation: none !important;
  box-shadow:
    0 20px 54px rgba(15,23,42,.26),
    0 0 0 2px rgba(247,201,72,.72);
  -webkit-transform: translate3d(0,0,0) translateY(-1px) scale(var(--brfb-pill-scale));
  transform: translate3d(0,0,0) translateY(-1px) scale(var(--brfb-pill-scale));
}
.brfb-pill-toggle:hover::after{ animation: none !important; }

@keyframes brfbPulse{
  0%,100%{ transform: translate3d(0,0,0) scale(var(--brfb-pill-scale)); }
  50%{ transform: translate3d(0,0,0) scale(calc(var(--brfb-pill-scale) + 0.03)); }
}
@keyframes brfbShine{
  0%{ transform: rotate(12deg) translateX(-60%); opacity:0; }
  15%{ opacity:.9; }
  55%{ opacity:0; }
  100%{ transform: rotate(12deg) translateX(70%); opacity:0; }
}

/* États */
.brfb-shell.is-expanded .brfb-pill-toggle{ display:none; }
.brfb-shell.is-collapsed .brfb-banner{ display:none; }

/* ============================================================
   Bannière (panneau)
============================================================ */
.brfb-banner{
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.18);
  border-radius: 18px;
  overflow: hidden;

  box-shadow:
    0 22px 70px rgba(15,23,42,.18),
    0 0 0 1px rgba(15,23,42,.08),
    0 0 0 3px rgba(247,201,72,.16);

  transform-origin: bottom right;
}

.brfb-shell.is-expanded .brfb-banner{ animation: brfbPop .18s ease-out; }
@keyframes brfbPop{
  from{ transform: scale(.985); opacity: 0; }
  to{ transform: scale(1); opacity: 1; }
}

.brfb-header{
  display:flex;
  justify-content:space-between;
  gap: 12px;
  padding: 14px 16px;

  background:
    radial-gradient(600px 120px at 10% 0%, rgba(247,201,72,.25), transparent 60%),
    linear-gradient(135deg, rgba(31,38,112,.08), rgba(9,169,248,.08));

  border-bottom: 1px solid rgba(15,23,42,.10);
}

.brfb-title{
  display:flex;
  gap: 12px;
  align-items:flex-start;
}

.brfb-title i{
  margin-top: 3px;
  color: var(--brfb-gold);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.15));
}

.brfb-title h3{
  margin: 0;
  font-size: 16px;
  line-height: 1.2;
  color:#0f172a;
  font-weight: 900;
}

.brfb-title p{
  margin: 2px 0 0;
  font-size: 13px;
  color: rgba(15,23,42,.68);
  font-weight: 600;
}

.brfb-right{
  display:flex;
  align-items:center;
  gap: 10px;
  flex-shrink: 0;
}

.brfb-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(247,201,72,.22), rgba(31,38,112,.08));
  color: #1F2670;
  font-weight: 900;
  font-size: 12px;
  border: 1px solid rgba(247,201,72,.35);
  white-space: nowrap;
}

.brfb-collapse-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  border: 1px solid rgba(15,23,42,.14);
  background: #fff;
  cursor: pointer;
  color: rgba(15,23,42,.75);
  transition: transform .15s ease, box-shadow .15s ease;
}
.brfb-collapse-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(15,23,42,.12);
}

/* ============================================================
   Track / Cards
============================================================ */
.brfb-track-wrap{
  position: relative;
  overflow: hidden;
  padding: 14px 12px 16px;
  overscroll-behavior: contain;
  overscroll-behavior-x: contain;
  -webkit-tap-highlight-color: transparent;
  max-width: 100%;
  touch-action: pan-x;

  content-visibility: visible;
}

/* Mode scroll manuel */
.brfb-shell.is-manual-scroll .brfb-track-wrap{
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 10px;
  cursor: grab;

  scroll-snap-type: x proximity;
}
.brfb-shell.is-manual-scroll .brfb-track-wrap:active{ cursor: grabbing; }

/* Scrollbar */
.brfb-shell.is-manual-scroll .brfb-track-wrap::-webkit-scrollbar{ height: 8px; }
.brfb-shell.is-manual-scroll .brfb-track-wrap::-webkit-scrollbar-thumb{
  background: rgba(15,23,42,.18);
  border-radius: 999px;
}
.brfb-shell.is-manual-scroll .brfb-track-wrap::-webkit-scrollbar-track{
  background: rgba(15,23,42,.06);
  border-radius: 999px;
}

.brfb-track{
  display:flex;
  gap: var(--brfb-gap);
  will-change: transform;
}

/* En manuel: pas de transform forcé */
.brfb-shell.is-manual-scroll .brfb-track{
  width: max-content;
  will-change: auto;
  transform: none !important;
}

.brfb-card{
  display:flex;
  width: 320px;
  min-width: 320px;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid rgba(15,23,42,.12);
  border-radius: 16px;
  overflow:hidden;
  box-shadow: 0 10px 26px rgba(15,23,42,.07);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  scroll-snap-align: start;
  opacity: 1;
  visibility: visible;
}

.brfb-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(15,23,42,.12);
  border-color: rgba(247,201,72,.45);
}

.brfb-card-media{
  width: 92px;
  min-width: 92px;
  min-height: 118px;
  background-color: #e8ecf7;
  background:
    radial-gradient(120px 120px at 30% 20%, rgba(247,201,72,.25), transparent 60%),
    linear-gradient(135deg, rgba(31,38,112,.10), rgba(9,169,248,.10));
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 1;
  visibility: visible;
}

.brfb-card-body{
  position: relative;
  padding: 12px 12px 10px;
  display:flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
}

.brfb-card-top h4{
  margin: 0;
  font-size: 14px;
  font-weight: 900;
  color: #0f172a;
}

.brfb-chip{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(247,201,72,.22);
  border: 1px solid rgba(247,201,72,.35);
  color: #6a4c00;
  font-weight: 900;
  font-size: 12px;
}

.brfb-desc{
  margin: 8px 0 0;
  color: rgba(15,23,42,.72);
  font-size: 12.5px;
  line-height: 1.35;
  font-weight: 600;
}

.brfb-cta{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--brfb-blue-1), var(--brfb-blue-2));
  color: #fff;
  font-weight: 900;
  font-size: 13px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
  opacity: 1;
  visibility: visible;
}

.brfb-lock{
  position:absolute;
  right: 10px;
  top: 10px;
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.65);
  color:#fff;
  font-weight: 900;
  font-size: 12px;
}

.brfb-card.is-locked .brfb-cta{
  background: linear-gradient(135deg, #111827, #334155);
}

/* ============================================================
   Mobile
============================================================ */
@media(max-width: 680px){
  .brfb-card{
    width: clamp(252px, 78vw, 320px);
    min-width: clamp(252px, 78vw, 320px);
  }
  .brfb-title p{ display:none; }

  .brfb-header{
    flex-wrap: nowrap;
    align-items: flex-start;
  }
  .brfb-right{
    width: auto;
    justify-content: flex-end;
  }
  .brfb-badge{
    font-size: 11px;
    padding: 7px 9px;
  }
  .brfb-lock{
    display: none;
  }
  .brfb-pill-toggle{
    max-width: 100%;
    padding: 12px 14px;
    gap: 8px;
  }
  .brfb-pill-toggle .brfb-pill-text{
    max-width: 56vw;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .brfb-track-wrap{
    padding: 12px 10px 14px;
  }

  :root{
    --brfb-float-bottom: max(10px, env(safe-area-inset-bottom));
    --brfb-float-right: max(8px, env(safe-area-inset-right));
    --brfb-panel-width: 720px;
    --brfb-panel-width-open: 720px;
    --brfb-pill-scale: 1;
  }
}
