.tb-frontend {
  margin-left: auto;
  margin-right: auto;
}

.tb-frontend {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}

.tb-frontend[data-template="1"] {
  display: block;
}

.tb-loop {
  display: grid;
  grid-template-columns: repeat(var(--tb-cols, 3), minmax(0, 1fr));
  gap: 0;
}

.tb-frontend[data-cols="1"] { grid-template-columns: repeat(1, minmax(0,1fr)); }
.tb-frontend[data-cols="2"] { grid-template-columns: repeat(2, minmax(0,1fr)); }
.tb-frontend[data-cols="3"] { grid-template-columns: repeat(3, minmax(0,1fr)); }
.tb-frontend[data-cols="4"] { grid-template-columns: repeat(4, minmax(0,1fr)); }
.tb-frontend[data-cols="5"] { grid-template-columns: repeat(5, minmax(0,1fr)); }
.tb-frontend[data-cols="6"] { grid-template-columns: repeat(6, minmax(0,1fr)); }

.tb-card { background:#fff; box-sizing:border-box; }
.tb-media img { max-width:100%; height:auto; display:block; }
.tb-name { font-weight:700; margin-top:8px; }
.tb-role { color:#444; font-size:0.95em; }
.tb-role2 { color:#666; font-size:0.9em; }
.tb-group { color:#333; font-size:0.9em; font-weight:600; }
.tb-location, .tb-address, .tb-contact { font-size:0.9em; color:#555; }
.tb-short { margin-top:8px; }
.tb-icons img { width:28px; height:28px; object-fit:contain; margin-right:6px; }
.tb-cv a { display:inline-block; margin-top:8px; font-size:0.9em; }

@media (max-width: 900px) {
  .tb-frontend { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .tb-loop { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .tb-frontend { grid-template-columns: repeat(1, minmax(0,1fr)); }
  .tb-loop { grid-template-columns: repeat(1, minmax(0,1fr)); }
}
