/* Customer reviews — editorial social proof with a seamless continuous supporting rail. */
.reviews-section {
  position: relative;
  padding: 132px 0 118px;
}

.reviews-heading {
  display: grid;
  grid-template-columns: minmax(0,1fr) 340px;
  gap: 70px;
  align-items: end;
  margin-bottom: 62px;
}

.reviews-heading h2 {
  margin: 0;
  max-width: 760px;
  font: 500 clamp(52px,5.8vw,82px)/.9 var(--serif);
  letter-spacing: -.038em;
  color: #2b2623;
}

.reviews-heading h2 em {
  color: var(--rose-deep);
  font-weight: 500;
}

.reviews-summary {
  margin: 0 0 7px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.78;
}

.reviews-summary strong {
  display: block;
  margin-bottom: 9px;
  color: var(--ink);
  font: 500 34px/1 var(--serif);
}

.summary-stars,
.review-rating {
  color: #b89862;
  letter-spacing: .13em;
}

.summary-stars { font-size: 11px; }

.reviews-editorial {
  display: grid;
  grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr);
  gap: clamp(42px,6vw,86px);
  align-items: start;
}

.review-feature {
  padding: 30px 0 34px;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line);
}

.review-feature-top,
.review-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.review-feature-label {
  margin: 0 0 16px;
  color: #a08f88;
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.review-feature-name {
  display: block;
  font: 500 28px/1.05 var(--serif);
  color: #302a27;
}

.review-feature-top small,
.review-person small {
  display: block;
  margin-top: 7px;
  color: #938781;
  font-size: 9px;
  line-height: 1.45;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.review-rating {
  flex: 0 0 auto;
  font-size: 10px;
  white-space: nowrap;
}

.review-feature-quote {
  margin: 40px 0 0;
  color: #3d3531;
  font: 500 clamp(31px,3.3vw,46px)/1.17 var(--serif);
  letter-spacing: -.025em;
}

.review-feature-quote::before,
.review-quote::before { content: '“'; color: var(--rose-deep); }
.review-feature-quote::after,
.review-quote::after { content: '”'; color: var(--rose-deep); }

.review-rail-wrap {
  min-width: 0;
  overflow: hidden;
}

.review-rail-head {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--line-strong);
  color: #645a55;
  font-size: 10px;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.review-rail-head small {
  color: #9a8e88;
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: none;
}

.review-rail {
  --review-loop-distance: 0px;
  --review-loop-duration: 70s;
  display: flex;
  gap: 14px;
  width: max-content;
  overflow: visible;
  padding: 18px 2px 18px 0;
  transform: translate3d(0,0,0);
  will-change: transform;
}

.review-rail.is-looping {
  animation: hanaReviewRailLoop var(--review-loop-duration) linear infinite;
}

.review-rail.is-paused,
.review-rail.is-offscreen {
  animation-play-state: paused;
}

@keyframes hanaReviewRailLoop {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(calc(-1 * var(--review-loop-distance)),0,0); }
}

@media (hover:hover) and (pointer:fine) {
  .review-rail.is-looping:hover { animation-play-state: paused; }
}

.review-card {
  width: min(320px,72vw);
  min-height: 282px;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  padding: 22px 20px 20px;
  border: 1px solid rgba(99,78,70,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.56);
  transition: transform .22s var(--ease-smooth), border-color .22s var(--ease-smooth), background .22s var(--ease-smooth);
}

.review-card:hover {
  transform: translateY(-3px);
  border-color: rgba(159,116,120,.20);
  background: rgba(255,255,255,.42);
}

.review-person { min-width: 0; }
.review-person strong { display: block; font: 500 23px/1.05 var(--serif); color: #302a27; }

.review-quote {
  margin: 26px 0 0;
  color: #4e4541;
  font: 500 19px/1.42 var(--serif);
}

.review-details {
  display: grid;
  gap: 7px;
  margin-top: auto;
  padding-top: 22px;
}

.review-feature .review-details {
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid rgba(79,63,56,.10);
}

.review-detail-line {
  margin: 0;
  color: #81756f;
  font-size: 10px;
  line-height: 1.6;
}
.review-detail-line strong { color: #5d514c; font-weight: 600; }

.review-image-note {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  margin-top: 4px;
  color: #806b6d;
  font-size: 9px;
  letter-spacing: .05em;
}
.review-image-note::before { content: '◫'; font-size: 10px; }

@media (max-width: 980px) {
  .reviews-section { padding: 108px 0 96px; }
  .reviews-heading { grid-template-columns: 1fr; gap: 24px; }
  .reviews-summary { max-width: 480px; }
  .reviews-editorial { grid-template-columns: 1fr; gap: 46px; }
  .review-feature { max-width: 760px; }
}

@media (max-width: 680px) {
  .reviews-section { padding: 90px 0 78px; }
  .reviews-heading { margin-bottom: 44px; }
  .reviews-heading h2 { font-size: clamp(46px,14.5vw,64px); }
  .reviews-summary { font-size: 12px; }
  .review-feature { padding-top: 24px; }
  .review-feature-name { font-size: 25px; }
  .review-feature-quote { margin-top: 30px; font-size: clamp(29px,9.4vw,38px); }
  .review-rail-wrap { width: calc(100vw - 11px); }
  .review-rail-head { padding-right: 11px; }
  .review-rail { padding-right: 22px; }
  .review-card { width: min(82vw,310px); min-height: 270px; }
  .review-card:hover { transform: none; }
  .review-quote { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .review-card { transition: none; }
  .review-rail-wrap { overflow-x: auto; }
  .review-rail {
    width: max-content;
    animation: none !important;
    transform: none !important;
    will-change: auto;
  }
}