/* ===== Testimonials page (banner styles come from contact.css) ===== */
.tm-section{background:linear-gradient(180deg,#F6F8FC,#fff)}
.tm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.tm-card{position:relative;display:flex;flex-direction:column;padding:2.4rem 1.8rem 1.6rem;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 26px 46px -34px rgba(7,26,61,.55);transition:transform .5s var(--ease),border-color .4s,box-shadow .5s}
.tm-card::before{content:"\201C";position:absolute;left:1.5rem;top:.4rem;font:800 4.5rem/1 var(--sans);color:rgba(212,175,55,.4)}
.tm-card::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:14px 14px 0 0;background:var(--gold-grad);transform:scaleX(.18);transform-origin:left;transition:transform .9s var(--ease-out)}
.tm-card:hover{transform:translateY(-6px);border-color:rgba(212,175,55,.6);box-shadow:0 36px 56px -32px rgba(7,26,61,.6)}
.tm-card:hover::after{transform:scaleX(1)}
.tm-text{position:relative;flex:1;margin:1rem 0 1.5rem;font-size:1rem;line-height:1.75;color:var(--text)}
.tm-by{display:flex;align-items:center;gap:.9rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.tm-av{display:grid;place-items:center;flex:none;width:46px;height:46px;font-weight:800;color:var(--gold-hi);background:var(--navy);border-radius:50%;box-shadow:0 0 0 3px rgba(212,175,55,.45)}
.tm-by p{margin:0}
.tm-name{font-weight:800;color:var(--navy)}
.tm-role{font-size:.86rem;color:var(--muted)}
.tm-stars{color:var(--gold);letter-spacing:.15em}
@media (max-width:980px){.tm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.tm-grid{grid-template-columns:1fr}}

/* ---- hero visual: photo in a ring, quote badge, and a stack of testimonial cards that cycles ---- */
.th-visual{position:relative;justify-self:end;width:min(100%,500px);height:min(400px,100%);min-height:380px;padding:0;margin-right:.6rem}
.th-ring{position:absolute;left:50%;top:42%;translate:-50% -50%;border-radius:50%;pointer-events:none}
.th-ring-a{width:320px;height:320px;border:2px dashed rgba(243,214,117,.55);animation:thSpin 60s linear infinite}
.th-ring-b{width:372px;height:372px;border:1px solid rgba(255,255,255,.14);border-top-color:var(--gold);animation:thSpin 36s linear infinite reverse}
@keyframes thSpin{to{rotate:360deg}}
.th-spark{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--gold-hi);box-shadow:0 0 18px 4px rgba(243,214,117,.6);animation:thPulse 3.6s ease-in-out infinite}
.th-spark-1{left:12%;top:20%}.th-spark-2{right:6%;top:58%;animation-delay:-1.8s}
@keyframes thPulse{50%{transform:scale(1.6);opacity:.45}}
.th-photo{position:absolute;left:50%;top:42%;translate:-50% -50%;width:250px;aspect-ratio:1;overflow:hidden;border-radius:50%;background:var(--navy);box-shadow:0 0 0 6px rgba(255,255,255,.12),0 0 0 8px var(--gold),0 40px 70px -30px rgba(2,9,28,.9)}
.th-photo .bl-pic{position:absolute;inset:0}
.th-photo img{object-position:50% 40%}
.th-badge{position:absolute;left:18%;top:4%;display:grid;place-items:center;width:64px;height:64px;padding-top:.8rem;font:800 3.8rem/1 var(--sans);color:var(--navy);background:var(--gold-grad);border-radius:50%;box-shadow:0 0 0 6px rgba(243,214,117,.25),0 22px 34px -14px rgba(0,0,0,.7);animation:thFloat 6s ease-in-out infinite}
@keyframes thFloat{50%{translate:0 -10px}}
.th-chip{position:absolute;right:0;top:8%;display:inline-flex;align-items:center;gap:.7rem;padding:.7rem 1.2rem .7rem .9rem;font:700 .7rem/1 var(--sans);letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;color:#fff;background:linear-gradient(180deg,rgba(16,48,108,.8),rgba(7,26,61,.82));border:1px solid rgba(243,214,117,.42);border-radius:99px;box-shadow:0 20px 34px -18px rgba(2,9,28,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:thFloat 7s ease-in-out -2s infinite}
.th-chip svg{width:1.25rem;height:1.25rem}
.th-stack{position:absolute;left:4%;right:4%;bottom:30px;height:128px}
.th-card{position:absolute;inset:0 0 auto 0;padding:.85rem 1.2rem .8rem;background:#fff;border-radius:16px;box-shadow:0 30px 50px -26px rgba(2,9,28,.85);will-change:transform,opacity}
.th-card:nth-child(n+2){display:none}
.th-live .th-card:nth-child(n+2){display:block}
.th-q{position:absolute;right:1.1rem;top:-.1rem;font:800 3.6rem/1 var(--sans);color:rgba(212,175,55,.35)}
.th-card p{position:relative;margin:0 0 .6rem;font-size:.84rem;line-height:1.45;font-weight:600;color:var(--navy)}
.th-by{display:flex;align-items:center;gap:.7rem}
.th-by>div{flex:1;min-width:0;line-height:1.25}
.th-by b{display:block;font-size:.82rem;color:var(--navy)}
.th-by small{font-size:.72rem;color:var(--muted)}
.th-av{display:grid;place-items:center;flex:none;width:34px;height:34px;font-weight:800;font-size:.85rem;color:var(--gold-hi);background:var(--navy);border-radius:50%;box-shadow:0 0 0 2px rgba(212,175,55,.5)}
.th-sample{font:700 .56rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:.3rem .55rem;color:var(--gold-ink);border:1px dashed var(--gold);border-radius:99px}
.th-dots{position:absolute;left:0;right:0;bottom:6px;display:flex;justify-content:center;gap:.5rem}
.th-dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);transition:width .4s var(--ease),background .4s}
.th-dots i.is-on{width:26px;border-radius:6px;background:var(--gold)}
.js:not(.no-anim) .th-ring,.js:not(.no-anim) .th-badge,.js:not(.no-anim) .th-chip,.js:not(.no-anim) .th-spark,.js:not(.no-anim) .th-dots{opacity:0}
@media (max-width:900px){.th-visual{width:min(100%,420px);justify-self:center;min-height:440px;margin:6rem 0 0}.th-ring-a{width:350px;height:350px}.th-ring-b{width:410px;height:410px}.th-photo{width:280px}.th-badge{left:8%}.th-chip{right:-.4rem}}
@media (max-width:420px){.th-stack{left:0;right:0}.th-card p{font-size:.82rem}}
@media (prefers-reduced-motion:reduce){.th-ring,.th-badge,.th-chip,.th-spark{animation:none}}

/* ---- pagination ---- */
.tm-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;margin-top:2.6rem}
.tm-pager[hidden]{display:none}
.tm-pager button{display:grid;place-items:center;min-width:46px;height:46px;padding:0 .8rem;font:700 .9rem/1 var(--sans);color:var(--navy);background:#fff;border:1px solid rgba(7,26,61,.14);border-radius:99px;transition:transform .4s var(--ease),border-color .3s,background .3s,color .3s,box-shadow .4s}
.tm-pager button:hover:not([disabled]){transform:translateY(-2px);border-color:var(--gold);box-shadow:0 14px 22px -16px rgba(7,26,61,.5)}
.tm-pager button[aria-current=page]{color:var(--navy);background:var(--gold-grad);border-color:var(--gold);box-shadow:0 14px 24px -14px rgba(184,146,31,.9)}
.tm-pager button[disabled]{opacity:.4;cursor:default}
.tm-pager .ico{width:1.1rem;height:1.1rem}
.tm-pager .tm-prev .ico{transform:rotate(180deg)}
.tm-status{margin:1rem 0 0;text-align:center;font-size:.86rem;color:var(--muted)}
.tm-av.has-photo img,.tm-av.has-photo{overflow:hidden}
.tm-av.has-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.tm-section .tm-empty{color:var(--text)}
