/* ── BISE brand layer, for the server-rendered pages ──────────────────────
   The desk app carries this identity through frontend/src/styles/brand.css,
   which restates the corporate design system (insphereideas.com) in the tokens
   frappe-ui paints from. The pages Frappe renders itself — the landing page and
   the login page — never load that bundle, so the same palette, the same three
   faces and the same handful of primitives are declared once here and linked
   from both.

   Keep the two in step. The values below are the source; brand.css repeats them
   because a Tailwind build cannot read a file served at run time.

   The faces are self-hosted from lms/public/fonts. Nothing here may reach a
   third-party origin at run time — that is a standing requirement of this site,
   not a preference.
   ──────────────────────────────────────────────────────────────────────── */

@font-face {
	font-family: 'Cormorant Garamond';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url('/assets/lms/fonts/cormorant-garamond-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: 'Cormorant Garamond';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url('/assets/lms/fonts/cormorant-garamond-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: 'DM Sans';
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url('/assets/lms/fonts/dm-sans-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: 'DM Sans';
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url('/assets/lms/fonts/dm-sans-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: 'DM Mono';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('/assets/lms/fonts/dm-mono-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: 'DM Mono';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('/assets/lms/fonts/dm-mono-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;
}

:root {
	--bx-ink: #141414;
	--bx-ink-2: #3a3a3a;
	--bx-ink-3: #6f6f6f;
	--bx-paper: #fafaf8;
	--bx-white: #ffffff;
	--bx-wash: #f2f2ee;
	--bx-rule: #e2e2de;
	--bx-rule-2: #d6d6d1;
	--bx-accent: #b8281e;
	--bx-accent-dark: #9c1f16;
	--bx-accent-wash: #f5e8e7;
	--bx-good: #14804d;

	--bx-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--bx-text: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--bx-label: 'DM Mono', 'SF Mono', ui-monospace, monospace;
}

/* Primitives, named `bx-` so they cannot collide with the page-local classes
   the templates already use, or with anything bootstrap brings in through
   frappe's web bundle. */
.bx-eyebrow {
	font-family: var(--bx-label);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bx-ink-3);
}

.bx-display {
	font-family: var(--bx-display);
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.1;
	text-wrap: balance;
	color: var(--bx-ink);
}

/* Corporate primary: ink at rest, brand red on hover. `!important` on colour
   only — frappe's web css sets `.btn` colours at a specificity these pages
   cannot otherwise beat. */
.bx-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 12px 26px;
	border: 1px solid var(--bx-ink);
	border-radius: 2px;
	background: var(--bx-ink);
	color: var(--bx-paper) !important;
	font-family: var(--bx-text);
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.bx-btn:hover {
	background: var(--bx-accent);
	border-color: var(--bx-accent);
	color: var(--bx-paper) !important;
}

.bx-btn-ghost {
	background: transparent;
	color: var(--bx-ink) !important;
}
.bx-btn-ghost:hover {
	background: var(--bx-ink);
	color: var(--bx-paper) !important;
	border-color: var(--bx-ink);
}

/* The cover a course wears when it has no artwork of its own. Ink ground, a
   fine diagonal hatch and one red hairline crossing it — drawn rather than
   loaded, so it costs no request and stays sharp at any size. Kept identical to
   `.brand-cover` in the desk bundle; `--bx-cover-angle` is the only thing that
   varies between covers, so a grid reads as one family. */
.bx-cover {
	background-color: var(--bx-ink);
	background-image: repeating-linear-gradient(
			var(--bx-cover-angle, 135deg),
			rgba(250, 250, 248, 0.06) 0 1px,
			transparent 1px 10px
		),
		linear-gradient(
			var(--bx-cover-angle, 135deg),
			transparent 0 57%,
			rgba(184, 40, 30, 0.55) 57% 58.4%,
			transparent 58.4%
		),
		linear-gradient(160deg, #141414 0%, #262624 100%);
}
