/* Home / Testimonios: two-row infinite marquee (row 1 moves left -> right, row 2 right -> left). Prefix: tm-
   Rendered by assets/js/home-testimonials.js from the JSON block #tmData in index.html. */
.tm { display: flex; flex-direction: column; gap: 18px; width: 100%; }
.tm-row { position: relative; overflow: hidden; padding: 12px 0; -webkit-mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent); }
.tm-track { display: flex; align-items: stretch; gap: 20px; width: max-content; will-change: transform; }
.tm-card { position: relative; flex: 0 0 auto; width: 470px; display: flex; flex-direction: column; justify-content: space-between; gap: 22px; padding: 26px 26px 22px; border-radius: 20px; background: var(--color-p-card); border: 1px solid var(--color-p-border-line); transition: transform .45s cubic-bezier(0.22, 1, 0.36, 1), border-color .4s ease, box-shadow .45s ease; }
.tm-card:hover { transform: translateY(-6px); border-color: rgba(232,108,93,0.4); box-shadow: 0 24px 50px -28px rgba(0,0,0,0.65), 0 0 0 1px rgba(232,108,93,0.08); }
.tm-quote { margin: 0; font-size: 15.5px; font-weight: 300; line-height: 1.6; letter-spacing: -0.005em; color: var(--color-p-text); min-height: calc(5 * 1.6em); }  /* light, and every card reserves the same 5 lines */
.tm-who { display: block; padding-top: 16px; border-top: 1px solid var(--color-p-border-line); }
.tm-quote::before { content: "\201C"; display: block; margin-bottom: 2px; font-family: var(--font-geist, inherit); font-size: 44px; font-weight: 800; line-height: .7; color: var(--color-p-accent); }
.tm-name { display: block; font-size: 14px; font-weight: 800; color: var(--color-p-text); }
.tm-role { display: block; margin-top: 1px; line-height: 1.35; font-size: 12.5px; color: var(--color-p-text-secondary); }
@media (max-width: 767px) { .tm-card { width: 350px; padding: 20px 14px 16px; } .tm-quote { font-size: 13px; letter-spacing: -0.02em; line-height: 1.55; min-height: calc(5 * 1.55em); } .tm-track { gap: 14px; } .tm { gap: 12px; } }
/* reduced motion: no marquee, each row is a swipeable strip */
.tm-static .tm-row { overflow-x: auto; -webkit-mask-image: none; mask-image: none; scrollbar-width: thin; }
