/* Testimonials section: uses the theme's colour tokens, so dark mode just works. */
.testimonials{padding-top:0}
.testi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.4rem}
.testi-card{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.testi-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(23,36,74,.14)}
.testi-thumb{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--bg);border-bottom:4px solid var(--tape)}
.testi-thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.testi-zoom{position:absolute;inset-inline:0;bottom:0;padding:.55rem .8rem;background:linear-gradient(transparent,rgba(10,16,36,.85));color:#fff;font-size:.85rem;font-weight:600;opacity:0;transition:opacity .2s}
.testi-thumb:hover .testi-zoom,.testi-thumb:focus-visible .testi-zoom{opacity:1}
@media (hover:none){.testi-zoom{opacity:1}}
.testi-card figcaption{padding:1.1rem 1.3rem 1.4rem;display:grid;gap:.7rem;flex:1;align-content:start}
.testi-stars{display:flex;gap:2px;font-size:1.15rem;line-height:1}
.testi-stars .on{color:#e8a900}
.testi-stars .off{color:var(--line)}
.testi-text{margin:0;color:var(--ink);line-height:1.6}
.testi-text.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;line-clamp:6;overflow:hidden}
.testi-more{justify-self:start;background:none;border:0;padding:0;color:var(--navy-2);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}
:root[data-theme="dark"] .testi-more{color:var(--tape)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .testi-more{color:var(--tape)}}
.testi-by{margin-top:.2rem;padding-top:.8rem;border-top:1px solid var(--line);display:grid}
.testi-by b{font-family:var(--display)}
.testi-by span{color:var(--muted);font-size:.9rem}

.testi-box{border:0;padding:0;background:transparent;max-width:min(94vw,820px);max-height:92vh;overflow:visible}
.testi-box::backdrop{background:rgba(8,12,28,.82)}
.testi-box img{display:block;max-width:100%;max-height:92vh;margin:auto;border-radius:10px;background:#fff}
.testi-close{position:absolute;top:-14px;right:-8px;z-index:2;width:38px;height:38px;border-radius:50%;border:0;background:var(--tape);color:#1a1a1a;font-size:1.5rem;line-height:1;cursor:pointer}
.testi-close:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
@media (max-width:700px){.testi-grid{grid-template-columns:1fr}.testi-close{top:6px;right:6px}}
@media (prefers-reduced-motion:reduce){.testi-card,.testi-zoom{transition:none}.testi-card:hover{transform:none}}
