.bpt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--bpt-space-xs);
	min-height: 2.75rem;
	padding: var(--button-padding-y, var(--bpt-space-sm)) var(--button-padding-x, var(--bpt-space-lg));
	border: var(--bpt-border-medium) solid transparent;
	border-radius: var(--bpt-btn-radius, var(--bpt-radius-sm));
	font-family: var(--bpt-font-body);
	font-size: var(--button-font-size, var(--bpt-text-sm));
	font-weight: var(--bpt-weight-semibold);
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transition:
		background-color var(--bpt-duration-fast) var(--bpt-ease-standard),
		border-color var(--bpt-duration-fast) var(--bpt-ease-standard),
		color var(--bpt-duration-fast) var(--bpt-ease-standard),
		transform var(--bpt-duration-fast) var(--bpt-ease-standard),
		box-shadow var(--bpt-duration-fast) var(--bpt-ease-standard);
}

.bpt-btn--primary {
	background: var(--section-button-primary-bg);
	color: var(--section-button-primary-fg);
	border-color: var(--section-button-primary-border);
	border-radius: var(--section-button-primary-radius, var(--bpt-btn-radius, var(--bpt-radius-sm)));
	font-weight: var(--section-button-primary-weight, var(--bpt-weight-semibold));
	text-transform: var(--section-button-primary-transform, none);
	letter-spacing: var(--section-button-primary-tracking, normal);
}

.bpt-btn--primary:hover,
.bpt-btn--primary:focus-visible {
	background: var(--section-button-primary-hover-bg);
	color: var(--section-button-primary-hover-fg);
	border-color: var(--section-button-primary-hover-border);
}

.bpt-btn--secondary {
	background: var(--section-button-secondary-bg);
	color: var(--section-button-secondary-fg);
	border-color: var(--section-button-secondary-border);
	border-radius: var(--section-button-secondary-radius, var(--bpt-btn-radius, var(--bpt-radius-sm)));
	font-weight: var(--section-button-secondary-weight, var(--bpt-weight-semibold));
	text-transform: var(--section-button-secondary-transform, none);
	letter-spacing: var(--section-button-secondary-tracking, normal);
}

.bpt-btn--secondary:hover,
.bpt-btn--secondary:focus-visible {
	background: var(--section-button-secondary-hover-bg);
	color: var(--section-button-secondary-hover-fg);
	border-color: var(--section-button-secondary-hover-border);
}

.bpt-btn--tertiary {
	background: var(--section-button-tertiary-bg);
	color: var(--section-button-tertiary-fg);
	border-color: var(--section-button-tertiary-border);
	border-radius: var(--section-button-tertiary-radius, var(--bpt-btn-radius, var(--bpt-radius-sm)));
	font-weight: var(--section-button-tertiary-weight, var(--bpt-weight-semibold));
	text-transform: var(--section-button-tertiary-transform, none);
	letter-spacing: var(--section-button-tertiary-tracking, normal);
}

.bpt-btn--tertiary:hover,
.bpt-btn--tertiary:focus-visible {
	background: var(--section-button-tertiary-hover-bg);
	color: var(--section-button-tertiary-hover-fg);
	border-color: var(--section-button-tertiary-hover-border);
}

@media (prefers-reduced-motion: no-preference) {
	.bpt-btn-hover-lift .bpt-btn:hover,
	.bpt-btn-hover-lift .bpt-btn:focus-visible,
	.bpt-btn-hover-lift-shadow .bpt-btn:hover,
	.bpt-btn-hover-lift-shadow .bpt-btn:focus-visible {
		transform: translateY(-2px);
	}

	.bpt-btn-hover-lift-shadow .bpt-btn:hover,
	.bpt-btn-hover-lift-shadow .bpt-btn:focus-visible {
		box-shadow: var(--bpt-shadow-md);
	}
}

.bpt-btn__icon {
	display: inline-flex;
	transition: transform var(--bpt-duration-fast) var(--bpt-ease-standard);
}

@media (prefers-reduced-motion: no-preference) {
	.bpt-btn:hover .bpt-btn__icon,
	.bpt-btn:focus-visible .bpt-btn__icon {
		transform: translateX(0.2rem);
	}
}

