/**
 * Block: actionworld/reviews
 * Becomes blocks/reviews/style.css.
 */
.aw-reviews { overflow: hidden; }

.aw-reviews__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2rem;
  margin-bottom: 2.5rem;
}

.aw-rating { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.aw-rating__score {
  font-family: var(--aw-font-display);
  font-size: clamp(3.5rem, 2.5rem + 3vw, 5rem);
  font-weight: 600;
  line-height: .8;
  padding-top: .12em;
}
.aw-rating__label {
  margin: 0;
  font-family: var(--aw-font-display);
  font-size: var(--aw-step-2);
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
}
.aw-rating__count { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .9rem; margin: .2rem 0 0; color: var(--aw-mute); font-size: var(--aw-step--1); }
.aw-rating__count strong { color: var(--aw-white); }

/* Marquee: endless, pauses on hover/focus, becomes a scroller when motion is reduced */
.aw-marquee {
  --gap: 1rem;
  -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.aw-marquee__track {
  display: flex;
  gap: var(--gap);
  width: max-content;
  margin: 0;
  padding: .5rem 0;
  list-style: none;
}
@media (prefers-reduced-motion: no-preference) {
  .aw-marquee.is-ready .aw-marquee__track { animation: aw-marquee 60s linear infinite; }
  .aw-marquee:hover .aw-marquee__track,
  .aw-marquee:focus-within .aw-marquee__track { animation-play-state: paused; }
}
/* Scroll mode (small screens or reduced motion): swipe/drag, snap to cards */
.aw-marquee.is-scroller {
  overflow: auto hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-mask: none;
  mask: none;
  cursor: grab;
}
.aw-marquee.is-scroller::-webkit-scrollbar { display: none; }
.aw-marquee.is-scroller.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.aw-marquee.is-scroller .aw-marquee__track { padding-inline: var(--aw-gutter); }
.aw-marquee.is-scroller .aw-review { width: min(82vw, 340px); scroll-snap-align: center; }
.aw-marquee.is-scroller .aw-review:hover { transform: none; }

/* Progress line under the row, in the four attraction colours */
.aw-marquee__progress {
  width: min(100% - 2 * var(--aw-gutter), 220px);
  height: 3px;
  margin: 1.25rem auto 0;
  border-radius: 3px;
  background: rgb(255 255 255 / .12);
  overflow: hidden;
}
.aw-marquee__progress span {
  display: block;
  height: 100%;
  width: var(--w, 30%);
  margin-left: var(--x, 0%);
  border-radius: inherit;
  background: var(--aw-spectrum, linear-gradient(90deg, var(--aw-escape), var(--aw-laser), var(--aw-golf), var(--aw-gamer)));
  transition: margin-left .15s linear;
}

@keyframes aw-marquee {
  to { transform: translateX(calc(-50% - var(--gap) / 2)); }
}

.aw-review {
  display: flex;
  flex-direction: column;
  gap: .8rem;
  width: clamp(270px, 28vw, 360px);
  padding: 1.4rem 1.5rem;
  border: 1px solid var(--aw-line);
  border-radius: var(--aw-radius-m);
  background: var(--aw-ink);
  transition: border-color var(--aw-dur-fast), transform var(--aw-dur) var(--aw-ease-out);
}
.aw-review:hover { border-color: rgb(255 255 255 / .28); transform: translateY(-3px); }

.aw-review__head { display: flex; align-items: center; gap: .75rem; }
.aw-review__avatar {
  display: grid; place-items: center;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--c, var(--aw-red));
  font-weight: 600;
}
.aw-review__name { margin: 0; font-weight: 600; line-height: 1.2; }
.aw-review__text { margin: 0; color: #d5d9e0; font-size: .95rem; line-height: 1.6; }
.aw-review__source { margin-top: auto; }
