/**
 * OREM 2026 — Playfair Display, self-hosted.
 *
 * Playfair Display is the brand's IDENTITY typeface (Brandbook 2026 §3.1: H1/H2,
 * section headings, hero banners, editorial lines, campaigns, landings). It is
 * asked for by 346 rules across 49 live Elementor documents on this site (counted
 * on production 2026-08-31 over `_elementor_data` of the 192 publish/private
 * Elementor documents; WEB-15 estimated ~156/~19 from the generated CSS files,
 * which only exist for documents rendered since the last Elementor cache clear —
 * the DB is the authoritative population, those files are a sample). Until WEB-15
 * it was never actually
 * delivered to the browser, so every one of those headings silently fell back to
 * the browser's default serif (Times).
 *
 * Why it went missing: the site only self-hosts the two families configured in
 * the Shoptimizer Customizer (Prompt + Noto Serif Display), and this child theme
 * disables Elementor's own Google Fonts output site-wide
 * (`elementor/frontend/print_google_fonts` => __return_false, see functions.php).
 * That filter is FRONTEND-ONLY, which is why an Elementor page looks correct in
 * the editor and wrong once published — and why clearing every cache changes
 * nothing.
 *
 * Declared here rather than re-enabling Elementor's Google Fonts output on
 * purpose: re-enabling it would also pull the ~17 off-brand families that older
 * pages still reference (Poppins, Raleway, League Spartan, ...), adding external
 * requests and entrenching Brandbook violations. Self-hosting only the brand
 * font keeps the fix additive: nothing that does not already ask for Playfair
 * Display changes appearance.
 *
 * Variable files (wght 400..900 in one file) taken from Google Fonts v40, SIL
 * Open Font License. Weights 400/500/600 are the ones the Brandbook calls for;
 * rules that ask for 100/300 clamp to 400, which is inherent to the typeface
 * (Playfair Display has no light weights) and is what they already rendered as.
 *
 * unicode-range values are Google's own, so the browser downloads only the
 * subset a page actually needs — for Spanish copy that is the `latin` file.
 *
 * The src paths are ROOT-RELATIVE on purpose, not `../fonts/...` and not built
 * from get_stylesheet_directory_uri(). Two live constraints on this install:
 *   1. WP Rocket's "Remove Unused CSS" can inline this file into the page. A
 *      `../fonts/...` path would then resolve against the PAGE url, not this
 *      file's, and 404 on every page whose permalink has a different depth.
 *      Since WEB-16 the file is excluded from RUCSS and normally ships as a
 *      real <link>, but 17 used-CSS copies generated before that still carry it
 *      inlined, so the constraint stands.
 *   2. content_url() here returns http:// while home_url() is https:// —
 *      hardcoding the theme URI would emit a mixed-content font request that
 *      the browser blocks outright.
 * A root-relative path is immune to both: it keeps the page's scheme and always
 * resolves from the domain root.
 *
 * THE `Playfair` ALIAS BLOCKS AT THE BOTTOM (WEB-16)
 * 7 live documents ask for the family under the short name `Playfair` instead of
 * `Playfair Display` — 30 typography settings, counted on production 2026-08-31:
 *
 *   317371 page              8  Curso cumpliendome 2026
 *   319878 page              9  curso cumpliendome 2026 1
 *   319875 elementor_library 9  curso cumpliendome 1
 *   320862 elementor_library 1  Prueba Agenda perpetua digital
 *   320881 elementor_library 1  Pop up prueba digital agenda digital 2026
 *   320883 elementor_library 1  Pop up pruebas digitales
 *   320910 elementor_library 1  Prueba Digital Diario Financiero digital
 *
 * Do NOT read "7 documents" as "7 pages affected" — the reach is much wider, and
 * that is the whole reason this is worth an alias. Four of the seven are popups
 * that load across the site, so `font-family:Playfair` ends up in **386 of the 518
 * stored used-CSS copies** (measured 2026-08-31). The 30 settings also expand to
 * more CSS rules once Elementor emits the responsive breakpoints:
 * /curso-cumpliendome-2026/ ships 36 `font-family:Playfair` rules, and the popups
 * put 3 of them on the HOME — three 38px `.elementor-heading-title` rules that
 * render in Times today.
 *
 * Google Fonts does ship a separate family called `Playfair`, but the Brandbook
 * has exactly one serif of identity (§3.1, Playfair Display) and §3.2 caps a
 * composition at two families, so a third serif is not an option here: the intent
 * behind these can only be the identity typeface. And the alias cannot make
 * anything worse — `elementor/frontend/print_google_fonts` is off, so no
 * `Playfair` of any kind is delivered today (0 @font-face measured); these rules
 * currently fall back to Times. Times → Playfair Display is closer to any reading
 * of the intent.
 *
 * Aliasing is preferred over rewriting the 7 documents because it touches no
 * client content, needs no re-save (which would regenerate their CSS and, on this
 * install, risks the Elementor save OOM of WEB-2), and covers any future document
 * that types the short name by hand. The document list above is here so that
 * whoever cleans up the names later knows exactly where they are.
 */

/* latin-ext */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url('/wp-content/themes/shoptimizer-child-theme/assets/fonts/playfair-display/playfair-display-latin-ext-var.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;
}

/* latin */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url('/wp-content/themes/shoptimizer-child-theme/assets/fonts/playfair-display/playfair-display-latin-var.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;
}

/* latin-ext — italic */
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 400 900;
	font-display: swap;
	src: url('/wp-content/themes/shoptimizer-child-theme/assets/fonts/playfair-display/playfair-display-latin-ext-italic-var.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;
}

/* latin — italic */
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 400 900;
	font-display: swap;
	src: url('/wp-content/themes/shoptimizer-child-theme/assets/fonts/playfair-display/playfair-display-latin-italic-var.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;
}

/* ---------------------------------------------------------------------------
 * `Playfair` — alias of the same files, for the 7 documents that ask for the
 * short name. See the header comment for why aliasing and not a rewrite.
 * Same files, so the browser reuses the download it already made.
 * --------------------------------------------------------------------------- */

/* latin-ext */
@font-face {
	font-family: 'Playfair';
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url('/wp-content/themes/shoptimizer-child-theme/assets/fonts/playfair-display/playfair-display-latin-ext-var.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;
}

/* latin */
@font-face {
	font-family: 'Playfair';
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url('/wp-content/themes/shoptimizer-child-theme/assets/fonts/playfair-display/playfair-display-latin-var.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;
}

/* latin-ext — italic */
@font-face {
	font-family: 'Playfair';
	font-style: italic;
	font-weight: 400 900;
	font-display: swap;
	src: url('/wp-content/themes/shoptimizer-child-theme/assets/fonts/playfair-display/playfair-display-latin-ext-italic-var.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;
}

/* latin — italic */
@font-face {
	font-family: 'Playfair';
	font-style: italic;
	font-weight: 400 900;
	font-display: swap;
	src: url('/wp-content/themes/shoptimizer-child-theme/assets/fonts/playfair-display/playfair-display-latin-italic-var.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;
}
