/*
 * Structural card styles only. Colors, type and spacing come from theme tokens
 * (--txc-*), with safe fallbacks so the plugin renders without the theme.
 */
.txc-grid {
	display: grid;
	gap: var(--txc-gap, 1.5rem);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
}
.txc-grid[aria-busy="true"] { opacity: .5; transition: opacity .2s; }

.txc-card {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	background: var(--txc-surface, #fff);
	border: 1px solid var(--txc-border, #e3e5e8);
	border-radius: var(--txc-radius, 12px);
	overflow: hidden;
	color: inherit;
}
.txc-card__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.txc-card__body { padding: 1.25rem; display: grid; gap: .5rem; }
.txc-card__meta { display: flex; flex-wrap: wrap; gap: .25rem .75rem; margin: 0; font-size: .8125rem; color: var(--txc-muted, #5b6470); }
.txc-card__title { margin: 0; font-size: 1.125rem; line-height: 1.3; }
.txc-card__title a { color: inherit; text-decoration: none; }
.txc-card__title a::after { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.txc-card--case, .txc-card--industry { position: relative; }
.txc-card__title a:focus-visible { outline: none; }
.txc-card:has(.txc-card__title a:focus-visible) { outline: 3px solid var(--txc-focus, #1a5fff); outline-offset: 2px; }
.txc-card__metric { margin: 0; font-weight: 600; color: var(--txc-accent, #0b4fd8); }
.txc-card__summary { margin: 0; color: var(--txc-muted, #5b6470); }

.txc-card--client {
	align-items: center; justify-content: center;
	padding: 1.25rem; min-height: 6rem; text-decoration: none;
}
.txc-card__logo { max-width: 100%; max-height: 3.5rem; width: auto; height: auto; object-fit: contain; }
.txc-card--industry { padding: 1.5rem; gap: .75rem; }
.txc-card__icon { width: 2.5rem; height: 2.5rem; }
.txc-card__logos { display: flex; gap: .75rem; align-items: center; margin-top: auto; }
.txc-card__logos img { max-height: 1.75rem; width: auto; filter: grayscale(1); opacity: .75; }

.txc-card--testimonial { padding: 1.5rem; margin: 0; gap: 1rem; }
.txc-card--testimonial blockquote { margin: 0; }
.txc-card--testimonial figcaption { display: flex; gap: .75rem; align-items: center; font-size: .875rem; }
.txc-card--testimonial figcaption > span { display: grid; }
.txc-avatar { border-radius: 50%; width: 40px; height: 40px; }
.txc-stars { margin: 0; color: var(--txc-star, #b8860b); letter-spacing: .1em; }

.txc-pagination { display: grid; justify-items: center; gap: 1rem; margin-top: 2rem; }
.txc-pagination__pages { display: flex; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.txc-pagination__pages a { display: inline-block; min-width: 2.75rem; min-height: 2.75rem; line-height: 2.75rem; text-align: center; }
.txc-load-more ~ .txc-pagination__pages { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.txc-pagination:not(:has(.txc-load-more)) .txc-pagination__pages { position: static; width: auto; height: auto; clip: auto; }

.txc-filters { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; margin-bottom: 1.5rem; }
.txc-filter { display: grid; gap: .25rem; font-size: .875rem; }
.txc-filter select { min-height: 2.75rem; padding: 0 .75rem; }
.txc-button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: 0 1.25rem;
	border-radius: var(--txc-radius-sm, 8px); background: var(--txc-accent, #0b4fd8); color: #fff; text-decoration: none; font-weight: 600;
}
.txc-button--ghost { background: transparent; color: inherit; border: 1px solid currentColor; }
.txc-empty { color: var(--txc-muted, #5b6470); }

/* Client directory */
.txc-client-directory__list { list-style: none; margin: 1.5rem 0 4rem; padding: 0; display: grid; gap: 1rem; row-gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.txc-client-directory__list > li { margin: 0; }
.txc-client-tile a { box-sizing: border-box; display: grid; gap: .5rem; align-content: start; height: 100%; padding: 1.25rem; border: 1px solid var(--txc-border, #e3e5e8); border-radius: var(--txc-radius, 12px); background: var(--txc-surface, #fff); color: inherit; text-decoration: none; transition: border-color .2s, transform .2s; }
.txc-client-tile a:hover { border-color: var(--txc-accent, #0b4fd8); transform: translateY(-2px); }
.txc-client-tile__logo { max-height: 2.75rem; width: auto; object-fit: contain; justify-self: start; }
.txc-client-tile__initial { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--txc-surface-alt, #f4f6f8); font-weight: 700; color: var(--txc-accent, #0b4fd8); }
.txc-client-tile__name { font-weight: 650; }
.txc-client-tile__meta { font-size: .8125rem; color: var(--txc-muted, #5b6470); }
.txc-chips a[aria-current="page"] { background: var(--txc-ink, #0d1b2a); border-color: var(--txc-ink, #0d1b2a); color: var(--txc-surface, #fff); }
@media (prefers-reduced-motion: reduce) { .txc-client-directory__list > li { margin: 0; }
.txc-client-tile a { transition: none; } .txc-client-tile a:hover { transform: none; } }
