/* Boîtes et Emballages Québec — Popup Google Reviews */
.beq-rating-popup {
  box-sizing: border-box;
  position: fixed;
  inset: auto auto 24px 24px; /* coin bas-gauche, avec espace du bas et du bord */
  width: min(560px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 18px;
  background: transparent;
  color: #142b45;
  font-family: inherit;
  overflow: auto;
  z-index: 1000;
  box-shadow: 0 24px 70px rgba(20, 43, 69, .35);
}
/* Effet flottant : la fenêtre monte/descend doucement */
.beq-rating-popup[open] { animation: beq-rating-enter .45s cubic-bezier(.22,.61,.36,1), beq-rating-float 4s ease-in-out .45s infinite; }
.beq-rating-banner {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 18px 18px 0 0;
}
.beq-rating-card { box-sizing: border-box; position: relative; width: 100%; padding: 20px 24px 24px; background: #fff; text-align: center; }
.beq-rating-card h2 { color: #142b45; font-size: clamp(1.5rem, 5vw, 2.1rem); line-height: 1.2; margin: 0 30px 12px; }
.beq-rating-close { position: absolute; right: 10px; top: 10px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: rgba(184,23,35,.92); color: #fff; font-size: 26px; cursor: pointer; z-index: 2; }
.beq-rating-fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
.beq-rating-fieldset legend { float: none; width: 100%; padding: 0; font-size: .95rem; color: #33475b; }
.beq-rating-stars { display: flex; justify-content: center; gap: 4px; margin: 8px 0; }
.beq-rating-star { position: relative; display: block; cursor: pointer; }
.beq-rating-star input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.beq-rating-star span { display: block; min-width: 40px; font-size: clamp(2.2rem, 9vw, 3.6rem); line-height: 1.2; color: #1e5aa4; transition: transform .2s, color .2s; }
.beq-rating-star:hover span { transform: scale(1.12); }
.beq-rating-star.is-selected span { color: #ac7600; }
.beq-rating-star input:focus-visible + span { outline: 3px solid #142b45; outline-offset: 2px; border-radius: 4px; }
.beq-rating-close:focus-visible, .beq-rating-actions a:focus-visible { outline: 3px solid #146ac3; outline-offset: 3px; }
.beq-rating-status { margin: 8px 0 12px; font-size: .9rem; line-height: 1.5; }
.beq-rating-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.beq-rating-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 14px; background: #173c67; color: #fff; font-weight: 700; border-radius: 8px; text-decoration: none; font-size: .9rem; transition: transform .2s, box-shadow .2s; }
.beq-rating-actions a:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(23,60,103,.3); }
.beq-rating-actions a:last-child { background: #edf1f5; color: #173c67; }
.beq-rating-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.beq-rating-confetti { position: absolute; inset: 0; overflow: hidden; pointer-events: none; border-radius: inherit; }
.beq-rating-confetti i { position: absolute; left: 50%; top: 35%; width: 8px; height: 13px; animation: beq-rating-burst 1.4s var(--delay) ease-out both; }
@keyframes beq-rating-enter { from { transform: translateY(40px) scale(.96); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }
@keyframes beq-rating-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes beq-rating-burst { 0% { transform: translate(0, 0) rotate(0); opacity: 1; } 25% { transform: translate(calc(var(--x) * .6), -70px) rotate(calc(var(--spin) * .4)); opacity: 1; } 100% { transform: translate(var(--x), var(--y)) rotate(var(--spin)); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .beq-rating-popup[open], .beq-rating-confetti i { animation: none; } }
@media (max-width: 420px) { .beq-rating-popup { inset: auto 12px 12px 12px; width: auto; } .beq-rating-card { padding: 18px 16px 20px; } }