/*
 * Self-hosted copies of the theme's fonts, served from this theme instead
 * of fonts.googleapis.com / fonts.gstatic.com at request time.
 *
 * Why self-hosted at all: loading fonts live from Google's CDN sends every
 * visitor's IP address to Google before any cookie consent decision is
 * made. German courts (e.g. LG München I, 20.01.2022 - 3 O 17493/20) have
 * ruled this a GDPR violation without explicit consent, since self-hosting
 * is trivially possible. Self-hosting removes the third-party request
 * entirely.
 *
 * Two families in here, one per role in tokens.css (--ef-font-display /
 * --ef-font-body) - see the comment there for which role covers what:
 *
 * 1. Comic Neue - the DISPLAY face (headlines, titles, navigation). The
 *    theme's typeface is 'Comic Sans MS', but that's a proprietary
 *    Microsoft font bundled with Windows/Office, not freely licensable for
 *    redistribution as a web font - there's no legitimate way to bundle
 *    the real Comic Sans MS with this theme, only reference it by name so
 *    it's used on systems that already have it installed (most
 *    Windows/macOS machines). Comic Neue is Google's own open-source (SIL
 *    Open Font License 1.1), metrics-compatible redesign of Comic Sans,
 *    made specifically to fill this role - self-hosting it means visitors
 *    WITHOUT the real Comic Sans MS (e.g. most Linux installs) still see a
 *    near-identical look instead of falling back to a generic system font.
 *    See --ef-font-display in tokens.css: 'Comic Sans MS' is tried first,
 *    'Comic Neue' second.
 *
 * 2. Nunito - the BODY face (running text, forms, buttons, schedule,
 *    consent bar) since 2026-08-22; before that the display face was used
 *    for everything, and long text in a hand-lettered face reads badly.
 *    Nunito (Vernon Adams / Cyreal, SIL Open Font License 1.1) is rounded
 *    like Comic Neue so the two sit together, but drawn for paragraphs.
 *    Shipped as the VARIABLE font (one file per style/subset carries
 *    weights 200-1000), byte-identical to what Google's CSS API serves a
 *    modern browser for Nunito v32 - four files, ~155 KB total, instead of
 *    one static file per weight.
 *
 * Both restricted to the "latin" and "latin-ext" unicode subsets Google
 * splits its files into - sufficient for German (ä/ö/ü/ß fall inside the
 * "latin" subset's U+0000-00FF range) and other Western-European text; the
 * cyrillic/greek/vietnamese/math/symbols subsets Google also serves aren't
 * needed here and were dropped to keep the download size reasonable.
 *
 * The theme-options-configurable font (ef_font, loaded from Google Fonts
 * behind the external_media consent when set) is a separate, admin-chosen
 * value that can't be pre-bundled the same way - see the note in
 * functions.php. It's deliberately left unset on this site: the intended
 * look is the theme's own pair above, not a Theme Options override. When
 * it IS set it replaces the BODY face only; headlines keep the display
 * face.
 */
@font-face {
    font-family: 'Comic Neue';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/comic-neue-400-normal-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Comic Neue';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/comic-neue-400-italic-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Comic Neue';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/comic-neue-700-normal-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Comic Neue';
    font-style: italic;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/comic-neue-700-italic-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Nunito - variable (weight axis 200-1000), one file per style and subset. */
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 200 1000;
    font-display: swap;
    src: url('../fonts/nunito-normal-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 200 1000;
    font-display: swap;
    src: url('../fonts/nunito-normal-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Nunito';
    font-style: italic;
    font-weight: 200 1000;
    font-display: swap;
    src: url('../fonts/nunito-italic-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Nunito';
    font-style: italic;
    font-weight: 200 1000;
    font-display: swap;
    src: url('../fonts/nunito-italic-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
