/* ═══════════════════════════════════════════
   KEYCOACHPRO THEME — MAIN STYLESHEET
   Author: Joshua Okposo
   Version: 1.0.0
═══════════════════════════════════════════ */

/* ── CSS Variables ── */
:root {
	--kcp-teal:        #02667f;
	--kcp-teal-dark:   #014d5e;
	--kcp-teal-xdark:  #012f3a;
	--kcp-gold:        #e8a020;
	--kcp-gold-light:  #f5c050;
	--kcp-ink:         #16110a;
	--kcp-ink-mid:     #2e2418;
	--kcp-ink-light:   #6b5c4a;
	--kcp-cream:       #f2ece2;
	--kcp-cream-mid:   #e8e0d4;
	--kcp-cream-dark:  #d8cfc2;
	--kcp-white:       #ffffff;
	/* Font stacks — fallbacks chosen to minimise layout shift on web font swap.
	   Impact is metrically close to Bebas Neue (condensed, similar cap-height).
	   ui-sans-serif / system-ui is the OS default sans matching DM Sans rhythm.
	   ui-monospace / Menlo matches Space Mono spacing closely. */
	--kcp-ff-display:  'Bebas Neue', Impact, 'Arial Narrow', sans-serif;
	--kcp-ff-body:     'DM Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
	--kcp-ff-mono:     'Space Mono', ui-monospace, 'Cascadia Code', Menlo, Consolas, monospace;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
	font-family: var(--kcp-ff-body);
	background: var(--kcp-cream); /* cream at all times — preloader overlay covers it during load */
	color: var(--kcp-ink);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}
/* Once preloader is gone, restore page background */
body.kcp-loaded {
	background: var(--kcp-cream);
}
img { display: block; max-width: 100%; height: auto; }
a { text-decoration: none; color: inherit; }
button { font-family: var(--kcp-ff-body); }
::selection { background: var(--kcp-teal); color: #fff; }
*:focus-visible {
	outline: 2px solid var(--kcp-teal);
	outline-offset: 3px;
}

/* ── Accessibility: skip link ── */
.skip-link {
	position: absolute; top: -100px; left: 20px;
	background: var(--kcp-teal); color: #fff;
	padding: 8px 16px; border-radius: 0 0 6px 6px;
	font-size: 13px; font-weight: 700; z-index: 99999;
	transition: top .2s;
}
.skip-link:focus { top: 0; }

/* ═══════════════════════════════════════════
   PRELOADER — styles live in header.php <head>
   as critical inline CSS so they render on the
   very first paint with zero external CSS dependency.
   Nothing here to avoid overriding the inline styles.
═══════════════════════════════════════════ */

/* ═══════════════════════════════════════════
   NAVIGATION
═══════════════════════════════════════════ */
.kcp-site-header {
	position: sticky; top: 0; z-index: 1000;
	background: var(--kcp-white);
	border-bottom: 2.5px solid var(--kcp-ink);
	transition: box-shadow .3s;
}
.kcp-site-header.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,.1); }
.kcp-nav-inner {
	display: flex; align-items: center;
	justify-content: space-between;
	min-height: 64px; padding: 10px 48px;
	max-width: 1400px; margin: 0 auto;
}
/* ── Logo base (shared by all styles) ── */
.kcp-nav-logo {
	display: flex; align-items: center; flex-shrink: 0;
	font-family: var(--kcp-ff-display);
	font-size: 26px; letter-spacing: 3px; color: var(--kcp-ink);
}
.kcp-logo-text {
	display: flex; flex-direction: column;
	text-decoration: none; line-height: 1; gap: 2px;
	align-items: flex-start;
}
.kcp-logo-wordmark {
	font-family: var(--kcp-ff-display);
	font-size: 26px; letter-spacing: 3px; color: var(--kcp-ink); line-height: 1;
}
.kcp-logo-wordmark span { color: var(--kcp-teal); }
.kcp-logo-tagline {
	font-family: var(--kcp-ff-mono); font-size: 8px; letter-spacing: 2.5px;
	color: var(--kcp-teal); text-transform: uppercase; font-weight: 700; line-height: 1;
}

/* ══════════════════════════════════════════════════
   STYLE 1 — Left Flush (default)
   Wordmark + tagline flush left, no decoration.
══════════════════════════════════════════════════ */
/* inherits base — no overrides needed */

/* ══════════════════════════════════════════════════
   STYLE 2 — Left, Tagline Centred Under Wordmark
   Logo stays left; tagline stretches and centres under
   the wordmark so it reads centred beneath KEYCOACHPRO.
══════════════════════════════════════════════════ */
[data-logo-style="left-centered"] .kcp-logo-tagline {
	align-self: stretch; text-align: center; letter-spacing: 2px;
}

/* ══════════════════════════════════════════════════
   STYLE 3 — Entire Block Centred (absolute)
   Logo floats at the exact horizontal centre of the header.
   Nav links left, CTA buttons right, logo in the middle.
══════════════════════════════════════════════════ */
[data-logo-style="centered"] .kcp-nav-inner { position: relative; }
[data-logo-style="centered"] .kcp-nav-logo {
	position: absolute; left: 50%; transform: translateX(-50%); pointer-events: all;
}
[data-logo-style="centered"] .kcp-logo-text { align-items: center; }
[data-logo-style="centered"] .kcp-logo-tagline { text-align: center; }

/* ══════════════════════════════════════════════════
   STYLE 4 — Centre Split (flex 3-column)
   Nav divided into three equal flex columns:
   links | centred logo | CTA buttons.
   Wordmark and tagline perfectly centred over each other.
══════════════════════════════════════════════════ */
[data-logo-style="split-center"] .kcp-nav-logo { flex: 1; justify-content: center; }
[data-logo-style="split-center"] .kcp-logo-text { align-items: center; }
[data-logo-style="split-center"] .kcp-logo-tagline { text-align: center; letter-spacing: 3px; }
[data-logo-style="split-center"] .kcp-main-nav { flex: 1; }
[data-logo-style="split-center"] .kcp-nav-actions { flex: 1; justify-content: flex-end; }

/* ══════════════════════════════════════════════════
   STYLE 5 — Stacked Bold with Separator
   Larger wordmark (32px), tagline below separated by
   a full-width teal border line. Editorial / masthead feel.
══════════════════════════════════════════════════ */
[data-logo-style="stacked-bold"] .kcp-logo-text { gap: 5px; }
[data-logo-style="stacked-bold"] .kcp-logo-wordmark { font-size: 32px; letter-spacing: 4px; }
[data-logo-style="stacked-bold"] .kcp-logo-tagline {
	font-size: 9px; letter-spacing: 3px; padding-top: 5px;
	border-top: 2px solid var(--kcp-teal); width: 100%; color: var(--kcp-ink-light);
}

/* ══════════════════════════════════════════════════
   STYLE 6 — Right Aligned
   Logo pushed to the far right of the nav.
   Nav links left, logo right.
══════════════════════════════════════════════════ */
[data-logo-style="right"] .kcp-nav-logo {
	margin-left: auto; order: 3;
}
[data-logo-style="right"] .kcp-main-nav { order: 1; }
[data-logo-style="right"] .kcp-nav-actions { order: 2; }

/* ══════════════════════════════════════════════════
   STYLE 7 — Teal Accent Bar Left
   A bold vertical teal bar on the left of the logo,
   wordmark and tagline offset to the right of it.
   Strong brand identity marker.
══════════════════════════════════════════════════ */
[data-logo-style="accent-bar"] .kcp-logo-text {
	padding-left: 12px;
	border-left: 4px solid var(--kcp-teal);
	gap: 4px;
}
[data-logo-style="accent-bar"] .kcp-logo-wordmark { font-size: 24px; letter-spacing: 3px; }
[data-logo-style="accent-bar"] .kcp-logo-tagline { color: var(--kcp-ink-light); letter-spacing: 2px; }

/* ══════════════════════════════════════════════════
   STYLE 8 — Tagline Above Wordmark (Inverted Stack)
   Tagline sits above the wordmark — unusual and distinctive.
   Wordmark larger to anchor the design.
══════════════════════════════════════════════════ */
[data-logo-style="inverted"] .kcp-logo-text {
	flex-direction: column-reverse; gap: 4px;
}
[data-logo-style="inverted"] .kcp-logo-wordmark { font-size: 28px; letter-spacing: 3px; }
[data-logo-style="inverted"] .kcp-logo-tagline {
	font-size: 7px; letter-spacing: 3.5px; color: var(--kcp-ink-light);
}

/* ══════════════════════════════════════════════════
   STYLE 9 — Inline Compact (wordmark | tagline side by side)
   Wordmark and tagline on the same line separated by a dot.
   Space-efficient, good for busy navs with many links.
══════════════════════════════════════════════════ */
[data-logo-style="inline"] .kcp-logo-text {
	flex-direction: row; align-items: center; gap: 8px;
}
[data-logo-style="inline"] .kcp-logo-wordmark { font-size: 22px; letter-spacing: 2px; }
[data-logo-style="inline"] .kcp-logo-tagline {
	font-size: 8px; letter-spacing: 2px; padding-left: 8px;
	border-left: 1px solid var(--kcp-cream-dark);
	color: var(--kcp-ink-light);
}

