@font-face {
    font-family: "IBM Plex Serif";
    src: url("../fonts/ibm-plex-serif/IBMPlexSerif-Regular.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Serif";
    src: url("../fonts/ibm-plex-serif/IBMPlexSerif-Italic.ttf") format("truetype");
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Serif";
    src: url("../fonts/ibm-plex-serif/IBMPlexSerif-Medium.ttf") format("truetype");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Serif";
    src: url("../fonts/ibm-plex-serif/IBMPlexSerif-MediumItalic.ttf") format("truetype");
    font-style: italic;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Serif";
    src: url("../fonts/ibm-plex-serif/IBMPlexSerif-SemiBold.ttf") format("truetype");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Serif";
    src: url("../fonts/ibm-plex-serif/IBMPlexSerif-SemiBoldItalic.ttf") format("truetype");
    font-style: italic;
    font-weight: 600;
    font-display: swap;
}

:root {
    --font-primary: "IBM Plex Serif", Georgia, "Times New Roman", serif;
    --font-emphasis: 600;
    font-family: var(--font-primary);
    font-synthesis: none;
}

body,
button,
input,
select,
textarea,
[contenteditable],
.article-body,
.article-body h2,
.article-body h3,
.preview-body,
.preview-body h2,
.preview-body h3 {
    font-family: var(--font-primary);
}

/* Mantemos a hierarquia tipográfica num máximo de 600 para evitar
   peso sintético e preservar a leitura da IBM Plex Serif. */
h1,
h2,
h3,
h4,
h5,
h6,
strong,
b,
th,
legend,
.main-nav,
.back-link,
.pagination a,
.search-form label,
.search-form button,
.button,
.login-card label,
.installer-card label,
.card-body time,
.card-footer a,
.empty-state > span,
.eyebrow,
.installer-card legend,
.share-panel > span,
.text-link,
.upcoming-event time,
.calendar-day-events a,
.home-search-summary,
.home-search-summary a,
.public-navigation-link.is-active,
.account-login-form label,
.account-login-submit,
.calendar-weekdays span,
.contact-form label,
.local-nucleus-people dt,
.local-nucleus-people dd,
.main-nav .account-panel-link,
.account-logout,
.calendar-day.has-events > button,
.event-meta time span,
.membership-card-label,
.admin-nav a,
.security-chip,
.send-summary dd,
.editor-main > label,
.field-label,
.form-panel label,
.side-form label,
.filter-bar label,
.inbox-message-meta dt,
.inbox-message-meta dd,
.metric-card > span,
.panel-heading > a,
.title-input,
.danger-link,
.status-badge,
.table-action,
.row-actions a,
.timeline-values,
.inbox-row.is-unread .inbox-sender strong,
.table-pagination button {
    font-weight: var(--font-emphasis);
}
