/*
 * Self-hosted Lora + Dancing Script.
 *
 * WHY THIS FILE EXISTS
 * Live loads both from fonts.googleapis.com via Elementor. Migrated templates
 * deliberately filter Elementor's Google Fonts off — see
 * rs_disable_elementor_google_fonts_on_migrated_templates() in functions.php:
 * it is three third-party round trips before text can paint, and Google's CDN
 * sees every visitor's IP. So the fonts had to be self-hosted to reach parity
 * with live without reintroducing either problem.
 *
 * Both are SIL Open Font License, so redistribution is fine.
 *
 * WHY NOT main.scss
 * main.min.css is generated, and rebuilding it means clearing the css-equal
 * gate — which exists because built CSS has shipped stale twice. A standalone
 * always-enqueued stylesheet needs no build step and follows the pattern
 * rs-design-tokens.css already established.
 *
 * COST OF DECLARING BOTH GLOBALLY: none. An @font-face is only a declaration;
 * a browser fetches the file only when a rule actually uses the family. Dancing
 * Script is used solely by the Asana usage-story template, so only those ~10
 * pages ever download it, even though it is declared site-wide.
 *
 * WHAT THIS FIXED BEYOND THE THREE CPT TEMPLATES
 * template-blog-single.php has asked for `Lora` since 2026-07-24 and there was
 * no Lora anywhere in the theme — no file, no @font-face, zero mentions in
 * main.min.css. Every migrated blog post has been rendering its body copy in
 * whatever generic serif the visitor's OS supplies. This file fixes that too.
 *
 * unicode-range values are Google's own latin / latin-ext splits, kept so the
 * ~12KB latin-ext file is fetched only when a page actually needs Polish
 * diacritics.
 */

/* ---------- Lora — body copy (live: 18px / 29.7px / #5D636A) ---------- */
@font-face {
	font-family: 'Lora';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Lora-400-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: 'Lora';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Lora-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: 'Lora';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Lora-400-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;
}
@font-face {
	font-family: 'Lora';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/Lora-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;
}

/* ---------- Dancing Script — usage-story 01/02/03 markers (live: 18px italic 700 #A0BABD) ----------
   Google serves no italic face for this family; live's "700italic" request
   resolves to the same upright file with a synthesised slant, so declaring 700
   normal and letting font-style: italic synthesise reproduces live exactly. */
@font-face {
	font-family: 'Dancing Script';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/DancingScript-700-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: 'Dancing Script';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/DancingScript-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;
}

/*
 * Article body copy -> Lora, matching live.
 *
 * One rule for all three migrated CPT bodies rather than the same declaration
 * pasted into three template <style> blocks. Deliberately scoped to the body
 * wrappers only: headings stay Montserrat and the page chrome stays
 * HindMadurai, exactly as live has it.
 *
 * These selectors sit in the head, so a template's own inline <style> still
 * wins on source order if it needs to override a specific element — but only at
 * EQUAL specificity. That caveat is why .rs-vs-body is no longer listed here: the
 * element-qualified rule below is (0,1,1) and out-specified the (0,1,0) base rule
 * in rs_article_body_css(), so the shared article-body set could not own the vs
 * body's type the way it owns the blog's. The asana-vs template gets font-family,
 * size, line-height and colour from that function now (identical values), and
 * dropping it from this file removes the competing declaration that would
 * otherwise silently win again for any property added here later.
 */
.rs-cs-body,
.rs-aus-body {
	font-family: 'Lora', Georgia, serif;
}

.rs-cs-body p,
.rs-cs-body li,
.rs-aus-body p,
.rs-aus-body li {
	font-family: 'Lora', Georgia, serif;
	font-size: 18px;
	line-height: 1.65;
	color: #5D636A;
}
/*
 * font-size is pinned to live's 18px on purpose. Without it the usage-story and
 * case-study bodies inherit 20px — Elementor's kit sets body 20/28 and the
 * wrappers carry Bootstrap's .fs-5 — which computed to 20px/33px against live's
 * 18px/29.7px. The Asana-vs template had already pinned 18px locally; this makes
 * all three agree with live instead of two of them agreeing with the kit.
 */
