.testimonials { padding-block: clamp(48px, 6vw, 80px); background: var(--paper); }
.testimonials h2 { width: auto; margin-bottom: 32px; font-size: clamp(34px, 3.7vw, 46px); }
.testimonial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.testimonial { display: flex; flex-direction: column; min-width: 0; padding: clamp(24px, 3vw, 38px); border: 1px solid #142a4326; background: #fff; }
.testimonial blockquote { flex: 1; margin: 0 0 30px; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.5; text-wrap: pretty; }
.testimonial-author { margin-bottom: 24px; }
.testimonial-author h3 { margin: 0 0 5px; font-size: 20px; line-height: 1.35; }
.testimonial-author p { margin: 0; font-size: 14px; line-height: 1.5; color: #3d566e; }
.review-details summary { width: fit-content; min-height: 44px; display: flex; align-items: center; gap: 16px; list-style: none; cursor: pointer; font-size: 15px; font-weight: 500; text-decoration: underline; text-decoration-color: #142a4340; text-underline-offset: 5px; }
.review-details summary::-webkit-details-marker { display: none; }
.review-details summary::after { content: '↗'; font-size: 19px; }
.review-details summary:focus-visible { outline: 3px solid var(--ink); outline-offset: 5px; }
.review-full { margin-top: 20px; font-size: 17px; line-height: 1.6; }
.review-full p { margin: 0 0 20px; }
body:has(.review-dialog[open]) { overflow: hidden; }
.review-dialog { width: min(760px, calc(100% - 40px)); max-width: none; max-height: calc(100dvh - 48px); padding: 0; border: 1px solid #142a4333; color: var(--ink); background: var(--paper); }
.review-dialog::backdrop { background: #0c203bd1; }
.review-dialog-shell { display: flex; flex-direction: column; max-height: calc(100dvh - 50px); padding: 36px; }
.review-dialog-header { display: flex; flex-shrink: 0; align-items: flex-start; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid #142a4326; }
.review-dialog-header h2 { width: auto; font-size: 28px; line-height: 1.25; margin: 0 0 8px; }
.review-dialog-header p { margin: 0; font-size: 14px; line-height: 1.5; color: #3d566e; }
.review-close { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #142a4333; background: transparent; cursor: pointer; font-size: 26px; line-height: 1; }
.review-dialog-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-top: 24px; font-size: 18px; line-height: 1.6; overflow-wrap: anywhere; }
.review-dialog-body p { margin: 0 0 20px; }
.review-dialog-body > :last-child { margin-bottom: 0; }
@media (hover: hover) { .review-details summary:hover { text-decoration-color: currentColor; } .review-close:hover { background: #dceaf5; } }
@media (max-width: 760px) {
  .testimonial-grid { grid-template-columns: 1fr; gap: 16px; }
  .testimonial blockquote { margin-bottom: 24px; }
  .testimonial-author { margin-bottom: 16px; }
  .review-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); }
  .review-dialog-shell { max-height: calc(100dvh - 26px); padding: 24px 20px; }
  .review-dialog-header { gap: 12px; padding-bottom: 20px; }
  .review-dialog-header h2 { font-size: 24px; }
  .review-dialog-body { font-size: 17px; padding-top: 20px; }
}
