:root {
	--fkt-color-primary: #1f5eff;
	--fkt-color-secondary: #153a75;
	--fkt-color-accent: #1f5eff;
	--fkt-color-page: #f4f6f9;
	--fkt-color-surface: #fff;
	--fkt-color-surface-soft: #eef2f6;
	--fkt-color-heading: #111827;
	--fkt-color-text: #344054;
	--fkt-color-muted: #667085;
	--fkt-color-line: #dbe2ea;
	--fkt-color-on-primary: #fff;
	--fkt-color-on-secondary: #fff;
	--fkt-color-footer: #101827;
	--fkt-color-footer-text: #d7deea;
	--fkt-color-footer-muted: #aab6c8;
	--fkt-color-dark-page: #0d1422;
	--fkt-color-dark-surface: #141e2e;
	--fkt-color-dark-surface-soft: #1b2738;
	--fkt-color-dark-heading: #f7f9fc;
	--fkt-color-dark-text: #d5dce7;
	--fkt-color-dark-muted: #9ba9bd;
	--fkt-color-dark-line: #2b394d;
	--fkt-color-dark-footer: #080d16;
	--fkt-color-dark-footer-text: #dce4ef;
	--fkt-content-width: 1440px;
	--fkt-content-narrow: 820px;
	--fkt-header-height: 78px;
	--fkt-header-secondary-height: 52px;
	--fkt-header-primary-rendered-height: var(--fkt-header-height);
	--fkt-admin-bar-offset: 0px;
	--fkt-sticky-offset: 20px;
	--fkt-control-height: 46px;
	--fkt-control-font-size: var(--fkt-text-sm);
	--fkt-heading-weight: 760;
	--fkt-favorites-icon-size: 30px;
	--fkt-logo-max-height: 48px;
	--fkt-radius-sm: 8px;
	--fkt-radius-md: 14px;
	--fkt-radius-lg: 22px;
	--fkt-shadow-sm: 0 8px 24px rgba(17, 24, 39, .07);
	--fkt-shadow-md: 0 20px 60px rgba(17, 24, 39, .11);
	--fkt-text-xs: clamp(.76rem, .73rem + .09vw, .84rem);
	--fkt-text-sm: clamp(.88rem, .84rem + .12vw, .98rem);
	--fkt-text-md: clamp(1rem, .96rem + .16vw, 1.12rem);
	--fkt-text-lg: clamp(1.18rem, 1.08rem + .32vw, 1.42rem);
	--fkt-text-xl: clamp(1.5rem, 1.25rem + .8vw, 2.15rem);
	--fkt-text-2xl: clamp(2rem, 1.55rem + 1.45vw, 3.2rem);
	--fkt-text-hero: clamp(2.7rem, 1.9rem + 2.7vw, 5.5rem);
	--fkt-space-xs: clamp(.65rem, .56rem + .22vw, .85rem);
	--fkt-space-sm: clamp(.9rem, .78rem + .35vw, 1.2rem);
	--fkt-space-md: clamp(1.25rem, 1.05rem + .65vw, 1.85rem);
	--fkt-space-lg: clamp(1.8rem, 1.45rem + 1.05vw, 2.8rem);
	--fkt-space-xl: clamp(2.5rem, 1.9rem + 1.8vw, 4.25rem);
	--fkt-space-2xl: clamp(3.5rem, 2.6rem + 2.8vw, 6.5rem);
	color-scheme: light;
}

