@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("../fonts/montserrat-latin-LaWOCQv.woff2") format('woff2');
}

@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/montserrat-italic-latin-pMal4P8.woff2") format('woff2');
}

@font-face {
    font-family: 'Literata';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("../fonts/literata-latin-cd5wGOv.woff2") format('woff2');
}

@font-face {
    font-family: 'Literata';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/literata-italic-latin-JLhFnSh.woff2") format('woff2');
}

/*
 * Shared by the public site (assets/app.js) and the admin rich text editor (TinyMCE "content_css").
 * Fluid sizes interpolate linearly between the mobile (360px) and desktop (1884px) layouts.
 */
:root {
    --ibrac-red: #b80000;
    --ibrac-red-dark: #8f0000;
    --ibrac-text: #333;
    --ibrac-heading: #454545;
    --ibrac-muted: #616161;
    --ibrac-highlight: #ebff5f;
    --ibrac-font-sans: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    --ibrac-font-serif: 'Literata', Georgia, 'Times New Roman', serif;

    --ibrac-text-size: 1.125rem;
    --ibrac-paragraph-gap: clamp(35px, 31.46px + 0.984vw, 50px);

    --bs-body-font-family: var(--ibrac-font-serif);
    --bs-body-color: var(--ibrac-text);
}

.page-content {
    color: var(--ibrac-text);
    font-family: var(--ibrac-font-serif);
}

.page-content h2,
.page-content h3 {
    margin: 0 0 8px;
    color: var(--ibrac-heading);
    font-family: var(--ibrac-font-sans);
    font-weight: 700;
    line-height: 1.24;
}

.page-content h2 {
    font-size: clamp(1.4625rem, 1.3475rem + 0.512vw, 1.95rem);
}

.page-content h3 {
    font-size: clamp(1.25rem, 1.18rem + 0.3vw, 1.5rem);
}

.page-content p,
.page-content ul,
.page-content ol,
.page-content blockquote {
    margin: 0 0 var(--ibrac-paragraph-gap);
    font-size: var(--ibrac-text-size);
    line-height: 1.72;
}

.page-content img {
    max-width: 100%;
    height: auto;
}

.page-content blockquote {
    padding-left: 1.25rem;
    border-left: 4px solid var(--ibrac-red);
    font-style: italic;
}

.page-content figure {
    margin: 0 0 var(--ibrac-paragraph-gap);
}

.page-content figcaption {
    margin-top: 0.5rem;
    color: var(--ibrac-muted);
    font-size: 0.8em;
}

.page-content table {
    width: 100%;
    margin: 0 0 var(--ibrac-paragraph-gap);
    border-collapse: collapse;
    font-size: var(--ibrac-text-size);
}

.page-content th,
.page-content td {
    padding: 0.5rem 0.75rem;
    border: 1px solid #d9d9d9;
    vertical-align: top;
}

.page-content details {
    margin: 0 0 var(--ibrac-paragraph-gap);
    font-size: var(--ibrac-text-size);
}

.page-content summary {
    font-family: var(--ibrac-font-sans);
    font-weight: 700;
    cursor: pointer;
}

.page-content iframe,
.page-content video {
    max-width: 100%;
}
