@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;500;700;800;900&family=Montserrat:wght@400;500;600;700&display=swap');

/* Global SaaS Typography System */
:root {
    --app-font-heading: 'Lato', sans-serif;
    --app-font-body: 'Montserrat', sans-serif;
    --app-font-family: var(--app-font-body);
    --font-heading: var(--app-font-heading);
    --font-body: var(--app-font-body);

    --font-size-h1: clamp(1.75rem, 2.1vw, 2.2rem);
    --font-size-h2: clamp(1.4rem, 1.6vw, 1.7rem);
    --font-size-h3: clamp(1.15rem, 1.2vw, 1.3rem);

    --font-size-body: 0.875rem;
    --font-size-small: 0.8125rem;

    --line-height-body: 1.7;
    --letter-spacing-heading: 0.015em;
}

html,
body {
    font-family: var(--font-body) !important;
    font-size: var(--font-size-body) !important;
    font-weight: 400;
    line-height: var(--line-height-body);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body *:not(i):not(.fa):not(.fab):not(.far):not(.fal):not(.fas):not(.bi):not([class*="fa-"]) {
    font-family: var(--font-body) !important;
}

h1, h2, h3, h4, h5, h6,
button,
.btn,
label,
.page-title,
.section-title,
.card-title,
.sidebar-text,
.company-title,
.form-header {
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: var(--letter-spacing-heading);
}

h1,
.h1,
.page-title {
    font-size: var(--font-size-h1) !important;
    line-height: 1.25;
}

h2,
.h2,
.section-title {
    font-size: var(--font-size-h2) !important;
    line-height: 1.3;
}

h3,
.h3,
.card-title {
    font-size: var(--font-size-h3) !important;
    line-height: 1.35;
}

p,
li,
td,
th,
input,
select,
textarea,
small,
.text-sm,
.description,
.desc,
.section-description,
.card-description {
    font-family: var(--font-body) !important;
}

p,
li,
td,
th,
input,
select,
textarea {
    font-size: var(--font-size-body) !important;
    line-height: var(--line-height-body);
    font-weight: 400;
}

small,
.text-sm,
.description,
.desc,
.section-description,
.card-description {
    font-size: var(--font-size-small) !important;
    line-height: 1.58;
    font-weight: 500;
}
