/* MetaBIMLab global typography refinement
   Applies across the public website and private support dashboard. */

:root {
    --mbl-font-body: 15.5px;
    --mbl-weight-regular: 400;
    --mbl-weight-medium: 500;
    --mbl-weight-semibold: 600;
    --mbl-weight-heading: 650;
    --mbl-weight-label: 700;
}

body {
    font-size: var(--mbl-font-body);
    font-weight: var(--mbl-weight-regular);
    line-height: 1.62;
    letter-spacing: -0.006em;
}

p,
li,
input,
textarea,
select,
button {
    font-weight: var(--mbl-weight-regular);
}

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

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: var(--mbl-weight-heading);
    text-wrap: balance;
}

h1 {
    max-width: 860px;
    margin-bottom: 22px;
    font-size: clamp(42px, 5.2vw, 64px);
    line-height: 1.02;
    letter-spacing: -0.045em;
}

h2 {
    margin-bottom: 16px;
    font-size: clamp(30px, 3.5vw, 42px);
    line-height: 1.1;
    letter-spacing: -0.038em;
}

h3 {
    font-size: 19px;
    font-weight: var(--mbl-weight-heading);
    line-height: 1.25;
    letter-spacing: -0.022em;
}

h4 {
    font-size: 17px;
    font-weight: var(--mbl-weight-heading);
    line-height: 1.3;
}

.eyebrow {
    font-size: 11px;
    font-weight: var(--mbl-weight-label);
    letter-spacing: .11em;
}

.site-nav__list a {
    font-size: 14px;
    font-weight: var(--mbl-weight-semibold);
}

.header-cta,
.button,
.text-link {
    font-weight: var(--mbl-weight-semibold);
}

.hero__lead,
.content-hero p,
.section-heading p {
    font-weight: var(--mbl-weight-regular);
}

.hero__lead {
    font-size: 18px;
}

.hero__meta,
.status,
.badge,
[class*="__label"] {
    font-weight: var(--mbl-weight-semibold);
}

/* Support dashboard */
.mbl-support-dashboard__topbar h1 {
    font-size: clamp(34px, 3.5vw, 44px);
    font-weight: var(--mbl-weight-heading);
    letter-spacing: -0.04em;
}

.mbl-support-dashboard__topbar p {
    font-size: 14px;
}

.mbl-dashboard-kpi__label,
.mbl-dashboard-table th,
.mbl-dashboard-meta span {
    font-weight: var(--mbl-weight-label);
}

.mbl-dashboard-kpi strong {
    font-size: 28px;
    font-weight: var(--mbl-weight-heading);
}

.mbl-dashboard-panel__header h2 {
    font-size: 19px;
    font-weight: var(--mbl-weight-heading);
    letter-spacing: -0.025em;
}

.mbl-ticket-link {
    font-weight: var(--mbl-weight-heading);
}

.mbl-ticket-link small {
    font-weight: var(--mbl-weight-regular);
}

.mbl-dashboard-badge,
.mbl-dashboard-button {
    font-weight: var(--mbl-weight-semibold);
}

.mbl-dashboard-ticket-title h3 {
    font-size: 22px;
    font-weight: var(--mbl-weight-heading);
}

/* Forms and utility text */
.mbl-contact-form label > span,
.form-help,
.support-checklist strong,
.contact-route-grid strong {
    font-weight: var(--mbl-weight-semibold);
}

input,
textarea,
select {
    font-size: 15px;
}

@media (max-width: 782px) {
    body {
        font-size: 15px;
    }

    h1 {
        font-size: clamp(36px, 10vw, 48px);
        letter-spacing: -0.04em;
    }

    h2 {
        font-size: clamp(28px, 7vw, 36px);
    }

    .hero__lead {
        font-size: 17px;
    }

    .mbl-support-dashboard__topbar h1 {
        font-size: 36px;
    }
}
