/* Compact metadata components from the DIR reference design system. */
.dir-ui-badge,
.dir-ui-tag {
	display: inline-flex;
	width: fit-content;
	min-height: 1.75rem;
	align-items: center;
	font-family: var(--dir-ui-font-heading);
	font-size: var(--dir-ui-font-size-200);
	font-weight: var(--dir-ui-font-weight-bold);
	line-height: 1.2;
	text-decoration: none;
}

.dir-ui-badge {
	min-height: 1.6rem;
	padding: 0.25rem 0.625rem;
	color: var(--dir-ui-color-text-inverse);
	background: var(--dir-ui-color-brand-accessible);
	border: 1px solid var(--dir-ui-color-brand-accessible);
	border-radius: var(--dir-ui-radius-full);
}

.dir-ui-tag {
	min-height: 2rem;
	gap: var(--dir-ui-space-2);
	padding: 0.25rem 0.75rem;
	color: var(--dir-ui-color-neutral-700);
	background: var(--dir-ui-color-neutral-100);
	border: var(--dir-ui-border);
	border-radius: var(--dir-ui-radius-full);
	cursor: pointer;
	transition:
		color var(--dir-ui-transition-fast),
		background-color var(--dir-ui-transition-fast),
		border-color var(--dir-ui-transition-fast),
		transform var(--dir-ui-transition-fast);
}

.dir-ui-tag::after {
	font-size: 1em;
	line-height: 1;
	content: "→";
	transition: transform var(--dir-ui-transition-fast);
}

.dir-ui-tag:hover,
.dir-ui-tag:focus-visible {
	color: var(--dir-ui-color-brand-dark);
	background: var(--dir-ui-color-brand-soft);
	border-color: var(--dir-ui-color-brand-accessible);
	transform: translateY(-1px);
}

.dir-ui-tag:hover::after,
.dir-ui-tag:focus-visible::after {
	transform: translateX(var(--dir-ui-space-1));
}

.dir-ui-tag:focus-visible {
	outline: 3px solid var(--dir-ui-color-focus);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.dir-ui-tag,
	.dir-ui-tag::after {
		transition: none;
	}

	.dir-ui-tag:hover,
	.dir-ui-tag:focus-visible,
	.dir-ui-tag:hover::after,
	.dir-ui-tag:focus-visible::after {
		transform: none;
	}
}
