/* ==========================================================================
   KiaraHub — base.css
   Design tokens + site chrome (header/footer/buttons/hero). Minimalist,
   high-contrast, dark-mode-first. Theme toggled via [data-theme] on <html>,
   set by assets/js/base.js and persisted in localStorage.
   ========================================================================== */

:root {
	/* Light mode (default) */
	--kh-bg:        #ffffff;
	--kh-bg-alt:    #f6f7f9;
	--kh-surface:   #ffffff;
	--kh-border:    #e6e8ec;
	--kh-text:      #14161a;
	--kh-text-dim:  #5b616e;
	--kh-accent:    #5b5bf7;
	--kh-accent-2:  #00c48c;
	--kh-code-bg:   #0f1117;
	--kh-code-text: #e7e9ee;

	--kh-radius:    12px;
	--kh-radius-lg: 18px;
	--kh-shadow:    0 1px 2px rgba(20,22,26,.04), 0 8px 24px rgba(20,22,26,.06);
	--kh-font:      'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--kh-mono:      'IBM Plex Mono', 'SFMono-Regular', Consolas, Menlo, monospace;
	--kh-max:       1120px;
}

[data-theme="dark"] {
	--kh-bg:        #0b0c10;
	--kh-bg-alt:    #101218;
	--kh-surface:   #14161d;
	--kh-border:    #23262f;
	--kh-text:      #f2f3f5;
	--kh-text-dim:  #9298a6;
	--kh-accent:    #8b8bff;
	--kh-accent-2:  #29d6a3;
	--kh-code-bg:   #08090c;
	--kh-code-text: #e7e9ee;
	--kh-shadow:    0 1px 2px rgba(0,0,0,.3), 0 12px 28px rgba(0,0,0,.4);
}

/* Respect system preference on first load before JS runs (no flash to light). */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--kh-bg: #0b0c10; --kh-bg-alt:#101218; --kh-surface:#14161d; --kh-border:#23262f;
		--kh-text:#f2f3f5; --kh-text-dim:#9298a6; --kh-accent:#8b8bff; --kh-accent-2:#29d6a3;
		--kh-code-bg:#08090c; --kh-code-text:#e7e9ee;
		--kh-shadow: 0 1px 2px rgba(0,0,0,.3), 0 12px 28px rgba(0,0,0,.4);
	}
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--kh-bg);
	color: var(--kh-text);
	font-family: var(--kh-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	transition: background-color .2s ease, color .2s ease;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
code, pre { font-family: var(--kh-mono); }

.kh-wrap { max-width: var(--kh-max); margin: 0 auto; padding: 0 24px; }
.kh-skip-link {
	position: absolute; left: -999px; top: auto;
	background: var(--kh-accent); color: #fff; padding: 10px 16px; border-radius: 8px; z-index: 999;
}
.kh-skip-link:focus { left: 16px; top: 16px; }

/* ---------- Buttons ---------- */
.kh-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--kh-font); font-weight: 600; font-size: 14px;
	padding: 11px 20px; border-radius: 999px; border: 1px solid transparent;
	cursor: pointer; transition: transform .12s ease, background-color .15s ease, border-color .15s ease, opacity .15s ease;
	white-space: nowrap;
}
.kh-btn:active { transform: scale(.97); }
.kh-btn-primary { background: var(--kh-accent); color: #fff; }
.kh-btn-primary:hover { opacity: .9; }
.kh-btn-ghost { background: transparent; color: var(--kh-text); border-color: var(--kh-border); }
.kh-btn-ghost:hover { border-color: var(--kh-accent); color: var(--kh-accent); }
.kh-btn-small { padding: 8px 14px; font-size: 13px; }
.kh-btn-large { padding: 14px 28px; font-size: 15px; }
.kh-btn-full { width: 100%; }
.kh-btn-success { background: var(--kh-accent-2) !important; color: #06251b !important; }

/* ---------- Header ---------- */
.kh-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--kh-bg) 85%, transparent);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--kh-border);
}
.kh-header-inner { display: flex; align-items: center; gap: 32px; height: 68px; }
.kh-logo { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 18px; }
.kh-logo-mark {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 8px;
	background: var(--kh-accent); color: #fff; font-family: var(--kh-mono); font-size: 13px;
}
.kh-primary-nav { flex: 1; }
.kh-nav-list, .kh-nav-list-mobile { list-style: none; display: flex; gap: 28px; margin: 0; padding: 0; }
.kh-nav-list li a, .kh-nav-list-mobile li a { font-weight: 500; font-size: 14.5px; color: var(--kh-text-dim); }
.kh-nav-list li a:hover, .kh-nav-list-mobile li a:hover { color: var(--kh-text); }
.kh-header-actions { display: flex; align-items: center; gap: 12px; }
.kh-theme-toggle {
	width: 36px; height: 36px; border-radius: 999px; border: 1px solid var(--kh-border);
	background: var(--kh-surface); color: var(--kh-text); display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.kh-icon-sun { display: none; }
[data-theme="dark"] .kh-icon-moon { display: none; }
[data-theme="dark"] .kh-icon-sun { display: block; }
.kh-mobile-toggle { display: none; flex-direction: column; gap: 4px; background: none; border: none; cursor: pointer; padding: 8px; }
.kh-mobile-toggle span { width: 20px; height: 2px; background: var(--kh-text); border-radius: 2px; }
.kh-mobile-nav { display: none; flex-direction: column; gap: 14px; padding: 16px 24px 24px; border-top: 1px solid var(--kh-border); }
.kh-mobile-nav.is-open { display: flex; }

/* ---------- Hero / sections ---------- */
.kh-hero { padding: 96px 0 64px; text-align: center; }
.kh-hero-kicker {
	display: inline-block; font-family: var(--kh-mono); font-size: 12.5px; letter-spacing: .04em;
	color: var(--kh-accent); background: color-mix(in srgb, var(--kh-accent) 12%, transparent);
	padding: 6px 14px; border-radius: 999px; margin-bottom: 22px;
}
.kh-hero-title { font-size: clamp(32px, 5vw, 52px); line-height: 1.15; font-weight: 800; margin: 0 0 20px; letter-spacing: -.02em; }
.kh-hero-sub { max-width: 620px; margin: 0 auto 32px; color: var(--kh-text-dim); font-size: 17px; }
.kh-hero-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 28px; }
.kh-stats { font-size: 13px; color: var(--kh-text-dim); }

