/**
 * Buttons.
 *
 * Figma: button/S outlined 398:7105 (Portal Login), button/M 2048:49821
 * (primary) and 2048:49822 (outlined).
 * Hover states are not in the fetched frames — the :hover rules below are
 * provisional until the design confirms them.
 */

.button {
	display: inline-flex;
	gap: 0.25rem;
	align-items: center;
	justify-content: center;
	color: var(--color-text-dark);
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	background-color: var(--color-background-white);
	border: 1px solid transparent;
	border-radius: var(--radius-16);
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.button:hover {
	text-decoration: none;
}

/* Sizes */

.button--s {
	padding: 1rem;
	font: var(--type-subtitle-l);
}

.button--m {
	padding: 1.125rem 1.25rem;
	font: var(--type-subtitle-xl);
}

/* Variants */

/* No border: button/M primary is 59px tall (18 + 23 + 18); only outlined carries a stroke. */
.button--primary {
	color: var(--color-text-white);
	background-color: var(--color-primary);
	border-width: 0;
}

.button--primary:hover {
	background-color: var(--color-dark-purple);
}

.button--outlined {
	background-color: var(--color-background-white);
	border-color: var(--color-border-light);
}

.button--outlined:hover {
	border-color: var(--color-border-dark);
}

/* Icon slot: 16px, as icon/arrow-right in button/S */

.button__icon {
	display: inline-flex;
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
}

.button__icon svg {
	width: 100%;
	height: 100%;
}

/* Square icon-only button: 40px hit area, 28px glyph (mobile menu area 1253:24440) */

.icon-button {
	display: inline-grid;
	flex-shrink: 0;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	color: var(--color-text-dark);
	background: none;
	border: 0;
}

.icon-button svg {
	width: 1.75rem;
	height: 1.75rem;
}
