/**
 * Reviews page presentation.
 *
 * PremiumBox remains the owner of review data, form submission, validation,
 * and captcha rendering. This stylesheet only controls the reviews route UI.
 */

body.fm-reviews-page-template {
  background: var(--fm-neutral-0);
  color: var(--fm-neutral-900);
  font-family: var(--fm-font);
}

.fm-reviews-page {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: none;
  padding: 0 0 20px;
  width: 100%;
}

.fm-reviews-page__hero {
  margin-inline: auto;
  max-width: 956px;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fm-reviews-page__sources,
.fm-reviews-page__form-card {
  background: var(--fm-neutral-50);
  border-radius: var(--fm-feedback-card-radius);
  box-sizing: border-box;
  height: auto;
  min-width: 0;
}

.fm-reviews-page__sources {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 40px;
}

.fm-reviews-page__card-title {
  color: var(--fm-neutral-900);
  font: var(--fm-type-heading-h3);
  letter-spacing: var(--fm-type-body-l-medium-letter-spacing);
  margin: 0;
}

.fm-reviews-page__bestchange-links {
  display: grid;
  gap: 8px;
  margin-top: 24px;
}

.fm-reviews-page__source-link {
  align-items: center;
  background: var(--fm-neutral-0);
  border-radius: 18px;
  box-sizing: border-box;
  color: var(--fm-primary-500);
  display: flex;
  font: var(--fm-type-body-m-medium);
  justify-content: space-between;
  height: 60px;
  padding: 18px 24px;
  text-decoration: none;
  transition:
    box-shadow 160ms ease,
    transform 160ms ease;
}

.fm-reviews-page__source-link:focus-visible,
.fm-reviews-page__map-link:focus-visible {
  border-radius: 18px;
  box-shadow: 0 0 0 3px var(--fm-input-focus-ring);
  outline: 0;
}

.fm-reviews-page__source-arrow {
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
}

.fm-reviews-page__mockup {
  align-self: center;
  display: block;
  height: auto;
  margin: 34px auto 0;
  max-width: 100%;
  width: 296px;
}

.fm-reviews-page__maps {
  margin-top: auto;
}

.fm-reviews-page__maps .fm-reviews-page__card-title {
  margin-bottom: 18px;
  margin-top: 12px;
}

.fm-reviews-page__map-links {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fm-reviews-page__map-link {
  align-items: center;
  color: var(--fm-neutral-900);
  display: flex;
  gap: 10px;
  min-width: 0;
  text-decoration: none;
}

.fm-reviews-page__map-rating {
  align-items: center;
  background: var(--fm-neutral-0);
  border-radius: 10px;
  color: var(--fm-neutral-500);
  display: inline-flex;
  flex: 0 0 44px;
  font: var(--fm-type-body-l-medium);
  height: 44px;
  justify-content: center;
}

.fm-reviews-page__map-copy {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.fm-reviews-page__map-copy strong {
  color: var(--fm-neutral-900);
  font: var(--fm-type-body-m-medium);
  white-space: nowrap;
}

.fm-reviews-page__map-copy span {
  color: var(--fm-primary-500);
  font: var(--fm-type-interface-s);
}

.fm-reviews-page__form-card {
  border-radius: var(--fm-radius-xl);
  padding: 28px;
}

.fm-reviews-page__form-card h2 {
  color: var(--fm-neutral-900);
  font-family: 'Inter', sans-serif;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 31px;
  margin: 0;
}

.fm-reviews-page__form-card .rf_div_wrap,
.fm-reviews-page__form-card .rf_div,
.fm-reviews-page__form-card .rf_div_ins {
  background: transparent;
  margin: 0;
  padding: 0;
  width: 100%;
}

.fm-reviews-page__form-card .rf_div_wrap {
  margin-top: 18px;
}

.fm-reviews-page__form-card .rf_div_title {
  display: none;
}

.fm-reviews-page__form-card .form_field_line {
  margin: 0 0 16px;
}

.fm-reviews-page__form-card .form_field_label,
.fm-reviews-page__form-card .form_field_label_ins {
  color: var(--fm-neutral-900);
  display: block;
  font: var(--fm-type-caption-regular);
  margin: 0 0 8px;
}

.fm-reviews-page__form-card .form_field_line input,
.fm-reviews-page__form-card .form_field_line textarea,
.fm-reviews-page__form-card .captcha_divpole {
  background: var(--fm-neutral-0);
  border: var(--fm-input-border-width) solid var(--fm-input-border-default);
  border-radius: 12px;
  box-sizing: border-box;
  color: var(--fm-neutral-800);
  font: var(--fm-type-body-s-regular);
  height: var(--fm-input-height);
  min-height: var(--fm-input-height);
  outline: none;
  padding: var(--fm-input-padding-block) var(--fm-input-padding-inline);
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease;
  width: 100%;
}

.fm-reviews-page__form-card .form_field_line input::placeholder,
.fm-reviews-page__form-card .form_field_line textarea::placeholder {
  color: var(--fm-neutral-500);
  opacity: 1;
}

.fm-reviews-page__form-card .form_field_line textarea {
  min-height: 111px;
  resize: vertical;
}

.fm-reviews-page__form-card .form_field_line input:hover,
.fm-reviews-page__form-card .form_field_line textarea:hover,
.fm-reviews-page__form-card .captcha_divpole:hover {
  border-color: var(--fm-input-border-hover);
  border-radius: var(--fm-input-radius-state);
}

.fm-reviews-page__form-card .form_field_line input:focus,
.fm-reviews-page__form-card .form_field_line textarea:focus,
.fm-reviews-page__form-card .captcha_divpole:focus {
  border-color: var(--fm-input-border-focus);
  border-radius: var(--fm-input-radius-state);
  box-shadow: var(--fm-input-focus-shadow);
}

.fm-reviews-page__form-card .captcha_div {
  align-items: center;
  display: flex;
  gap: 8px;
  margin: 0px 0 32px;
}

.fm-reviews-page__form-card .captcha_title {
  display: none;
}

.fm-reviews-page__form-card .captcha_body {
  align-items: center;
  display: flex;
  gap: 5px;
}

.fm-reviews-page__form-card .captcha_divimg,
.fm-reviews-page__form-card .captcha_divznak {
  flex: 0 0 auto;
}

.fm-reviews-page__form-card .captcha_divimg img {
  display: block;
  height: 31px;
  width: auto;
}

.fm-reviews-page__form-card .captcha_divpole {
  max-width: 4rem;
  min-height: 4rem;
  padding: 5px 8px;
}

.fm-reviews-page__form-card .captcha_reload {
  flex: 0 0 22px;
  height: 22px;
  margin-left: 2px;
  width: 22px;
}

.fm-reviews-page__form-card .rf_line.has_submit {
  margin: 0;
  position: relative;
}

.fm-reviews-page__form-card .rf_line.has_submit::after {
  background: var(--fm-neutral-0);
  content: '';
  height: 24px;
  pointer-events: none;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  width: 24px;
  -webkit-mask: url('../images/icons/exfmpro-arrow-left-md.svg') center / 24px
    24px no-repeat;
  mask: url('../images/icons/exfmpro-arrow-left-md.svg') center / 24px 24px
    no-repeat;
}

.fm-reviews-page__form-card .rf_line.has_submit input {
  background-color: var(--fm-primary-500);
  border: 0;
  border-radius: 20px;
  color: var(--fm-neutral-0);
  cursor: pointer;
  font: var(--fm-type-body-l-medium);
  max-height: 60px;
  padding: 16px 60px 16px 24px;
  transition:
    background-color 160ms ease,
    transform 160ms ease;
  width: 100%;
  text-align: left;
}

.fm-reviews-page__form-card .rf_line.has_submit input:hover {
  background-color: var(--fm-primary-600);
}

.fm-reviews-page__form-card .rf_line.has_submit input:active {
  background-color: var(--fm-primary-700);
  transform: translateY(1px);
}

.fm-reviews-page__form-card .resultgo {
  font: var(--fm-type-body-s-regular);
  margin-top: 12px;
}

.fm-reviews-page__list {
  margin-top: 64px;
}

.fm-reviews-page__section-heading {
  align-items: baseline;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 24px;
}

.fm-reviews-page__section-heading h2 {
  color: var(--fm-neutral-900);
  font: var(--fm-type-heading-h2);
  margin: 0;
}

.fm-reviews-page__section-heading p {
  color: var(--fm-neutral-500);
  font: var(--fm-type-body-l-regular);
  margin: 0;
}

.fm-reviews-page__list .many_reviews_ins {
  display: grid;
  gap: 14px;
}

.fm-reviews-page__list .one_reviews {
  background: var(--fm-neutral-50);
  border-radius: var(--fm-feedback-card-radius);
  margin: 0;
  padding: 24px;
}

.fm-reviews-page__list .one_reviews_ins {
  padding: 0;
}

.fm-reviews-page__list .one_reviews_abs,
.fm-reviews-page__list .clear {
  display: none;
}

.fm-reviews-page__list .one_reviews_name {
  color: var(--fm-neutral-900);
  font: var(--fm-type-body-l-medium);
  margin: 0;
}

.fm-reviews-page__list .one_reviews_date {
  color: var(--fm-neutral-500);
  font: var(--fm-type-caption-regular);
  margin-top: 4px;
}

.fm-reviews-page__list .one_reviews_text {
  color: var(--fm-neutral-700);
  font: var(--fm-type-body-l-regular);
  margin-top: 14px;
}

.fm-reviews-page__list .one_reviews_answer {
  border-left: 3px solid var(--fm-primary-500);
  margin-top: 18px;
  padding: 4px 0 4px 16px;
}

.fm-reviews-page__list .one_reviews_answer_title {
  color: var(--fm-neutral-900);
  font: var(--fm-type-interface-s);
  margin-bottom: 6px;
}

@media (max-width: 900px) {
  .fm-reviews-page {
    max-width: none;
  }
  .fm-reviews-page__hero {
    margin-inline: auto;
    max-width: 600px;
    grid-template-columns: 1fr;
  }

  .fm-reviews-page__sources,
  .fm-reviews-page__form-card {
    height: auto;
    min-height: 507px;
  }
}

@media (max-width: 767px) {
  .page-block.container.fm-feedback-shell {
    padding: 24px 20px 20px;
  }

  .fm-reviews-page {
    padding-bottom: 10px;
  }

  .fm-reviews-page__sources,
  .fm-reviews-page__form-card {
    min-height: 0;
    padding: 24px;
  }

  .fm-reviews-page__sources {
    min-height: 350px;
    padding: 28px;
  }

  .fm-reviews-page__mockup {
    margin-top: 44px;
  }

  .fm-reviews-page__map-links {
    gap: 20px;
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .fm-reviews-page__reviews-inner {
    width: calc(100% - 40px);
  }
  .fm-reviews-page__review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    .fm-reviews-page__section-heading {
      align-items: flex-start;
      flex-direction: column;
      gap: 6px;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .fm-reviews-page__source-link,
  .fm-reviews-page__form-card .form_field_line input,
  .fm-reviews-page__form-card .form_field_line textarea,
  .fm-reviews-page__form-card .captcha_divpole,
  .fm-reviews-page__form-card .rf_line.has_submit input {
    transition: none;
  }
}
/* Full-width review section. Card structure is shared with the homepage review component. */
.fm-reviews-page__reviews-section {
  background: var(--fm-neutral-50);
  margin-left: calc((100% - 100vw) / 2);
  margin-top: 80px;
  padding: 90px 0 98px;
  width: 100vw;
}

.fm-reviews-page__reviews-inner {
  margin: 0 auto;
  max-width: 1288px;
  width: calc(100% - clamp(40px, 10.56vw, 152px));
}

.fm-reviews-page__reviews-heading {
  align-items: center;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.fm-reviews-page__reviews-badge {
  align-items: center;
  background: var(--fm-neutral-0);
  border-radius: var(--fm-button-s-radius);
  color: var(--fm-neutral-700);
  display: inline-flex;
  font: var(--fm-type-interface-xs);
  gap: 10px;
  min-height: 28px;
  padding: 6px 12px;
}

.fm-reviews-page__reviews-badge-dot {
  background: var(--fm-primary-500);
  border-radius: 50%;
  box-shadow: 0 0 0 3px var(--fm-primary-50);
  flex: 0 0 8px;
  height: 8px;
  width: 8px;
}

.fm-reviews-page__reviews-heading h2 {
  color: var(--fm-neutral-900);
  font: var(--fm-type-heading-h1);
  letter-spacing: -0.02em;
  margin: 12px 0 0;
}

.fm-reviews-page__review-grid {
  display: grid;
  gap: 36px 24px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 36px;
}

.fm-reviews-page__review-card {
  background: #fff;
  border-radius: 24px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: 301px;
  min-width: 0;
  padding: 24px;
  position: relative;
  visibility: visible;
}

.fm-reviews-page__review-card[hidden] {
  display: none;
}

.fm-reviews-page__review-card .fm-review-card__quote {
  display: block;
  flex: 0 0 auto;
  height: 24px;
  width: 27px;
}

.fm-reviews-page__review-card .fm-review-card__body {
  margin-top: 24px;
}

.fm-reviews-page__review-card .fm-review-card__author {
  color: var(--fm-neutral-500);
  font: var(--fm-type-caption-regular);
  margin: 0;
}

.fm-reviews-page__review-card .fm-review-card__text {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  color: var(--fm-neutral-900);
  display: -webkit-box;
  font: var(--fm-type-interface-l-regular);
  line-clamp: 5;
  margin: 8px 0 0;
  overflow: hidden;
}

.fm-reviews-page__review-card .fm-review-card__meta {
  bottom: 24px;
  color: var(--fm-neutral-500);
  font: var(--fm-type-caption-regular);
  left: 24px;
  margin: 0;
  position: absolute;
  right: 24px;
}

.fm-reviews-page__pagination {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 36px;
}

.fm-reviews-page__pagination-button {
  align-items: center;
  background: var(--fm-neutral-0);
  border: 0;
  border-radius: var(--fm-button-s-radius);
  box-sizing: border-box;
  color: var(--fm-neutral-500);
  cursor: pointer;
  display: inline-flex;
  font: var(--fm-type-caption-medium);
  height: var(--fm-button-s-height);
  justify-content: center;
  min-width: var(--fm-button-s-height);
  padding: 0 10px;
  transition:
    background-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.fm-reviews-page__pagination-button:hover:not(:disabled) {
  background: var(--fm-primary-50);
  color: var(--fm-primary-500);
}

.fm-reviews-page__pagination-button:focus-visible {
  box-shadow: 0 0 0 3px var(--fm-input-focus-ring);
  outline: 0;
}

.fm-reviews-page__pagination-button.is-active {
  background: var(--fm-primary-500);
  color: var(--fm-neutral-0);
  cursor: default;
}

.fm-reviews-page__pagination-button:disabled {
  cursor: default;
}

.fm-reviews-page__no-reviews {
  color: var(--fm-neutral-500);
  font: var(--fm-type-body-l-regular);
  margin: 36px auto 0;
  text-align: center;
}

@media (max-width: 900px) {
  .fm-reviews-page__reviews-inner {
    width: calc(100% - 40px);
  }

  .fm-reviews-page__review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .fm-reviews-page__reviews-section {
    margin-top: 100px;
    padding: 44px 0 44px;
  }

  .fm-reviews-page__review-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fm-reviews-page__pagination-button {
    transition: none;
  }
}

/* Reviews form alignment overrides. */
.fm-reviews-page__source-arrow {
  background: currentColor;
  display: block;
  flex: 0 0 24px;
  height: 24px;
  width: 24px;
  -webkit-mask: url('../images/icons/exfmpro-arrow-left-md.svg') center / 24px
    24px no-repeat;
  mask: url('../images/icons/exfmpro-arrow-left-md.svg') center / 24px 24px
    no-repeat;
  transform: rotate(180deg);
}

.fm-reviews-page__form-card .form_field_label {
  display: block;
  float: none;
  height: auto;
  margin: 0 0 8px;
  max-height: none;
  opacity: 1;
  overflow: visible;
  padding: 0;
  pointer-events: auto;
  position: static;
  visibility: visible;
  width: auto;
}

.fm-reviews-page__form-card .form_field_label_ins {
  display: inline;
  left: auto;
  margin: 0;
  position: static;
  top: auto;
  transition: none;
}

.fm-reviews-page__form-card .form_field_ins {
  width: 100%;
}

.fm-reviews-page__form-card .form_field_line input {
  height: var(--fm-input-height);
  min-height: var(--fm-input-height);
  padding: var(--fm-input-padding-block) var(--fm-input-padding-inline);
}

.fm-reviews-page__form-card .form_field_line textarea {
  height: 111px;
  min-height: 111px;
  padding: var(--fm-input-padding-block) var(--fm-input-padding-inline);
}
/* Full-bleed reviews section alignment. */
.fm-reviews-page__reviews-section {
  left: 50%;
  margin-left: 0;
  position: relative;
  transform: translateX(-50%);
  width: 100vw;
}
/* Reviews page structural full-width shell. */
body.fm-reviews-page-template .page-block.container.fm-feedback-shell {
  max-width: none;
  padding: 100px 0 0 0;
}

body.fm-reviews-page-template .fm-feedback-shell > .breadcrumb {
  margin-inline: auto;
  max-width: var(--fm-container);
  width: 100%;
}

body.fm-reviews-page-template .fm-feedback-shell > .inner,
body.fm-reviews-page-template .fm-feedback-shell .fm-feedback-content,
body.fm-reviews-page-template .fm-reviews-page {
  max-width: none;
  width: 100%;
}

body.fm-reviews-page-template .fm-reviews-page__reviews-section {
  left: auto;
  margin-left: 0;
  transform: none;
  width: 100%;
}

@media (max-width: 767px) {
  body.fm-reviews-page-template .page-block.container.fm-feedback-shell {
    padding: 100px 0 0 0;
  }

  body.fm-reviews-page-template .fm-feedback-shell > .breadcrumb,
  body.fm-reviews-page-template .fm-feedback-shell > .main-title,
  body.fm-reviews-page-template .fm-reviews-page__hero {
    width: calc(100% - 40px);
  }
}

/* Keep reviews form labels visible while focused. */
body.fm-reviews-page-template
  .fm-reviews-page__form-card
  .form_field_line:focus-within
  .form_field_label {
  height: auto;
  max-height: none;
  opacity: 1;
  overflow: visible;
  visibility: visible;
}

/* Mobile reviews track matches the homepage carousel treatment. */
@media (max-width: 767px) {
  body.fm-reviews-page-template .fm-reviews-page__reviews-inner {
    box-sizing: border-box;
    max-width: none;
    overflow: hidden;
    padding-inline: 20px;
    width: 100%;
  }

  body.fm-reviews-page-template .fm-reviews-page__review-grid {
    display: grid;
    gap: 28px;
    grid-auto-columns: calc(100vw - 104px);
    grid-auto-flow: column;
    grid-template-columns: none;
    margin-top: 36px;
    width: max-content;
  }

  body.fm-reviews-page-template .fm-reviews-page__review-card {
    height: 302px;
    min-width: 0;
    padding: 28px 29px;
    width: calc(100vw - 104px);
  }

  body.fm-reviews-page-template
    .fm-reviews-page__review-card
    .fm-review-card__meta {
    bottom: 29px;
    left: 29px;
    right: 29px;
  }
}
/* Guest state for the review form card. */
.fm-reviews-page__auth-gate {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 32px;
}

.fm-reviews-page__auth-notice {
  color: var(--fm-neutral-600);
  font: var(--fm-type-body-m-regular);
  letter-spacing: var(--fm-type-body-m-regular-letter-spacing);
  line-height: 150%;
  margin: 0;
  max-width: 34rem;
}

.fm-reviews-page__auth-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.fm-reviews-page__auth-button {
  align-items: center;
  border: 0px solid transparent;
  border-radius: var(--fm-button-s-radius);
  box-sizing: border-box;
  display: inline-flex;
  flex: 1 1 140px;
  font: var(--fm-type-body-m-medium);
  justify-content: center;
  min-height: 52px;
  padding: 14px 20px;
  text-align: center;
  text-decoration: none;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    outline-color 180ms ease,
    transform 180ms ease;
}

.fm-reviews-page__auth-button--primary {
  background: var(--fm-primary-500);
  color: var(--fm-neutral-0);
}

.fm-reviews-page__auth-button--primary:hover {
  background: var(--fm-primary-600);
}

.fm-reviews-page__auth-button--primary:active {
  background: var(--fm-primary-700);
}

.fm-reviews-page__auth-button--secondary {
  background: var(--fm-neutral-0);
  border-color: var(--fm-input-border-hover);
  border-radius: var(--fm-button-s-radius);
  color: var(--fm-neutral-900);
}

.fm-reviews-page__auth-button--secondary:hover {
  background: var(--fm-neutral-100);
  border-color: var(--fm-neutral-100);
  border: 1px solid var(--fm-neutral-200);
}

.fm-reviews-page__auth-button--secondary:active {
  border: 1px solid var(--fm-primary-500);
  background: var(--fm-neutral-100);
}

.fm-reviews-page__auth-button:focus-visible {
  outline: 2px solid var(--fm-primary-300);
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .fm-reviews-page__auth-gate {
    gap: 20px;
    margin-top: 24px;
  }

  .fm-reviews-page__auth-actions {
    flex-direction: column;
  }

  .fm-reviews-page__auth-button {
    flex-basis: auto;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fm-reviews-page__auth-button {
    transition: none;
  }
}

/* Balanced guest composition while preserving the shared two-card grid height. */
.fm-reviews-page__form-card--guest {
  display: flex;
  flex-direction: column;
}

.fm-reviews-page__form-card--guest .fm-reviews-page__auth-gate {
  align-items: center;
  flex: 1 1 auto;
  gap: 20px;
  justify-content: center;
  margin-top: 0;
  padding: 24px 0 16px;
  text-align: center;
}

.fm-reviews-page__auth-icon {
  align-items: center;
  background: var(--fm-neutral-0);
  border-radius: 16px;
  display: inline-flex;
  height: 48px;
  justify-content: center;
  width: 48px;
}

.fm-reviews-page__auth-icon img {
  display: block;
  height: 22px;
  width: 22px;
}

.fm-reviews-page__form-card--guest .fm-reviews-page__auth-notice {
  max-width: 300px;
  text-align: center;
}

.fm-reviews-page__form-card--guest .fm-reviews-page__auth-actions {
  max-width: 360px;
  width: 100%;
}

@media (max-width: 767px) {
  .fm-reviews-page__form-card--guest .fm-reviews-page__auth-gate {
    flex: 0 0 auto;
    padding: 36px 0 0;
  }
}

/* BestChange source-link interaction contract: token-based surface and action states. */
.fm-reviews-page__source-link {
  border: 1px solid transparent;
  color: var(--fm-primary-500);
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.fm-reviews-page__source-link:hover {
  border: 1px solid var(--fm-primary-50);
  background: var(--fm-primary-50);
  color: var(--fm-primary-600);
}

.fm-reviews-page__source-link:focus-visible {
  background: var(--fm-neutral-0);
  border-color: var(--fm-primary-500);
  box-shadow: 0 0 0 3px var(--fm-input-focus-ring);
  color: var(--fm-primary-600);
  outline: 0;
  transform: none;
}

.fm-reviews-page__source-link:active {
  background: var(--fm-neutral-100);
  border-color: var(--fm-primary-500);
  color: var(--fm-primary-700);
  transform: none;
}

.fm-reviews-page__source-link[aria-disabled='true'],
.fm-reviews-page__source-link.is-disabled {
  background: var(--fm-neutral-100);
  border-color: var(--fm-input-border-hover);
  border-radius: var(--fm-input-radius-state);
  color: var(--fm-neutral-300);
  cursor: not-allowed;
  pointer-events: none;
  transform: none;
}

/* Figma error and disabled states for the modern reviews form. */
.fm-reviews-page__form-card .form_field_line.error input:not([type='submit']),
.fm-reviews-page__form-card .form_field_line.error textarea,
.fm-reviews-page__form-card .form_field_line:has(.js_error) input:not([type='submit']),
.fm-reviews-page__form-card .form_field_line:has(.js_error) textarea {
  border-color: var(--fm-input-border-error);
  border-radius: var(--fm-input-radius-state);
  box-shadow: none;
}

.fm-reviews-page__form-card .form_field_line input:disabled,
.fm-reviews-page__form-card .form_field_line textarea:disabled {
  background: var(--fm-input-bg-disabled);
  border-color: var(--fm-input-border-disabled);
  color: var(--fm-input-text-disabled);
  cursor: not-allowed;
}
