/* Google reviews strip. Markup: sitegen/partials/reviews.mjs. Motion: js/reviews.js.
   Self-contained so it reads the same on the landing, interior and ad pages. */
.hp-reviews, .hp-rating-line {
  --rv-ink: #141A22;
  --rv-ink-mid: #4F5966;
  --rv-sand: #EBE6DD;
  --rv-card: #FFFFFF;
  --rv-line: rgba(20, 26, 34, .08);
  --rv-blueprint: #1F4E8C;
  --rv-blueprint-deep: #173D6E;
  --rv-blueprint-tint: #E2E9F3;
  --rv-oak: #C49A5E;
  --rv-serif: "Fraunces", Georgia, serif;
  --rv-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.hp-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- stars ---------- */
.hp-stars { position: relative; display: inline-flex; flex: none; line-height: 0; }
.hp-stars__base, .hp-stars__fill { display: inline-flex; gap: 2px; }
.hp-stars__base { color: rgba(196, 154, 94, .28); }
.hp-stars__fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: var(--rv-oak); white-space: nowrap; }
.hp-stars svg { width: 16px; height: 16px; flex: none; fill: currentColor; }

/* ---------- section ---------- */
.hp-reviews { position: relative; color: var(--rv-ink); font-family: var(--rv-sans); text-align: center; overflow: hidden; }
.hp-reviews__head { max-width: 760px; margin: 0 auto; padding: 0 20px; }
.hp-reviews__eyebrow { margin: 0; font: 600 .76rem/1.3 var(--rv-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--rv-blueprint); }
.hp-reviews .hp-reviews__title { margin: 12px 0 0; font-family: var(--rv-serif); font-weight: 600; font-size: clamp(1.9rem, 3.8vw, 3rem); line-height: 1.1; letter-spacing: -.01em; color: var(--rv-ink); }
.hp-reviews__title em { font-style: italic; color: var(--rv-blueprint); }

