/*
 * WKMac Components
 * Shared button and card primitives used across Home, Apps, Tools and Blog.
 * Card variants (--app, --tool, --post) only change internal content
 * arrangement, not the base spacing/border/radius rhythm.
 */

.wk-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--wk-space-1);
	padding: var(--wk-space-1) var(--wk-space-3);
	border-radius: var(--wk-radius-sm);
	font-weight: 600;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

/*
 * !important here is intentional: this class is meant to be droppable onto
 * third-party blocks (Spectra/Kadence buttons) via "Additional CSS Class",
 * whose own color systems use higher-specificity selectors and would
 * otherwise win over a plain single-class rule.
 */
.wk-btn--primary {
	background-color: var(--wk-color-accent) !important;
	color: var(--wk-color-accent-contrast) !important;
}

.wk-btn--primary:hover,
.wk-btn--primary:focus-visible {
	background-color: var(--wk-color-accent-hover) !important;
	color: var(--wk-color-accent-contrast) !important;
}

.wk-btn--secondary {
	background-color: transparent !important;
	border-color: var(--wk-color-border) !important;
	color: var(--wk-color-text) !important;
}

.wk-btn--secondary:hover,
.wk-btn--secondary:focus-visible {
	border-color: var(--wk-color-accent) !important;
	color: var(--wk-color-accent) !important;
}

.wk-btn:focus-visible {
	outline: 2px solid var(--wk-color-accent);
	outline-offset: 2px;
}

.wk-card {
	display: flex;
	flex-direction: column;
	gap: var(--wk-space-2);
	padding: var(--wk-space-3);
	border: 1px solid var(--wk-color-border);
	border-radius: var(--wk-radius-md);
	background-color: var(--wk-color-surface);
}

.wk-card__title {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--wk-color-text);
}

.wk-card__desc {
	font-size: 0.9375rem;
	color: var(--wk-color-text-secondary);
	line-height: var(--wk-line-height-body);
}

.wk-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wk-space-1);
	font-size: 0.8125rem;
	color: var(--wk-color-text-secondary);
}

/* Cards may carry more than one action (e.g. Tools: launch + detail). */
.wk-card__cta {
	margin-top: auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wk-space-1);
}

/* Post cards read as editorial list items rather than product tiles. */
.wk-card--post {
	border: none;
	border-bottom: 1px solid var(--wk-color-border);
	border-radius: 0;
	padding: var(--wk-space-3) 0;
}

.wk-app-icon img {
	width: 96px;
	height: 96px;
	border-radius: var(--wk-radius-md);
}
