/*
 * CraftBook UK Magazine — Self-Hosted Web Fonts
 * ==============================================
 * Replaces the Google Fonts CDN. Two reasons:
 *
 *  1. PERFORMANCE. The CDN route is a two-hop critical request chain:
 *     HTML -> fonts.googleapis.com (render-blocking CSS) -> fonts.gstatic.com
 *     (the actual woff2). Two third-party origins, each needing DNS + TCP +
 *     TLS. Browsers now PARTITION the HTTP cache by top-level site, so the
 *     old "already cached from another site" argument no longer holds - every
 *     first-time visitor downloaded them fresh anyway. Self-hosting collapses
 *     the chain to one hop from an origin already connected, and lets us
 *     preload the woff2 directly.
 *
 *  2. PRIVACY. Loading from Google's CDN transmits every visitor's IP address
 *     to Google. Self-hosting removes that transfer entirely.
 *
 * SUBSETTING
 * Each face is split into `latin` and `latin-ext` via unicode-range. The
 * browser downloads ONLY the subset containing glyphs actually present on
 * the page. An English page fetches the latin files and never touches
 * latin-ext, even though both sit on disk.
 *
 * font-display: swap - text renders immediately in the fallback, then swaps.
 * The size-adjust fallback metrics in fonts.css keep that swap shift-free.
 *
 * MAINTENANCE
 * To change a typeface: replace the .woff2 files in /assets/fonts/, rewrite
 * the @font-face blocks below, and update --cbm-font-heading / --cbm-font-body
 * in style.css. Then increment CBM_VERSION.
 *
 * Fonts are SIL Open Font License - free to self-host and redistribute.
 */

@font-face {
    font-family:  'Inter';
    font-style:   normal;
    font-weight:  400;
    font-display: swap;
    src: url('../fonts/inter-latin-400-normal.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:  'Inter';
    font-style:   normal;
    font-weight:  400;
    font-display: swap;
    src: url('../fonts/inter-latin-ext-400-normal.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:  'Inter';
    font-style:   normal;
    font-weight:  500;
    font-display: swap;
    src: url('../fonts/inter-latin-500-normal.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:  'Inter';
    font-style:   normal;
    font-weight:  500;
    font-display: swap;
    src: url('../fonts/inter-latin-ext-500-normal.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:  'Inter';
    font-style:   normal;
    font-weight:  600;
    font-display: swap;
    src: url('../fonts/inter-latin-600-normal.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:  'Inter';
    font-style:   normal;
    font-weight:  600;
    font-display: swap;
    src: url('../fonts/inter-latin-ext-600-normal.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:  'Inter';
    font-style:   normal;
    font-weight:  700;
    font-display: swap;
    src: url('../fonts/inter-latin-700-normal.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:  'Inter';
    font-style:   normal;
    font-weight:  700;
    font-display: swap;
    src: url('../fonts/inter-latin-ext-700-normal.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:  'Playfair Display';
    font-style:   normal;
    font-weight:  400;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-400-normal.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:  'Playfair Display';
    font-style:   normal;
    font-weight:  400;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-ext-400-normal.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:  'Playfair Display';
    font-style:   normal;
    font-weight:  700;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-700-normal.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:  'Playfair Display';
    font-style:   normal;
    font-weight:  700;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-ext-700-normal.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:  'Playfair Display';
    font-style:   normal;
    font-weight:  900;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-900-normal.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:  'Playfair Display';
    font-style:   normal;
    font-weight:  900;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-ext-900-normal.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:  'Playfair Display';
    font-style:   italic;
    font-weight:  400;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-400-italic.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:  'Playfair Display';
    font-style:   italic;
    font-weight:  400;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-ext-400-italic.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:  'Playfair Display';
    font-style:   italic;
    font-weight:  700;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-700-italic.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:  'Playfair Display';
    font-style:   italic;
    font-weight:  700;
    font-display: swap;
    src: url('../fonts/playfair-display-latin-ext-700-italic.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;
}