.hp-reviews__summary, .hp-rating-line {
  display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 10px;
  margin: 20px 0 0; padding: 9px 18px 9px 14px; max-width: 100%;
  background: var(--rv-card); border: 1px solid var(--rv-line); border-radius: 999px;
  box-shadow: 0 1px 2px rgba(20, 26, 34, .04), 0 6px 18px rgba(20, 26, 34, .05);
  font: 400 .92rem/1.35 var(--rv-sans); color: var(--rv-ink-mid);
}
.hp-reviews__score { font: 600 1.3rem/1 var(--rv-serif); color: var(--rv-ink); }
.hp-reviews__count { color: var(--rv-ink-mid); }
.hp-reviews__link { display: inline-flex; align-items: center; gap: 3px; color: var(--rv-blueprint-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.hp-reviews__link svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.hp-reviews__link:hover { color: var(--rv-blueprint); }

/* ---------- the moving row ---------- */
.hp-reviews__viewport {
  position: relative; margin-top: clamp(32px, 5vh, 52px); padding: 6px 0 20px;
  overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.hp-reviews__viewport::-webkit-scrollbar { display: none; }
.hp-reviews__track {
  position: relative; display: flex; align-items: stretch; gap: 18px;
  width: max-content; margin: 0 auto; padding: 0 20px; list-style: none;
}
.hp-reviews.is-auto .hp-reviews__viewport { overflow: hidden; touch-action: pan-y; cursor: grab; }
.hp-reviews.is-auto.is-dragging .hp-reviews__viewport { cursor: grabbing; }
.hp-reviews.is-auto .hp-reviews__track { margin: 0; padding: 0; will-change: transform; }
.hp-reviews.has-open .hp-reviews__track { align-items: flex-start; }
.hp-reviews.is-dragging .hp-review { user-select: none; -webkit-user-select: none; }
.hp-reviews:not(.is-auto) .hp-reviews__viewport { scroll-snap-type: x mandatory; scroll-padding-inline: 20px; }
.hp-reviews:not(.is-auto) .hp-review { scroll-snap-align: start; }

/* ---------- a review ---------- */
.hp-review {
  position: relative; flex: 0 0 clamp(272px, 80vw, 368px); display: flex; flex-direction: column;
  min-height: 296px; margin: 0; padding: 24px 24px 20px; text-align: left;
  background: var(--rv-card); border: 1px solid var(--rv-line); border-radius: 22px;
  box-shadow: 0 1px 2px rgba(20, 26, 34, .04), 0 12px 30px rgba(20, 26, 34, .07);
}
.hp-review::before {
  content: "\201C"; position: absolute; top: 2px; right: 20px;
  font: 600 4.4rem/1 var(--rv-serif); color: var(--rv-oak); opacity: .32; pointer-events: none;
}
.hp-review__stars { display: inline-flex; }
.hp-review__stars .hp-stars svg { width: 17px; height: 17px; }
.hp-review__quote { margin: 14px 0 18px; padding: 0; border: 0; quotes: none; }
.hp-review__text { margin: 0; font: 400 .98rem/1.62 var(--rv-sans); color: var(--rv-ink); }
.hp-reviews.is-ready .hp-review__text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden; }
.hp-reviews.is-ready .hp-review.is-open .hp-review__text { display: block; -webkit-line-clamp: unset; overflow: visible; }
.hp-reviews.is-ready .hp-review:not(.is-open) .hp-review__text br { display: none; }
.hp-review__more {
  display: none; align-self: flex-start; margin: -12px 0 16px; padding: 4px 0; border: 0; background: none; cursor: pointer;
  font: 600 .88rem/1.3 var(--rv-sans); color: var(--rv-blueprint-deep); text-decoration: underline; text-underline-offset: 3px;
}
.hp-review.is-clamped .hp-review__more, .hp-review.is-open .hp-review__more { display: inline-block; }
.hp-review__by { display: flex; align-items: center; gap: 12px; margin: auto 0 0; padding-top: 16px; border-top: 1px solid var(--rv-line); }
.hp-review__avatar {
  display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 50%;
  background: var(--rv-blueprint-tint); color: var(--rv-blueprint-deep); font: 600 1.05rem/1 var(--rv-serif);
}
.hp-review__name { display: block; font: 600 .95rem/1.3 var(--rv-sans); font-style: normal; color: var(--rv-ink); }
.hp-review__meta { display: block; margin-top: 2px; font-size: .8rem; line-height: 1.3; color: var(--rv-ink-mid); }

/* ---------- controls ---------- */
.hp-reviews__controls { display: none; justify-content: center; gap: 10px; margin-top: 6px; padding: 0 20px; }
.hp-reviews.is-ready .hp-reviews__controls { display: flex; }
.hp-reviews__btn {
  display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border-radius: 50%; cursor: pointer;
  background: var(--rv-card); color: var(--rv-ink); border: 1px solid rgba(20, 26, 34, .14);
  transition: border-color .2s ease, color .2s ease;
}
.hp-reviews__btn:hover { border-color: var(--rv-blueprint); color: var(--rv-blueprint); }
.hp-reviews__btn:focus-visible, .hp-review__more:focus-visible, .hp-reviews__link:focus-visible { outline: 2px solid var(--rv-blueprint); outline-offset: 3px; }
.hp-reviews__btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hp-reviews__btn .hp-reviews__icon-play { fill: currentColor; stroke: none; }
.hp-reviews__icon-play, .hp-reviews.is-paused .hp-reviews__icon-pause { display: none; }
.hp-reviews.is-paused .hp-reviews__icon-play { display: block; }
.hp-reviews:not(.is-auto) .hp-reviews__pause { display: none; }

/* ---------- page placements ---------- */
.hp-reviews--home { background: var(--rv-sand); padding: 13vh 0 11vh; }
.hp-reviews--about { padding: clamp(56px, 8vw, 104px) 0 clamp(40px, 6vw, 72px); }
.hp-reviews--quote { padding: clamp(44px, 7vw, 72px) 0 clamp(28px, 4vw, 44px); }
.hp-reviews--quote .hp-reviews__title { font-size: clamp(1.75rem, 6.6vw, 2.6rem); font-weight: 560; }
.hp-reviews--quiz { margin-top: clamp(64px, 9vw, 104px); }
.hp-reviews--quiz .hp-reviews__title { font-size: clamp(1.7rem, 3.2vw, 2.4rem); }
.hp-reviews--quiz + section { margin-top: clamp(40px, 6vw, 72px) !important; }
.hp-rating-line { margin: 18px 0 4px; padding: 7px 16px 7px 12px; font-size: .88rem; }
.hp-rating-line .hp-reviews__score { font-size: 1.1rem; }

@media (max-width: 640px) {
  .hp-review { min-height: 268px; padding: 20px 20px 18px; }
  .hp-review__text { font-size: .95rem; }
  .hp-reviews__viewport {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  }
  .hp-reviews__summary { border-radius: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .hp-reviews__btn { transition: none; }
}
