/*
 * Main — typography, links, buttons.
 * Built on the tokens defined in basics.css.
 */

/* Typography
 * ----------------------------------------------------------------- */

body {
	font-family: var(--font-family-base);
	font-size: var(--font-size-base);
	font-weight: var(--font-weight-regular);
	line-height: var(--line-height-base);
	color: var(--color-text);
	background-color: var(--color-bg);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-family-base);
	font-weight: var(--font-weight-extrabold);
	line-height: 1.2;
	color: var(--color-primary-dark);
	margin: 0 0 var(--space-3);
}

h1 {
	font-size: var(--font-size-3xl);
}

h2 {
	font-size: var(--font-size-2xl);
}

h3 {
	font-size: var(--font-size-xl);
}

h4 {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-bold);
}

h5,
h6 {
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-bold);
}

p {
	margin: 0 0 var(--space-3);
}

small {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
}

strong,
b {
	font-weight: var(--font-weight-bold);
}

/* Links
 * ----------------------------------------------------------------- */

a {
	color: var(--color-link);
	text-decoration: underline;
	text-underline-offset: 0.15em;
	text-decoration-thickness: 1px;
	transition: color var(--transition-fast);
}

a:hover {
	color: var(--color-link-hover);
	text-decoration-thickness: 2px;
}

a:active {
	color: var(--color-primary-dark);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.btn:focus-visible {
	outline: 3px solid var(--color-focus-ring);
	outline-offset: 2px;
}

/* Buttons
 * ----------------------------------------------------------------- */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-4);
	border: 2px solid transparent;
	border-radius: var(--radius-md);
	font-family: var(--font-family-base);
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-semibold);
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

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

.btn[disabled],
.btn.is-disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.btn--primary {
	background-color: var(--color-primary);
	color: #fff;
}

.btn--primary:hover {
	background-color: var(--color-primary-dark);
	color: #fff;
}

.btn--secondary {
	background-color: var(--color-secondary);
	color: #fff;
}

.btn--secondary:hover {
	background-color: color-mix(in srgb, var(--color-secondary) 85%, black);
	color: #fff;
}

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

.btn--outline:hover {
	background-color: var(--color-primary);
	color: #fff;
}
