:root {
	--hirebox-navy: #16517f;
	--hirebox-blue: #1f6fb2;
	--hirebox-red: #d8412f;
	--hirebox-light: #f5f8fb;
	--hirebox-body: #2c2c2a;
	--hirebox-border: #e5e8ec;
	--hirebox-white: #ffffff;
}

body.hirebox-brand {
	background: var(--hirebox-light);
	color: var(--hirebox-body);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body.hirebox-brand a {
	color: var(--hirebox-blue);
}

body.hirebox-brand a:hover {
	color: var(--hirebox-navy);
}

/* Login: a quiet, editorial HireBox entry point with the existing LMS form. */
body.hirebox-brand[data-path="login"] {
	background:
		linear-gradient(135deg, rgba(245, 248, 251, 0.98), rgba(255, 255, 255, 0.96)),
		var(--hirebox-light);
}

body.hirebox-brand[data-path="login"] .page-card {
	border: 1px solid var(--hirebox-border);
	border-top: 4px solid var(--hirebox-red);
	border-radius: 10px;
	box-shadow: 0 18px 48px rgba(22, 81, 127, 0.1);
}

body.hirebox-brand[data-path="login"] .app-logo {
	max-height: 42px;
	width: auto;
	object-fit: contain;
	object-position: left center;
}

body.hirebox-brand[data-path="login"] .page-card-head-text h4 {
	color: var(--hirebox-navy);
	letter-spacing: -0.025em;
}

body.hirebox-brand[data-path="login"] .form-control:focus {
	border-color: var(--hirebox-blue);
	box-shadow: 0 0 0 3px rgba(31, 111, 178, 0.14);
}

body.hirebox-brand[data-path="login"] .es-button[data-variant="solid"] {
	background: var(--hirebox-red);
	border-color: var(--hirebox-red);
	box-shadow: 0 6px 16px rgba(216, 65, 47, 0.2);
}

body.hirebox-brand[data-path="login"] .es-button[data-variant="solid"]:hover {
	background: #b93425;
	border-color: #b93425;
	transform: translateY(-1px);
}

/* App shell: the existing navigation stays recognizable, but now follows the
   HireBox light/blue/red system. */
body.hirebox-brand #main-content,
body.hirebox-brand #scrollContainer {
	background: var(--hirebox-light);
}

body.hirebox-brand [class*="bg-surface-sidebar"] {
	background: var(--hirebox-white);
}

body.hirebox-brand [class*="bg-surface-base"] {
	background: var(--hirebox-white);
}

body.hirebox-brand [class*="border-outline-gray"] {
	border-color: var(--hirebox-border);
}

body.hirebox-brand [data-variant="solid"] {
	background: var(--hirebox-red);
	border-color: var(--hirebox-red);
	color: var(--hirebox-white);
}

body.hirebox-brand [data-variant="solid"]:hover {
	background: #b93425;
	border-color: #b93425;
}

body.hirebox-brand h1,
body.hirebox-brand h2,
body.hirebox-brand h3 {
	color: var(--hirebox-navy);
	letter-spacing: -0.025em;
}

body.hirebox-brand [class*="text-ink-gray-9"] {
	color: var(--hirebox-navy);
}

body.hirebox-brand [class*="text-ink-gray-6"],
body.hirebox-brand [class*="text-ink-gray-7"] {
	color: var(--hirebox-body);
}

body.hirebox-brand [class*="text-ink-gray-5"] {
	color: #66707a;
}

/* Course list and course cards. */
body.hirebox-brand .course-card-pills {
	background: var(--hirebox-light);
	color: var(--hirebox-navy);
	border: 1px solid var(--hirebox-border);
}

body.hirebox-brand .short-introduction {
	color: #4a4f54;
}

body.hirebox-brand a:has(> .course-card) {
	color: inherit;
}