html[data-fkt-default-mode="dark"],
html[data-fkt-color-mode="dark"] {
	--fkt-color-page: var(--fkt-color-dark-page);
	--fkt-color-surface: var(--fkt-color-dark-surface);
	--fkt-color-surface-soft: var(--fkt-color-dark-surface-soft);
	--fkt-color-heading: var(--fkt-color-dark-heading);
	--fkt-color-text: var(--fkt-color-dark-text);
	--fkt-color-muted: var(--fkt-color-dark-muted);
	--fkt-color-line: var(--fkt-color-dark-line);
	--fkt-color-footer: var(--fkt-color-dark-footer);
	--fkt-color-footer-text: var(--fkt-color-dark-footer-text);
	--fkt-color-footer-muted: color-mix(in srgb, var(--fkt-color-dark-footer-text) 72%, transparent);
	--wp--preset--color--ink: var(--fkt-color-dark-heading);
	--wp--preset--color--muted: var(--fkt-color-dark-muted);
	--wp--preset--color--surface: var(--fkt-color-dark-surface);
	--wp--preset--color--soft: var(--fkt-color-dark-page);
	--wp--preset--color--line: var(--fkt-color-dark-line);
	color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
	html[data-fkt-default-mode="system"]:not([data-fkt-color-mode="light"]) {
		--fkt-color-page: var(--fkt-color-dark-page);
		--fkt-color-surface: var(--fkt-color-dark-surface);
		--fkt-color-surface-soft: var(--fkt-color-dark-surface-soft);
		--fkt-color-heading: var(--fkt-color-dark-heading);
		--fkt-color-text: var(--fkt-color-dark-text);
		--fkt-color-muted: var(--fkt-color-dark-muted);
		--fkt-color-line: var(--fkt-color-dark-line);
		--fkt-color-footer: var(--fkt-color-dark-footer);
		--fkt-color-footer-text: var(--fkt-color-dark-footer-text);
		--fkt-color-footer-muted: color-mix(in srgb, var(--fkt-color-dark-footer-text) 72%, transparent);
		--wp--preset--color--ink: var(--fkt-color-dark-heading);
		--wp--preset--color--muted: var(--fkt-color-dark-muted);
		--wp--preset--color--surface: var(--fkt-color-dark-surface);
		--wp--preset--color--soft: var(--fkt-color-dark-page);
		--wp--preset--color--line: var(--fkt-color-dark-line);
		color-scheme: dark;
	}
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--fkt-color-page);
	color: var(--fkt-color-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: var(--fkt-text-md);
	line-height: 1.6;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body.fkt-theme :where(.wp-site-blocks, .fkt-entry-content, .wp-block-post-content) { color: var(--fkt-color-text); }

body.admin-bar { --fkt-admin-bar-offset: 32px; }

img { max-width: 100%; height: auto; }

a { color: var(--fkt-color-primary); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--fkt-color-secondary); }

button,
input,
select,
textarea { font: inherit; }

button,
a { -webkit-tap-highlight-color: transparent; }

:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--fkt-color-primary) 62%, transparent);
	outline-offset: 3px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 .65em;
	color: var(--fkt-color-heading);
	font-weight: var(--fkt-heading-weight);
	line-height: 1.08;
	letter-spacing: -.025em;
}

h1 { font-size: var(--fkt-text-2xl); }
h2 { font-size: var(--fkt-text-xl); }
h3 { font-size: var(--fkt-text-lg); }

p { margin: 0 0 1.25em; }

.fkt-container {
	width: min(calc(100% - clamp(2rem, 5vw, 5rem)), var(--fkt-content-width));
	margin-inline: auto;
}

.fkt-content-narrow { max-width: var(--fkt-content-narrow); }

.fkt-main { min-height: 45vh; padding-block: var(--fkt-space-xl); }

.fkt-front-page { padding-block: 0; }

.fkt-skip-link {
	position: fixed;
	z-index: 99999;
	top: 8px;
	left: 8px;
	padding: .75rem 1rem;
	transform: translateY(-180%);
	background: var(--fkt-color-heading);
	color: var(--fkt-color-surface);
	border-radius: var(--fkt-radius-sm);
}

.fkt-skip-link:focus { transform: none; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (max-width: 782px) {
	body.admin-bar { --fkt-admin-bar-offset: 46px; }
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}
