@charset "utf-8";
/* CSS Document */
/* ==========================================================================
   BUTTONS
   ========================================================================== */

/*
|--------------------------------------------------------------------------
| Base Button
|--------------------------------------------------------------------------
*/

.tc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .625rem;

	padding: .875rem 1.75rem;

	font-family: var(--tc-font-primary);
	font-size: var(--tc-text-base);
	font-weight: var(--tc-fw-semibold);
	line-height: 1;

	border: 2px solid transparent;
	border-radius: var(--tc-radius);

	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;

	transition:
		background-color var(--tc-transition),
		border-color var(--tc-transition),
		color var(--tc-transition),
		box-shadow var(--tc-transition),
		transform var(--tc-transition);
}

/*
|--------------------------------------------------------------------------
| Hover
|--------------------------------------------------------------------------
*/

.tc-btn:hover {
	transform: translateY(-2px);
	box-shadow: var(--tc-shadow);
}

.tc-btn:active {
	transform: translateY(0);
}

.tc-btn:focus-visible {
	outline: 2px solid var(--tc-primary);
	outline-offset: 3px;
}

/*
|--------------------------------------------------------------------------
| Primary
|--------------------------------------------------------------------------
*/

.tc-btn--primary {
	background: linear-gradient(
		135deg,
		var(--tc-primary) 0%,
		var(--tc-primary-dark) 100%
	);

	border-color: transparent;
	color: var(--tc-white);
}

.tc-btn--primary:hover {
	background: var(--tc-primary-dark);
	border-color: var(--tc-primary-dark);
	color: var(--tc-white);
}

/*
|--------------------------------------------------------------------------
| Secondary
|--------------------------------------------------------------------------
*/

.tc-btn--secondary {
	background: var(--tc-secondary);
	border-color: var(--tc-secondary);
	color: var(--tc-white);
}

.tc-btn--secondary:hover {
	filter: brightness(1.08);
	color: var(--tc-white);
}

/*
|--------------------------------------------------------------------------
| Outline
|--------------------------------------------------------------------------
*/

.tc-btn--outline {
	background: transparent;
	border-color: var(--tc-primary);
	color: var(--tc-primary);
}

.tc-btn--outline:hover {
	background: var(--tc-primary);
	color: var(--tc-white);
}

/*
|--------------------------------------------------------------------------
| Ghost
|--------------------------------------------------------------------------
*/

.tc-btn--ghost {
	background: transparent;
	color: var(--tc-primary);
	border-color: transparent;
}

.tc-btn--ghost:hover {
	background: var(--tc-gray-100);
}

/*
|--------------------------------------------------------------------------
| White
|--------------------------------------------------------------------------
*/

.tc-btn--white {
	background: var(--tc-white);
	color: var(--tc-primary);
	border-color: var(--tc-white);
}

.tc-btn--white:hover {
	background: var(--tc-gray-100);
	border-color: var(--tc-gray-100);
}

/*
|--------------------------------------------------------------------------
| Sizes
|--------------------------------------------------------------------------
*/

.tc-btn--sm {
	padding: .65rem 1.15rem;
	font-size: var(--tc-text-sm);
}

.tc-btn--lg {
	padding: 1.1rem 2.25rem;
	font-size: var(--tc-text-lg);
}

.tc-btn--block {
	display: flex;
	width: 100%;
}

/*
|--------------------------------------------------------------------------
| Rounded
|--------------------------------------------------------------------------
*/

.tc-btn--pill {
	border-radius: var(--tc-radius-full);
}

/*
|--------------------------------------------------------------------------
| Icon Buttons
|--------------------------------------------------------------------------
*/

.tc-btn svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	fill: currentColor;
}

.tc-btn--icon {
	padding-inline: 1.15rem;
}

/*
|--------------------------------------------------------------------------
| Disabled
|--------------------------------------------------------------------------
*/

.tc-btn:disabled,
.tc-btn.is-disabled {
	opacity: .6;
	cursor: not-allowed;
	pointer-events: none;
	transform: none;
	box-shadow: none;
}

/*
|--------------------------------------------------------------------------
| Loading
|--------------------------------------------------------------------------
*/

.tc-btn.is-loading {
	position: relative;
	pointer-events: none;
	color: transparent;
}

.tc-btn.is-loading::after {
	content: "";

	position: absolute;

	width: 18px;
	height: 18px;

	border: 2px solid rgba(255,255,255,.35);
	border-top-color: currentColor;
	border-radius: 50%;

	animation: tc-btn-spin .7s linear infinite;
}

/*
|--------------------------------------------------------------------------
| Animation
|--------------------------------------------------------------------------
*/

@keyframes tc-btn-spin {

	to {
		transform: rotate(360deg);
	}

}
