/**
 * 2026 ALGO-FACTORY.COM — aflivecovers, scène « AF Google Reviews » (scène A de la maquette).
 *
 * Note globale qui s'incrémente, étoiles qui se remplissent, répartition 5★ → 1★, avis qui
 * tombent un à un, relance par e-mail. Racine : .afl-gr ; animations : afl-gr-*.
 * Durée et image fixe : scene.json.
 */

.afl-gr{
  position:absolute;inset:0;
  padding:4cqw 4.4cqw;
  font-size:3.1cqw;
  background:
    radial-gradient(60cqw 40cqw at 88% -8%, rgba(2,114,234,.09), transparent 70%),
    radial-gradient(50cqw 40cqw at -6% 108%, rgba(251,188,5,.14), transparent 68%),
    linear-gradient(180deg,#fdfefe,#f3f6fb);
  animation:afl-cycle var(--afl-dur) linear infinite;
}
.afl-gr::before{ /* trame de fond */
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(7,7,49,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(7,7,49,.045) 1px,transparent 1px);
  background-size:6cqw 6cqw;
  -webkit-mask-image:radial-gradient(70cqw 60cqw at 50% 40%,#000,transparent 78%);
  mask-image:radial-gradient(70cqw 60cqw at 50% 40%,#000,transparent 78%);
}


/* -- entête -- */
.afl-gr__head{position:relative;display:flex;align-items:center;gap:2.2cqw;margin-bottom:2.8cqw}
.afl-gr__glogo{width:6.2cqw;height:6.2cqw;flex:none;filter:drop-shadow(0 .4cqw .8cqw rgba(7,7,49,.16))}
.afl-gr__ttl{display:flex;flex-direction:column;line-height:1.15;flex:1;min-width:0}
.afl-gr__ttl b{font-size:3.5cqw;font-weight:700;letter-spacing:-.01em}
.afl-gr__ttl span{font-size:2.5cqw;color:var(--afl-ink-40);font-weight:500;margin-top:.4cqw}
.afl-gr__live{
  display:inline-flex;align-items:center;gap:1.1cqw;flex:none;
  font-size:2.3cqw;font-weight:700;letter-spacing:.08em;
  color:var(--afl-success);background:rgba(22,163,74,.1);
  border:1px solid rgba(22,163,74,.24);border-radius:99px;padding:.9cqw 2cqw;
}
.afl-gr__live i{width:1.4cqw;height:1.4cqw;border-radius:50%;background:var(--afl-success);animation:afl-gr-blink var(--afl-dur) linear infinite}
@keyframes afl-gr-blink{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(22,163,74,.5)}4%{opacity:.35;box-shadow:0 0 0 1.4cqw rgba(22,163,74,0)}8%{opacity:1}}

/* -- bloc score -- */
.afl-gr__score{
  position:relative;display:flex;gap:3cqw;align-items:center;
  background:#fff;border:1px solid var(--afl-ink-08);border-radius:2.4cqw;
  padding:2.4cqw 2.8cqw;box-shadow:0 1.4cqw 3.4cqw -2cqw rgba(7,7,49,.2);
  margin-bottom:2.6cqw;
}
.afl-gr__big{
  display:flex;align-items:flex-end;font-size:10cqw;font-weight:800;
  letter-spacing:-.04em;line-height:1;color:var(--afl-ink);
}
.afl-gr__big .afl-gr__sep{margin:0 -.4cqw}
.afl-gr__big .afl-reel{font-size:1em}
.afl-gr__big .afl-gr__max{font-size:4.4cqw;color:var(--afl-ink-40);font-weight:600;margin:0 0 1.3cqw .9cqw;letter-spacing:0}
.afl-gr__int{animation:afl-gr-int var(--afl-dur) linear infinite}
@keyframes afl-gr-int{ /* 5 chiffres → 1 cran = 20% */
  0%,6%{transform:translateY(0);animation-timing-function:steps(5,jump-none)}
  27%,100%{transform:translateY(-80%)}
}
.afl-gr__dec{animation:afl-gr-dec var(--afl-dur) linear infinite}
@keyframes afl-gr-dec{ /* 20 chiffres → 1 cran = 5% */
  0%,6%{transform:translateY(0);animation-timing-function:steps(20,jump-none)}
  27%,100%{transform:translateY(-95%)}
}

.afl-gr__col{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.1cqw}
.afl-gr__stars{position:relative;display:inline-flex;gap:.7cqw;width:max-content}
.afl-gr__stars svg{width:3.9cqw;height:3.9cqw;display:block}
.afl-gr__stars-base svg{fill:rgba(7,7,49,.13)}
.afl-gr__stars-fill{
  position:absolute;inset:0;display:inline-flex;gap:.7cqw;
  clip-path:inset(0 100% 0 0);
  animation:afl-gr-fill var(--afl-dur) cubic-bezier(.22,.9,.3,1) infinite;
}
.afl-gr__stars-fill svg{fill:#fbbc05;filter:drop-shadow(0 .3cqw .5cqw rgba(251,188,5,.5))}
@keyframes afl-gr-fill{
  0%,9%{clip-path:inset(0 100% 0 0)}
  32%,100%{clip-path:inset(0 2% 0 0)}
}
.afl-gr__sub{font-size:2.3cqw;line-height:1.3;color:var(--afl-ink-40);font-weight:500;opacity:0;animation:afl-gr-sub var(--afl-dur) ease-out infinite}
.afl-gr__sub b{color:var(--afl-ink);font-weight:700}
@keyframes afl-gr-sub{0%,26%{opacity:0;transform:translateY(.8cqw)}33%,100%{opacity:1;transform:none}}

/* répartition 5★ → 1★ */
.afl-gr__bars{display:flex;flex-direction:column;gap:.55cqw;margin-top:.4cqw}
.afl-gr__bar{display:flex;align-items:center;gap:1cqw;font-size:1.9cqw;line-height:1;color:var(--afl-ink-40);font-weight:600}
.afl-gr__bar u{text-decoration:none;width:2.6cqw;text-align:right;flex:none}
.afl-gr__bar i{
  flex:1;height:1cqw;border-radius:99px;background:var(--afl-ink-08);position:relative;overflow:hidden;
}
.afl-gr__bar i::after{
  content:"";position:absolute;inset:0;border-radius:99px;transform-origin:left center;transform:scaleX(0);
  background:linear-gradient(90deg,#fbbc05,#f6a700);
}
.afl-gr__bar:nth-child(1) i::after{animation:afl-gr-bar1 var(--afl-dur) cubic-bezier(.2,.85,.3,1) infinite}
.afl-gr__bar:nth-child(2) i::after{animation:afl-gr-bar2 var(--afl-dur) cubic-bezier(.2,.85,.3,1) infinite}
.afl-gr__bar:nth-child(3) i::after{animation:afl-gr-bar3 var(--afl-dur) cubic-bezier(.2,.85,.3,1) infinite}
.afl-gr__bar:nth-child(4) i::after{animation:afl-gr-bar4 var(--afl-dur) cubic-bezier(.2,.85,.3,1) infinite}
.afl-gr__bar:nth-child(5) i::after{animation:afl-gr-bar5 var(--afl-dur) cubic-bezier(.2,.85,.3,1) infinite}
@keyframes afl-gr-bar1{0%,12%{transform:scaleX(0)}30%,100%{transform:scaleX(.93)}}
@keyframes afl-gr-bar2{0%,15%{transform:scaleX(0)}33%,100%{transform:scaleX(.42)}}
@keyframes afl-gr-bar3{0%,18%{transform:scaleX(0)}36%,100%{transform:scaleX(.13)}}
@keyframes afl-gr-bar4{0%,21%{transform:scaleX(0)}39%,100%{transform:scaleX(.05)}}
@keyframes afl-gr-bar5{0%,24%{transform:scaleX(0)}42%,100%{transform:scaleX(.02)}}

/* -- flux d'avis -- */
.afl-gr__feed{position:relative;display:flex;flex-direction:column;gap:1.8cqw}
.afl-gr__card{
  position:relative;z-index:3;
  display:flex;gap:2cqw;align-items:flex-start;
  background:#fff;border:1px solid var(--afl-ink-08);border-radius:2cqw;
  padding:1.8cqw 2.2cqw;box-shadow:0 1cqw 2.4cqw -1.6cqw rgba(7,7,49,.24);
  opacity:0;
}
.afl-gr__card:nth-child(2){animation:afl-gr-card1 var(--afl-dur) cubic-bezier(.16,1.06,.3,1) infinite}
.afl-gr__card:nth-child(3){animation:afl-gr-card2 var(--afl-dur) cubic-bezier(.16,1.06,.3,1) infinite}
@keyframes afl-gr-card1{
  0%,36%{opacity:0;transform:translateY(4cqw) scale(.94)}
  45%,100%{opacity:1;transform:none}
}
@keyframes afl-gr-card2{
  0%,47%{opacity:0;transform:translateY(4cqw) scale(.94)}
  56%,100%{opacity:1;transform:none}
}
/* squelettes de chargement, remplacés par les vrais avis */
.afl-gr__ghosts{position:absolute;inset:0;display:flex;flex-direction:column;gap:1.8cqw;z-index:1}
.afl-gr__gcard{
  flex:1;display:flex;align-items:center;gap:2cqw;padding:1.8cqw 2.2cqw;
  border:1px dashed var(--afl-ink-14);border-radius:2cqw;background:rgba(7,7,49,.015);
}
.afl-gr__gcard::before{
  content:"";width:5.8cqw;height:5.8cqw;border-radius:50%;flex:none;background:var(--afl-ink-08);
}
.afl-gr__gcard::after{
  content:"";flex:1;height:5.4cqw;border-radius:.8cqw;
  background:
    linear-gradient(var(--afl-ink-08),var(--afl-ink-08)) 0 0/70% 1.4cqw no-repeat,
    linear-gradient(var(--afl-ink-05),var(--afl-ink-05)) 0 2.2cqw/95% 1.2cqw no-repeat,
    linear-gradient(var(--afl-ink-05),var(--afl-ink-05)) 0 4.2cqw/55% 1.2cqw no-repeat;
}
.afl-gr__gcard:nth-child(1){animation:afl-gr-ghost1 var(--afl-dur) ease-out infinite}
.afl-gr__gcard:nth-child(2){animation:afl-gr-ghost2 var(--afl-dur) ease-out infinite}
@keyframes afl-gr-ghost1{0%,36%{opacity:1}43%,100%{opacity:0}}
@keyframes afl-gr-ghost2{0%,47%{opacity:1}54%,100%{opacity:0}}
.afl-gr__shim{
  position:absolute;inset:0;border-radius:2cqw;overflow:hidden;pointer-events:none;z-index:2;
  animation:afl-gr-ghost2 var(--afl-dur) ease-out infinite;
}
.afl-gr__shim::after{
  content:"";position:absolute;top:0;bottom:0;width:40%;
  background:linear-gradient(90deg,transparent,rgba(2,114,234,.14),transparent);
  animation:afl-gr-shim var(--afl-dur) linear infinite;
}
@keyframes afl-gr-shim{
  0%{transform:translateX(-120%)}
  18%{transform:translateX(300%)}
  18.01%{transform:translateX(-120%)}
  36%{transform:translateX(300%)}
  36.01%,100%{transform:translateX(-120%)}
}

.afl-gr__ava{
  width:5.8cqw;height:5.8cqw;border-radius:50%;flex:none;
  display:grid;place-items:center;color:#fff;font-weight:700;font-size:2.4cqw;
  box-shadow:0 .6cqw 1.4cqw -.6cqw rgba(7,7,49,.5);
}
.afl-gr__ava--a{background:linear-gradient(135deg,#0272ea,#0a4fae)}
.afl-gr__ava--b{background:linear-gradient(135deg,#17c3b2,#0e9184)}
.afl-gr__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.9cqw}
.afl-gr__meta{display:flex;align-items:center;gap:1.2cqw;line-height:1.2}
.afl-gr__meta b{font-size:2.4cqw;font-weight:600}
.afl-gr__meta .afl-gr__stars-txt{color:#fbbc05;font-size:2.2cqw;letter-spacing:.2cqw}
.afl-gr__meta .afl-gr__ago{margin-left:auto;font-size:2cqw;color:var(--afl-ink-40);font-weight:500}
.afl-gr__line{height:1.4cqw;border-radius:99px;background:var(--afl-ink-08)}
.afl-gr__line--s{width:62%}

/* relance email : l'enveloppe part vers le client */
.afl-gr__mail{
  position:absolute;right:4cqw;bottom:3.2cqw;z-index:6;
  display:inline-flex;align-items:center;gap:1.4cqw;
  background:linear-gradient(180deg,#0d80f7,#0272ea);color:#fff;
  font-size:2.3cqw;font-weight:600;border-radius:99px;padding:1.2cqw 2.4cqw;
  box-shadow:0 1.6cqw 3cqw -1.2cqw rgba(2,114,234,.9);
  opacity:0;white-space:nowrap;
}
.afl-gr__mail svg{width:3cqw;height:3cqw;fill:#fff}
.afl-gr__mail{animation:afl-gr-mail var(--afl-dur) cubic-bezier(.2,.9,.25,1) infinite}
@keyframes afl-gr-mail{
  0%,62%{opacity:0;transform:translate(2cqw,2.6cqw) scale(.86)}
  68%,76%{opacity:1;transform:none}
  82%,100%{opacity:0;transform:translate(-3cqw,-3.4cqw) scale(.9)}
}

/* badge de fin */
.afl-gr__badge{
  position:absolute;right:4cqw;bottom:3.2cqw;z-index:6;
  display:inline-flex;align-items:center;gap:1.3cqw;
  background:#fff;border:1px solid rgba(22,163,74,.3);
  color:var(--afl-success);font-size:2.3cqw;font-weight:700;
  border-radius:99px;padding:1.1cqw 2.2cqw;
  box-shadow:0 1.6cqw 3.4cqw -1.6cqw rgba(7,7,49,.4);
  opacity:0;animation:afl-gr-badge var(--afl-dur) cubic-bezier(.16,1.2,.3,1) infinite;
}
.afl-gr__badge svg{width:2.9cqw;height:2.9cqw;fill:var(--afl-success)}
@keyframes afl-gr-badge{
  0%,83%{opacity:0;transform:scale(.7)}
  89%,100%{opacity:1;transform:none}
}

/* étincelle sur la dernière étoile */
.afl-gr__spark{
  position:absolute;right:-1.6cqw;top:-1.4cqw;width:5.2cqw;height:5.2cqw;z-index:5;
  opacity:0;animation:afl-gr-spark var(--afl-dur) ease-out infinite;pointer-events:none;
}
.afl-gr__spark::before,.afl-gr__spark::after{
  content:"";position:absolute;left:50%;top:50%;background:#fbbc05;border-radius:99px;
  transform:translate(-50%,-50%);
}
.afl-gr__spark::before{width:100%;height:.5cqw}
.afl-gr__spark::after{width:.5cqw;height:100%}
@keyframes afl-gr-spark{
  0%,29%{opacity:0;transform:scale(.2) rotate(0deg)}
  34%{opacity:1;transform:scale(1) rotate(45deg)}
  41%,100%{opacity:0;transform:scale(1.5) rotate(90deg)}
}


/* étoiles de fond, sous le remplissage */
.afl-gr__stars-base{display:inline-flex;gap:.7cqw}
