.testi{background:#fff}
.tcard{background:var(--sand);border-radius:var(--radius);padding:32px 28px;display:flex;flex-direction:column;border:1px solid transparent;transition:.3s var(--ease)}
.tcard:hover{background:#fff;box-shadow:var(--shadow);border-color:var(--line);transform:translateY(-5px)}
.tcard .stars{display:inline-flex;gap:3px;margin-bottom:16px}
.tcard .stars svg{width:18px;height:18px;fill:var(--gold)}
.tcard blockquote{font-size:1rem;color:var(--ink);line-height:1.65;flex:1}
.tcard .av{width:46px;height:46px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-family:'Fraunces';flex:none}
.tcard .nm{font-weight:600;font-size:.94rem;color:var(--charcoal)}
.tcard .rl{font-size:.8rem;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.tcard .gmini{width:13px;height:13px;flex:none}
/* ===== Testimonial slider (3 per view) ===== */
.testi-slider{--per:3;--gap:24px;max-width:1180px;margin:0 auto}
.ts-track{display:flex;gap:var(--gap);position:relative;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:4px}
.ts-track::-webkit-scrollbar{display:none}
.ts-track .tcard{flex:0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per));scroll-snap-align:start;opacity:1;transform:none;margin:0}
.ts-track .tcard blockquote{flex:none;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.ts-track .tcard .who{margin-top:auto;padding-top:22px}
.ts-readmore{align-self:flex-start;margin-top:14px;padding:0;background:none;border:none;color:var(--navy);font-family:inherit;font-weight:600;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.ts-readmore:hover{text-decoration:underline}
.ts-readmore svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:900px){.testi-slider{--per:2;}}
@media(max-width:600px){.testi-slider{--per:1;}}
.ts-controls{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:30px}
/* review modal */
.ts-modal[hidden]{display:none}
.ts-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.ts-modal-backdrop{position:absolute;inset:0;background:rgba(16,31,58,.55)}
.ts-modal-box{position:relative;background:#fff;border-radius:var(--radius);max-width:640px;width:100%;max-height:85vh;overflow:auto;padding:42px 38px;box-shadow:var(--shadow);animation:tmIn .3s var(--ease)}
@keyframes tmIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ts-modal-box .stars{display:inline-flex;gap:3px;margin-bottom:18px}
.ts-modal-box .stars svg{width:20px;height:20px;fill:var(--gold)}
.ts-modal-box blockquote{font-size:1.05rem;color:var(--ink);line-height:1.7;margin-bottom:26px}
.ts-modal-box .who{display:flex;align-items:center;gap:13px;background:none;padding:0;margin-top:0}
.ts-modal-box .nm{font-weight:600;font-size:.98rem;color:var(--charcoal)}
.ts-modal-box .rl{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;color:var(--muted)}
.ts-modal-box .gmini{width:14px;height:14px;flex:none}
.ts-modal-box .av{width:46px;height:46px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-family:'Fraunces';flex:none}
.ts-modal-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--charcoal);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s var(--ease)}
.ts-modal-close:hover{background:var(--sand)}
.ts-modal-close svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round}
.ts-arrow{width:46px;height:46px;flex:none;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.25s var(--ease)}
.ts-arrow:hover:not([disabled]){background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.ts-arrow svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ts-arrow[disabled]{opacity:.3;cursor:default}
.ts-dots{display:flex;align-items:center;gap:9px}
.ts-dots button{width:9px;height:9px;padding:0;border:none;border-radius:50%;background:var(--line);cursor:pointer;transition:.25s var(--ease)}
.ts-dots button:hover{background:#c9c8c2}
.ts-dots button.active{background:var(--navy);width:28px;border-radius:5px}