/*!
 * Themeasy — Testimonial Wall
 *
 * SaaS-style "wall of love": testimonial cards distributed across 1-4 vertical
 * columns inside a fixed-height, fade-masked window, auto-scrolled by GSAP in
 * seamless per-column loops.
 *
 * Layering:
 * - Structure (the column grid, cards, mask window) is pure CSS and always
 *   present, so the widget renders as a static column grid with no JavaScript
 *   and in the Elementor editor (--static).
 * - Motion (per-column translateY loops) is layered on by the widget JS, which
 *   duplicates each column's card set (.tms-testimonial-wall__clone wrappers)
 *   and adds --live. Under (prefers-reduced-motion: reduce) the window relaxes
 *   to the full grid: auto height, no mask, transforms neutralized.
 *
 * Tokens consumed: --tms-primary-color, --tms-heading-color, --tms-body-color,
 * --tms-surface-color, --tms-border-color, --tms-radius-lg (public --tms-*
 * design API).
 *
 * @author Themeasy
 * @link https://themeasy.co
 * @since 1.0.0
 */
.tms-testimonial-wall{--tms-testimonial-wall-columns:3;--tms-testimonial-wall-height:620px;--tms-testimonial-wall-column-gap:1.5rem;--tms-testimonial-wall-card-gap:1.5rem;--tms-testimonial-wall-fade:18%;--tms-testimonial-wall-avatar-size:2.75rem;--tms-testimonial-wall-accent:var(--tms-primary-color,#5b6cff);--tms-testimonial-wall-star-color:#f7b32b;width:100%;position:relative}.tms-testimonial-wall__viewport{height:var(--tms-testimonial-wall-height);-webkit-mask-image:linear-gradient(180deg, transparent 0, #000 var(--tms-testimonial-wall-fade), #000 calc(100% - var(--tms-testimonial-wall-fade)), transparent 100%);-webkit-mask-image:linear-gradient(180deg, transparent 0, #000 var(--tms-testimonial-wall-fade), #000 calc(100% - var(--tms-testimonial-wall-fade)), transparent 100%);mask-image:linear-gradient(180deg, transparent 0, #000 var(--tms-testimonial-wall-fade), #000 calc(100% - var(--tms-testimonial-wall-fade)), transparent 100%);position:relative;overflow:hidden}.tms-testimonial-wall__columns{grid-template-columns:repeat(var(--tms-testimonial-wall-columns,3), minmax(0, 1fr));align-items:start;gap:var(--tms-testimonial-wall-card-gap) var(--tms-testimonial-wall-column-gap);display:grid}.tms-testimonial-wall__column{min-width:0;position:relative}.tms-testimonial-wall__track{gap:var(--tms-testimonial-wall-card-gap);flex-direction:column;display:flex}.tms-testimonial-wall--live .tms-testimonial-wall__track{will-change:transform}.tms-testimonial-wall__clone{display:contents}.tms-testimonial-wall__card{border:1px solid var(--tms-border-color,#0f172a1a);border-radius:var(--tms-radius-lg,16px);background-color:var(--tms-surface-color,#fff);flex-direction:column;gap:1rem;margin:0;padding:1.5rem;display:flex}.tms-testimonial-wall__card--featured{border-color:var(--tms-testimonial-wall-accent);box-shadow:inset 0 0 0 1px var(--tms-testimonial-wall-accent);background-image:linear-gradient(160deg, color-mix(in srgb, var(--tms-testimonial-wall-accent) 10%, transparent), transparent 55%)}.tms-testimonial-wall__card-header{justify-content:space-between;align-items:center;gap:.75rem;min-height:1.75rem;display:flex}.tms-testimonial-wall__stars{color:var(--tms-testimonial-wall-star-color);align-items:center;gap:.25rem;font-size:.875rem;line-height:1;display:inline-flex}.tms-testimonial-wall__star{display:inline-flex}.tms-testimonial-wall__star--muted{opacity:.25}.tms-testimonial-wall__stars svg{fill:currentColor;width:1em;height:1em;display:block}.tms-testimonial-wall__stars svg[fill=none]{fill:none;stroke:currentColor}.tms-testimonial-wall__quote-mark{color:var(--tms-testimonial-wall-accent);opacity:.3;margin-inline-start:auto;font-size:1.75rem;line-height:1;display:inline-flex}.tms-testimonial-wall__quote-mark svg{fill:currentColor;width:1em;height:1em;display:block}.tms-testimonial-wall__quote-mark svg[fill=none]{fill:none;stroke:currentColor}.tms-testimonial-wall__quote{quotes:none;background:0 0;border:0;margin:0;padding:0}.tms-testimonial-wall__quote:before,.tms-testimonial-wall__quote:after{content:none}.tms-testimonial-wall__quote-text{overflow-wrap:break-word;color:var(--tms-body-color,#4b5563);margin:0;font-size:.875rem;line-height:1.65}.tms-testimonial-wall__author{align-items:center;gap:.75rem;margin:.25rem 0 0;font-style:normal;display:flex}.tms-testimonial-wall__avatar{width:var(--tms-testimonial-wall-avatar-size);height:var(--tms-testimonial-wall-avatar-size);border-radius:50%;flex:none;overflow:hidden}.tms-testimonial-wall__avatar .tms-testimonial-wall__avatar-img{object-fit:cover;width:100%;height:100%;display:block}.tms-testimonial-wall__meta{flex-direction:column;gap:.25rem;min-width:0;display:flex}.tms-testimonial-wall__name{color:var(--tms-heading-color,#111827);font-size:.875rem;font-weight:600;line-height:1.35}.tms-testimonial-wall__role{color:var(--tms-body-color,#4b5563);opacity:.72;font-size:.75rem;line-height:1.35}@media (prefers-reduced-motion:reduce){.tms-testimonial-wall__viewport{height:auto;-webkit-mask-image:none;mask-image:none}.tms-testimonial-wall__track{transform:none!important}}@media (max-width:767px){.tms-testimonial-wall__card{padding:1.25rem}}