/*
 * Ketabbin 3.12 — logo-derived color system.
 *
 * Brand source:
 *   navy  #041428
 *   orange #FBAA0E
 *   white #FFFFFF
 *
 * This file is deliberately loaded last. Older visual layers may keep their
 * layout and animation rules, while every public surface resolves through one
 * predictable light/dark palette.
 */
:root,
html[data-theme="light"] {
	--kb-brand-navy: #041428;
	--kb-brand-navy-2: #0a2943;
	--kb-brand-orange: #fbaa0e;
	--kb-brand-orange-hover: #e89a00;
	--kb-brand-orange-soft: #ffc85e;
	--kb-brand-white: #fff;
	--kb-brand-gray: #fff;
	--kb-brand-muted: #647482;

	--ink: var(--kb-brand-navy);
	--navy: var(--kb-brand-navy-2);
	--amber: var(--kb-brand-orange);
	--amber-soft: var(--kb-brand-orange-soft);
	--paper: var(--kb-brand-white);
	--surface: var(--kb-brand-white);
	--surface-2: var(--kb-brand-white);
	--commerce-card: var(--kb-brand-white);
	--commerce-warm: #fff8e8;
	--commerce-offer: var(--kb-brand-orange);
	--commerce-offer-deep: var(--kb-brand-orange-hover);
	--text: var(--kb-brand-navy);
	--muted: var(--kb-brand-muted);
	--line: rgba(4, 20, 40, .14);
	--line-strong: rgba(4, 20, 40, .34);
	--kb-midnight: var(--kb-brand-navy);
	--kb-balanced-night: var(--kb-brand-navy);
	--kb-emerald: var(--kb-brand-navy);
	--kb-emerald-bright: var(--kb-brand-orange);
	--kb-balanced-green: var(--kb-brand-navy-2);
	--commerce-green: var(--kb-brand-navy-2);
	--kb-shine-jade: var(--kb-brand-orange);
	--kb-magic-jade: var(--kb-brand-orange);
	--kb-magic-gold: var(--kb-brand-orange-soft);
	--kb-magic-amber: var(--kb-brand-orange);
	--kb-magic-ink: var(--kb-brand-navy);
	--success: var(--kb-brand-navy-2);
	--shadow: 0 18px 48px rgba(4, 20, 40, .09);
	color-scheme: light;
}

html[data-theme="dark"] {
	--paper: #041428;
	--surface: #071c30;
	--surface-2: #0b263c;
	--commerce-card: #071c30;
	--commerce-warm: #0b263c;
	--text: #fff8eb;
	--muted: #c4cfd8;
	--kb-dark-text-strong: #fff8eb;
	--kb-dark-text: #f3f6f8;
	--kb-dark-text-muted: #c4cfd8;
	--line: rgba(251, 170, 14, .22);
	--line-strong: rgba(251, 170, 14, .58);
	--kb-midnight: #041428;
	--kb-balanced-night: #041428;
	--kb-emerald: #0b263c;
	--kb-emerald-bright: var(--kb-brand-orange);
	--kb-balanced-green: #0a2943;
	--commerce-green: var(--kb-brand-orange);
	--kb-shine-jade: var(--kb-brand-orange);
	--kb-magic-jade: var(--kb-brand-orange);
	--success: var(--kb-brand-orange);
	--shadow: 0 24px 70px rgba(0, 0, 0, .34);
	color-scheme: dark;
}

html[data-theme="light"] body {
	background: #fff;
	color: var(--kb-brand-navy);
}

html[data-theme="light"] body::before {
	background-image: none !important;
	opacity: 0;
}

html[data-theme="dark"] body {
	background: #041428;
	color: var(--kb-dark-text);
}

html[data-theme="dark"] body::before {
	background:
		linear-gradient(135deg, rgba(4, 20, 40, .88), rgba(4, 20, 40, .95)),
		var(--kb-library-image) center / cover no-repeat !important;
}

