/*
 * uBind Webfonts - Montserrat, self-hosted.
 *
 * One variable font replaces the four static weights. Google's Montserrat[wght] latin subset is
 * 37,956 bytes - the same size as a single static weight - and covers 100-900 continuously, so a
 * page that uses 400/500/600/700 now downloads 37.0 KiB instead of 148.3 KiB.
 *
 * Verified metrically identical to the static instances before the swap: text width delta at
 * weights 400, 500, 600 and 700 was exactly 0.0000%, with the same ascent (968/1000) and descent
 * (251/1000). Nothing on the page moves.
 *
 * Google's unicode-range split is preserved, so an English page fetches only the latin file.
 */

/* Montserrat - variable, upright */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('fonts/montserrat-variable-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: 'Montserrat';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('fonts/montserrat-variable-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;
}

/* Montserrat - variable, italic */
@font-face {
	font-family: 'Montserrat';
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url('fonts/montserrat-variable-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: 'Montserrat';
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url('fonts/montserrat-variable-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;
}

/*
 * Metric-matched fallbacks, so `font-display: swap` cannot shift the layout.
 *
 * Montserrat is wider and taller than every common system sans, so the fallback text laid out
 * before the webfont arrives occupied less space than the webfont then needed - the hero heading
 * grew and pushed the product showcase down. That was the whole of the homepage's 0.086 CLS:
 * blocking Montserrat alone took it to exactly 0.000, while blocking Soho Gothic did not.
 *
 * These faces re-serve a system font scaled and re-boxed to Montserrat's metrics, so the swap is
 * geometrically invisible. Both are declared because the right base font differs by platform:
 * `local()` fails silently when the font is absent, so Windows/macOS/iOS take the Arial face and
 * Android falls through to the Roboto one.
 *
 * Derived, not guessed. Measured in Chrome against the real files at 1000px:
 *   Montserrat 400  width 88591.72  ascent 0.968em  descent 0.251em  lineGap 0
 *   Arial 400       width 80480.48  ->  size-adjust 88591.72/80480.48 = 110.08%
 *   Roboto 400      width 78962.89  ->  size-adjust 88591.72/78962.89 = 112.19%
 * The ascent/descent overrides are Montserrat's own, divided by that size-adjust, because the
 * overrides are resolved against the already-adjusted em.
 */
@font-face {
	font-family: 'Montserrat Fallback';
	font-style: normal;
	font-weight: 100 900;
	/*
	 * Required, not cosmetic. `font-display` defaults to `auto`, which Chrome treats as `block`:
	 * text in a face that is still resolving is painted invisibly for up to 3s. These faces have no
	 * network fetch, but they are still @font-face rules that go through font loading, and this is
	 * the face that paints during Montserrat's swap window - i.e. the text that first paint is
	 * waiting on. Leaving it at the default put roughly 0.7s onto FCP across every page.
	 */
	font-display: swap;
	src: local('Arial'), local('Helvetica Neue'), local('Liberation Sans');
	size-adjust: 110.08%;
	ascent-override: 87.94%;
	descent-override: 22.80%;
	line-gap-override: 0%;
}

@font-face {
	font-family: 'Montserrat Fallback Android';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: local('Roboto'), local('Droid Sans');
	size-adjust: 112.19%;
	ascent-override: 86.28%;
	descent-override: 22.37%;
	line-gap-override: 0%;
}

/*
 * Soho Gothic Pro - the display face, self-hosted here from 1.4.0.
 *
 * It used to live in the Customizer's Additional CSS pointing at /wp-content/uploads/fonts/, which
 * put the font, its declarations and its version in three different places. It is here now for the
 * same reason Montserrat is: .woff2 cannot be uploaded through the media library on this host, and
 * a plugin keeps the files, the @font-face rules and the version in one deployable unit. The
 * original unsubsetted files are still in the uploads directory, unreferenced - that is the
 * rollback.
 *
 * Subset to Google's two Montserrat ranges, so both families split identically and a page carrying
 * Latin Extended-A pulls the ext file for both rather than one of them silently falling back.
 * Measured before the cut: 805 glyphs, 437 mapped codepoints, of which 127 were Latin Extended-A
 * that no page uses - a scan of 619,187 characters across 20 pages found not one. Everything that
 * scan did find outside the latin range (arrows, check marks, emoji) was already falling back,
 * because this font never covered it.
 *
 * 347 KiB -> 147 KiB across the eight declared faces, 57.8% smaller. The three the homepage loads
 * went 132 KiB -> 55 KiB. Verified identical before deploying: 33 measurements across three faces
 * at 1000px - real sentences, kerning pairs, fi/fl ligatures, accented Latin-1, currency and curly
 * quotes - all matched the originals to 0.0000px, with the same ascent and descent.
 *
 * Regenerate with tools/wordpress/subset-soho-gothic.ts if the source files are ever replaced.
 */

@font-face {
	font-family: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 100;
	font-display: swap;
	src: url('fonts/sohogothicpro-100-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 100;
	font-display: swap;
	src: url('fonts/sohogothicpro-100-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url('fonts/sohogothicpro-300-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url('fonts/sohogothicpro-300-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('fonts/sohogothicpro-400-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('fonts/sohogothicpro-400-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('fonts/sohogothicpro-500-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('fonts/sohogothicpro-500-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('fonts/sohogothicpro-700-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('fonts/sohogothicpro-700-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url('fonts/sohogothicpro-800-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url('fonts/sohogothicpro-800-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url('fonts/sohogothicpro-900-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: 'Soho Gothic Pro';
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url('fonts/sohogothicpro-900-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: 'Soho Gothic Pro';
	font-style: italic;
	font-weight: 300;
	font-display: swap;
	src: url('fonts/sohogothicpro-300i-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: 'Soho Gothic Pro';
	font-style: italic;
	font-weight: 300;
	font-display: swap;
	src: url('fonts/sohogothicpro-300i-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;
}
