/*
 * The application typeface: Google Sans, served from this application.
 *
 * Both files per face, the way bramanjo-rail declares them: woff2 first for
 * any browser of the last decade, with the ttf behind it so an older one still
 * gets the right letterforms rather than a substitute.
 *
 * Weights 400 to 700; a page asking for anything outside that range gets the
 * nearest Google Sans weight rather than another font.
 *
 * Loaded after style.bundle.css so it wins over the theme's own Inter without
 * the bundle having to be rebuilt.
 */

@font-face {
    font-display: swap;
    font-family: "Google Sans";
    font-style: normal;
    font-weight: 400;
    src:
        url("../fonts/google-sans-v70-latin-regular.woff2") format("woff2"),
        url("../fonts/google-sans-v70-latin-regular.ttf") format("truetype");
}
@font-face {
    font-display: swap;
    font-family: "Google Sans";
    font-style: italic;
    font-weight: 400;
    src:
        url("../fonts/google-sans-v70-latin-italic.woff2") format("woff2"),
        url("../fonts/google-sans-v70-latin-italic.ttf") format("truetype");
}
@font-face {
    font-display: swap;
    font-family: "Google Sans";
    font-style: normal;
    font-weight: 500;
    src:
        url("../fonts/google-sans-v70-latin-500.woff2") format("woff2"),
        url("../fonts/google-sans-v70-latin-500.ttf") format("truetype");
}
@font-face {
    font-display: swap;
    font-family: "Google Sans";
    font-style: italic;
    font-weight: 500;
    src:
        url("../fonts/google-sans-v70-latin-500italic.woff2") format("woff2"),
        url("../fonts/google-sans-v70-latin-500italic.ttf") format("truetype");
}
@font-face {
    font-display: swap;
    font-family: "Google Sans";
    font-style: normal;
    font-weight: 600;
    src:
        url("../fonts/google-sans-v70-latin-600.woff2") format("woff2"),
        url("../fonts/google-sans-v70-latin-600.ttf") format("truetype");
}
@font-face {
    font-display: swap;
    font-family: "Google Sans";
    font-style: italic;
    font-weight: 600;
    src:
        url("../fonts/google-sans-v70-latin-600italic.woff2") format("woff2"),
        url("../fonts/google-sans-v70-latin-600italic.ttf") format("truetype");
}
@font-face {
    font-display: swap;
    font-family: "Google Sans";
    font-style: normal;
    font-weight: 700;
    src:
        url("../fonts/google-sans-v70-latin-700.woff2") format("woff2"),
        url("../fonts/google-sans-v70-latin-700.ttf") format("truetype");
}
@font-face {
    font-display: swap;
    font-family: "Google Sans";
    font-style: italic;
    font-weight: 700;
    src:
        url("../fonts/google-sans-v70-latin-700italic.woff2") format("woff2"),
        url("../fonts/google-sans-v70-latin-700italic.ttf") format("truetype");
}

:root {
    --bs-body-font-family: "Google Sans", -apple-system, BlinkMacSystemFont,
        "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/*
 * Never name a utility class here.
 *
 * This list used to carry .fs-1 to .fs-9 and .fw-normal, which are size and
 * weight utilities and land on anything - including an icon. Font Awesome sets
 * its family with .fa-solid, one class of specificity, exactly the same as
 * .fs-4; this file loads last, so it won, and an icon written as
 * <i class="fa-solid fa-arrow-right fs-4"> lost its icon font and rendered as
 * a box with F061 printed in it.
 *
 * Only element and component selectors belong here. An icon sitting inside a
 * .btn or a .card is unaffected, because those rules match the container and
 * the icon's own class still matches the icon.
 */
body,
.form-control,
.form-select,
.btn,
.menu,
.card,
.modal,
.table,
.dataTables_wrapper,
.select2-container,
h1, h2, h3, h4, h5, h6 {
    font-family: var(--bs-body-font-family);
}

/*
 * And in case anything else ever sets a family on an icon, the icon fonts win.
 * Named explicitly rather than left to specificity, because the whole bug
 * above was two rules of equal specificity resolved by load order.
 */
.fa, .fas, .far, .fal, .fa-solid, .fa-regular, .fa-light {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", FontAwesome;
}

.fab, .fa-brands {
    font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands";
}

/*
 * One family per variant, never a stack of all three. The three keenicons
 * fonts put different pictures at the same codepoint, so a duotone icon
 * falling through to the outline font does not lose its icon - it quietly
 * draws a different one, which is worse.
 */
.ki-outline {
    font-family: keenicons-outline;
}

.ki-solid {
    font-family: keenicons-solid;
}

.ki-duotone {
    font-family: keenicons-duotone;
}