/* White light-mode canvases; elevation comes from lines and shadow, not gray blocks. */
html[data-theme="light"] :is(
	.kb-header,
	.kb-commerce-header,
	.kb-commerce-nav-wrap,
	.kb-story-rail,
	.kb-quick-links,
	.kb-category-mega,
	.kb-product-section,
	.kb-category-showcase,
	.kb-service-strip,
	.kb-dashboard-card,
	.kb-member-card,
	.kb-member-stats article,
	.kb-member-profile-card,
	.kb-member-wallet-card,
	.kb-member-recommendations,
	.kb-account-nav,
	.kb-chat,
	.kb-chat__conversation,
	.kb-chat__rooms,
	.kb-chat__side,
	.kb-article-card,
	.kb-event-row,
	.kb-host-strip,
	.kb-empty-panel,
	.kbc-profile,
	.kbc-library,
	.kbc-saved,
	.kbc-community,
	.kbc-notifications,
	.kbc-wallet,
	.woocommerce table.shop_table,
	.woocommerce .cart_totals,
	.woocommerce form.checkout
) {
	background-color: #fff !important;
	color: var(--kb-brand-navy);
}

html[data-theme="dark"] :is(
	.kb-header,
	.kb-commerce-header,
	.kb-commerce-nav-wrap,
	.kb-story-rail,
	.kb-quick-links,
	.kb-category-mega,
	.kb-product-section,
	.kb-category-showcase,
	.kb-service-strip,
	.kb-dashboard-card,
	.kb-member-card,
	.kb-member-stats article,
	.kb-member-profile-card,
	.kb-member-wallet-card,
	.kb-member-recommendations,
	.kb-account-nav,
	.kb-chat,
	.kb-chat__conversation,
	.kb-chat__rooms,
	.kb-chat__side,
	.kb-article-card,
	.kb-event-row,
	.kb-host-strip,
	.kb-empty-panel,
	.kbc-profile,
	.kbc-library,
	.kbc-saved,
	.kbc-community,
	.kbc-notifications,
	.kbc-wallet
) {
	background-color: var(--surface) !important;
	color: var(--kb-dark-text);
}

/* Brand-orange action language. */
:is(
	.kb-button:not(.kb-button--outline),
	.kbc-primary,
	.kb-category-toggle,
	.kb-commerce-search > button,
	.kb-newsletter button,
	.kb-auth-submit,
	.kb-chat__composer button,
	.woocommerce a.button.alt,
	.woocommerce button.button.alt,
	.woocommerce input.button.alt,
	.woocommerce .checkout-button,
	.woocommerce #place_order,
	.woocommerce .single_add_to_cart_button
) {
	border-color: var(--kb-brand-orange) !important;
	background: var(--kb-brand-orange) !important;
	box-shadow: 0 8px 22px rgba(251, 170, 14, .2);
	color: var(--kb-brand-navy) !important;
	-webkit-text-fill-color: var(--kb-brand-navy);
}

:is(
	.kb-button:not(.kb-button--outline),
	.kbc-primary,
	.kb-category-toggle,
	.kb-commerce-search > button,
	.kb-newsletter button,
	.kb-auth-submit,
	.woocommerce a.button.alt,
	.woocommerce button.button.alt,
	.woocommerce input.button.alt,
	.woocommerce .checkout-button,
	.woocommerce #place_order,
	.woocommerce .single_add_to_cart_button
):hover {
	border-color: var(--kb-brand-orange-hover) !important;
	background: var(--kb-brand-orange-soft) !important;
	box-shadow: 0 12px 30px rgba(251, 170, 14, .3);
	color: var(--kb-brand-navy) !important;
	transform: translateY(-1px);
}

.kb-button--outline {
	border-color: var(--kb-brand-orange) !important;
	background: transparent !important;
	color: var(--kb-brand-navy) !important;
}

html[data-theme="dark"] .kb-button--outline {
	color: #fff !important;
}

.kb-button--outline:hover {
	background: rgba(251, 170, 14, .1) !important;
	color: var(--kb-brand-orange) !important;
}

/* Header, search and utility controls follow the same three-color system. */
html[data-theme="light"] .kb-commerce-header.kb-header,
html[data-theme="light"] .kb-header {
	border-bottom-color: rgba(4, 20, 40, .12) !important;
	background: rgba(255, 255, 255, .97) !important;
	box-shadow: 0 5px 20px rgba(4, 20, 40, .06) !important;
}

