/**
 * Button system — Phase 2A.5 §11. Elegant, not flashy: no gradients, no
 * heavy shadows, no uppercase primary-button text. Every variant defines
 * Default / Hover / Active / Focus / Disabled per the interactive-states
 * contract (Phase 2A.5 addendum §21).
 */

.lbm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	font-family: var(--font-sans);
	font-size: var(--text-button);
	font-weight: 600;
	padding: var(--space-3) var(--space-5);
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	transition: background-color var(--duration-hover) var(--ease-standard),
		border-color var(--duration-hover) var(--ease-standard),
		color var(--duration-hover) var(--ease-standard),
		transform var(--duration-hover) var(--ease-standard);
	cursor: pointer;
}

/* Primary */
.lbm-btn--primary {
	background-color: var(--color-accent);
	color: var(--color-paper);
	border-color: var(--color-accent);
}

.lbm-btn--primary:hover {
	background-color: var(--color-accent-hover);
	border-color: var(--color-accent-hover);
}

.lbm-btn--primary:active {
	transform: translateY(1px);
}

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

.lbm-btn--primary:disabled,
.lbm-btn--primary[aria-disabled="true"] {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

/* Secondary */
.lbm-btn--secondary {
	background-color: transparent;
	color: var(--color-accent);
	border-color: var(--color-accent);
}

.lbm-btn--secondary:hover {
	background-color: var(--color-surface);
}

.lbm-btn--secondary:active {
	transform: translateY(1px);
}

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

.lbm-btn--secondary:disabled,
.lbm-btn--secondary[aria-disabled="true"] {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

/* Ghost */
.lbm-btn--ghost {
	background-color: transparent;
	color: var(--color-accent);
	border-color: transparent;
	padding-inline: var(--space-3);
}

.lbm-btn--ghost:hover {
	background-color: var(--color-surface);
}

.lbm-btn--ghost:active {
	transform: translateY(1px);
}

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

.lbm-btn--ghost:disabled,
.lbm-btn--ghost[aria-disabled="true"] {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

/* Text link (inline, within body copy or as a card "Read more") */
.lbm-text-link {
	color: var(--color-accent);
	font-weight: 500;
	text-decoration: none;
	background-image: linear-gradient(var(--color-accent), var(--color-accent));
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	transition: background-size var(--duration-hover) var(--ease-standard),
		color var(--duration-hover) var(--ease-standard);
}

.lbm-text-link:hover {
	background-size: 100% 1px;
	color: var(--color-accent-hover);
}

.lbm-text-link:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
	border-radius: var(--radius-sm);
}
