.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: calc(var(--item-gap) * 0.38) calc(var(--item-gap) * 0.75);
	border-radius: var(--radius-sm);
	text-decoration: none;
	font-weight: 700;
	font-size: var(--text-sm);
	text-align: center;
	white-space: nowrap;
	transition: all var(--trans-fast);
	cursor: pointer;
	border-width: 2px;
	border-style: solid;
	gap: calc(var(--item-gap) * 0.38);

	&:focus-visible {
		outline: var(--focus-ring);
		outline-offset: 2px;
	}
}

.btn-dark {
	background-color: var(--btn-dark-bg);
	color: var(--btn-dark-color);
	border-color: var(--btn-dark-border);

	&:hover {
		background-color: var(--btn-dark-hover-bg);
		border-color: var(--btn-dark-hover-border);
		color: var(--btn-dark-hover-color);
	}
}

.btn-dark-outline {
	background-color: var(--btn-dark-outline-bg);
	color: var(--btn-dark-outline-color);
	border-color: var(--btn-dark-outline-border);

	&:hover {
		background-color: var(--btn-dark-outline-hover-bg);
		color: var(--btn-dark-outline-hover-color);
		border-color: var(--btn-dark-outline-hover-border);
	}
}

.btn-medium {
	background-color: var(--btn-medium-bg);
	color: var(--btn-medium-color);
	border-color: var(--btn-medium-border);

	&:hover {
		background-color: var(--btn-medium-hover-bg);
		border-color: var(--btn-medium-hover-border);
		color: var(--btn-medium-hover-color);
	}
}

.btn-medium-outline {
	background-color: var(--btn-medium-outline-bg);
	color: var(--btn-medium-outline-color);
	border-color: var(--btn-medium-outline-border);

	&:hover {
		background-color: var(--btn-medium-outline-hover-bg);
		color: var(--btn-medium-outline-hover-color);
		border-color: var(--btn-medium-outline-hover-border);
	}
}

.btn-white {
	background-color: var(--btn-white-bg);
	color: var(--btn-white-color);
	border-color: var(--btn-white-border);

	&:hover {
		background-color: var(--btn-white-hover-bg);
		border-color: var(--btn-white-hover-border);
		color: var(--btn-white-hover-color);
	}
}

.btn-white-outline {
	background-color: var(--btn-white-outline-bg);
	color: var(--btn-white-outline-color);
	border-color: var(--btn-white-outline-border);

	&:hover {
		background-color: var(--btn-white-outline-hover-bg);
		color: var(--btn-white-outline-hover-color);
		border-color: var(--btn-white-outline-hover-border);
	}
}

.btn-link {
	background-color: transparent;
	border-color: transparent;
	color: currentColor;
	&:hover {
		background-color: var(--btn-dark-bg);
		border-color: var(--btn-dark-bg);
		color: var(--btn-dark-color);
	}
}

.btn-full {
	display: flex;
	width: 100%;
	padding: calc(var(--item-gap) * 0.75);
}

.btn-icon,
.btn-icon-end {
	> i:last-child {
		font-size: var(--text-sm);
		line-height: 1;
	}
}

.btn-icon {
	> i:last-child {
		margin-left: calc(var(--item-gap) * 0.17);
	}
}

.btn-icon-end {
	justify-content: space-between;
	text-align: left;

	> i:last-child {
		margin-left: calc(var(--item-gap) * 0.75);
	}
}

.mobile-toggle {
	display: none;
	cursor: pointer;
	font-size: var(--text-xl);
	padding: calc(var(--item-gap) * 0.19);
	border-radius: var(--radius-sm);
	width: calc(var(--item-gap) * 2.11);
	height: calc(var(--item-gap) * 2.11);
	text-align: center;
	line-height: calc(var(--item-gap) * 1.73);
	background: transparent;
	border: 2px solid var(--dark);
	color: var(--dark);
	transition: background-color var(--trans-fast);

	&:hover {
		background-color: var(--light-dim) !important;
	}

	&:focus-visible {
		outline: var(--focus-ring);
		outline-offset: 2px;
	}
}
