/* Hallmark · macrostructure: Quote-Led (featured review + editorial list) · tone: grounded, direct, dignified · anchor hue: brick 29°
 * page: /testimonials/ · system: design.md "limestone and brick" (locked) · list: hairline rows on the 12-col grid, alternating start, one pair
 * reviews verbatim, attributed by name only: no stars, no ratings, no roles · eyebrows: none · tokens only · motion: none
 * Hallmark · pre-emit critique: P5 H4 E4 S5 R4 V5
 */


/* One review, any size: the quote, then the writer's name */
.rv blockquote > * + * { margin-top: var(--space-sm); }
.rv figcaption { margin-top: var(--space-md); font-size: var(--text-sm); font-weight: var(--weight-strong); color: var(--color-text-muted); }
.on-ink .rv figcaption { color: var(--color-signal); }
.rv--quote p { font-family: var(--font-display); font-weight: var(--weight-ui); font-size: var(--text-md); line-height: 1.5; }

/* Featured review, on the page's first ink band */
.rv-feature { padding-block: var(--space-2xl) var(--space-3xl); }
.rv--feature p {
  max-width: 46ch; color: var(--color-on-ink);
  font-family: var(--font-display); font-weight: var(--weight-ui); font-size: var(--text-lg); line-height: 1.4;
}

/* The rest: hairline rows; short and medium reviews in the display face, the two long letters in the reading face */
.rv-section { padding-block: var(--space-2xl) var(--space-3xl); }
.rv-list { list-style: none; margin: 0; padding: 0; }
.rv-item { padding-block: var(--space-xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
.rv-item:first-child { padding-top: 0; }
.rv-pair { display: grid; gap: var(--space-xl); }

.rv__title {
  font-family: var(--font-display); font-weight: var(--weight-h3); font-size: var(--text-md);
  line-height: var(--leading-snug); letter-spacing: var(--tracking-display); text-wrap: balance;
}
.rv--letter blockquote > p:not(.rv__title), .rv__more > p { max-width: var(--measure); }

/* "Read the full review": a native disclosure, so it works without JS; the label flips when open */
.rv__more > p { margin-top: var(--space-sm); }
.rv__more summary {
  display: inline-flex; align-items: center; gap: var(--space-2xs); min-height: var(--tap-min);
  list-style: none; cursor: pointer; white-space: nowrap;
  font-weight: var(--weight-strong); color: var(--color-accent);
}
.rv__more summary > span { text-decoration: underline 1px; text-underline-offset: 0.12em; }
.rv__more summary::-webkit-details-marker { display: none; }
.rv__more summary::after { content: "+"; font-size: var(--text-md); line-height: 1; }
.rv__more[open] summary::after { content: "\2212"; }
.rv__more summary:hover > span { text-decoration-thickness: 2px; }
.rv__more summary:active { color: var(--color-accent-deep); }
.rv__more-open, .rv__more[open] .rv__more-closed { display: none; }
.rv__more[open] .rv__more-open { display: inline; }

.rv-leave { margin-top: var(--space-xl); }


@media (min-width: 60rem) {
  .rv-feature { padding-block: var(--space-3xl); }
  .rv-item { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); }
  .rv-item > .rv { grid-column: 1 / span 8; }
  .rv-item.is-offset > .rv { grid-column: 5 / span 8; }
  .rv-pair > .rv:first-child { grid-column: 1 / span 6; }
  .rv-pair > .rv:last-child { grid-column: 7 / span 6; }
}