html[data-theme="dark"] .kb-commerce-header.kb-header,
html[data-theme="dark"] .kb-header {
	border-bottom-color: rgba(251, 170, 14, .24) !important;
	background: rgba(4, 20, 40, .97) !important;
	box-shadow: 0 5px 22px rgba(0, 0, 0, .3) !important;
}

.kb-commerce-search {
	border: 1px solid rgba(4, 20, 40, .18) !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--kb-brand-navy) !important;
}

.kb-commerce-search input,
.kb-commerce-search > span {
	color: var(--kb-brand-navy) !important;
}

html[data-theme="light"] .kb-commerce-search > span,
html[data-theme="light"] .kb-commerce-search input {
	color: var(--kb-brand-navy) !important;
}

.kb-commerce-search input::placeholder {
	color: #71808b !important;
	opacity: 1;
}

.kb-commerce-search:focus-within {
	border-color: var(--kb-brand-orange) !important;
	outline: 0 !important;
	box-shadow: none !important;
}

html[data-theme="dark"] .kb-commerce-search {
	border-color: rgba(251, 170, 14, .38) !important;
	background: #071c30 !important;
	color: #fff !important;
}

html[data-theme="dark"] .kb-commerce-search :is(input, span),
html[data-theme="dark"] .kb-commerce-search > span {
	color: #fff !important;
}

html[data-theme="dark"] .kb-commerce-search input::placeholder {
	color: #aab7c2 !important;
}

html[data-theme="dark"] .kb-commerce-search:focus-within {
	border-color: var(--kb-brand-orange) !important;
	background: #071c30 !important;
}

:is(
	.kb-commerce-actions .kb-menu-toggle,
	.kb-commerce-actions .kb-account-link,
	.kb-commerce-actions .kb-cart-link,
	.kb-theme-switch button.is-active
) {
	border-color: var(--kb-brand-orange) !important;
	background: var(--kb-brand-orange) !important;
	color: var(--kb-brand-navy) !important;
}

html[data-theme="light"] .kb-commerce-actions :is(.kb-menu-toggle, .kb-account-link, .kb-cart-link),
html[data-theme="light"] .kb-category-toggle,
html[data-theme="dark"] .kb-commerce-actions :is(.kb-menu-toggle, .kb-account-link, .kb-cart-link),
html[data-theme="dark"] .kb-category-toggle {
	border-color: var(--kb-brand-orange) !important;
	background: var(--kb-brand-orange) !important;
	color: var(--kb-brand-navy) !important;
}

html[data-theme="light"] .kb-category-toggle .kb-fantasy-icon,
html[data-theme="dark"] .kb-category-toggle .kb-fantasy-icon {
	color: var(--kb-brand-navy) !important;
}

html[data-theme="light"] .kb-commerce-actions .kb-cart-link > span,
.kb-commerce-actions .kb-cart-link > span {
	border-color: #fff !important;
	background: var(--kb-brand-navy) !important;
	color: #fff !important;
}

html[data-theme="dark"] .kb-commerce-actions .kb-cart-link > span {
	border-color: var(--kb-brand-navy) !important;
	background: #fff !important;
	color: var(--kb-brand-navy) !important;
}

/* Text and interactive accents. */
:is(
	.kb-kicker,
	.kb-text-link,
	.kb-section-head > a,
	.kb-section-head small,
	.kb-product-card strong,
	.kb-store-card__price,
	.kb-chat__rooms h3,
	.kb-chat__side h3,
	.kb-purchase-box > header small,
	.woocommerce .star-rating,
	.woocommerce p.stars a
) {
	color: var(--kb-brand-orange) !important;
}

:is(
	.kb-product-fulfillment svg,
	.kb-member-wallet-card svg,
	.kb-wallet > svg
) {
	color: var(--kb-brand-orange) !important;
	stroke: var(--kb-brand-orange) !important;
}

.kb-live-dot,
.kb-account-nav__avatar i,
.kb-member-reading__saved i,
.kb-wc-system-page__header li.is-complete i,
.kb-quick-spark:nth-child(even) {
	border-color: var(--kb-brand-orange) !important;
	background: var(--kb-brand-orange) !important;
	box-shadow: 0 0 0 7px rgba(251, 170, 14, .12) !important;
}

