/* Testimonial Carousel */
.tc{--per:1;--gap:28px;max-width:1180px;margin:0 auto;position:relative}
.tc-cards{--per:3;--gap:22px}
.tc-viewport{overflow:hidden;touch-action:pan-y;border-radius:20px;cursor:grab;-webkit-user-select:none;user-select:none}
.tc-viewport.is-dragging{cursor:grabbing}
.tc-track{display:flex;gap:var(--gap);transition:transform .8s cubic-bezier(.7,0,.2,1);will-change:transform}
.tc-viewport.is-dragging .tc-track{transition:none}
.tc-slide{flex:0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per));margin:0;min-width:0}
.tc-slide img{-webkit-user-drag:none;pointer-events:none}
.tc-mark{display:block;font-family:var(--serif);font-size:7rem;line-height:.6;height:2.6rem;color:var(--gold);opacity:.9}
.tc-stars{display:flex;align-items:center;margin:0 0 1rem;color:var(--gold);font-size:.95rem;line-height:1}
/* stars are inline SVGs: lay them out as one row (the global svg{display:block} reset would otherwise stack them) */
.tc-stars>span{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:4px}
.tc-stars svg{display:block;flex:none;width:16px;height:16px}
.tc-stars i{font-style:normal;color:rgba(var(--ink-rgb),.2)}
.tc-quote{margin:0}
.tc-quote p{margin:0;font-family:var(--serif);font-style:italic;color:var(--cream);line-height:1.35}
.tc-who{display:flex;align-items:center;gap:.9rem;margin-top:1.6rem}
.tc-avatar{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(var(--gold-rgb),.6);color:var(--gold2);font-size:.72rem;letter-spacing:.12em;background:rgba(var(--ink-rgb),.04)}
.tc-who b{display:block;font-weight:500;color:var(--cream);font-size:.95rem}
.tc-who small{display:block;color:var(--muted);font-size:.78rem;margin-top:.1rem}
/* feature variant: photo + big quote */
.tc-feature .tc-slide{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:clamp(1rem,2vw,1.6rem);border-radius:20px;background:linear-gradient(150deg,rgba(var(--ink-rgb),.06),rgba(var(--ink-rgb),.015));border:1px solid rgba(var(--ink-rgb),.1)}
.tc-feature .tc-media{border-radius:14px;overflow:hidden;aspect-ratio:4/4.4;background:var(--bg2)}
.tc-feature .tc-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.6s cubic-bezier(.2,.8,.2,1)}
.tc-feature .tc-slide.is-current .tc-media img{transform:scale(1)}
.tc-feature .tc-content{padding-right:clamp(0rem,3vw,2.5rem)}
.tc-feature .tc-quote p{font-size:clamp(1.5rem,2.6vw,2.35rem)}
.tc-feature .tc-content > *{transition:opacity .6s .25s,transform .8s .25s cubic-bezier(.2,.8,.2,1)}
.tc-feature .tc-slide:not(.is-current) .tc-content > *{opacity:0;transform:translateY(14px)}
/* cards variant */
.tc-cards .tc-viewport{border-radius:18px;padding:4px 0 40px}
.tc-cards .tc-slide{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:var(--bg2);border:1px solid rgba(var(--ink-rgb),.1)}
.tc-cards .tc-media{aspect-ratio:16/9;overflow:hidden}
.tc-cards .tc-media img{width:100%;height:100%;object-fit:cover}
.tc-cards .tc-content{position:relative;padding:1.6rem 1.6rem 1.7rem;display:flex;flex-direction:column;flex:1}
.tc-cards .tc-mark{position:absolute;right:1.2rem;top:1.3rem;font-size:5rem;opacity:.35}
.tc-cards .tc-quote{flex:1}
.tc-cards .tc-quote p{font-size:1.3rem}
.tc-cards .tc-who{margin-top:1.3rem;padding-top:1.1rem;border-top:1px solid rgba(var(--ink-rgb),.1)}
.theme-light .tc-cards .tc-slide{background:#fff;box-shadow:0 26px 50px -34px rgba(var(--shadow-rgb),.42)}
/* controls */
.tc-controls{display:flex;align-items:center;justify-content:center;gap:clamp(.6rem,1.5vw,1.1rem);margin-top:1.8rem;flex-wrap:wrap}
.tc-arrow{-webkit-appearance:none;appearance:none;width:48px;height:48px;margin:0;padding:0;border-radius:50%;border:1px solid rgba(var(--ink-rgb),.25);background:transparent;color:var(--cream);display:grid;place-items:center;cursor:pointer;transition:border-color .3s,background .3s,color .3s}
.tc-arrow:hover{border-color:var(--gold);color:var(--gold2)}
.tc-arrow:focus-visible,.tc-dot:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.tc-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tc-count{font-size:.72rem;letter-spacing:.2em;color:var(--muted);min-width:4.6rem;text-align:center}
.tc-count b{font-weight:500;color:var(--cream)}
.tc-dots{display:flex;gap:4px}
.tc-dot{-webkit-appearance:none;appearance:none;width:28px;height:28px;margin:0;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}
.tc-dot::before{content:"";width:8px;height:8px;border-radius:8px;background:rgba(var(--ink-rgb),.25);transition:width .4s,background .3s}
.tc-dot[aria-current="true"]::before{width:22px;background:var(--gold)}
.tc-play{margin-left:.4rem}
.tc-timer{height:2px;margin:1.2rem auto 0;max-width:220px;background:rgba(var(--ink-rgb),.1);border-radius:2px;overflow:hidden}
.tc-timer i{display:block;height:100%;background:var(--gold);transform-origin:left;transform:scaleX(0)}
@media (max-width:1000px){.tc-cards{--per:2}}
@media (max-width:760px){
  .tc-feature .tc-slide{grid-template-columns:1fr;gap:1.2rem;padding:.8rem .8rem 1.4rem}
  .tc-feature .tc-media{aspect-ratio:16/10}
  .tc-feature .tc-content{padding:0 .6rem}
  .tc-feature .tc-quote p{font-size:1.3rem}
  .tc-mark{font-size:5rem;height:1.8rem}
  .tc-count{display:none}
  .tc-play{flex-basis:100%;max-width:max-content;margin:.4rem auto 0}
}
@media (max-width:640px){.tc-cards{--per:1;--gap:14px}.tc-cards .tc-quote p{font-size:1.2rem}}
@media (prefers-reduced-motion:reduce){.tc-track,.tc-feature .tc-content > *,.tc-feature .tc-media img{transition:none!important}}