.kh-section { padding: 64px 0; }
.kh-section-alt { background: var(--kh-bg-alt); }
.kh-section-title { font-size: 28px; font-weight: 800; letter-spacing: -.01em; margin: 0 0 32px; }
.kh-section-header-row { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 28px; }
.kh-section-header-row .kh-section-title { margin: 0; }
.kh-link-arrow { color: var(--kh-accent); font-weight: 600; font-size: 14px; }

.kh-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.kh-step { padding: 28px; border: 1px solid var(--kh-border); border-radius: var(--kh-radius-lg); background: var(--kh-surface); }
.kh-step-num { font-family: var(--kh-mono); color: var(--kh-accent); font-size: 13px; font-weight: 600; }
.kh-step h3 { margin: 12px 0 8px; font-size: 18px; }
.kh-step p { margin: 0; color: var(--kh-text-dim); font-size: 14.5px; }

.kh-cta { padding: 80px 0; text-align: center; }
.kh-cta h2 { font-size: 30px; font-weight: 800; margin: 0 0 12px; }
.kh-cta p { color: var(--kh-text-dim); margin: 0 0 28px; }

/* ---------- Footer ---------- */
.kh-footer { border-top: 1px solid var(--kh-border); margin-top: 64px; padding: 56px 0 0; background: var(--kh-bg-alt); }
.kh-footer-inner { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; padding-bottom: 40px; }
.kh-footer-brand p { color: var(--kh-text-dim); font-size: 14px; max-width: 320px; margin-top: 12px; }
.kh-footer-title { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--kh-text-dim); margin: 0 0 14px; }
.kh-footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.kh-footer-col a { font-size: 14.5px; color: var(--kh-text-dim); }
.kh-footer-col a:hover { color: var(--kh-text); }
.kh-footer-bottom {
	display: flex; justify-content: space-between; align-items: center;
	border-top: 1px solid var(--kh-border); padding: 20px 24px;
	font-size: 13px; color: var(--kh-text-dim);
}

/* ---------- Generic page ---------- */
.kh-page { padding: 56px 0 80px; }
.kh-title { font-size: 32px; font-weight: 800; margin: 0 0 24px; }
.kh-content { color: var(--kh-text-dim); }

/* ---------- Front-end submission form ---------- */
.kh-submit-page { max-width: 640px; }
.kh-submit-form { display: flex; flex-direction: column; gap: 20px; margin-top: 8px; }
.kh-form-field { display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--kh-text-dim); }
.kh-form-field em { color: var(--kh-accent); font-style: normal; }
.kh-form-field input[type="text"],
.kh-form-field input[type="email"],
.kh-form-field select,
.kh-form-field textarea {
	font-family: var(--kh-font); font-size: 15px; color: var(--kh-text); background: var(--kh-surface);
	border: 1px solid var(--kh-border); border-radius: 10px; padding: 12px 14px; resize: vertical;
}
.kh-form-field input:focus, .kh-form-field select:focus, .kh-form-field textarea:focus { outline: none; border-color: var(--kh-accent); }
.kh-mono-textarea { font-family: var(--kh-mono) !important; font-size: 13.5px !important; line-height: 1.6; }
.kh-form-row-split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.kh-form-toggle { padding: 14px 16px; border: 1px dashed var(--kh-border); border-radius: var(--kh-radius); }
.kh-form-toggle label { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; }
.kh-form-toggle .kh-help { margin: 8px 0 0 24px; }
.kh-help { font-size: 12.5px; color: var(--kh-text-dim); font-weight: 400; }
.kh-form-error, .kh-form-success {
	padding: 16px 18px; border-radius: var(--kh-radius); margin-bottom: 24px; font-size: 14.5px;
}
.kh-form-error { background: color-mix(in srgb, #ff5c5c 12%, transparent); border: 1px solid color-mix(in srgb, #ff5c5c 30%, transparent); color: #c0362c; }
[data-theme="dark"] .kh-form-error { color: #ff9b93; }
.kh-form-success { background: color-mix(in srgb, var(--kh-accent-2) 12%, transparent); border: 1px solid color-mix(in srgb, var(--kh-accent-2) 30%, transparent); }
.kh-form-success h2 { margin-top: 0; }
/* Honeypot: visually hidden but still present/focusable in DOM order for bots, not for screen readers/users. */
.kh-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 600px) { .kh-form-row-split { grid-template-columns: 1fr; } }

/* ---------- Pills / misc ---------- */
.kh-pill {
	display: inline-block; font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 999px;
	background: color-mix(in srgb, var(--kh-accent) 14%, transparent); color: var(--kh-accent);
}
.kh-breadcrumb { font-size: 13px; color: var(--kh-text-dim); display: flex; gap: 8px; padding: 24px 0 0; }
.kh-breadcrumb a:hover { color: var(--kh-text); }
