/* =========================
	 FONT FAMILIES
========================= */

$font-family-base: "IBM Plex Mono", monospace;
$font-family-code: $font-family-base;

/* =========================
	 FONT WEIGHTS
========================= */

$font-weight-regular: 400;
$font-weight-medium: 500;
$font-weight-semibold: 600;
$font-weight-bold: 700;

/* =========================
	 FONT SIZES (scale)
========================= */

$font-size-xs: 12px;
$font-size-sm: 13px;
$font-size-md: 14px;
$font-size-base: 16px;
$font-size-lg: 17px;
$font-size-xl: 20px;

$font-size-h1: 36px;
$font-size-h2: 28px;
$font-size-h3: 24px;
$font-size-h4: 20px;
$font-size-h5: 18px;
$font-size-h6: 16px;

/* =========================
	 LINE HEIGHTS
========================= */

$line-height-base: 1;
$line-height-tight: 1.15;
$line-height-snug: 1.25;
$line-height-normal: 1.4;
$line-height-relaxed: 1.6;

/* =========================
	 LETTER SPACING
========================= */

$letter-spacing-tight: -0.01em;
$letter-spacing-normal: 0;
$letter-spacing-wide: 0.04em;

/* =========================
	 BASE TYPOGRAPHY
========================= */

html {
	font-size: 100%;
}

body {
	font-family: $font-family-base;
	font-size: $font-size-base;
	font-weight: $font-weight-regular;
	line-height: $line-height-relaxed;
	letter-spacing: $letter-spacing-normal;
}

/* =========================
	 HEADINGS
========================= */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: $font-family-base;
	font-weight: $font-weight-semibold;
	line-height: $line-height-snug;
	margin: 0;

	&.contrast {
		background: $color-text-light;
		color: $color-black;
	}
}

h1 {
	font-size: $font-size-h1;
	letter-spacing: $letter-spacing-tight;
}

h2 {
	font-size: $font-size-h2;
}

h3 {
	font-size: $font-size-h3;
}

h4 {
	font-size: $font-size-h4;
}

h5 {
	font-size: $font-size-h5;
}

h6 {
	font-size: $font-size-h6;
	font-weight: $font-weight-medium;
}

/* =========================
	 TEXT VARIANTS
========================= */

.text,
p {
	font-size: $font-size-base;
	line-height: $line-height-relaxed;
}

.text-sm {
	font-size: $font-size-sm;
	line-height: $line-height-normal;
}

.text-lg {
	font-size: $font-size-lg;
	line-height: $line-height-relaxed;
}

.text-muted {
	font-size: $font-size-sm;
	color: $color-text-dark;
}

.text-strong,
strong {
	font-weight: $font-weight-semibold;
}

.text-bold {
	font-weight: $font-weight-bold;
}

.text-italic,
em {
	font-style: italic;
}

/* =========================
	 CODE / MONO
========================= */

code,
pre,
.code {
	font-family: $font-family-code;
	font-size: $font-size-base;
	line-height: $line-height-normal;
	background-color: $color-dark;
}

pre {
	font-size: $font-size-base;
	line-height: $line-height-relaxed;
	white-space: pre-wrap;
}

pre code,
.code {
	tab-size: 2;
	-moz-tab-size: 2;
}

/* =========================
	 LINKS
========================= */

a {
	font-weight: $font-weight-medium;
	text-decoration: none;
}

.link {
	font-size: inherit;
	font-weight: $font-weight-medium;
}

/* =========================
	 LABELS / META
========================= */

.label {
	font-size: $font-size-sm;
	font-weight: $font-weight-medium;
	line-height: $line-height-normal;
}

.hint,
.meta {
	font-size: $font-size-xs;
	line-height: $line-height-normal;
}

/* =========================
	 TABLE TEXT
========================= */

.table {
	font-size: $font-size-sm;
	line-height: $line-height-normal;

	th {
		font-weight: $font-weight-semibold;
	}

	td {
		font-weight: $font-weight-regular;
	}
}

/* =========================
	 LISTS
========================= */

.list {
	font-size: $font-size-base;
	line-height: $line-height-relaxed;
}

.list-item {
	font-size: inherit;
}

/* =========================
	 MODALS
========================= */

.modal-title {
	font-size: $font-size-h4;
	font-weight: $font-weight-semibold;
}

.modal-body {
	font-size: $font-size-base;
}

/* =========================
	 TOASTS
========================= */

.toast-title {
	font-size: $font-size-md;
	font-weight: $font-weight-semibold;
}

.toast-text {
	font-size: $font-size-sm;
	line-height: $line-height-normal;
}


