/* =========================================================
   Vega — Testemunhos
   Inherits the site palette (--vg-primary etc.) when present,
   with fallbacks so the block also works standalone.
   ========================================================= */

.vg-tm{ margin:3.5rem 0 0; }
.vg-tm:first-child{ margin-top:0; }

/* ---------- heading ---------- */
.vg-tm-title{
  font-size:clamp(1.4rem,2.2vw,1.8rem); line-height:1.2; font-weight:800;
  letter-spacing:-.01em; text-transform:none;
  color:var(--vg-primary,#1f1d1a);
  text-align:center; max-width:24ch; margin:0 auto;
}
.vg-tm-title::after{
  content:""; display:block; width:40px; height:3px; border-radius:2px;
  background:var(--vg-accent,#c9932a); margin:.85rem auto 0;
}
.vg-tm-lead{
  text-align:center; max-width:64ch; margin:1.1rem auto 0;
  color:var(--vg-body,#57534a); font-size:1.0625rem; line-height:1.7;
  text-wrap:balance;
}
.vg-tm-title + .vg-tm-grid,
.vg-tm-lead + .vg-tm-grid{ margin-top:2.4rem; }

/* ---------- grid ---------- */
.vg-tm-grid{
  display:grid; grid-template-columns:repeat(var(--vg-tm-cols,3),1fr);
  gap:20px; list-style:none; margin:0; padding:0;
}
@media (max-width:900px){ .vg-tm-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .vg-tm-grid{ grid-template-columns:1fr; gap:16px; } }

.vg-tm-card{
  box-sizing:border-box;
  display:flex; flex-direction:column; gap:14px;
  background:#fff; border:1px solid var(--vg-line,#e7e3da);
  border-radius:16px; padding:26px 24px; margin:0;
  list-style:none;
  transition:box-shadow .28s ease;
}
.vg-tm-card::before{ content:none; }        /* kill theme list markers */
.vg-tm-card:hover{
  box-shadow:0 0 0 3px rgba(201,147,42,.28), 0 0 16px 3px rgba(201,147,42,.18);
}

/* ---------- stars ---------- */
.vg-tm-stars{ display:inline-flex; gap:2px; }
.vg-tm-star{
  width:17px; height:17px; display:block;
  fill:var(--vg-line,#e7e3da);              /* empty */
}
.vg-tm-star.is-on{ fill:var(--vg-accent,#c9932a); }

/* ---------- quote ---------- */
.vg-tm-quote{
  margin:0; padding:0; border:0; quotes:none;
  font-size:1rem; line-height:1.7; color:var(--vg-body,#57534a);
  flex:1 1 auto;
}
.vg-tm-quote::before{ content:"\201C"; }
.vg-tm-quote::after{ content:"\201D"; }

/* ---------- author ---------- */
.vg-tm-by{ display:flex; align-items:center; gap:12px; }
.vg-tm-avatar{
  width:40px; height:40px; border-radius:50%; flex:0 0 auto;
  object-fit:cover; display:grid; place-items:center;
}
.vg-tm-avatar.is-initials{
  background:hsl(var(--vg-tm-hue,35) 42% 88%);
  color:hsl(var(--vg-tm-hue,35) 55% 26%);
  font-weight:700; font-size:.85rem; letter-spacing:.02em;
}
.vg-tm-meta{ display:flex; flex-direction:column; line-height:1.3; min-width:0; }
.vg-tm-author{ font-weight:700; color:var(--vg-primary,#1f1d1a); font-size:.95rem; }
.vg-tm-when{ font-size:.82rem; color:var(--vg-body,#57534a); opacity:.8; }

/* ---------- cta ---------- */
.vg-tm-foot{ text-align:center; margin:2rem 0 0; }
.vg-tm-cta{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:13px 30px; border-radius:9999px;
  border:2px solid var(--vg-primary,#1f1d1a);
  color:var(--vg-primary,#1f1d1a)!important;
  font-weight:700; font-size:1rem; text-decoration:none!important;
  background:transparent;
  transition:background .18s, color .18s, transform .18s;
}
.vg-tm-cta:hover{
  background:var(--vg-primary,#1f1d1a); color:#fff!important; transform:translateY(-2px);
}

@media (prefers-reduced-motion:reduce){
  .vg-tm-card, .vg-tm-cta{ transition:none; }
  .vg-tm-cta:hover{ transform:none; }
}
