.testimonial-track .quote-card { min-height: 430px; }
.testimonial-viewport { touch-action: pan-y pinch-zoom; }
.testimonial-viewport .quote-card { user-select: none; -webkit-user-select: none; }
.testimonial-viewport .quote-photo img { -webkit-user-drag: none; }
.testimonial-viewport.is-dragging { user-select: none; -webkit-user-select: none; }
.quote-card > .quote-excerpt { font-size: clamp(21px,2vw,28px); line-height: 1.35; margin: 24px 0 18px; max-width: none; }
.quote-read-more { align-self: flex-start; background: none; border: 0; border-bottom: 1px solid var(--line); padding: 0 0 5px; color: var(--soft); font: 10px var(--mono); margin-bottom: 28px; }
.quote-read-more:hover { color: var(--ink); border-color: var(--ink); }
.quote-person { gap: 13px; align-items: center; }
.quote-person strong { font-size: 15px; }
.quote-person .quote-role { display: block; color: var(--soft); font-size: 11px; line-height: 1.5; margin-top: 5px; }
.person-avatar.quote-photo { --avatar-size: 48px; position: relative; display: block; width: var(--avatar-size); height: var(--avatar-size); flex: 0 0 var(--avatar-size); border-radius: 50%; overflow: hidden; background: var(--white); }
.quote-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.quote-card > .quote-origin { margin: 17px 0 0; color: var(--soft); font: 8px/1.5 var(--mono); letter-spacing: .5px; }
.recommendation-dialog { width: 760px; max-height: 85svh; overflow-y: auto; padding: 28px; border: 1px solid var(--control-border); }
.recommendation-dialog .dialog-header { margin-bottom: 25px; }
.recommendation-author { display: flex; align-items: center; gap: 16px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.recommendation-author .quote-photo { --avatar-size: 62px; }
.recommendation-author h2 { font-size: 30px; letter-spacing: -.04em; line-height: 1.05; margin: 0 0 7px; }
.recommendation-author p { font-size: 13px; color: var(--soft); line-height: 1.5; margin: 0; }
.recommendation-context { color: var(--soft); font: 10px/1.7 var(--mono); margin: 20px 0 28px; }
.recommendation-full p { font-size: 16px; line-height: 1.8; margin: 0 0 20px; }
.recommendation-source { font: 9px/1.6 var(--mono); color: var(--soft); border-top: 1px solid var(--line); padding-top: 20px; margin-top: 25px; }
@media(max-width:650px) {
 .testimonial-track .quote-card { min-height: 450px; padding: 28px 25px; }
 .quote-card > .quote-excerpt { font-size: 22px; }
 .quote-person strong { font-size: 14px; }
 .quote-person .quote-role { font-size: 10px; }
 .person-avatar.quote-photo { --avatar-size: 42px; }
 .recommendation-dialog { padding: 23px; }
 .recommendation-author { gap: 12px; align-items: flex-start; }
 .recommendation-author .quote-photo { --avatar-size: 48px; }
 .recommendation-author h2 { font-size: 25px; }
 .recommendation-author p { font-size: 11px; }
 .recommendation-full p { font-size: 15px; }
}

.testimonial-track .quote-card[data-recommendation] { rotate: var(--quote-rotate, -1.5deg); }

/* Match the shared 24px outline icon set used by navigation and buttons. */
.quote-control svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.quote-prev svg { transform:rotate(180deg); }
