:root {
    --font-primary: "Space Grotesk", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

h1,
.type-h1,
.type-headline-lg {
    font-family: var(--font-primary);
    font-size: 51.4285714286px;
    line-height: 52px;
    font-weight: 700;
    letter-spacing: -1px;
    -webkit-font-smoothing: subpixel-antialiased;
}
h1::before,
.type-h1::before,
.type-headline-lg::before {
    content: "";
    margin-bottom: -0.1em;
    display: table;
}
h1::after,
.type-h1::after,
.type-headline-lg::after {
    content: "";
    margin-top: -0.1em;
    display: table;
}

h2,
.type-h2,
.type-headline-md {
    font-family: var(--font-primary);
    font-size: 34.2857142857px;
    line-height: 40px;
    font-weight: 700;
    letter-spacing: -0.5px;
    -webkit-font-smoothing: subpixel-antialiased;
}
h2::before,
.type-h2::before,
.type-headline-md::before {
    content: "";
    margin-bottom: -0.15em;
    display: table;
}
h2::after,
.type-h2::after,
.type-headline-md::after {
    content: "";
    margin-top: -0.1em;
    display: table;
}

h3,
.type-h3,
.type-headline-sm {
    font-family: var(--font-primary);
    font-size: 22.8571428571px;
    line-height: 28px;
    font-weight: 700;
    letter-spacing: 0;
    -webkit-font-smoothing: subpixel-antialiased;
}
h3::before,
.type-h3::before,
.type-headline-sm::before {
    content: "";
    margin-bottom: -0.15em;
    display: table;
}
h3::after,
.type-h3::after,
.type-headline-sm::after {
    content: "";
    margin-top: -0.1em;
    display: table;
}

h4,
.type-h4,
.type-title-lg {
    font-family: var(--font-primary);
    font-size: 22.8571428571px;
    line-height: 28px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    -webkit-font-smoothing: subpixel-antialiased;
}
h4::before,
.type-h4::before,
.type-title-lg::before {
    content: "";
    margin-bottom: -0.15em;
    display: table;
}
h4::after,
.type-h4::after,
.type-title-lg::after {
    content: "";
    margin-top: -0.1em;
    display: table;
}

h5,
.type-h5,
.type-title-md {
    font-family: var(--font-primary);
    font-size: 20px;
    line-height: 26px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    -webkit-font-smoothing: subpixel-antialiased;
}
h5::before,
.type-h5::before,
.type-title-md::before {
    content: "";
    margin-bottom: -0.15em;
    display: table;
}
h5::after,
.type-h5::after,
.type-title-md::after {
    content: "";
    margin-top: -0.1em;
    display: table;
}

h6,
dt,
.type-h6,
.type-title-sm {
    font-family: var(--font-primary);
    font-size: 17.1428571429px;
    line-height: 24px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    -webkit-font-smoothing: subpixel-antialiased;
}
h6::before,
dt::before,
.type-h6::before,
.type-title-sm::before {
    content: "";
    margin-bottom: -0.15em;
    display: table;
}
h6::after,
dt::after,
.type-h6::after,
.type-title-sm::after {
    content: "";
    margin-top: -0.1em;
    display: table;
}

label,
input[type="text"],
input[type="number"],
.type-label-lg {
    font-family: var(--font-primary);
    font-size: 17.1428571429px;
    line-height: 20px;
    font-weight: 500;
    letter-spacing: 0;
    -webkit-font-smoothing: subpixel-antialiased;
}
.type-label-lg::before {
    content: "";
    margin-bottom: -0.1em;
    display: table;
}
.type-label-lg::after {
    content: "";
    margin-top: -0.05em;
    display: table;
}

.type-label-md {
    font-family: var(--font-primary);
    font-size: 14.2857142857px;
    line-height: 18px;
    font-weight: 500;
    letter-spacing: 0;
    -webkit-font-smoothing: subpixel-antialiased;
}
.type-label-md::before {
    content: "";
    margin-bottom: -0.1em;
    display: table;
}
.type-label-md::after {
    content: "";
    margin-top: -0.05em;
    display: table;
}

.type-label-sm {
    font-family: var(--font-primary);
    font-size: 11.4285714286px;
    line-height: 12px;
    font-weight: 500;
    letter-spacing: 0;
    -webkit-font-smoothing: subpixel-antialiased;
}
.type-label-sm::before {
    content: "";
    margin-bottom: -0.05em;
    display: table;
}
.type-label-sm::after {
    content: "";
    margin-top: -0.025em;
    display: table;
}

p,
.type-body {
    font-family: var(--font-primary);
    font-size: 17.1428571429px;
    line-height: 28px;
    font-weight: 500;
    letter-spacing: 0;
    -webkit-font-smoothing: subpixel-antialiased;
}
p::before,
.type-body::before {
    content: "";
    margin-bottom: -0.15em;
    display: table;
}
p::after,
.type-body::after {
    content: "";
    margin-top: -0.1em;
    display: table;
}
