/* Shared public and authenticated XNCR typography. No external font dependency. */
:root {
    --xncr-font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    --bs-body-font-family: var(--xncr-font-family);
}
html { font-size: 15px; }
body {
    font-family: var(--xncr-font-family);
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 400;
    letter-spacing: normal;
}
input, select, textarea, table, button, .btn, .card, .form-control, .form-select {
    font-family: inherit;
}
body :is(h1, .h1, [class^="display-"]),
body .portal-brand-content h1, body .portal-login-card h1,
body .subscription-header h1 {
    font-size: clamp(1.65rem, 2.8vw, 2.25rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: normal;
}
body :is(h2, .h2) { font-size: clamp(1.35rem, 2.2vw, 1.75rem); }
body :is(h3, .h3) { font-size: clamp(1.15rem, 1.8vw, 1.4rem); }
body :is(h2, h3, h4, h5, h6, .h2, .h3, .h4, .h5, .h6) {
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: normal;
}
body label, body .form-label, body nav, body .nav-link,
body th, body button, body .btn, body .navbar-brand,
body .portal-submit-button, body .plan-select-button {
    font-weight: 600;
    letter-spacing: normal;
}
body .portal-eyebrow, body .plan-code, body .portal-brand-name {
    font-weight: 600;
    letter-spacing: 0.025em;
}
body .plan-price strong { font-size: 1.5rem; font-weight: 600; }
body .lead { font-size: 1.1rem; font-weight: 400; }
table { font-variant-numeric: tabular-nums; }
