/* Reviews hero proof panel — refined editorial rating treatment. */
.rv-hero {
  min-height: auto;
  padding-bottom: clamp(4.5rem, 8vw, 7rem);
}

.rv-hero__grid {
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.8rem, 5vw, 4.8rem);
  align-items: start;
}

.rv-hero__copy {
  max-width: 55rem;
}

.rv-score.rv-score--editorial {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: none;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(15rem, .56fr) 1px minmax(0, 1fr);
  align-items: center;
  justify-items: stretch;
  gap: clamp(2rem, 4.5vw, 5rem);
  padding: clamp(2.2rem, 4.5vw, 4.6rem);
  border: 1px solid rgb(255 255 255 / .68);
  border-radius: clamp(1.35rem, 2.4vw, 2.25rem);
  background:
    radial-gradient(circle at 72% 34%, rgb(120 208 231 / .17), transparent 22rem),
    linear-gradient(132deg, rgb(255 255 255 / .98), rgb(235 246 251 / .96));
  color: var(--deep-blue);
  box-shadow:
    0 2.6rem 6.5rem rgb(2 23 34 / .32),
    inset 0 0 0 10px rgb(255 255 255 / .2);
  backdrop-filter: blur(18px);
}

.rv-score.rv-score--editorial::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 10px;
  border: 1px solid rgb(0 125 204 / .1);
  border-radius: calc(clamp(1.35rem, 2.4vw, 2.25rem) - 8px);
  pointer-events: none;
}

.rv-score__flow {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.rv-score__flow path {
  fill: none;
  stroke: rgb(69 192 226 / .43);
  stroke-width: 2;
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
  vector-effect: non-scaling-stroke;
}

html.motion-ready .rv-score__flow path {
  stroke-dashoffset: 1;
  transition: stroke-dashoffset 1400ms var(--ease-out) 260ms;
}

html.motion-ready .rv-score--editorial.is-visible .rv-score__flow path {
  stroke-dashoffset: 0;
}

.rv-score__flow path:last-child {
  stroke: rgb(120 208 231 / .25);
  stroke-width: 9;
  filter: blur(5px);
}

.rv-score__rating,
.rv-score__summary {
  position: relative;
  z-index: 1;
}

.rv-score__rating {
  display: grid;
  justify-items: start;
  align-content: center;
}

.rv-score__google-mark {
  width: clamp(3.4rem, 5vw, 4.6rem);
  height: auto;
  padding: .72rem;
  border-radius: 50%;
  background: linear-gradient(140deg, rgb(255 255 255 / .97), rgb(224 245 251 / .94));
  box-shadow:
    0 .9rem 2.2rem rgb(0 125 204 / .2),
    inset 0 0 0 1px rgb(0 125 204 / .09);
}

.rv-score.rv-score--editorial .rv-score__label {
  margin: clamp(1.15rem, 2vw, 1.7rem) 0 0;
  color: #476879;
  font-size: clamp(.72rem, .82vw, .85rem);
  line-height: 1;
  letter-spacing: .22em;
}

.rv-score.rv-score--editorial .rv-score__value {
  display: block;
  margin-top: clamp(1.25rem, 1.8vw, 1.65rem);
  font-family: var(--font-serif);
  font-size: clamp(6.2rem, 11vw, 10rem);
  font-weight: 400;
  line-height: .86;
  letter-spacing: -.075em;
}

.rv-score.rv-score--editorial .rv-score__stars {
  margin-top: clamp(1.3rem, 2.2vw, 2rem);
  color: #edae32;
  font-size: clamp(1.15rem, 1.8vw, 1.55rem);
  line-height: 1;
  letter-spacing: .14em;
  text-shadow: 0 .25rem .9rem rgb(237 174 50 / .2);
}

.rv-score__divider {
  align-self: stretch;
  width: 1px;
  min-height: 18rem;
  background: linear-gradient(180deg, transparent, rgb(0 125 204 / .2) 16%, rgb(0 125 204 / .2) 84%, transparent);
}

.rv-score__summary {
  display: grid;
  justify-items: start;
  gap: clamp(1rem, 1.8vw, 1.45rem);
}

.rv-score.rv-score--editorial .rv-score__headline {
  max-width: 15ch;
  margin: 0;
  color: var(--deep-blue);
  font-family: var(--font-serif);
  font-size: clamp(2.45rem, 5.1vw, 4.9rem);
  font-weight: 500;
  line-height: .96;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.rv-score.rv-score--editorial .rv-score__support {
  max-width: 38rem;
  margin: 0;
  color: #4d6b7a;
  font-size: clamp(1rem, 1.4vw, 1.24rem);
  line-height: 1.55;
  text-wrap: pretty;
}

.rv-score.rv-score--editorial .rv-score__button {
  min-width: min(100%, 21rem);
  margin-top: clamp(.25rem, .8vw, .65rem);
  padding-inline: clamp(1.25rem, 2.4vw, 2.2rem);
  border-color: var(--brand-blue);
  border-radius: 999px;
  background: linear-gradient(135deg, #108ad2, #0071c5);
  color: var(--white);
  font-size: clamp(.85rem, 1vw, .98rem);
  justify-content: center;
  box-shadow: 0 1rem 2.4rem rgb(0 125 204 / .2);
}

.rv-score.rv-score--editorial .rv-score__button:hover {
  border-color: #36addd;
  background: linear-gradient(135deg, #1598df, #006bb7);
  color: var(--white);
}

@media (max-width: 760px) {
  .rv-score.rv-score--editorial {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    padding: 2rem;
  }

  .rv-score__rating {
    grid-template-columns: auto 1fr;
    column-gap: 1rem;
    align-items: center;
  }

  .rv-score__google-mark {
    grid-row: 1 / 3;
  }

  .rv-score.rv-score--editorial .rv-score__label {
    margin: 0;
  }

  .rv-score.rv-score--editorial .rv-score__value {
    margin-top: 1rem;
    font-size: clamp(5rem, 26vw, 7.4rem);
  }

  .rv-score.rv-score--editorial .rv-score__stars {
    grid-column: 1 / -1;
    margin-top: 1.2rem;
  }

  .rv-score__divider {
    width: 100%;
    min-height: 1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgb(0 125 204 / .22) 12%, rgb(0 125 204 / .22) 88%, transparent);
  }

  .rv-score.rv-score--editorial .rv-score__headline {
    max-width: 11ch;
    font-size: clamp(2.6rem, 12vw, 4rem);
  }

  .rv-score.rv-score--editorial .rv-score__button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rv-score__flow path,
  .rv-score.rv-score--editorial .rv-score__button {
    transition: none;
  }

  .rv-score__flow path {
    stroke-dashoffset: 0 !important;
  }
}
