/* Open, light review canvas. No overrides inside the third-party widget. */
.reviews {
  --reviews-play: paused;
  --reviews-line: #781f3829;
  --reviews-x: 70%;
  --reviews-y: 35%;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 84px 0 76px;
  color: var(--color-navy);
  background: linear-gradient(160deg, #f4f7fb 0%, #fff 25%, #fff 76%, #f7f4f5 100%);
}
.reviews--running { --reviews-play: running; }
.reviews__inner { position: relative; z-index: 1; }
.reviews__pattern { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.reviews__grid {
  position: absolute; inset: 0;
  background-image: radial-gradient(#15223838 .85px, transparent .85px);
  background-size: 23px 23px;
  mask-image: linear-gradient(90deg, #000, transparent 23%, transparent 77%, #000);
  opacity: .4;
  animation: reviews-grid 10s ease-in-out infinite;
  animation-play-state: var(--reviews-play);
}
.reviews__glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 420px 290px at var(--reviews-x) var(--reviews-y), #e4ecf6b3, transparent 100%);
  opacity: .65;
}
.reviews__paths { width: 100%; height: 100%; fill: none; stroke-width: 1; }
.reviews__contours { stroke: var(--reviews-line); }
.reviews__signals { stroke: #c9471680; stroke-width: 1.6; stroke-dasharray: 60 350; }
.reviews__signals>path { animation: reviews-signal 18s linear infinite; animation-play-state: var(--reviews-play); }
.reviews__signals>path:nth-child(2) { stroke: #29496766; animation-direction: reverse; animation-delay: -8s; }
.reviews__motion-control {
  position: absolute; top: 24px; right: var(--page-gutter); z-index: 2;
  display: grid; place-items: center; width: 38px; height: 38px;
  border: 1px solid #15223840; border-radius: 50%; background: #ffffffb3;
  color: var(--color-navy); font: 400 14px/1 var(--font-sans); cursor: pointer;
}
.reviews__motion-control:hover { border-color: var(--color-bordeaux); color: var(--color-bordeaux); }
.reviews__motion-control:disabled { opacity: .5; cursor: default; }
.reviews__heading { display: grid; gap: 28px; align-items: end; margin-bottom: 44px; }
.reviews__copy { min-width: 0; }
.reviews .eyebrow { font-size: .875rem; }
.reviews h2 { font-size: clamp(2rem, 3.2vw, 2.8rem); font-weight: 800; line-height: 1.22; letter-spacing: -.045em; margin-top: 20px; max-width: 25ch; }
.reviews h2>span { color: var(--color-bordeaux); }
.reviews__aside { position: relative; max-width: 350px; padding-left: 49px; }
.reviews__aside>p { font-size: 1.125rem; line-height: 1.8; color: var(--color-muted); }
.reviews__quote {
  position: absolute; top: -20px; left: 0;
  font: 400 104px/1 Georgia, serif; color: var(--color-bordeaux); opacity: .5;
  animation: reviews-quote 7s ease-in-out infinite;
  animation-play-state: var(--reviews-play);
}
.reviews__stage {
  position: relative; padding: 25px 10px;
  border-block: 1px solid #1522381c;
  background: linear-gradient(180deg, #ffffffed, #ffffffd9);
  box-shadow: 0 24px 50px -40px #15223840;
}
.reviews__stage::before {
  content: ''; position: absolute; height: 1px; top: -1px; left: 0; right: 0;
  background: linear-gradient(90deg, transparent, #c9471670, #781f3866, transparent);
  transform-origin: left; transform: scaleX(.4); opacity: .5;
  transition: transform .8s var(--ease), opacity .5s;
  pointer-events: none;
}
.reviews__stage:is(:hover, :focus-within)::before { transform: scaleX(1); opacity: 1; }
.reviews__corner { position: absolute; width: 18px; height: 18px; pointer-events: none; border-color: #781f3866; border-style: solid; }
.reviews__corner--start { left: 0; top: -1px; border-width: 1px 0 0 1px; }
.reviews__corner--end { right: 0; bottom: -1px; border-width: 0 1px 1px 0; }
.reviews__widget { position: relative; min-height: 280px; }
.reviews__notice { padding: 30px 10px; line-height: 1.7; }
@keyframes reviews-signal { to { stroke-dashoffset: -1230; } }
@keyframes reviews-grid { 0%, 100% { opacity: .3; } 50% { opacity: .6; } }
@keyframes reviews-quote { 0%, 100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-5px) rotate(2deg); } }
@media (min-width: 768px) {
  .reviews { padding-block: 100px 90px; }
  .reviews__heading { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 42px; margin-bottom: 52px; }
  .reviews__aside { justify-self: end; padding-left: 0; padding-top: 52px; }
  .reviews__quote { top: -18px; font-size: 120px; }
  .reviews__stage { padding: 38px 28px; }
  .reviews__widget { min-height: 320px; }
}
@media (max-width: 767px) { .reviews__break { display: none; } .reviews__paths { opacity: .65; } }
@media (prefers-reduced-motion: reduce) {
  .reviews__grid, .reviews__signals>path, .reviews__quote { animation: none; }
  .reviews__stage::before { transition: none; }
}