/* ══════════════════════════════════════════════════
   STYLE 10 — Full-Width Two-Row Header
   Row 1: nav links left | CTA right.
   Row 2: centred logo spanning full width — maximum presence.
   Header height grows to two rows automatically.
══════════════════════════════════════════════════ */
[data-logo-style="two-row"] .kcp-nav-inner {
	flex-wrap: wrap; gap: 0;
	padding-top: 8px; padding-bottom: 0;
}
[data-logo-style="two-row"] .kcp-main-nav {
	order: 1; flex: 1;
}
[data-logo-style="two-row"] .kcp-nav-actions {
	order: 2;
}
[data-logo-style="two-row"] .kcp-hamburger {
	order: 3;
}
[data-logo-style="two-row"] .kcp-nav-logo {
	order: 4;
	width: 100%;
	justify-content: center;
	padding: 10px 0 12px;
	border-top: 1px solid var(--kcp-cream-mid);
	margin-top: 8px;
}
[data-logo-style="two-row"] .kcp-logo-text { align-items: center; }
[data-logo-style="two-row"] .kcp-logo-wordmark { font-size: 32px; letter-spacing: 5px; }
[data-logo-style="two-row"] .kcp-logo-tagline {
	text-align: center; letter-spacing: 4px; font-size: 9px;
}

/* Logo image: no fixed height — scales naturally */
.kcp-nav-logo img {
	max-height: 60px;
	max-width: 280px;
	width: auto;
	height: auto;
	display: block;
}
/* Main menu */
.kcp-main-menu {
	display: flex; align-items: center; gap: 2px;
	list-style: none;
}
.kcp-main-menu li a {
	font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .8px;
	color: var(--kcp-ink-light); padding: 8px 14px;
	border-radius: 4px; transition: all .2s; display: block;
}
.kcp-main-menu li a:hover,
.kcp-main-menu li.current-menu-item a,
.kcp-main-menu li.current_page_item a {
	color: var(--kcp-teal); background: rgba(2,102,127,.06);
}
/* Nav CTA buttons */
.kcp-nav-actions { display: flex; align-items: center; gap: 10px; }
.kcp-btn-ghost {
	padding: 8px 20px; border: 2px solid var(--kcp-ink);
	color: var(--kcp-ink); background: transparent;
	border-radius: 4px; font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 1px;
	cursor: pointer; transition: all .2s;
}
.kcp-btn-ghost:hover { border-color: var(--kcp-teal); color: var(--kcp-teal); }
.kcp-btn-solid {
	padding: 8px 20px; background: var(--kcp-ink); color: var(--kcp-white);
	border: 2px solid var(--kcp-ink); border-radius: 4px;
	font-size: 12px; font-weight: 700; text-transform: uppercase;
	letter-spacing: 1px; cursor: pointer; transition: all .2s;
}
.kcp-btn-solid:hover { background: var(--kcp-teal); border-color: var(--kcp-teal); }
/* Hamburger */
.kcp-hamburger {
	display: none; flex-direction: column; gap: 5px;
	background: none; border: none; cursor: pointer; padding: 6px;
}
.kcp-hamburger span {
	display: block; width: 24px; height: 2px;
	background: var(--kcp-ink); border-radius: 2px;
	transition: all .3s; transform-origin: center;
}
.kcp-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.kcp-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.kcp-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
/* Mobile menu */
.kcp-mobile-menu {
	display: none; position: fixed;
	top: var(--kcp-header-h, 64px); left: 0; right: 0; bottom: 0;
	background: var(--kcp-white); z-index: 998;
	flex-direction: column; padding: 24px 28px;
	overflow-y: auto; border-top: 2px solid var(--kcp-ink);
}
.kcp-mobile-menu.open { display: flex; }
.kcp-mobile-menu ul { list-style: none; }
.kcp-mobile-menu ul li a {
	display: block; font-family: var(--kcp-ff-display);
	font-size: 34px; letter-spacing: 2px; color: var(--kcp-ink);
	padding: 14px 0; border-bottom: 1px solid var(--kcp-cream-mid);
	transition: color .2s, padding-left .2s;
}
.kcp-mobile-menu ul li a:hover { color: var(--kcp-teal); padding-left: 10px; }
.kcp-mobile-menu-actions {
	display: flex; flex-direction: column; gap: 10px; margin-top: 24px;
}
.kcp-mobile-menu-actions button {
	padding: 14px; width: 100%; font-size: 13px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 1px;
	border-radius: 4px; cursor: pointer;
}

/* ═══════════════════════════════════════════
   SHARED UTILITIES
═══════════════════════════════════════════ */
.kcp-section-wrap { max-width: 1400px; margin: 0 auto; }
.kcp-section-kicker {
	font-family: var(--kcp-ff-display); font-size: 12px;
	letter-spacing: 5px; color: var(--kcp-teal);
	text-transform: uppercase; margin-bottom: 6px;
	display: block;
}
.kcp-section-h2 {
	font-family: var(--kcp-ff-display); font-size: 64px;
	letter-spacing: 2px; color: var(--kcp-ink);
	line-height: .95; margin-bottom: 48px;
}
/* Buttons */
.kcp-btn-gold {
	display: inline-block; padding: 14px 32px;
	background: var(--kcp-gold); color: var(--kcp-ink);
	border: none; border-radius: 4px; font-family: var(--kcp-ff-body);
	font-size: 13px; font-weight: 700; text-transform: uppercase;
	letter-spacing: 1px; cursor: pointer; transition: all .2s;
}
.kcp-btn-gold:hover {
	background: var(--kcp-gold-light);
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
.kcp-btn-white-outline {
	display: inline-block; padding: 14px 32px;
	background: transparent; color: #fff;
	border: 2px solid rgba(255,255,255,.5); border-radius: 4px;
	font-family: var(--kcp-ff-body); font-size: 13px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 1px; cursor: pointer;
	transition: all .2s;
}
.kcp-btn-white-outline:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.kcp-btn-teal {
	display: inline-block; padding: 12px 28px;
	background: var(--kcp-teal); color: #fff; border: none;
	border-radius: 4px; font-family: var(--kcp-ff-body);
	font-size: 12px; font-weight: 700; text-transform: uppercase;
	letter-spacing: 1px; cursor: pointer; transition: all .2s;
}
.kcp-btn-teal:hover { background: var(--kcp-teal-dark); transform: translateY(-2px); }
.kcp-btn-ink {
	display: inline-block; padding: 12px 28px;
	background: var(--kcp-ink); color: #fff; border: none;
	border-radius: 4px; font-family: var(--kcp-ff-body);
	font-size: 12px; font-weight: 700; text-transform: uppercase;
	letter-spacing: 1px; cursor: pointer; transition: all .2s;
}
.kcp-btn-ink:hover { background: var(--kcp-teal); }
/* Pulse animation */
@keyframes kcpPulse {
	0%,100% { opacity: .4; transform: scale(1); }
	50%      { opacity: 1; transform: scale(1.4); }
}

/* ═══════════════════════════════════════════
   HERO SECTION — see updated block later in file
═══════════════════════════════════════════ */
.kcp-hero-kicker {
	display: inline-flex; align-items: center; gap: 8px;
	background: rgba(255,255,255,.15); color: #fff;
	font-family: var(--kcp-ff-mono); font-size: 10px;
	letter-spacing: 2px; text-transform: uppercase;
	padding: 6px 14px; border-radius: 3px; margin-bottom: 24px;
	border: 1px solid rgba(255,255,255,.2);
}
.kcp-hero-kicker span {
	width: 6px; height: 6px; border-radius: 50%;
	background: var(--kcp-gold); animation: kcpPulse 1.5s infinite;
}
.kcp-hero-h1 {
	font-family: var(--kcp-ff-display); font-size: 82px;
	letter-spacing: 3px; line-height: .9; color: #fff; margin-bottom: 20px;
}
.kcp-hero-h1 em {
	color: var(--kcp-gold); font-style: normal;
	display: block; font-size: 72px;
}
.kcp-hero-sub {
	color: rgba(255,255,255,.72); font-size: 15px;
	line-height: 1.7; margin-bottom: 36px; max-width: 380px;
}
.kcp-hero-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.kcp-hero-right {
	/* background handled by .kcp-hero gradient — no separate bg here */
	position: relative;
	display: flex; flex-direction: column;
	align-items: center; justify-content: center; overflow: hidden;
}
/* hero-right ::before / ::after handled by .kcp-hero-bg elements */
.kcp-hero-keyboard-frame {
	position: relative; z-index: 2;
	width: 90%; max-width: 560px;
	border-radius: 12px; overflow: hidden;
	box-shadow: 0 32px 80px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.06);
}
.kcp-keyboard-img-wrap {
	width: 100%; position: relative; overflow: hidden;
}
.kcp-keyboard-img-wrap img {
	width: 100%; height: auto; display: block;
}
.kcp-keyboard-img-placeholder {
	width: 100%; height: 220px;
	background: var(--kcp-teal-xdark);
	display: flex; align-items: center; justify-content: center;
	position: relative; overflow: hidden;
}
.kcp-kb-topbar {
	background: #0a0808; padding: 8px 14px;
	display: flex; align-items: center; gap: 8px;
}
.kcp-kb-dot { width: 9px; height: 9px; border-radius: 50%; }
.kcp-kb-topbar-title {
	font-family: var(--kcp-ff-mono); font-size: 9px;
	color: #4a5568; margin-left: 8px; letter-spacing: 1px;
}
.kcp-kb-bottombar {
	background: #0a0808; padding: 8px 14px;
	display: flex; align-items: center; justify-content: space-between;
	border-top: 1px solid rgba(255,255,255,.06);
}
.kcp-kb-bottombar-label {
	font-family: var(--kcp-ff-mono); font-size: 9px;
	color: var(--kcp-teal); letter-spacing: 2px;
}
.kcp-kb-lock-note {
	font-family: var(--kcp-ff-mono); font-size: 9px;
	color: rgba(255,255,255,.2); letter-spacing: 1px;
}
.kcp-hero-app-link {
	margin-top: 14px; position: relative; z-index: 2;
	font-family: var(--kcp-ff-mono); font-size: 10px;
	letter-spacing: 1.5px; color: rgba(255,255,255,.35);
	text-transform: uppercase; display: flex; align-items: center; gap: 6px;
}
.kcp-hero-app-link::before,
.kcp-hero-app-link::after {
	content: ''; flex: 1; height: 1px; background: rgba(255,255,255,.1);
}
.kcp-hero-app-link a { color: var(--kcp-gold); border-bottom: 1px solid rgba(232,160,32,.3); }
.kcp-hero-app-link a:hover { border-color: var(--kcp-gold); }

