/* ==========================================================================
   Section: Project archive grid — Figma 180:2687
   650px centred headline, a 52px ruled filter bar, a 4-across grid of
   292x397 cards 23px apart, and round 50px pagination.
   ========================================================================== */

.trustav-parchive__title {
  width: min(650px, 100%); /* Figma 180:2578 */
  margin: 0 auto;
  font-family: var(--ff-heading);
  font-size: var(--fs-h2);
  font-weight: var(--fw-regular);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-display);
  text-align: center;
  color: var(--c-black);
}

/* --- Filter — Figma 180:2636 --------------------------------------------- */
.trustav-parchive__filter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  margin-block-start: 60px; /* Figma 180:2686 */
  padding-block: 13px 15px;
  border-block: var(--border);
}

.trustav-parchive__filter-label {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px; /* Figma 180:2610 */
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  text-transform: uppercase;
  color: var(--c-neutral-2);
}

.trustav-parchive__filter-icon svg {
  display: block;
  width: 14px; /* Figma 180:2591 */
  height: 14px;
}

.trustav-parchive__filter-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-xs) 40px; /* Figma 180:2620 */
  margin: 0;
  padding: 0;
  list-style: none;
}

.trustav-parchive__filter-link {
  display: inline-block; /* lets ::first-letter apply */
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  white-space: nowrap;
  color: var(--c-neutral-1);
  transition: color var(--dur) var(--ease);
}

/* The client's tags are stored lower-case; Figma 180:2619 capitalises them. */
.trustav-parchive__filter-link::first-letter {
  text-transform: uppercase;
}

.trustav-parchive__filter-link:hover,
.trustav-parchive__filter-link:focus-visible {
  color: var(--c-accent);
}

.trustav-parchive__filter-link.is-current {
  font-weight: var(--fw-semibold);
  color: var(--c-accent);
}

/* --- Grid — Figma 180:2649 ----------------------------------------------- */
.trustav-parchive__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 23px; /* Figma 180:2649 */
  margin: 60px 0 0;
  padding: 0;
  list-style: none;
}

.trustav-parchive__link {
  display: flex;
  flex-direction: column;
  gap: 16px; /* Figma 180:2637 */
  color: inherit;
}

.trustav-parchive__media {
  display: block;
  overflow: hidden;
  aspect-ratio: 292 / 397; /* Figma 180:2638 */
  background-color: var(--c-neutral-3);
}

.trustav-parchive__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dur-slow) var(--ease-out);
}

.trustav-parchive__link:hover .trustav-parchive__media img,
.trustav-parchive__link:focus-visible .trustav-parchive__media img {
  transform: scale(1.03);
}

@media (prefers-reduced-motion: reduce) {
  .trustav-parchive__media img {
    transition: none;
  }
}

.trustav-parchive__name {
  overflow: hidden;
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--c-black);
}

.trustav-parchive__empty {
  margin: 60px 0 0;
  text-align: center;
  color: var(--c-text-muted);
}

/* --- Pagination — Figma 180:2693 ----------------------------------------- */
.trustav-parchive__pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px; /* Figma 180:2693 */
  margin-block-start: 60px;
}

.trustav-parchive__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px; /* Figma 180:2698 */
  height: 50px;
  border-radius: var(--radius-pill);
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  color: var(--c-primary);
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.trustav-parchive__pagination a.page-numbers:hover,
.trustav-parchive__pagination a.page-numbers:focus-visible {
  background-color: var(--c-neutral-3); /* Figma 180:2700 */
}

.trustav-parchive__pagination .page-numbers.current {
  background-color: var(--c-accent);
  color: var(--c-neutral-4); /* Figma 180:2699 */
}

.trustav-parchive__pagination .page-numbers.dots {
  width: auto;
}

.trustav-parchive__chevrons svg {
  display: block;
  width: 9px; /* Figma 180:2695 */
  height: 9px;
}

.trustav-parchive__chevrons--prev svg {
  transform: rotate(180deg);
}

/* --- Responsive ---------------------------------------------------------- */
@media (max-width: 1024px) {
  .trustav-parchive__filter {
    flex-direction: column;
    align-items: flex-start;
  }

  .trustav-parchive__filter-list {
    justify-content: flex-start;
    gap: var(--space-xs) var(--space-lg);
  }

  .trustav-parchive__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .trustav-parchive__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-xl) var(--space-md);
    margin-block-start: var(--space-2xl);
  }

  .trustav-parchive__filter,
  .trustav-parchive__pagination {
    margin-block-start: var(--space-2xl);
  }
}
