/* White testimonial surfaces, a warm 3D avatar and large typographic quotation marks. */
.review-section { text-align: left; scroll-margin-top: 20px; margin-top: 32px; }
.reviews-bubble { font-size: 54px; line-height: 1.1; margin-bottom: 24px; }
#reviews-title>span { display: inline-block; }
.review-actions { text-align: center; margin-top: 28px; }
.review-link { width: min(100%, 320px); }
.review-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 15px; }
.review-controls { display: flex; gap: 8px; }
.review-controls button { width: 44px; height: 44px; border: 1px solid #68685a; border-radius: 50%; color: #eee; background: #151512; font-size: 21px; transition: background .2s, color .2s; }
.review-controls button:hover:not(:disabled) { background: var(--yellow); color: #111; }
.review-controls button:disabled { opacity: .3; }
.review-controls { margin-left: auto; }
.review-viewport { overflow: clip; padding: 28px 0 24px; margin: -10px 0; touch-action: pan-y; perspective: 1400px; }
.review-track { display: flex; gap: 18px; transform-style: preserve-3d; will-change: transform; }
.review-track:focus-visible { outline-offset: -3px; }
.review-card { flex: 0 0 calc((100% - 36px) / 3); min-width: 0; height: 464px; color: #222; transform: perspective(1100px) rotateY(var(--card-turn,0deg)) rotateZ(var(--card-roll,0deg)); transform-origin: center; }
.review-surface { display: flex; flex-direction: column; height: 100%; padding: 25px 24px 22px; border: 1px solid #e0e0d8; border-radius: 18px; background: #fff; backface-visibility: hidden; }
.reviews-entered .review-surface { animation: review-deal 1.1s cubic-bezier(.16,1,.3,1) both; animation-delay: calc(var(--deal-order) * 110ms); }
@keyframes review-deal { from { opacity: 0; transform: perspective(900px) translate3d(155px,75px,-240px) rotateY(-34deg) rotateZ(13deg) scale(.87); } to { opacity: 1; transform: perspective(900px) translate3d(0,0,0) rotateY(0deg) rotateZ(0deg) scale(1); } }
.review-profile { display: flex; align-items: center; gap: 12px; min-height: 60px; }
.review-avatar { display: block; flex: 0 0 60px; width: 60px; height: 60px; border-radius: 50%; background-color: var(--avatar-tone,#e5f0e9); background-image: url('assets/review-avatars-768.webp'); background-size: 400% 400%; background-position: var(--avatar-x,0%) var(--avatar-y,0%); background-repeat: no-repeat; }
.review-profile h4 { color: #20211f; font: 700 14px/1.5 var(--body); }
.review-profile time { display: block; font-size: 11px; color: #676a64; margin-top: 4px; }
.review-verified { margin-left: auto; color: #65695e; font-size: 10px; white-space: nowrap; }
.review-quote { display: block; height: 48px; margin: 27px 0 8px; font: 90px/.9 Georgia, serif; color: #FFE000; letter-spacing: -.08em; user-select: none; }
.review-card blockquote { min-width: 0; margin: 0; flex: 1; overflow: hidden; }
.review-card blockquote p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 7; overflow: hidden; color: #373b34; font: 400 14px/1.9 var(--body); white-space: pre-line; word-break: keep-all; text-wrap: pretty; }
.review-more { align-self: flex-start; display: inline-flex; align-items: center; gap: 13px; min-height: 38px; padding: 7px 12px; margin: 16px 0 18px; border-radius: 999px; background: #f2f3ed; color: #242822; font-size: 12px; font-weight: 700; }
.review-more:hover { background: #fff5a9; }
.review-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding-top: 16px; border-top: 1px solid #ebede5; }
.review-source { display: flex; align-items: center; gap: 5px; font-size: 10px; color: #666b60; }
.review-source b, .review-dialog-source b { color: #168c44; font: 900 13px/1 Arial, sans-serif; }
.review-coach { padding: 4px 8px; border-radius: 999px; background: #f5f5ee; font-size: 10px; color: #555c4f; white-space: nowrap; }
.review-dialog { width: min(660px, calc(100vw - 36px)); max-width: none; max-height: 85svh; overflow-y: auto; padding: 36px; border: 0; border-radius: 22px; background: #fff; color: #222; text-align: left; }
.review-dialog::backdrop { background: #000b; -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
.review-dialog .review-profile { padding-right: 20px; }
.review-dialog h3 { font: 700 17px/1.6 var(--body); }
.review-dialog .review-quote { margin-top: 26px; }
.review-full { margin: 0; }
.review-dialog .review-full p { font-size: 15px; color: #34392f; line-height: 1.95; margin: 0; white-space: pre-line; word-break: keep-all; }
.review-dialog-close { position: sticky; float: right; top: 0; z-index: 2; display: block; width: 44px; height: 44px; margin: -18px -18px -26px 0; border-radius: 50%; background: #f0f1e9; color: #111; font-size: 25px; }
.review-dialog .review-dialog-source { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #68705f; margin: 26px 0 0; }
@media(hover:hover) { .review-card:hover .review-surface { border-color: #FFE000; } }
@media(max-width:1000px) { .review-card { flex-basis: calc((100% - 18px) / 2); } }
@media(max-width:640px) {
  .review-toolbar { gap: 12px; }
  .reviews-bubble { font-size: 46px; margin-bottom: 20px; }
  .review-actions { margin-top: 22px; }
  .review-controls { margin-left: auto; }
  .review-track { gap: 14px; }
  .review-card { flex-basis: 88%; }
  .review-card { height: 476px; }
  .review-surface { padding: 23px 20px 20px; }
  .review-avatar { flex-basis: 54px; width: 54px; height: 54px; }
  .review-profile { gap: 10px; }
  .review-verified { font-size: 10px; }
  .review-card blockquote p { font-size: 14px; }
  .review-source, .review-coach { font-size: 10px; }
  .review-dialog { padding: 28px 22px; }
  .review-dialog h3 { font-size: 15px; }
  .review-dialog .review-profile { padding-right: 0; gap: 10px; }
  .review-dialog .review-profile time { font-size: 11px; }
  .review-dialog .review-full p { font-size: 14px; }
  .review-dialog-close { margin-right: -8px; }
}
@media(max-width:360px) { .review-verified { display: none; } .review-card-foot { flex-wrap: wrap; } }
@media(prefers-reduced-motion:reduce) {
  .review-card { transform: none; }
  .reviews-entered .review-surface { animation: none; }
  .review-controls button { transition: none; }
}

/* Native scrolling on phones: no continuously transformed card layers. */
.reviews-native .review-viewport { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 0; touch-action: auto; perspective: none; scrollbar-width: none; }
.reviews-native .review-viewport::-webkit-scrollbar { display: none; }
.reviews-native .review-track { transform: none; transform-style: flat; will-change: auto; }
.reviews-native .review-card { transform: none; scroll-snap-align: start; }
.reviews-native .review-surface { animation: none; backface-visibility: visible; }
.review-face-0 { --avatar-x: 0.000000%; --avatar-y: 0.000000%; --avatar-tone: #e5f0e9; }
.review-face-1 { --avatar-x: 33.333333%; --avatar-y: 0.000000%; --avatar-tone: #ede7f8; }
.review-face-2 { --avatar-x: 66.666667%; --avatar-y: 0.000000%; --avatar-tone: #fff0d5; }
.review-face-3 { --avatar-x: 100.000000%; --avatar-y: 0.000000%; --avatar-tone: #fbe5e8; }
.review-face-4 { --avatar-x: 0.000000%; --avatar-y: 33.333333%; --avatar-tone: #e5f0e9; }
.review-face-5 { --avatar-x: 33.333333%; --avatar-y: 33.333333%; --avatar-tone: #ede7f8; }
.review-face-6 { --avatar-x: 66.666667%; --avatar-y: 33.333333%; --avatar-tone: #fff0d5; }
.review-face-7 { --avatar-x: 100.000000%; --avatar-y: 33.333333%; --avatar-tone: #fbe5e8; }
.review-face-8 { --avatar-x: 0.000000%; --avatar-y: 66.666667%; --avatar-tone: #e5f0e9; }
.review-face-9 { --avatar-x: 33.333333%; --avatar-y: 66.666667%; --avatar-tone: #ede7f8; }
.review-face-10 { --avatar-x: 66.666667%; --avatar-y: 66.666667%; --avatar-tone: #fff0d5; }
.review-face-11 { --avatar-x: 100.000000%; --avatar-y: 66.666667%; --avatar-tone: #fbe5e8; }
.review-face-12 { --avatar-x: 0.000000%; --avatar-y: 100.000000%; --avatar-tone: #e5f0e9; }
