.tsfa { width: 100%; }
.tsfa-grid { display: grid; }

.tsfa.gap-tight .tsfa-grid { gap: 8px; }
.tsfa.gap-normal .tsfa-grid { gap: 16px; }
.tsfa.gap-spacious .tsfa-grid { gap: 24px; }

.tsfa.cols-1 .tsfa-grid { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.tsfa.cols-2 .tsfa-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsfa.cols-3 .tsfa-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tsfa.cols-4 .tsfa-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tsfa.cols-5 .tsfa-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }

@media (max-width: 960px) {
  .tsfa.cols-3 .tsfa-grid,
  .tsfa.cols-4 .tsfa-grid,
  .tsfa.cols-5 .tsfa-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .tsfa .tsfa-grid { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
}

.tsfa-item { border: 1px solid rgba(0,0,0,0.12); border-radius: 12px; overflow: hidden; background: #fff; }
.tsfa.theme-minimal .tsfa-item { border-radius: 10px; border-color: rgba(0,0,0,0.08); }
.tsfa.theme-media-wall .tsfa-item { border-radius: 10px; border: 0; }

.tsfa-item.card .tsfa-thumb img { width: 100%; height: auto; display: block; }
.tsfa-body { padding: 12px 14px; display: grid; gap: 6px; }
.tsfa-title a { text-decoration: none; font-weight: 600; }
.tsfa-date { font-size: 0.9em; opacity: 0.75; }
.tsfa-excerpt { font-size: 0.95em; opacity: 0.9; }
.tsfa-meta { font-size: 0.8em; opacity: 0.7; }

.tsfa.equal .tsfa-item.card { height: 100%; display: flex; flex-direction: column; }
.tsfa.equal .tsfa-body { flex: 1; }

.tsfa-embed { position: relative; width: 100%; aspect-ratio: 16/9; background: #000; }
.tsfa-embed iframe,
.tsfa-embed > * { position: absolute; inset: 0; width: 100%; height: 100%; }

.tsfa-pagination { display:flex; gap: 12px; align-items:center; justify-content:center; padding: 16px 0; }
.tsfa-pagination a { text-decoration:none; padding: 8px 12px; border: 1px solid rgba(0,0,0,0.15); border-radius: 10px; }
.tsfa-page-info { opacity: 0.8; }