/* ═══════════════════════════════════════════
   STATS STRIP
═══════════════════════════════════════════ */
.kcp-stats-strip {
	display: grid; grid-template-columns: repeat(4, 1fr);
	border-bottom: 2.5px solid var(--kcp-ink);
	background: var(--kcp-white);
}
.kcp-stat-item {
	padding: 24px 32px; border-right: 2px solid var(--kcp-ink);
	display: flex; align-items: center; gap: 16px;
}
.kcp-stat-item:last-child { border-right: none; }
.kcp-stat-num {
	font-family: var(--kcp-ff-display); font-size: 44px;
	color: var(--kcp-teal); line-height: 1; flex-shrink: 0;
}
.kcp-stat-label {
	font-size: 12px; font-weight: 700; text-transform: uppercase;
	letter-spacing: .5px; color: var(--kcp-ink-light); line-height: 1.4;
}
.kcp-stat-sub { font-size: 11px; color: var(--kcp-cream-dark); margin-top: 2px; }

/* ═══════════════════════════════════════════
   SERVICES SECTION
═══════════════════════════════════════════ */
.kcp-services { padding: 80px 48px; background: var(--kcp-cream); }
.kcp-service-stack { display: flex; flex-direction: column; gap: 2px; }
.kcp-service-row {
	display: grid; grid-template-columns: 80px 1fr 200px;
	align-items: center; gap: 24px; padding: 28px;
	background: var(--kcp-white); border: 2px solid var(--kcp-ink);
	transition: all .25s; cursor: pointer; color: inherit;
}
.kcp-service-row:hover { background: var(--kcp-teal); transform: translateX(6px); }
.kcp-service-row:hover .kcp-svc-num { color: rgba(255,255,255,.2); }
.kcp-service-row:hover .kcp-svc-title { color: #fff; }
.kcp-service-row:hover .kcp-svc-desc { color: rgba(255,255,255,.65); }
.kcp-service-row:hover .kcp-svc-badge { border-color: rgba(255,255,255,.4); color: #fff; }
.kcp-service-row:hover .kcp-svc-arrow { color: #fff; transform: translateX(6px); }
.kcp-svc-num {
	font-family: var(--kcp-ff-display); font-size: 52px;
	color: var(--kcp-cream-dark); line-height: 1; transition: color .25s;
}
.kcp-svc-title {
	font-family: var(--kcp-ff-display); font-size: 28px;
	letter-spacing: 1px; color: var(--kcp-ink);
	margin-bottom: 4px; transition: color .25s;
}
.kcp-svc-desc {
	font-size: 13px; color: var(--kcp-ink-light);
	line-height: 1.55; transition: color .25s;
}
.kcp-svc-right { display: flex; align-items: center; justify-content: space-between; }
.kcp-svc-badge {
	padding: 7px 16px; border: 2px solid var(--kcp-ink);
	font-family: var(--kcp-ff-mono); font-size: 10px;
	font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
	border-radius: 3px; transition: all .25s;
}
.kcp-svc-arrow {
	font-size: 20px; color: var(--kcp-teal);
	transition: color .25s, transform .25s;
}

/* ═══════════════════════════════════════════
   KEYBOARD SHOWCASE SECTION
═══════════════════════════════════════════ */
.kcp-keyboard-section {
	display: grid; grid-template-columns: 1fr 1.6fr;
	border-top: 2.5px solid var(--kcp-ink);
	border-bottom: 2.5px solid var(--kcp-ink);
	background: var(--kcp-ink); min-height: 360px;
}
.kcp-kb-left {
	padding: 56px 48px; border-right: 2.5px solid rgba(255,255,255,.1);
	display: flex; flex-direction: column; justify-content: center;
}
.kcp-kb-eyebrow {
	font-family: var(--kcp-ff-mono); font-size: 10px;
	letter-spacing: 3px; color: var(--kcp-teal);
	text-transform: uppercase; margin-bottom: 16px;
}
.kcp-kb-heading {
	font-family: var(--kcp-ff-display); font-size: 52px;
	letter-spacing: 2px; color: #fff; line-height: .95; margin-bottom: 16px;
}
.kcp-kb-heading span { color: var(--kcp-gold); }
.kcp-kb-desc {
	color: rgba(255,255,255,.55); font-size: 14px;
	line-height: 1.65; margin-bottom: 28px;
}
.kcp-kb-right {
	position: relative; overflow: hidden;
	display: flex; align-items: center; justify-content: center; padding: 32px;
}
.kcp-kb-right::before {
	content: 'PIANO'; position: absolute;
	font-family: var(--kcp-ff-display); font-size: 200px;
	color: rgba(255,255,255,.02); letter-spacing: 20px;
	pointer-events: none;
}
.kcp-kb-showcase-img {
	width: 100%; max-width: 640px; border-radius: 10px; overflow: hidden;
	box-shadow: 0 24px 80px rgba(0,0,0,.6);
	border: 1px solid rgba(255,255,255,.08); position: relative; z-index: 2;
}
.kcp-kb-showcase-img img { width: 100%; height: auto; display: block; }

/* ═══════════════════════════════════════════
   MAP SECTION
═══════════════════════════════════════════ */
.kcp-map-section { padding: 80px 48px; background: var(--kcp-cream-mid); }
.kcp-map-inner {
	border: 2.5px solid var(--kcp-ink); overflow: hidden;
	position: relative; display: flex;
}
.kcp-map-img-side {
	flex: 1.4; position: relative; overflow: hidden;
	min-height: 360px;
}
.kcp-map-img-side img { width: 100%; height: 100%; object-fit: cover; }
.kcp-map-img-placeholder {
	width: 100%; height: 100%; min-height: 360px;
	background: var(--kcp-teal-xdark);
	display: flex; align-items: center; justify-content: center;
}
.kcp-map-content-side {
	flex: 1; background: var(--kcp-white);
	border-left: 2.5px solid var(--kcp-ink);
	padding: 48px 40px;
	display: flex; flex-direction: column; justify-content: center;
}
.kcp-map-h {
	font-family: var(--kcp-ff-display); font-size: 44px;
	letter-spacing: 2px; color: var(--kcp-ink); line-height: 1; margin-bottom: 12px;
}
.kcp-map-p {
	font-size: 14px; color: var(--kcp-ink-light);
	line-height: 1.65; margin-bottom: 24px;
}
.kcp-map-legend { display: flex; flex-direction: column; gap: 8px; margin-bottom: 28px; }
.kcp-map-legend-item {
	display: flex; align-items: center; gap: 10px;
	font-size: 12px; color: var(--kcp-ink-light);
}
.kcp-map-legend-dot {
	width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
}
.kcp-map-legend-dot.online { background: var(--kcp-teal); }
.kcp-map-legend-dot.offline { background: #aaa; }

/* ═══════════════════════════════════════════
   EARN / TUTORS SECTION
═══════════════════════════════════════════ */
.kcp-earn-section {
	padding: 80px 48px; background: var(--kcp-white);
	border-top: 2.5px solid var(--kcp-ink);
}
.kcp-earn-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; }
.kcp-earn-h {
	font-family: var(--kcp-ff-display); font-size: 56px;
	letter-spacing: 2px; color: var(--kcp-ink); line-height: .95; margin-bottom: 16px;
}
.kcp-earn-h span { color: var(--kcp-teal); }
.kcp-earn-p {
	font-size: 15px; color: var(--kcp-ink-light);
	line-height: 1.7; margin-bottom: 28px;
}
.kcp-earn-steps { display: flex; flex-direction: column; gap: 12px; margin-bottom: 28px; }
.kcp-earn-step {
	display: flex; align-items: flex-start; gap: 14px;
	padding: 14px; background: var(--kcp-cream);
	border-radius: 6px; border-left: 3px solid var(--kcp-teal);
}
.kcp-earn-step-num {
	font-family: var(--kcp-ff-display); font-size: 28px;
	color: var(--kcp-teal); line-height: 1; flex-shrink: 0;
}
.kcp-earn-step-title { font-size: 13px; font-weight: 700; color: var(--kcp-ink); margin-bottom: 2px; }
.kcp-earn-step-desc { font-size: 12px; color: var(--kcp-ink-light); line-height: 1.5; }
.kcp-earn-video-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.kcp-earn-video-card {
	border-radius: 8px; overflow: hidden; border: 2px solid var(--kcp-ink);
	cursor: pointer; transition: transform .2s;
}
.kcp-earn-video-card:hover { transform: translateY(-4px); }
.kcp-earn-video-thumb {
	height: 100px; display: flex; align-items: center;
	justify-content: center; font-size: 28px;
	position: relative; overflow: hidden;
}
.kcp-earn-video-body { padding: 10px 12px; background: var(--kcp-white); }
.kcp-earn-video-cat {
	display: inline-block;
	font-size: 9px; color: #fff; font-weight: 800;
	letter-spacing: 1px; text-transform: uppercase; margin-bottom: 5px;
	background: var(--kcp-teal); padding: 2px 8px; border-radius: 3px;
}
.kcp-earn-video-title { font-size: 12px; font-weight: 700; color: var(--kcp-ink); line-height: 1.4; }


/* ── Earn right column ── */
.kcp-earn-right-col {
	display: flex; flex-direction: column; gap: 16px;
}
.kcp-earn-grid-desc {
	font-size: 13px; color: var(--kcp-ink-light);
	line-height: 1.65; border-left: 3px solid var(--kcp-teal);
	padding-left: 12px; margin: 0;
}
.kcp-earn-btns {
	display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px;
}
.kcp-earn-view-all {
	display: inline-block;
	font-family: var(--kcp-ff-mono); font-size: 11px;
	letter-spacing: 1.5px; text-transform: uppercase;
	color: var(--kcp-teal); border-bottom: 1px solid var(--kcp-teal);
	padding-bottom: 2px; transition: opacity .2s; align-self: flex-start;
}
.kcp-earn-view-all:hover { opacity: .7; }
.kcp-earn-no-posts {
	padding: 32px; text-align: center;
	border: 2px dashed var(--kcp-cream-dark); border-radius: 6px;
	font-size: 13px; color: var(--kcp-ink-light);
}
.kcp-earn-video-author {
	font-size: 11px; color: var(--kcp-ink-light); margin-top: 2px;
}
/* ═══════════════════════════════════════════
   BLOG SECTION (homepage)
═══════════════════════════════════════════ */
.kcp-blog-section {
	padding: 80px 48px; background: var(--kcp-cream);
	border-top: 2.5px solid var(--kcp-ink);
}
.kcp-blog-header {
	display: flex; align-items: flex-end;
	justify-content: space-between; margin-bottom: 40px;
}
.kcp-blog-header .kcp-section-h2 { margin-bottom: 0; }
.kcp-blog-header a {
	font-family: var(--kcp-ff-mono); font-size: 11px;
	letter-spacing: 1.5px; text-transform: uppercase;
	color: var(--kcp-teal); border-bottom: 1px solid var(--kcp-teal);
	padding-bottom: 2px; transition: opacity .2s;
}
.kcp-blog-header a:hover { opacity: .7; }
.kcp-blog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 20px;
}
.kcp-blog-card {
	border-right: 2px solid var(--kcp-ink);
	border-bottom: 2px solid var(--kcp-ink);
	background: var(--kcp-white); overflow: hidden;
	cursor: pointer; transition: background .2s;
}
.kcp-blog-card:last-child { border-right: none; }
.kcp-blog-card:hover { background: var(--kcp-teal); }
.kcp-blog-card:hover .kcp-blog-cat { color: var(--kcp-gold); background: rgba(255,255,255,.15); }
.kcp-blog-card:hover .kcp-blog-title { color: #fff; }
.kcp-blog-card:hover .kcp-blog-excerpt { color: rgba(255,255,255,.6); }
.kcp-blog-card:hover .kcp-blog-meta { color: rgba(255,255,255,.4); }
.kcp-blog-card.featured { grid-row: span 2; }
.kcp-blog-thumb { overflow: hidden; }
.kcp-blog-thumb img { width: 100%; height: 200px; object-fit: cover; transition: transform .3s; }
.kcp-blog-thumb-placeholder {
	height: 200px; display: flex; align-items: center;
	justify-content: center; font-size: 40px;
}
.kcp-blog-card.featured .kcp-blog-thumb img,
.kcp-blog-card.featured .kcp-blog-thumb-placeholder { height: 240px; }
.kcp-blog-card:hover .kcp-blog-thumb img { transform: scale(1.04); }
.kcp-blog-body { padding: 20px; }
.kcp-blog-cat {
	display: inline-block;
	font-size: 9px; color: #fff; font-weight: 800;
	letter-spacing: 1.5px; text-transform: uppercase;
	margin-bottom: 8px; transition: background .2s, color .2s;
	background: var(--kcp-teal); padding: 2px 8px; border-radius: 3px;
}
.kcp-blog-title {
	font-family: var(--kcp-ff-display); font-size: 22px;
	letter-spacing: .5px; color: var(--kcp-ink); line-height: 1.2;
	margin-bottom: 6px; transition: color .2s;
}
.kcp-blog-excerpt {
	font-size: 12px; color: var(--kcp-ink-light);
	line-height: 1.6; margin-bottom: 10px; transition: color .2s;
}
.kcp-blog-meta {
	font-family: var(--kcp-ff-mono); font-size: 10px;
	color: var(--kcp-cream-dark); letter-spacing: .5px; transition: color .2s;
}

/* ═══════════════════════════════════════════
   CTA BANNER
═══════════════════════════════════════════ */
.kcp-cta-section {
	background: var(--kcp-teal);
	border-top: 2.5px solid var(--kcp-ink);
	border-bottom: 2.5px solid var(--kcp-ink);
	padding: 72px 48px;
	display: flex; align-items: center;
	justify-content: space-between; gap: 40px;
	position: relative; overflow: hidden;
}
.kcp-cta-section::before {
	content: 'JOIN'; position: absolute; right: -20px;
	font-family: var(--kcp-ff-display); font-size: 200px;
	color: rgba(255,255,255,.05); letter-spacing: 20px;
	pointer-events: none; line-height: 1; bottom: -20px;
}
.kcp-cta-left h2 {
	font-family: var(--kcp-ff-display); font-size: 56px;
	letter-spacing: 2px; color: #fff; line-height: .95; margin-bottom: 10px;
}
.kcp-cta-left h2 span { color: var(--kcp-gold); }
.kcp-cta-left p { color: rgba(255,255,255,.65); font-size: 15px; line-height: 1.6; max-width: 480px; }
.kcp-cta-right { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }

/* ═══════════════════════════════════════════
   INNER PAGE LAYOUTS
═══════════════════════════════════════════ */
.kcp-page-wrap {
	max-width: 1200px; margin: 0 auto;
	padding: 32px 48px 60px; display: grid;
	grid-template-columns: 1fr 320px; gap: 48px;
	align-items: start;
}
.kcp-page-wrap.no-sidebar { grid-template-columns: 1fr; max-width: 900px; }
.kcp-page-content {}
.kcp-page-title {
	font-family: var(--kcp-ff-display); font-size: 56px;
	letter-spacing: 2px; line-height: .95;
	color: var(--kcp-ink); margin-bottom: 32px;
	padding-bottom: 20px; border-bottom: 2.5px solid var(--kcp-ink);
}
/* WP Block styles */
.kcp-page-content h1,.kcp-page-content h2,.kcp-page-content h3,
.kcp-page-content h4,.kcp-page-content h5,.kcp-page-content h6 {
	font-family: var(--kcp-ff-display); letter-spacing: 1px;
	color: var(--kcp-ink); margin: 1.5em 0 .5em; line-height: 1;
}
.kcp-page-content h1 { margin: 0.5em 0 0.5em; }
.kcp-page-content h2 { font-size: 40px; }
.kcp-page-content h3 { font-size: 20px; }
.kcp-page-content h4 { font-size: 24px; }
.kcp-page-content p {
	font-size: 16px; line-height: 1.75;
	color: var(--kcp-ink-mid); margin-bottom: 1.25em;
}
.kcp-page-content a { color: var(--kcp-teal); border-bottom: 1px solid rgba(2,102,127,.3); transition: all .2s; }
.kcp-page-content a:hover { border-color: var(--kcp-teal); }
.kcp-page-content ul,.kcp-page-content ol { padding-left: 1.5em; margin-bottom: 1.25em; }
.kcp-page-content li { margin-bottom: .4em; line-height: 1.7; color: var(--kcp-ink-mid); }
.kcp-page-content blockquote {
	border-left: 4px solid var(--kcp-teal); padding: 16px 20px;
	background: var(--kcp-cream); margin: 1.5em 0; border-radius: 0 6px 6px 0;
}
.kcp-page-content blockquote p { color: var(--kcp-ink); font-size: 18px; font-style: italic; margin: 0; }
.kcp-page-content img { border-radius: 6px; max-width: 100%; margin: 1.5em 0; }
.kcp-page-content hr { border: none; border-top: 2px solid var(--kcp-cream-dark); margin: 2em 0; }
.kcp-page-content table { width: 100%; border-collapse: collapse; margin-bottom: 1.5em; }
.kcp-page-content th { background: var(--kcp-ink); color: #fff; padding: 10px 14px; font-family: var(--kcp-ff-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }
.kcp-page-content td { padding: 10px 14px; border-bottom: 1px solid var(--kcp-cream-mid); font-size: 14px; }
.kcp-page-content tr:nth-child(even) td { background: var(--kcp-cream); }
.kcp-page-content pre { background: var(--kcp-ink); color: #a8d8b0; padding: 20px; border-radius: 6px; overflow-x: auto; font-size: 13px; margin-bottom: 1.5em; }
.kcp-page-content code { font-family: var(--kcp-ff-mono); font-size: .9em; background: var(--kcp-cream-mid); padding: 2px 6px; border-radius: 3px; }

/* Post header */
.kcp-post-header { margin-bottom: 32px; padding-bottom: 24px; border-bottom: 2.5px solid var(--kcp-ink); }
.kcp-post-cats { display: flex; gap: 8px; margin-bottom: 4px; flex-wrap: wrap; }
.kcp-post-cat-badge,
a.kcp-post-cat-badge {
	background: var(--kcp-teal); color: #fff !important;
	font-family: var(--kcp-ff-mono); font-size: 9px;
	letter-spacing: 1px; text-transform: uppercase;
	padding: 4px 10px; border-radius: 3px; font-weight: 800;
	text-decoration: none;
}
a.kcp-post-cat-badge:hover {
	background: var(--kcp-teal-dark); color: #fff !important;
}
.kcp-post-title {
	font-family: var(--kcp-ff-display); font-size: 52px;
	letter-spacing: 2px; line-height: .95; color: var(--kcp-ink);
	margin-bottom: 16px;
}
.kcp-post-meta {
	font-family: var(--kcp-ff-mono); font-size: 11px;
	color: var(--kcp-ink-light); letter-spacing: .5px;
	display: flex; gap: 16px; align-items: center; flex-wrap: wrap;
}
.kcp-post-featured-img { margin-bottom: 32px; border-radius: 8px; overflow: hidden; border: 2px solid var(--kcp-ink); }
.kcp-post-featured-img img { width: 100%; height: auto; display: block; }
/* ═══════════════════════════════════════════
   PREVIOUS / NEXT POST NAVIGATION — modern card style
═══════════════════════════════════════════ */
.kcp-post-nav {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: 16px; margin-top: 56px;
}
.kcp-post-nav-prev,
.kcp-post-nav-next {
	display: flex; flex-direction: column; gap: 6px;
	padding: 20px 22px; border-radius: 10px;
	background: var(--kcp-white);
	border: 1.5px solid var(--kcp-cream-mid);
	box-shadow: 0 2px 12px rgba(0,0,0,.05);
	transition: all .22s; text-decoration: none;
	color: var(--kcp-ink); overflow: hidden;
	position: relative;
}
.kcp-post-nav-prev::before,
.kcp-post-nav-next::after {
	content: '';
	position: absolute; bottom: 0; left: 0; right: 0;
	height: 3px; background: var(--kcp-teal);
	transform: scaleX(0); transform-origin: left;
	transition: transform .22s;
}
.kcp-post-nav-next::after { transform-origin: right; }
.kcp-post-nav-prev:hover::before,
.kcp-post-nav-next:hover::after { transform: scaleX(1); }
.kcp-post-nav-prev:hover,
.kcp-post-nav-next:hover {
	border-color: var(--kcp-teal);
	box-shadow: 0 6px 24px rgba(2,102,127,.12);
	transform: translateY(-2px);
}
.kcp-post-nav-next { text-align: right; align-items: flex-end; }
.kcp-post-nav-label {
	font-family: var(--kcp-ff-mono); font-size: 9px;
	text-transform: uppercase; letter-spacing: 2px;
	color: var(--kcp-teal); font-weight: 700;
	display: flex; align-items: center; gap: 5px;
}
.kcp-post-nav-title {
	font-family: var(--kcp-ff-display); font-size: 17px;
	letter-spacing: .5px; line-height: 1.25;
	color: var(--kcp-ink); display: -webkit-box;
	-webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden;
}
.kcp-post-nav-prev:hover .kcp-post-nav-title,
.kcp-post-nav-next:hover .kcp-post-nav-title { color: var(--kcp-teal); }

/* ═══════════════════════════════════════════
   ARCHIVE / BLOG LOOP — borderless modern grid
═══════════════════════════════════════════ */
.kcp-archive-wrap {
	max-width: 1200px; margin: 0 auto; padding: 0 48px 64px;
}

/* Header — more breathing room below, less above grid */
.kcp-archive-header {
	padding: 48px 0 32px; margin-bottom: 0;
	border-bottom: none;
}
.kcp-archive-title {
	font-family: var(--kcp-ff-display); font-size: 52px;
	letter-spacing: 2px; color: var(--kcp-ink);
	line-height: .95; margin: 8px 0 0;
}
.kcp-archive-desc {
	font-size: 14px; color: var(--kcp-ink-light);
	line-height: 1.65; margin-top: 10px; max-width: 600px;
}

/* Category filter bar */
.kcp-category-filter {
	display: flex; flex-wrap: wrap; gap: 8px;
	padding: 20px 0 28px; margin-bottom: 4px;
	border-bottom: 1.5px solid var(--kcp-cream-mid);
}
.kcp-cat-filter-btn {
	display: inline-block;
	padding: 6px 14px; border-radius: 20px;
	font-family: var(--kcp-ff-mono); font-size: 10px;
	font-weight: 700; letter-spacing: 1px;
	text-transform: uppercase; text-decoration: none;
	border: 1.5px solid var(--kcp-cream-mid);
	color: var(--kcp-ink-light); background: var(--kcp-white);
	transition: all .18s;
}
.kcp-cat-filter-btn:hover,
.kcp-cat-filter-btn.active {
	background: var(--kcp-teal); border-color: var(--kcp-teal);
	color: #fff;
}
.kcp-cat-filter-btn.active { pointer-events: none; }

/* Posts grid — no borders, generous gap */
.kcp-posts-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px; margin-top: 28px;
	border: none;
	transition: opacity .25s ease;
}
.kcp-post-card {
	background: var(--kcp-white);
	border: none; border-radius: 10px;
	box-shadow: 0 2px 12px rgba(0,0,0,.06);
	overflow: hidden; transition: transform .2s, box-shadow .2s;
	cursor: pointer;
}
.kcp-post-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 30px rgba(0,0,0,.1);
	background: var(--kcp-white);
}
/* Override leftover border rules */
.kcp-post-card:nth-child(3n) { border-right: none; }

/* Pagination — pill style */
.kcp-pagination {
	margin-top: 48px; display: flex; align-items: center;
	justify-content: center; gap: 6px; flex-wrap: wrap;
}
.kcp-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 14px;
	font-family: var(--kcp-ff-mono); font-size: 12px; font-weight: 700;
	color: var(--kcp-ink); border-radius: 20px;
	border: 1.5px solid var(--kcp-cream-mid);
	background: var(--kcp-white); text-decoration: none;
	transition: all .18s; letter-spacing: .5px;
}
.kcp-pagination .page-numbers:hover { border-color: var(--kcp-teal); color: var(--kcp-teal); }
.kcp-pagination .page-numbers.current {
	background: var(--kcp-teal); border-color: var(--kcp-teal); color: #fff;
}
.kcp-pagination .page-numbers.dots { border-color: transparent; background: none; pointer-events: none; }
.kcp-pagination .page-numbers.prev,
.kcp-pagination .page-numbers.next {
	padding: 0 18px; background: var(--kcp-ink); color: #fff; border-color: var(--kcp-ink);
}
.kcp-pagination .page-numbers.prev:hover,
.kcp-pagination .page-numbers.next:hover { background: var(--kcp-teal); border-color: var(--kcp-teal); }

/* Sidebar */
.kcp-sidebar {}
.kcp-widget {
	background: var(--kcp-white); border: 2px solid var(--kcp-ink);
	border-radius: 6px; padding: 24px; margin-bottom: 20px;
}
.kcp-widget-title {
	font-family: var(--kcp-ff-display); font-size: 20px;
	letter-spacing: 1px; color: var(--kcp-ink); margin-bottom: 16px;
	padding-bottom: 10px; border-bottom: 2px solid var(--kcp-ink);
}
.kcp-widget ul { list-style: none; }
.kcp-widget ul li { border-bottom: 1px solid var(--kcp-cream-mid); padding: 8px 0; }
.kcp-widget ul li a { font-size: 13px; color: var(--kcp-ink-light); transition: color .2s; }
.kcp-widget ul li a:hover { color: var(--kcp-teal); }

/* 404 */
.kcp-404-wrap {
	min-height: 60vh; display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	text-align: center; padding: 80px 48px;
}
.kcp-404-num {
	font-family: var(--kcp-ff-display); font-size: 180px;
	color: var(--kcp-cream-dark); line-height: 1; margin-bottom: 16px;
}
.kcp-404-title { font-family: var(--kcp-ff-display); font-size: 48px; color: var(--kcp-ink); margin-bottom: 12px; }
.kcp-404-p { color: var(--kcp-ink-light); font-size: 15px; margin-bottom: 28px; }

/* Search */
.kcp-search-form { display: flex; gap: 0; max-width: 500px; margin: 0 auto 40px; }
.kcp-search-form input[type="search"] {
	flex: 1; padding: 12px 20px; border: 2px solid var(--kcp-ink);
	border-right: none; font-family: var(--kcp-ff-body); font-size: 14px;
	background: var(--kcp-white); border-radius: 4px 0 0 4px; outline: none;
}
.kcp-search-form input[type="search"]:focus { border-color: var(--kcp-teal); }
.kcp-search-form button {
	padding: 12px 24px; background: var(--kcp-ink); color: #fff;
	border: 2px solid var(--kcp-ink); border-radius: 0 4px 4px 0;
	font-family: var(--kcp-ff-body); font-size: 13px; font-weight: 700;
	cursor: pointer; transition: background .2s;
}
.kcp-search-form button:hover { background: var(--kcp-teal); border-color: var(--kcp-teal); }

/* Comments */
.kcp-comments { margin-top: 48px; padding-top: 32px; border-top: 2.5px solid var(--kcp-ink); }
.kcp-comments-title { font-family: var(--kcp-ff-display); font-size: 32px; letter-spacing: 1px; margin-bottom: 24px; }
.kcp-comment { padding: 20px 0; border-bottom: 1px solid var(--kcp-cream-mid); }
.kcp-comment-author { font-weight: 700; margin-bottom: 4px; color: var(--kcp-ink); }
.kcp-comment-meta { font-size: 11px; color: var(--kcp-ink-light); font-family: var(--kcp-ff-mono); margin-bottom: 10px; }
.kcp-comment-text { font-size: 14px; color: var(--kcp-ink-mid); line-height: 1.65; }

/* Page transition overlay */
/* Page transition — defined in critical inline CSS in header.php */


/* ═══════════════════════════════════════════
   HERO — FULL TEAL BACKGROUND (updated)
═══════════════════════════════════════════ */
.kcp-hero {
	display: grid; grid-template-columns: 1fr 1.08fr;
	min-height: 100vh; position: relative; overflow: hidden;
	background: linear-gradient(135deg, var(--kcp-teal) 0%, var(--kcp-teal-dark) 55%, var(--kcp-teal-xdark) 100%);
	align-items: center;
}
.kcp-hero-bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.kcp-hero-bg-dots {
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px);
	background-size: 32px 32px;
	mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 100%);
	-webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 100%);
}
.kcp-hero-orb {
	position: absolute; border-radius: 50%; pointer-events: none;
	background: radial-gradient(circle, rgba(255,255,255,.07) 0%, transparent 70%);
}
.kcp-hero-orb-1 { width: 600px; height: 600px; top: -200px; right: -100px; }
.kcp-hero-orb-2 {
	width: 400px; height: 400px; bottom: -150px; left: -80px;
	background: radial-gradient(circle, rgba(232,160,32,.1) 0%, transparent 70%);
}
.kcp-hero-left {
	background: transparent; /* overrides previous teal bg */
	clip-path: none; /* removed — full bg handles both sides */
	padding: 80px 72px 80px 48px; z-index: 2; position: relative;
	display: flex; flex-direction: column; justify-content: center;
}
.kcp-hero-left::before, .kcp-hero-left::after { display: none; } /* decorative orbs now handled by .kcp-hero-bg */
.kcp-hero-right {
	background: transparent; /* overrides previous ink bg */
	z-index: 2; display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	padding: 60px 48px 60px 0; overflow: visible;
}
.kcp-hero-right::before, .kcp-hero-right::after { display: none; }