body.hirebox-brand a:has(> .course-card) > .course-card {
	border: 1px solid var(--hirebox-border);
	border-top: 4px solid var(--hirebox-red);
	border-radius: 9px;
	box-shadow: 0 10px 24px rgba(22, 81, 127, 0.07);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

body.hirebox-brand a:has(> .course-card):nth-child(2n) > .course-card {
	border-top-color: var(--hirebox-blue);
}

body.hirebox-brand a:has(> .course-card):hover > .course-card {
	box-shadow: 0 16px 32px rgba(22, 81, 127, 0.14);
	transform: translateY(-3px);
}

body.hirebox-brand .course-card > div:first-child {
	background-blend-mode: multiply;
}

body.hirebox-brand .course-card > div:last-child {
	border-color: var(--hirebox-border);
	background: var(--hirebox-white);
}

/* Course and lesson surfaces. */
body.hirebox-brand .ProseMirror {
	color: var(--hirebox-body);
	line-height: 1.7;
}

body.hirebox-brand .ProseMirror h1,
body.hirebox-brand .ProseMirror h2,
body.hirebox-brand .ProseMirror h3 {
	color: var(--hirebox-navy);
}

body.hirebox-brand .ProseMirror a {
	color: var(--hirebox-blue);
	text-decoration: underline;
	text-decoration-color: rgba(31, 111, 178, 0.35);
	text-underline-offset: 2px;
}

body.hirebox-brand .ProseMirror img {
	border-radius: 7px;
}

body.hirebox-brand .hirebox-shell-header {
	position: relative;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 58px;
	padding: 0.65rem clamp(1rem, 3vw, 2.25rem);
	border-bottom: 1px solid var(--hirebox-border);
	background: var(--hirebox-white);
}

body.hirebox-brand .hirebox-shell-header__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	min-width: 0;
	color: var(--hirebox-navy);
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

body.hirebox-brand .hirebox-shell-header__mark {
	width: 78px;
	height: 24px;
	object-fit: contain;
	object-position: left center;
}

body.hirebox-brand .hirebox-shell-header__rule {
	width: 1px;
	height: 1.1rem;
	background: var(--hirebox-border);
}

body.hirebox-brand .hirebox-shell-header__link {
	color: var(--hirebox-blue);
	font-size: 0.82rem;
	font-weight: 600;
	white-space: nowrap;
}

body.hirebox-brand .hirebox-shell-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
	padding: 1.25rem clamp(1rem, 3vw, 2.25rem);
	border-top: 1px solid var(--hirebox-border);
	background: var(--hirebox-navy);
	color: #c9dceb;
	font-size: 0.82rem;
}

body.hirebox-brand .hirebox-shell-footer__brand {
	color: var(--hirebox-white);
	font-weight: 700;
	letter-spacing: -0.01em;
}

body.hirebox-brand .hirebox-shell-footer__help {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.85rem;
}

body.hirebox-brand .hirebox-shell-footer a {
	color: #c9dceb;
	font-weight: 600;
}

body.hirebox-brand .hirebox-shell-footer a:hover {
	color: var(--hirebox-white);
}

/* The server returns the lock as normal EditorJS content. The app only adds a
   class once the content is present, keeping the lock visible and non-modal. */
body.hirebox-brand .hirebox-locked-content {
	margin-top: 2rem;
	padding: 1.25rem 1.35rem 1.4rem;
	border: 1px solid rgba(216, 65, 47, 0.35);
	border-left: 5px solid var(--hirebox-red);
	border-radius: 8px;
	background: #fff8f6;
	box-shadow: 0 8px 20px rgba(216, 65, 47, 0.08);
}

body.hirebox-brand .hirebox-locked-content h2 {
	margin-top: 0;
	color: var(--hirebox-navy);
}

body.hirebox-brand .hirebox-locked-content .hirebox-quiz-link {
	display: inline-flex;
	margin-top: 0.45rem;
	padding: 0.45rem 0.7rem;
	border-radius: 5px;
	background: var(--hirebox-blue);
	color: var(--hirebox-white);
	font-weight: 700;
	text-decoration: none;
}

body.hirebox-brand .hirebox-locked-content .hirebox-quiz-link:hover {
	background: var(--hirebox-navy);
}

@media (max-width: 640px) {
	body.hirebox-brand .hirebox-shell-header {
	min-height: 52px;
	padding-inline: 0.85rem;
	}

	body.hirebox-brand .hirebox-shell-header__mark {
	width: 68px;
	height: 22px;
	}

	body.hirebox-brand .hirebox-shell-header__link {
	font-size: 0.76rem;
	}

	body.hirebox-brand .hirebox-shell-footer {
	align-items: flex-start;
	flex-direction: column;
	gap: 0.55rem;
	padding-block: 1.1rem 1.25rem;
	}

	body.hirebox-brand .hirebox-shell-footer__help {
	justify-content: flex-start;
	gap: 0.35rem 0.75rem;
	}
}