.kb-offer-section {
	background: linear-gradient(135deg, var(--kb-brand-orange-soft), var(--kb-brand-orange)) !important;
	box-shadow: 0 16px 40px rgba(251, 170, 14, .2) !important;
	color: var(--kb-brand-navy);
}

/* Branded dark feature panels remain navy in both modes. */
:is(.kb-commerce-footer, .kb-footer, .kb-epub-commerce, .kb-member-hero, .kb-auth-visual) {
	--surface: #071c30;
	--surface-2: #0b263c;
	--text: #fff;
	--muted: #acb9c4;
	--line: rgba(251, 170, 14, .24);
	color: #fff;
	background:
		radial-gradient(circle at 18% 12%, rgba(251, 170, 14, .12), transparent 24rem),
		linear-gradient(135deg, #041428, #0a2943 62%, #041428) !important;
}

.kb-footer-main a:not(.kb-footer-logo),
.kb-footer-main p,
.kb-footer-main .kb-newsletter > small,
.kb-footer-bottom {
	color: #acb9c4 !important;
}

.kb-newsletter form {
	border-color: rgba(251, 170, 14, .42) !important;
	background: rgba(255, 255, 255, .035);
}

.kb-newsletter input {
	color: #fff !important;
}

.kb-newsletter input::placeholder {
	color: #b4bec7;
}

.kb-newsletter-consent {
	display: flex;
	margin-top: 9px;
	align-items: flex-start;
	gap: 8px;
	color: #c2ccd4;
	font-size: 12px;
	line-height: 1.7;
}

.kb-newsletter-consent input {
	width: 16px;
	height: 16px;
	margin-top: 3px;
	accent-color: var(--kb-brand-orange);
}

/* Magic motion keeps its animation, now using only orange, navy and white. */
.kb-wand-aura {
	background: radial-gradient(circle, rgba(255, 200, 94, .26) 0, rgba(251, 170, 14, .16) 27%, rgba(4, 20, 40, .08) 50%, transparent 72%) !important;
}

.kb-button--hero::before {
	background: radial-gradient(ellipse, rgba(251, 170, 14, .24), rgba(4, 20, 40, .08) 46%, transparent 72%) !important;
}

.kb-wand-dust {
	box-shadow: 0 0 7px rgba(251, 170, 14, .98), 5px -4px 0 -1px rgba(255, 255, 255, .8) !important;
}

.kb-wand-dust:nth-of-type(2n) {
	box-shadow: 0 0 7px rgba(255, 255, 255, .95), -4px 3px 0 -1px rgba(251, 170, 14, .88) !important;
}

.kb-spell-seal {
	border-color: rgba(251, 170, 14, .78) !important;
	box-shadow: 0 0 0 5px rgba(251, 170, 14, .08), 0 0 19px rgba(251, 170, 14, .26) !important;
}

.kb-spell-seal::after {
	border-color: rgba(251, 170, 14, .84) !important;
}

.kb-floating-book::after {
	text-shadow:
		-17px 18px 0 rgba(251, 170, 14, .88),
		7px 35px 0 rgba(255, 255, 255, .5),
		0 0 8px rgba(251, 170, 14, .82) !important;
}

body.single-product .woocommerce div.product::before {
	background: linear-gradient(90deg, transparent, var(--kb-brand-orange), #fff, var(--kb-brand-orange), transparent) !important;
}

.kb-commerce-header.kb-header::after,
.kb-commerce-nav-wrap::after,
:is(.kb-story-rail, .kb-quick-links, .kb-offer-section, .kb-category-showcase, .kb-product-section, .kb-service-strip)::after {
	background: linear-gradient(90deg, transparent, var(--kb-brand-orange), #fff, var(--kb-brand-orange), transparent) !important;
}

@keyframes kb-button-halo {
	0%,
	100% {
		box-shadow: 0 5px 13px rgba(4, 20, 40, .12), 0 0 0 rgba(251, 170, 14, 0);
		filter: drop-shadow(0 0 0 rgba(251, 170, 14, 0)) brightness(1);
	}
	50% {
		box-shadow: 0 7px 17px rgba(4, 20, 40, .16), 0 0 15px rgba(251, 170, 14, .31), 0 0 4px rgba(255, 255, 255, .2);
		filter: drop-shadow(0 0 6px rgba(251, 170, 14, .32)) brightness(1.025);
	}
}

@keyframes kb-button-mist {
	0%,
	100% {
		opacity: .3;
		transform: scale(.92);
	}
	50% {
		opacity: .72;
		transform: scale(1.08);
	}
}

@keyframes kb-button-cast {
	0%,
	100% {
		transform: translateY(0) scale(1);
	}
	40% {
		transform: translateY(-2px) scale(.96);
		box-shadow: 0 0 0 4px rgba(251, 170, 14, .16), 0 0 20px rgba(251, 170, 14, .25);
	}
}

@media (max-width: 700px) {
	.kb-commerce-actions :is(.kb-menu-toggle, .kb-account-link, .kb-cart-link),
	.kb-category-toggle {
		border-color: var(--kb-brand-orange) !important;
		background: var(--kb-brand-orange) !important;
		color: var(--kb-brand-navy) !important;
	}

	html[data-theme="light"] .kb-mobile-store-nav {
		border-top-color: rgba(4, 20, 40, .13) !important;
		background: rgba(255, 255, 255, .98) !important;
		box-shadow: 0 -7px 24px rgba(4, 20, 40, .08) !important;
	}

	html[data-theme="dark"] .kb-mobile-store-nav {
		border-top-color: rgba(251, 170, 14, .34) !important;
		background: rgba(4, 20, 40, .98) !important;
		box-shadow: 0 -7px 24px rgba(0, 0, 0, .38) !important;
	}
}

@media (prefers-contrast: more) {
	:root,
	html[data-theme="light"] {
		--line: rgba(4, 20, 40, .28);
		--line-strong: rgba(4, 20, 40, .62);
	}

	html[data-theme="dark"] {
		--line: rgba(251, 170, 14, .4);
		--line-strong: rgba(251, 170, 14, .82);
	}
}

/*
 * Dark-mode contrast guard.
 *
 * Several older component layers use fixed navy text or --ink for their light
 * presentation. This final layer keeps semantic text readable on every navy
 * canvas without changing the intentional navy lettering on orange controls.
 */
html[data-theme="dark"] :is(
	.kb-main,
	.site-main,
	.kb-archive,
	.kb-search-page,
	.kb-wishlist-page,
	.kb-account,
	.kb-member-dashboard,
	.kb-chat,
	.kb-social,
	.kb-magazine,
	.kb-epub-hero,
	.kb-cafe-hero,
	.kb-wc-system-page,
	.woocommerce
) {
	color: var(--kb-dark-text) !important;
}

html[data-theme="dark"] :is(
	.kb-main,
	.kb-commerce-footer,
	.kb-footer,
	.kb-mobile-store-nav
) :is(
	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	legend,
	dt,
	th,
	label
) {
	color: var(--kb-dark-text-strong) !important;
	-webkit-text-fill-color: var(--kb-dark-text-strong);
}

html[data-theme="dark"] :is(
	.kb-story-rail,
	.kb-quick-links,
	.kb-category-mega,
	.kb-product-section,
	.kb-category-showcase,
	.kb-service-strip,
	.kb-store-card,
	.kb-product-card,
	.kb-dashboard-card,
	.kb-member-card,
	.kb-member-profile-card,
	.kb-member-wallet-card,
	.kb-member-recommendations,
	.kb-account-nav,
	.kb-article-card,
	.kb-event-row,
	.kb-host-strip,
	.kb-empty-panel,
	.kb-empty-state,
	.kb-search-results,
	.kbc-profile,
	.kbc-library,
	.kbc-saved,
	.kbc-community,
	.kbc-notifications,
	.kbc-wallet,
	.woocommerce table.shop_table,
	.woocommerce .cart_totals,
	.woocommerce form.checkout
) {
	color: var(--kb-dark-text) !important;
}

html[data-theme="dark"] :is(
	.kb-store-card,
	.kb-product-card,
	.kb-dashboard-card,
	.kb-member-card,
	.kb-member-profile-card,
	.kb-member-wallet-card,
	.kb-member-recommendations,
	.kb-article-card,
	.kb-event-row,
	.kb-host-strip,
	.kb-empty-panel,
	.kb-empty-state,
	.kb-search-results,
	.kbc-profile,
	.kbc-library,
	.kbc-saved,
	.kbc-community,
	.kbc-notifications,
	.kbc-wallet
) :is(h2, h3, h4, strong, b, a:not(.kb-button)) {
	color: var(--kb-dark-text-strong) !important;
	-webkit-text-fill-color: var(--kb-dark-text-strong);
}

html[data-theme="dark"] :is(
	.kb-main,
	.kb-commerce-footer,
	.kb-footer
) :is(
	p,
	small,
	.kb-muted,
	.kb-store-card__meta,
	.kb-product-original-title,
	.kb-breadcrumbs,
	.kb-loading,
	.kb-footer-bottom,
	.kb-newsletter-consent
) {
	color: var(--kb-dark-text-muted) !important;
	-webkit-text-fill-color: var(--kb-dark-text-muted);
}

html[data-theme="dark"] :is(
	.kb-kicker,
	.kb-text-link,
	.kb-section-head > a,
	.kb-store-section-head > a,
	.kb-store-section-head > div > span,
	.kb-product-card > strong,
	.kb-store-card__price,
	.kb-pagination a:hover,
	.kb-breadcrumbs a:hover,
	.woocommerce .price,
	.woocommerce p.price,
	.woocommerce .star-rating,
	.woocommerce p.stars a
) {
	color: var(--kb-brand-orange) !important;
	-webkit-text-fill-color: var(--kb-brand-orange);
}

html[data-theme="dark"] .kb-footer-main :is(h2, h3, h4, strong),
html[data-theme="dark"] .kb-footer-about > strong {
	color: var(--kb-dark-text-strong) !important;
	-webkit-text-fill-color: var(--kb-dark-text-strong);
}

html[data-theme="dark"] .kb-footer-main a:not(.kb-button, .kb-footer-logo) {
	color: var(--kb-dark-text-muted) !important;
	-webkit-text-fill-color: var(--kb-dark-text-muted);
}

html[data-theme="dark"] .kb-footer-main a:not(.kb-button, .kb-footer-logo):hover {
	color: var(--kb-brand-orange) !important;
	-webkit-text-fill-color: var(--kb-brand-orange);
}

html[data-theme="dark"] .kb-mobile-store-nav a {
	color: #d2dbe2 !important;
	-webkit-text-fill-color: #d2dbe2;
}

html[data-theme="dark"] .kb-mobile-store-nav a:is(:hover, .is-current, [aria-current="page"]) {
	color: var(--kb-brand-orange) !important;
	-webkit-text-fill-color: var(--kb-brand-orange);
}

/* Orange surfaces deliberately retain high-contrast navy lettering. */
html[data-theme="dark"] :is(
	.kb-button:not(.kb-button--outline),
	.kbc-primary,
	.kb-category-toggle,
	.kb-commerce-search > button,
	.kb-newsletter button,
	.kb-auth-submit,
	.kb-chat__composer button,
	.kb-commerce-actions .kb-menu-toggle,
	.kb-commerce-actions .kb-account-link,
	.kb-commerce-actions .kb-cart-link,
	.kb-theme-switch button.is-active,
	.kb-purpose-tabs button.is-active,
	.kb-store-card__buy:hover,
	.kb-community-commerce__events article > a:hover,
	.kb-pagination .page-numbers.current,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce #respond input#submit,
	.woocommerce .checkout-button,
	.woocommerce #place_order,
	.woocommerce .single_add_to_cart_button
) {
	color: var(--kb-brand-navy) !important;
	-webkit-text-fill-color: var(--kb-brand-navy);
}

html[data-theme="dark"] .kb-offer-section,
html[data-theme="dark"] .kb-offer-section__intro,
html[data-theme="dark"] .kb-offer-section__intro :is(h2, h3, h4, p, small, strong, b, a, span, i) {
	color: var(--kb-brand-navy) !important;
	-webkit-text-fill-color: var(--kb-brand-navy);
}

html[data-theme="dark"] :is(
	.kb-commerce-actions .kb-cart-link > span,
	.kb-account-nav__group a b,
	.kb-member-hero__avatar > span,
	.kb-member-order__track i.is-done b,
	.kb-member-invites > header > b,
	.kb-wc-system-page__header li.is-current i
) {
	color: var(--kb-brand-navy) !important;
	-webkit-text-fill-color: var(--kb-brand-navy);
}