/* Keyboard inset card — smaller, floating */
.kcp-hero-keyboard-frame {
	position: relative; width: 100%; max-width: 480px;
	border-radius: 14px; overflow: hidden;
	box-shadow: 0 0 0 1px rgba(255,255,255,.1), 0 40px 100px rgba(0,0,0,.5), 0 0 60px rgba(2,102,127,.25);
}
.kcp-hero-keyboard-float { animation: kcpFloat 4s ease-in-out infinite; }
@keyframes kcpFloat {
	0%,100% { transform: translateY(0) rotate(-.5deg); }
	50%      { transform: translateY(-12px) rotate(.5deg); }
}
.kcp-float-disabled { animation: none !important; }

/* Keyboard reflection glow */
.kcp-kb-reflection {
	position: absolute; bottom: -36px; left: 10%; right: 10%; height: 36px;
	background: radial-gradient(ellipse at center, rgba(2,102,127,.3) 0%, transparent 70%);
	filter: blur(10px); pointer-events: none;
}

/* Scroll hint arrow */
.kcp-scroll-hint {
	position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%);
	z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px;
	font-family: var(--kcp-ff-mono); font-size: 9px; letter-spacing: 2px;
	color: rgba(255,255,255,.3); text-transform: uppercase;
}
.kcp-scroll-hint-line {
	width: 1px; height: 40px; background: rgba(255,255,255,.2); overflow: hidden; position: relative;
}
.kcp-scroll-hint-line::after {
	content: ''; position: absolute; top: -100%; left: 0; width: 100%; height: 100%;
	background: linear-gradient(180deg, transparent, rgba(255,255,255,.7));
	animation: kcpScrollDrop 1.6s ease-in-out infinite;
}
@keyframes kcpScrollDrop { 0% { top: -100%; } 100% { top: 100%; } }

