/* Route geometry and calm, controllable motion. Brand colors stay exact. */
.reviews-playback svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.reviews-playback { margin-left: 8px; }
.reviews-playback[aria-pressed="false"] { border-style: dashed; }
.review-read-more {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 44px;
  margin: 0 0 4px;
  padding: 4px 0;
  color: #b59357;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(181, 147, 87, .46);
  border-radius: 0;
  font: 600 14px/1.35 var(--font-body, sans-serif);
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease;
}
.review-read-more[hidden] { display: none; }
.review-read-more:hover { color: #fdf4e3; border-color: #b59357; }
.review-read-more:focus-visible { outline: 2px solid #b59357; outline-offset: 4px; }
.testimonials-track > .testimonial-card.is-review-expanded {
  height: auto !important;
  min-height: 370px !important;
  overflow: visible;
}
.testimonial-card.is-review-expanded .testimonial-card__quote {
  display: block;
  flex: 0 0 auto;
  height: auto;
  max-height: none;
  overflow: visible;
  -webkit-line-clamp: unset;
}
.testimonial-card:has(.review-read-more:not([hidden])) .testimonial-card__meta { padding-top: 12px; }

/* Motion highlights the current node; labels never become difficult to read. */
.process-journey--eight .process-card,
.process-journey--eight .process-card:nth-of-type(n),
.process-journey--eight .process-card.is-active,
.process-journey--eight .process-card.is-passed {
  opacity: 1 !important;
  transform: none !important;
}

/* The continuous route is the desktop design, including laptop screens. */
@media (min-width: 1280px) {
  #process > .section-inner { width: min(1580px, calc(100% - 64px)); max-width: none; padding-inline: 0; }
  .process-route { margin-top: 12px; }
  .process-route__line,
  .process-journey.process-journey--eight,
  .process-journey--eight .process-card,
  .process-journey--eight .process-card:nth-of-type(n) { height: 540px !important; }
  .process-route__line { display: block !important; }
  .process-route__line path { vector-effect: non-scaling-stroke; stroke-width: 2; }
  .process-route__line .process-route__progress { stroke-width: 3; transition: none !important; }
  .process-journey--eight .process-card:nth-child(1) { --node-y: 56.09756%; }
  .process-journey--eight .process-card:nth-child(2) { --node-y: 35.36585%; }
  .process-journey--eight .process-card:nth-child(3) { --node-y: 29.26829%; }
  .process-journey--eight .process-card:nth-child(4) { --node-y: 47.56098%; }
  .process-journey--eight .process-card:nth-child(5) { --node-y: 65.85366%; }
  .process-journey--eight .process-card:nth-child(6) { --node-y: 64.63415%; }
  .process-journey--eight .process-card:nth-child(7) { --node-y: 46.34146%; }
  .process-journey--eight .process-card:nth-child(8) { --node-y: 32.92683%; }
  .process-card__copy { top: calc(var(--node-y) + 46px); width: calc(100% - 10px); min-height: 128px; padding: 13px 8px; border-radius: 12px; }
  .process-journey--eight .process-card h3 { font-size: clamp(15px, 1.18vw, 18px) !important; line-height: 1.24 !important; overflow-wrap: normal; hyphens: none; }
  .process-journey--eight .process-card p { display: block !important; padding: 0 !important; color: rgba(253, 244, 227, .82) !important; font-size: 14px !important; line-height: 1.45 !important; }
  .process-journey--eight .process-card__icon { width: 64px; height: 64px; }
  .process-journey--eight .process-card__icon svg { width: 34px; height: 34px; }
  .process-card__link::after { display: none; }
  .process-cta { margin-top: 26px; }
}

/* Below laptop width the same eight stages form one connected vertical route. */
@media (max-width: 1279px) {
  #process > .section-inner { width: min(720px, calc(100% - 64px)); max-width: none; padding-inline: 0; }
  .process-route { margin-top: 36px; }
  .process-route__line { display: none !important; }
  .process-journey.process-journey--eight {
    display: grid !important;
    grid-template-columns: 1fr !important;
    height: auto !important;
    gap: 18px !important;
    background: transparent !important;
    border: 0 !important;
  }
  .process-journey--eight .process-card,
  .process-journey--eight .process-card:nth-of-type(n) {
    position: relative;
    display: block !important;
    height: auto !important;
    min-height: 126px !important;
    padding: 0 !important;
    overflow: visible !important;
    color: #fdf4e3 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
  }
  .process-journey--eight .process-card:not(:last-child)::after {
    content: "";
    position: absolute;
    z-index: 0;
    top: 30px;
    bottom: -48px;
    left: 29px;
    width: 2px;
    height: auto;
    background: rgba(181, 147, 87, .62);
  }
  .process-journey--eight .process-card__link {
    position: relative !important;
    z-index: 1;
    inset: auto !important;
    display: flex !important;
    min-height: 100%;
    height: 100%;
    flex-direction: row;
    align-items: flex-start;
    gap: 22px;
    padding: 0 !important;
    background: transparent !important;
  }
  .process-journey--eight .process-card__link::after { display: none; }
  .process-journey--eight .process-card__icon {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    flex: 0 0 60px;
    width: 60px !important;
    height: 60px !important;
    margin: 0;
    color: #b59357 !important;
    background: #2e3e44 !important;
    border: 1px solid rgba(181, 147, 87, .72);
    box-shadow: none !important;
    transform: none !important;
  }
  .process-journey--eight .process-card__icon svg { width: 32px !important; height: 32px !important; }
  .process-journey--eight .process-card__icon span { width: 25px; height: 25px; right: -6px; bottom: -3px; font-size: 10px; }
  .process-journey--eight .process-card__copy,
  .process-card__link:hover .process-card__copy,
  .process-card__link:focus-visible .process-card__copy {
    position: static;
    display: block;
    flex: 1;
    width: auto;
    min-width: 0;
    min-height: 112px;
    padding: 18px 20px;
    background: rgba(253, 244, 227, .025);
    border: 1px solid rgba(181, 147, 87, .24);
    border-radius: 12px;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transform: none;
  }
  .process-journey--eight .process-card h3,
  .process-journey--eight .process-card p { position: static !important; display: block !important; width: auto !important; text-align: left !important; }
  .process-journey--eight .process-card h3 { margin: 0 0 10px !important; font-size: 20px !important; line-height: 1.25 !important; overflow-wrap: normal; hyphens: none; }
  .process-journey--eight .process-card p { margin: 0 !important; padding: 0 !important; color: rgba(253, 244, 227, .82) !important; font-size: 16px !important; line-height: 1.5 !important; }
  .process-journey--eight .process-card--member .process-card__copy { background: rgba(181, 147, 87, .075); border-color: rgba(181, 147, 87, .54); }
  .process-journey--eight .process-card__link:hover .process-card__copy,
  .process-journey--eight .process-card__link:focus-visible .process-card__copy { background: rgba(181, 147, 87, .07); border-color: #b59357; }
  .process-journey--eight .process-card__link:hover .process-card__icon,
  .process-journey--eight .process-card__link:focus-visible .process-card__icon { transform: none !important; color: #2e3e44 !important; background: #b59357 !important; }
  .process-cta { margin-top: 32px; }
}
@media (max-width: 679px) {
  #process > .section-inner { width: calc(100% - 40px); }
  .process-route { margin-top: 28px; }
  .process-journey--eight .process-card__link { gap: 16px; }
  .process-journey--eight .process-card__copy { padding: 16px; }
  .process-journey--eight .process-card h3 { font-size: 19px !important; }
  .reviews-playback { margin-left: 2px; }
  .reviews-toolbar { flex-wrap: wrap; row-gap: 12px; }
  .reviews-toolbar > p { max-width: none !important; flex: 1 1 100%; }
  .reviews-controls { width: 100%; justify-content: flex-end; }
  .reviews-counter { display: inline-flex !important; }
}

@media (prefers-reduced-motion: reduce) {
  .review-read-more,
  .reviews-controls button,
  .reviews-controls button::before,
  .reviews-controls button::after,
  .review-source-grid a::before,
  .review-source-grid a::after,
  .review-source-icon,
  .primary-btn::before,
  .primary-btn::after,
  .secondary-btn::before,
  .secondary-btn::after { transition: none !important; animation: none !important; }
}
