/* ============================================================
   Component · Clients / Trust strip
   Row of client logo placeholders. Honest greyed cells with
   "[CLIENT N]" mono labels — until real permission is granted.
   ============================================================ */

.clients {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
@media (min-width: 768px)  { .clients { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1280px) { .clients { grid-template-columns: repeat(5, 1fr); } }

.client {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-lg) var(--space-md);
  min-height: 90px;
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--color-ink-muted);
  background: var(--color-white);
  transition: background var(--duration-fast) var(--ease-out),
              color      var(--duration-fast) var(--ease-out);
}
.client:hover {
  background: var(--color-surface);
  color: var(--color-ink);
}

/* Trim outer borders */
.client:nth-child(2n) { border-right: none; }
@media (min-width: 768px) {
  .client:nth-child(2n) { border-right: 1px solid var(--color-border); }
  .client:nth-child(4n) { border-right: none; }
}
@media (min-width: 1280px) {
  .client:nth-child(4n) { border-right: 1px solid var(--color-border); }
  .client:nth-child(5n) { border-right: none; }
}
/* Bottom row trim handled by parent border */

/* Staggered reveal — scoped so the client's background/color hover
   transition survives. */
.client[data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity var(--duration-slow) var(--ease-out) calc(var(--stagger-i, 0) * 70ms),
    transform var(--duration-slow) var(--ease-out) calc(var(--stagger-i, 0) * 70ms),
    background var(--duration-fast) var(--ease-out),
    color var(--duration-fast) var(--ease-out);
}
.client[data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .client[data-reveal] {
    opacity: 1;
    transform: none;
    transition:
      background var(--duration-fast) var(--ease-out),
      color var(--duration-fast) var(--ease-out);
  }
}