/* Typing cursor */
.kcp-hero-h1-typing {
	color: var(--kcp-gold); display: inline-block; font-size: .88em;
	border-right: 3px solid var(--kcp-gold); padding-right: 4px;
	animation: kcpCursor .7s step-end infinite;
	white-space: nowrap; overflow: visible;
	/* Reserve the full line height at all times — prevents the hero
	   from shrinking/shaking when the typed text is fully deleted */
	min-height: 1em;
	vertical-align: top;
	line-height: inherit;
}
@keyframes kcpCursor { 0%,100% { border-color: var(--kcp-gold); } 50% { border-color: transparent; } }

/* ═══════════════════════════════════════════
   HEADING STYLE VARIANTS (all sections)
═══════════════════════════════════════════ */

/* ── Style A: Outlined · Filled · Teal block ── */
.kcp-heading-inline { display: flex; align-items: center; flex-wrap: wrap; gap: 0; line-height: 1; margin-bottom: 48px; }
.kcp-heading-inline-a .khi-outlined {
	font-family: var(--kcp-ff-display); font-size: 52px; letter-spacing: 2px;
	color: transparent; -webkit-text-stroke: 2px var(--kcp-ink);
	padding: 0 10px;
}
.kcp-heading-inline-a .khi-filled {
	font-family: var(--kcp-ff-display); font-size: 52px; letter-spacing: 2px;
	color: var(--kcp-ink); padding: 0 10px;
}
.kcp-heading-inline-a .khi-block {
	font-family: var(--kcp-ff-display); font-size: 52px; letter-spacing: 2px;
	background: var(--kcp-teal); color: #fff; padding: 4px 16px; border-radius: 3px;
}
.kcp-heading-inline-a .khi-sep {
	font-family: var(--kcp-ff-display); font-size: 36px;
	color: var(--kcp-gold); align-self: flex-end; margin-bottom: 4px; padding: 0 2px;
}
/* Dark-bg variant (earn section on white — OK as-is; keyboard section on ink) */
.kcp-keyboard-section .kcp-heading-inline-a .khi-outlined { -webkit-text-stroke-color: #fff; }
.kcp-keyboard-section .kcp-heading-inline-a .khi-filled   { color: #fff; }
.kcp-keyboard-section .kcp-heading-inline-a .khi-sep      { color: var(--kcp-gold); }

/* ── Style B: Mixed scale + underline + gold fill ── */
.kcp-heading-inline-b .khib-w1 {
	font-family: var(--kcp-ff-display); font-size: 56px; letter-spacing: 2px;
	color: var(--kcp-ink); position: relative;
}
.kcp-heading-inline-b .khib-w1::after {
	content: ''; position: absolute; bottom: 3px; left: 0; right: 0;
	height: 4px; background: var(--kcp-teal); border-radius: 2px;
}
.kcp-heading-inline-b .khib-sep {
	font-family: var(--kcp-ff-display); font-size: 32px; color: var(--kcp-cream-dark);
	padding: 0 8px; align-self: flex-end; margin-bottom: 4px;
}
.kcp-heading-inline-b .khib-w2 {
	font-family: var(--kcp-ff-display); font-size: 40px; letter-spacing: 2px; color: var(--kcp-teal);
}
.kcp-heading-inline-b .khib-w3 {
	font-family: var(--kcp-ff-display); font-size: 64px; letter-spacing: 2px;
	background: var(--kcp-gold); color: var(--kcp-ink); padding: 2px 12px; border-radius: 3px;
}
/* Dark-bg overrides */
.kcp-keyboard-section .kcp-heading-inline-b .khib-w1 { color: #fff; }
.kcp-keyboard-section .kcp-heading-inline-b .khib-sep { color: rgba(255,255,255,.3); }

/* ── Style C: Magazine cells ── */
.kcp-heading-cells {
	border: 2px solid var(--kcp-ink); border-radius: 4px; overflow: hidden;
	margin-bottom: 28px;
}
.khic-cell {
	flex: 1; padding: 12px 10px; display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	border-right: 2px solid var(--kcp-ink);
	transition: background .25s; cursor: default;
}
.khic-cell:last-child { border-right: none; }
.khic-cell:hover { background: var(--kcp-teal); }
.khic-cell:hover .khic-num, .khic-cell:hover .khic-word { color: #fff; }
.khic-num {
	font-family: var(--kcp-ff-mono); font-size: 9px; letter-spacing: 2px;
	color: var(--kcp-cream-dark); text-transform: uppercase; margin-bottom: 4px;
	transition: color .25s;
}
.khic-word {
	font-family: var(--kcp-ff-display); font-size: 44px; letter-spacing: 2px;
	color: var(--kcp-ink); line-height: 1; transition: color .25s;
}
.khic-cell:nth-child(2) .khic-word { color: var(--kcp-teal); }
.khic-cell:nth-child(3) .khic-word { font-size: 52px; }
/* Dark-bg overrides */
.kcp-keyboard-section .kcp-heading-cells { border-color: rgba(255,255,255,.2); }
.kcp-keyboard-section .khic-cell { border-right-color: rgba(255,255,255,.2); }
.kcp-keyboard-section .khic-num  { color: rgba(255,255,255,.3); }
.kcp-keyboard-section .khic-word { color: #fff; }
.kcp-keyboard-section .khic-cell:nth-child(2) .khic-word { color: var(--kcp-gold); }

/* ── Shared: inline headings default margin ── */
.kcp-heading-inline.kcp-section-h2 { margin-bottom: 48px; }
.kcp-heading-inline.kcp-earn-h     { margin-bottom: 16px; }
.kcp-heading-inline.kcp-kb-heading { margin-bottom: 16px; }

/* ═══════════════════════════════════════════
   SCROLL ANIMATIONS
═══════════════════════════════════════════ */
[data-anim] { will-change: transform, opacity; }

/* fade-up */
.kcp-anim-fade-up [data-anim] {
	opacity: 0; transform: translateY(28px);
	transition: opacity .6s cubic-bezier(.25,.46,.45,.94), transform .6s cubic-bezier(.25,.46,.45,.94);
	transition-delay: calc(var(--i, 0) * 70ms);
}
.kcp-anim-fade-up [data-anim].kcp-revealed { opacity: 1; transform: none; }

/* slide-left */
.kcp-anim-slide-left [data-anim] {
	opacity: 0; transform: translateX(-36px);
	transition: opacity .5s, transform .5s;
	transition-delay: calc(var(--i, 0) * 70ms);
}
.kcp-anim-slide-left [data-anim].kcp-revealed { opacity: 1; transform: none; }

/* scale */
.kcp-anim-scale [data-anim] {
	opacity: 0; transform: scale(.94);
	transition: opacity .5s, transform .5s;
	transition-delay: calc(var(--i, 0) * 70ms);
}
.kcp-anim-scale [data-anim].kcp-revealed { opacity: 1; transform: scale(1); }

/* clip */
.kcp-anim-clip [data-anim] {
	clip-path: inset(0 0 100% 0);
	transition: clip-path .6s cubic-bezier(.77,0,.18,1);
	transition-delay: calc(var(--i, 0) * 70ms);
}
.kcp-anim-clip [data-anim].kcp-revealed { clip-path: inset(0 0 0% 0); }

/* off */
.kcp-anim-off [data-anim] { opacity: 1 !important; transform: none !important; clip-path: none !important; }

/* ═══════════════════════════════════════════
   SCROLL PROGRESS INDICATOR
═══════════════════════════════════════════ */

/* ── Thin line (top) ── */
.kcp-scroll-progress.kcp-sp-thin-line {
	position: fixed; top: 0; left: 0; right: 0; height: 3px;
	z-index: 99990; pointer-events: none;
	background: rgba(2,102,127,.15);
}
.kcp-sp-thin-line .kcp-sp-bar {
	height: 100%; width: 0; background: var(--kcp-teal);
	transition: width .1s linear; border-radius: 0 2px 2px 0;
	box-shadow: 0 0 8px rgba(2,102,127,.5);
}

/* ── Thick bar (top) ── */
.kcp-scroll-progress.kcp-sp-thick-bar {
	position: fixed; top: 0; left: 0; right: 0; height: 5px;
	z-index: 99990; pointer-events: none;
	background: rgba(2,102,127,.1);
}
.kcp-sp-thick-bar .kcp-sp-bar {
	height: 100%; width: 0;
	background: linear-gradient(90deg, var(--kcp-teal), var(--kcp-gold));
	transition: width .1s linear; border-radius: 0 3px 3px 0;
}

/* ── Circle (bottom-right) ── */
.kcp-scroll-progress.kcp-sp-circle {
	position: fixed; bottom: 80px; right: 20px;
	width: 44px; height: 44px; z-index: 99990;
	pointer-events: none; transition: opacity .3s;
}
.kcp-sp-circle svg {
	transform: rotate(-90deg); width: 44px; height: 44px;
}
.kcp-sp-circle .kcp-sp-track {
	fill: none; stroke: rgba(2,102,127,.15); stroke-width: 3;
}
.kcp-sp-circle .kcp-sp-fill {
	fill: none; stroke: var(--kcp-teal); stroke-width: 3;
	stroke-dasharray: 100; stroke-dashoffset: 100;
	transition: stroke-dashoffset .1s linear;
	stroke-linecap: round;
}

/* ── Dots (right side — section nav) ── */
.kcp-scroll-progress.kcp-sp-dots {
	position: fixed; right: 18px; top: 50%; transform: translateY(-50%);
	z-index: 99990; pointer-events: none;
}
.kcp-sp-dots-inner {
	display: flex; flex-direction: column; gap: 10px; align-items: center;
}
.kcp-sp-dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: rgba(22,17,10,.2); border: 1.5px solid rgba(22,17,10,.3);
	transition: all .25s; cursor: pointer; pointer-events: all;
}
.kcp-sp-dot.active {
	background: var(--kcp-teal); border-color: var(--kcp-teal);
	transform: scale(1.3);
}
/* White dots for use over dark sections */
body.kcp-dark-section .kcp-sp-dot { background: rgba(255,255,255,.3); border-color: rgba(255,255,255,.4); }
body.kcp-dark-section .kcp-sp-dot.active { background: var(--kcp-gold); border-color: var(--kcp-gold); }

/* ═══════════════════════════════════════════
   BACK TO TOP BUTTON
═══════════════════════════════════════════ */
.kcp-back-to-top {
	position: fixed; bottom: 24px; right: 24px; z-index: 9999;
	width: 44px; height: 44px; border-radius: 8px;
	background: var(--kcp-ink); color: #fff; border: none;
	display: flex; align-items: center; justify-content: center;
	cursor: pointer; transition: all .25s;
	opacity: 0; visibility: hidden; transform: translateY(12px);
	box-shadow: 0 4px 16px rgba(0,0,0,.25);
}
.kcp-back-to-top.visible {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.kcp-back-to-top:hover {
	background: var(--kcp-teal);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(2,102,127,.4);
}
/* Offset when circle progress is visible */
.kcp-sp-circle ~ .kcp-back-to-top { bottom: 135px; }
/* ═══════════════════════════════════════════
   WOOCOMMERCE BASE OVERRIDES
═══════════════════════════════════════════ */
.woocommerce .button,
.woocommerce button.button {
	background: var(--kcp-teal) !important; color: #fff !important;
	font-family: var(--kcp-ff-body) !important; font-weight: 700 !important;
	text-transform: uppercase !important; letter-spacing: 1px !important;
	border-radius: 4px !important; transition: all .2s !important;
}
.woocommerce .button:hover,
.woocommerce button.button:hover { background: var(--kcp-teal-dark) !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--kcp-ff-display) !important;
	font-size: 22px !important; letter-spacing: .5px !important;
}

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
.kcp-site-footer { background: var(--kcp-ink); color: #fff; }
.kcp-footer-top {
	display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 40px;
	padding: 56px 48px; max-width: 1400px; margin: 0 auto;
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.kcp-foot-logo {
	font-family: var(--kcp-ff-display); font-size: 28px;
	letter-spacing: 3px; color: #fff; margin-bottom: 8px;
}
.kcp-foot-logo span { color: var(--kcp-teal); }
.kcp-foot-tagline {
	font-family: var(--kcp-ff-mono); font-size: 10px;
	letter-spacing: 2px; color: rgba(255,255,255,.35);
	text-transform: uppercase; margin-bottom: 16px;
}
.kcp-foot-desc { font-size: 13px; color: rgba(255,255,255,.45); line-height: 1.7; }
.kcp-foot-col h4 {
	font-family: var(--kcp-ff-mono); font-size: 10px; font-weight: 700;
	letter-spacing: 2px; text-transform: uppercase;
	color: rgba(255,255,255,.35); margin-bottom: 16px;
}
.kcp-foot-col ul { list-style: none; }
.kcp-foot-col ul li { margin-bottom: 10px; }
.kcp-foot-col ul li a {
	font-size: 13px; color: rgba(255,255,255,.6); transition: color .2s;
}
.kcp-foot-col ul li a:hover { color: var(--kcp-teal); }
.kcp-footer-bottom {
	padding: 20px 48px; max-width: 1400px; margin: 0 auto;
	display: flex; align-items: center; justify-content: space-between;
}
.kcp-footer-copy {
	font-size: 12px; color: rgba(255,255,255,.25);
	font-family: var(--kcp-ff-mono);
}
.kcp-footer-socials { display: flex; gap: 10px; }
.kcp-social-btn {
	width: 34px; height: 34px; border-radius: 4px;
	border: 1px solid rgba(255,255,255,.15);
	display: flex; align-items: center; justify-content: center;
	color: rgba(255,255,255,.4); font-size: 13px;
	cursor: pointer; transition: all .2s; text-decoration: none;
}
.kcp-social-btn:hover { border-color: var(--kcp-teal); color: var(--kcp-teal); }

/* ═══════════════════════════════════════════
   PAGE TEMPLATES
═══════════════════════════════════════════ */

/* ── Full Width — extra wide content ── */
.kcp-tpl-full-width.kcp-page-wrap { max-width: 1100px; }

/* ── With Sidebar — ensure sidebar always shows ── */
.kcp-tpl-with-sidebar { grid-template-columns: 1fr 320px !important; }

/* ── No Title — remove top padding where title would be ── */
.kcp-content-notitle { padding-top: 0; }

/* ── Teal Hero Banner ── */
.kcp-tpl-hero-banner {
	background: linear-gradient(135deg, var(--kcp-teal) 0%, var(--kcp-teal-dark) 60%, var(--kcp-teal-xdark) 100%);
	padding: 80px 48px 72px;
	position: relative; overflow: hidden;
}
.kcp-tpl-hero-banner::before {
	content: '';
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,.1) 1px, transparent 1px);
	background-size: 28px 28px;
	mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 100%);
	-webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 100%);
}
.kcp-tpl-hero-inner {
	max-width: 900px; margin: 0 auto; position: relative; z-index: 2;
}
.kcp-tpl-hero-title {
	font-family: var(--kcp-ff-display); font-size: 72px;
	letter-spacing: 3px; line-height: .95; color: #fff; margin: 0 0 16px;
}
.kcp-tpl-hero-excerpt {
	font-size: 16px; color: rgba(255,255,255,.7); line-height: 1.7;
	max-width: 600px; margin: 0;
}
.kcp-tpl-teal-hero.kcp-page-wrap { max-width: 1100px; padding-top: 48px; }

/* ── Blank Canvas ── */
.kcp-blank-canvas {
	margin: 0; padding: 0; background: #fff;
}

/* ── Template responsive ── */
@media (max-width: 900px) {
	.kcp-tpl-hero-banner { padding: 56px 24px 48px; }
	.kcp-tpl-hero-title  { font-size: 48px; }
	.kcp-tpl-with-sidebar { grid-template-columns: 1fr !important; }
}
@media (max-width: 600px) {
	.kcp-tpl-hero-banner { padding: 40px 16px 36px; }
	.kcp-tpl-hero-title  { font-size: 36px; }
}

/* ═══════════════════════════════════════════
   DEFAULT THUMBNAIL PLACEHOLDERS
   Used when posts have no featured image
═══════════════════════════════════════════ */
.kcp-default-thumb {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 16/9;
	position: relative;
	overflow: hidden;
}
/* Video placeholder — teal gradient */
.kcp-thumb-video-placeholder {
	background: linear-gradient(135deg, #012f3a 0%, #02667f 100%);
}
/* Gradient placeholder for regular posts */
.kcp-thumb-gradient-placeholder {
	/* background set inline via PHP */
}
/* kcp-thumb-icon and kcp-thumb-label replaced by kcp-placeholder-icon
   and kcp-placeholder-label — kept here as no-op comment for reference */
/* Ensure placeholder fills card image slot correctly */
.kcp-blog-card .kcp-default-thumb,
.kcp-earn-video-thumb .kcp-default-thumb {
	height: 100%;
	aspect-ratio: unset;
}

/* ═══════════════════════════════════════════
   POST CARD (archive, search, index)
   Extends earn card style — same border, radius,
   hover lift. Taller thumbnail, adds author + date.
═══════════════════════════════════════════ */
.kcp-post-card-thumb {
	height: 180px !important;
	overflow: hidden;
	position: relative;
}
.kcp-post-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.kcp-post-card-thumb-link { display: block; }

.kcp-post-card-title {
	font-size: 15px !important;
	margin-bottom: 8px !important;
}
.kcp-post-card-title a {
	color: var(--kcp-ink);
	text-decoration: none;
	transition: color .2s;
}
.kcp-post-card-title a:hover { color: var(--kcp-teal); }

.kcp-post-card-meta {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 11px;
	color: var(--kcp-ink-light);
	margin-top: 6px;
	font-family: var(--kcp-ff-mono);
	letter-spacing: .3px;
}
.kcp-post-card-sep { opacity: .4; }

/* ── Archive page layout ── */
.kcp-archive-wrap {
	max-width: 1300px;
	margin: 0 auto;
	padding: 0 48px 60px;
}
.kcp-archive-header {
	padding: 52px 0 36px;
	border-bottom: 2.5px solid var(--kcp-ink);
	margin-bottom: 40px;
}
.kcp-archive-header-inner { max-width: 700px; }
.kcp-archive-title {
	font-family: var(--kcp-ff-display);
	font-size: 56px;
	letter-spacing: 2px;
	color: var(--kcp-ink);
	line-height: .95;
	margin: 8px 0 0;
}
.kcp-archive-desc {
	font-size: 14px;
	color: var(--kcp-ink-light);
	line-height: 1.65;
	margin-top: 12px;
}
.kcp-archive-main { min-height: 400px; }

/* Posts grid — same 4-col as earn section */
.kcp-posts-grid.kcp-earn-video-grid {
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 20px;
}

/* ── Pagination ── */
.kcp-pagination {
	display: flex;
	gap: 6px;
	justify-content: center;
	margin-top: 48px;
	flex-wrap: wrap;
}
.kcp-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 2px solid var(--kcp-ink);
	border-radius: 4px;
	font-family: var(--kcp-ff-mono);
	font-size: 13px;
	font-weight: 700;
	color: var(--kcp-ink);
	text-decoration: none;
	transition: all .2s;
}
.kcp-pagination .page-numbers:hover,
.kcp-pagination .page-numbers.current {
	background: var(--kcp-teal);
	border-color: var(--kcp-teal);
	color: #fff;
}
.kcp-pagination .page-numbers.dots {
	border-color: transparent;
	background: none;
	cursor: default;
}

/* ── Responsive ── */
@media (max-width: 900px) {
	.kcp-archive-wrap { padding: 0 24px 40px; }
	.kcp-archive-title { font-size: 40px; }
	.kcp-posts-grid.kcp-earn-video-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.kcp-archive-wrap { padding: 0 16px 32px; }
	.kcp-archive-title { font-size: 30px; }
	.kcp-posts-grid.kcp-earn-video-grid { grid-template-columns: 1fr; }
}

/* ── Musicians Marketplace / Dashboard stat cards
   Centres h3 headings and count values inside cards
   rendered within .kcp-page-content ── */
.kcp-page-content .dashboard-card,
.kcp-page-content .stat-card,
.kcp-page-content .kcp-dash-card,
.kcp-page-content [class*="card"] {
	text-align: center !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
}
.kcp-page-content [class*="card"] h3,
.kcp-page-content [class*="card"] .count,
.kcp-page-content [class*="card"] .number,
.kcp-page-content [class*="card"] [class*="count"],
.kcp-page-content [class*="card"] [class*="number"] {
	text-align: center !important;
	width: 100% !important;
}

/* ── Dashboard card: reduce spacing between icon and h3 ── */
.kcp-page-content [class*="card"] img,
.kcp-page-content [class*="card"] svg,
.kcp-page-content [class*="card"] i,
.kcp-page-content [class*="card"] [class*="icon"],
.kcp-page-content [class*="card"] [class*="Icon"] {
	margin-bottom: 6px !important;
}
.kcp-page-content [class*="card"] h3 {
	margin-top: 0 !important;
	margin-bottom: 4px !important;
}

/* Post nav thumbnail */
.kcp-post-nav-thumb {
	width: 80px; height: 54px; flex-shrink: 0;
	border-radius: 5px; overflow: hidden; margin: 4px 0;
}
.kcp-post-nav-thumb img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
/* Responsive post nav */
@media (max-width: 600px) {
	.kcp-post-nav { grid-template-columns: 1fr; }
	.kcp-archive-wrap { padding: 0 16px 48px; }
	.kcp-archive-title { font-size: 34px; }
	.kcp-posts-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 20px; }
}
@media (max-width: 900px) {
	.kcp-archive-wrap { padding: 0 24px 52px; }
	.kcp-archive-title { font-size: 42px; }
	.kcp-posts-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}

/* ═══════════════════════════════════════════
   VIDEO PLAY-BUTTON PLACEHOLDER
   YouTube/Vimeo-style — pure CSS+HTML, zero HTTP,
   zero <video> element, zero green-flash artefact.
   Fills the card thumb slot (position:relative
   container) and signals "this is a video" clearly.
═══════════════════════════════════════════ */
.kcp-play-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
	overflow: hidden;
}
.kcp-play-placeholder-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .18s;
	pointer-events: none;
}
.kcp-earn-video-card:hover .kcp-play-placeholder-btn,
.kcp-blog-card:hover .kcp-play-placeholder-btn {
	transform: scale(1.1);
}
.kcp-play-placeholder-badge {
	position: absolute;
	top: 8px;
	left: 8px;
	font-family: var(--kcp-ff-mono);
	font-size: 8px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: 3px;
	pointer-events: none;
}

/* ═══════════════════════════════════════════
   POST-TYPE PLACEHOLDER (non-video posts)
   Gradient background + SVG icon + category label.
   Pure PHP output — zero HTTP, zero lag.
═══════════════════════════════════════════ */
.kcp-post-type-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.kcp-placeholder-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	filter: drop-shadow(0 2px 8px rgba(0,0,0,.35));
}
.kcp-placeholder-label {
	font-family: var(--kcp-ff-mono);
	font-size: 9px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(255,255,255,.75);
	font-weight: 700;
	text-align: center;
	padding: 0 10px;
	max-width: 100%;
	word-break: break-word;
}
