:root {
    --font-family-base: 'Plus Jakarta Sans', Arial, sans-serif;
    --font-size-h1: clamp(2rem, 1.3rem + 2.3vw, 3.5rem);
    --font-size-h2: clamp(1.5rem, 1.25rem + 1vw, 2rem);
    --font-size-h3: clamp(1.125rem, 1rem + 0.35vw, 1.375rem);
    --font-size-h4: 1.125rem;
    --font-size-h5: 1.0625rem;
    --font-size-h6: 1rem;
    --font-size-body: 1rem;
    --line-height-heading: 1.2;
    --line-height-body: 1.65;
}

*,
*::before,
*::after {
    font-family: var(--font-family-base) !important;
}

body {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    font-weight: 700 !important;
    line-height: var(--line-height-heading) !important;
    letter-spacing: normal !important;
    text-wrap: balance;
    overflow-wrap: break-word;
}

h1 { font-size: var(--font-size-h1) !important; }
h2 { font-size: var(--font-size-h2) !important; }
h3 { font-size: var(--font-size-h3) !important; }
h4 { font-size: var(--font-size-h4) !important; }
h5 { font-size: var(--font-size-h5) !important; }
h6 { font-size: var(--font-size-h6) !important; }

p {
    font-size: var(--font-size-body) !important;
    line-height: var(--line-height-body) !important;
    font-weight: 400;
    overflow-wrap: break-word;
}

a {
    overflow-wrap: anywhere;
}

button,
input,
select,
textarea {
    font-family: var(--font-family-base) !important;
}

@media (prefers-reduced-motion: reduce) {
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        text-wrap: initial;
    }
}
