/* Kaixin Kung Fu — brand layer. Colours and fonts come from Elementor Site Settings (global colours/fonts),
   so the client can change them there; the values after the commas are fallbacks. */

:root {
	--kx-paper: var(--e-global-color-kxpaper, #f5efe6);
	--kx-surface: var(--e-global-color-kxsurface, #ebe2d3);
	--kx-ink: var(--e-global-color-text, #1b1613);
	--kx-muted: var(--e-global-color-kxmuted, #5c524a);
	--kx-red: var(--e-global-color-primary, #b5251d);
	--kx-wall: var(--e-global-color-kxwall, #c8352b);
	--kx-plum: var(--e-global-color-kxplum, #5e1a26);
	--kx-gold: var(--e-global-color-kxgold, #b48a3c);
	--kx-display: var(--e-global-typography-primary-font-family, "Fraunces"), Georgia, serif;
	--kx-text: var(--e-global-typography-text-font-family, "Figtree"), system-ui, sans-serif;
	--kx-cjk: "Ma Shan Zheng", "Kaiti SC", "STKaiti", "KaiTi", serif;
	--kx-m: clamp(20px, 4vw, 56px);
	--kx-gap-section: clamp(96px, 12vw, 200px);
	--kx-s1: clamp(58px, 11.5vw, 200px); /* the name */
	--kx-s2: clamp(36px, 4.6vw, 72px);   /* section headlines */
	--kx-s3: clamp(22px, 2.1vw, 30px);   /* statements, card titles */
	--kx-s4: 18px;                       /* text */
	--kx-s5: 14px;                       /* captions, meta */
	--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);
	--ease-soft: cubic-bezier(0.33, 1, 0.68, 1);
}

/* ---------- Base ---------- */
body.kx {
	background: var(--kx-paper);
	color: var(--kx-ink);
	font-family: var(--kx-text);
	font-size: var(--kx-s4);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
.kx :where(h1, h2, h3, h4) { font-family: var(--kx-display); font-weight: 500; line-height: 1.02; letter-spacing: -0.02em; margin: 0; color: inherit; }
.kx :where(p) { margin: 0 0 1em; }
.kx :where(p:last-child) { margin-bottom: 0; }
.kx a { color: inherit; }
.kx img { display: block; max-width: 100%; height: auto; }
.kx [lang="zh-Hans"] { font-family: var(--kx-cjk); letter-spacing: 0; }
.kx ::selection { background: var(--kx-red); color: #fff; }
.kx :focus-visible { outline: 3px solid var(--kx-gold); outline-offset: 3px; }
.kx-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--kx-ink); color: #fff; padding: 12px 16px; text-decoration: none; }
.kx-skip:focus { top: 12px; }
.kx .site-main, .kx .page-content { max-width: none; padding: 0; margin: 0; }

/* Elementor containers we style: no default padding or gaps, we set our own. */
.kx .e-con[class*="kx-"] { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.kx [class*="kx-"] > .elementor-widget-container, .kx [class*="kx-"] .elementor-widget-container { margin: 0; }
.kx .elementor-widget:not(:last-child) { margin-block-end: 0; }

/* ---------- Buttons and links ---------- */
.kx-btn, .kx .kx-button .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 28px; border: 2px solid currentColor; border-radius: 0;
	font: 600 16px/1 var(--kx-text); letter-spacing: 0.01em; text-decoration: none;
	background: transparent; color: inherit; cursor: pointer;
	transition: transform 140ms var(--ease-out), background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.kx-btn--accent, .kx .kx-button--accent .elementor-button { background: var(--kx-red); border-color: var(--kx-red); color: #fff; }
.kx .kx-button--paper .elementor-button { background: var(--kx-paper); border-color: var(--kx-paper); color: var(--kx-ink); }
.kx-btn:active, .kx .kx-button .elementor-button:active { transform: scale(0.97); }
@media (hover: hover) and (pointer: fine) {
	.kx-btn:hover, .kx .kx-button .elementor-button:hover { background: var(--kx-ink); border-color: var(--kx-ink); color: var(--kx-paper); }
	.kx-btn--accent:hover, .kx .kx-button--accent .elementor-button:hover { background: var(--kx-plum); border-color: var(--kx-plum); color: #fff; }
	.kx .kx-button--paper .elementor-button:hover { background: var(--kx-ink); border-color: var(--kx-ink); color: var(--kx-paper); }
}
.kx-link { display: inline-block; font-weight: 600; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; transition: text-underline-offset 180ms var(--ease-out); }
@media (hover: hover) { .kx-link:hover { text-underline-offset: 8px; } }
.kx-meta { font-size: var(--kx-s5); color: var(--kx-muted); margin: 0 0 8px; }
.kx-empty { padding: 24px; background: var(--kx-surface); font-size: var(--kx-s5); }
.kx-img-missing { display: block; width: 100%; aspect-ratio: 4 / 5; background: var(--kx-surface); }

/* ---------- Seal + wordmark ---------- */
.kx-seal {
	display: inline-grid; place-items: center; width: 1.9em; height: 1.9em;
	background: var(--kx-red); color: #fff; font-size: 15px; line-height: 0.95; writing-mode: vertical-rl;
	letter-spacing: 0; padding: 2px 0;
}

/* ---------- Header ---------- */
.kx-site-header { position: fixed; inset: 0 0 auto; z-index: 50; }
.kx-header {
	display: flex; align-items: center; gap: 28px; padding: 22px var(--kx-m);
	color: #fff; transition: background-color 240ms ease, color 240ms ease, padding 240ms var(--ease-out);
}
.kx-site-header.is-solid .kx-header { background: var(--kx-paper); color: var(--kx-ink); padding-block: 14px; }
.kx-site-header.is-static { position: relative; }
.kx-site-header.is-static .kx-header { color: var(--kx-ink); background: var(--kx-paper); }
.kx-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; }
.kx-brand__name { font-family: var(--kx-display); font-size: 26px; letter-spacing: -0.01em; line-height: 1; }
.kx-brand__logo { height: 44px; width: auto; }
.kx-nav { display: flex; align-items: center; gap: 28px; }
.kx-nav__list { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.kx-nav__list a { font-size: 15px; font-weight: 500; text-decoration: none; padding: 6px 0; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size 240ms var(--ease-out); }
.kx-nav__list .current-menu-item > a, .kx-nav__list a:hover { background-size: 100% 2px; }
.kx-header__cta { min-height: 44px; padding: 0 20px; font-size: 15px; }
.kx-nav-toggle { display: none; align-items: center; gap: 10px; min-height: 44px; padding: 0 4px; background: none; border: 0; color: inherit; font: 600 15px var(--kx-text); cursor: pointer; }
.kx-nav-toggle__bars, .kx-nav-toggle__bars::before { display: block; width: 22px; height: 2px; background: currentColor; position: relative; transition: transform 240ms var(--ease-out); }
.kx-nav-toggle__bars::before { content: ""; position: absolute; top: 7px; }

@media (max-width: 1024px) {
	.kx-nav-toggle { display: inline-flex; }
	.kx-nav {
		position: fixed; inset: 0; z-index: -1; flex-direction: column; align-items: flex-start; justify-content: center;
		gap: 40px; padding: 96px var(--kx-m) 48px; background: var(--kx-ink); color: var(--kx-paper);
		opacity: 0; visibility: hidden; transition: opacity 240ms var(--ease-out), visibility 0s linear 240ms;
	}
	.kx-nav__list { flex-direction: column; gap: 14px; }
	.kx-nav__list a { font-family: var(--kx-display); font-size: clamp(36px, 9vw, 56px); line-height: 1.1; }
	.kx-header.is-open .kx-nav { opacity: 1; visibility: visible; transition-delay: 0s; }
	.kx-header.is-open { color: var(--kx-paper); background: transparent !important; }
	.kx-header.is-open .kx-nav-toggle__bars { transform: translateY(3px) rotate(45deg); }
	.kx-header.is-open .kx-nav-toggle__bars::before { transform: translateY(-7px) rotate(-90deg); }
	.kx-header__cta { width: 100%; max-width: 360px; }
}
body.kx-menu-open { overflow: hidden; }

/* ---------- Hero: the place carries it ---------- */
.kx .e-con.kx-hero {
	position: relative; min-height: 100svh; overflow: hidden; isolation: isolate;
	display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 24px 48px;
	padding: 120px var(--kx-m) clamp(28px, 4vw, 48px); color: #fff; background-color: var(--kx-ink);
}
.kx .kx-hero > .kx-hero__media { position: absolute; inset: 0; z-index: -2; }
.kx .kx-hero__media, .kx .kx-hero__media .elementor-widget-container, .kx .kx-hero__media .elementor-image-carousel-wrapper,
.kx .kx-hero__media .swiper, .kx .kx-hero__media .swiper-wrapper, .kx .kx-hero__media .swiper-slide, .kx .kx-hero__media figure { height: 100%; width: 100%; margin: 0; }
.kx .kx-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 70%; max-width: none; }
.kx .kx-hero::after {
	content: ""; position: absolute; inset: auto 0 0 0; height: 55%; z-index: -1; pointer-events: none;
	background: linear-gradient(to top, rgba(20, 14, 12, 0.62), rgba(20, 14, 12, 0)); /* scrim under the text only */
}
.kx .kx-hero__name { grid-column: 1; align-self: end; }
.kx .kx-hero__name .elementor-heading-title { font-size: var(--kx-s1); line-height: 0.86; letter-spacing: -0.045em; font-weight: 500; color: #fff; }
.kx .kx-hero__name .elementor-heading-title span[lang] { font-size: 0.42em; letter-spacing: 0; vertical-align: 0.95em; margin-left: 0.12em; color: #fff; }
.kx .e-con.kx-hero__aside { grid-column: 2; display: flex; flex-direction: column; align-items: flex-end; gap: 20px; text-align: right; max-width: 34ch; padding-bottom: 0.6vw; }
.kx .kx-hero__line { font-size: 17px; line-height: 1.45; color: #fff; }
@media (max-width: 767px) {
	.kx .e-con.kx-hero { grid-template-columns: 1fr; padding-top: 96px; }
	.kx .kx-hero__media img { object-position: 50% 80%; }
	.kx .e-con.kx-hero__aside { grid-column: 1; align-items: flex-start; text-align: left; }
	.kx .kx-hero__aside .elementor-button { width: 100%; }
	.kx .kx-hero__aside .kx-button { width: 100%; }
}
/* Page heroes (inner pages): shorter, same family. */
.kx .e-con.kx-hero--page { min-height: 78svh; }
.kx .kx-hero--page .kx-hero__name .elementor-heading-title { font-size: clamp(52px, 8vw, 132px); }

/* ---------- Section rhythm ---------- */
.kx .e-con.kx-sec { padding: var(--kx-gap-section) var(--kx-m) 0; }
.kx .e-con.kx-sec--last { padding-bottom: var(--kx-gap-section); }
.kx .kx-h2 .elementor-heading-title { font-size: var(--kx-s2); max-width: 16ch; }
.kx .kx-lead, .kx .kx-lead p { font-size: clamp(19px, 1.55vw, 23px); line-height: 1.5; max-width: 52ch; }
.kx .kx-statement, .kx .kx-statement p { font-family: var(--kx-display); font-size: var(--kx-s3); line-height: 1.3; letter-spacing: -0.01em; max-width: 26ch; }

/* ---------- Intro: pinned sentence, photographs pass ---------- */
.kx .e-con.kx-intro { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 0 var(--kx-m); padding: var(--kx-gap-section) var(--kx-m) 0; }
.kx .e-con.kx-intro__copy { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; gap: 28px; align-self: start; }
.kx .kx-intro__copy .kx-statement p, .kx .kx-intro__copy .kx-statement { font-size: clamp(28px, 2.9vw, 36px); max-width: 20ch; }
.kx .e-con.kx-intro__photos { display: flex; flex-direction: column; gap: 22svh; padding-block: 12svh 6svh; }
.kx .kx-intro__photos .elementor-widget-image:nth-child(1) { width: 62%; align-self: flex-start; }
.kx .kx-intro__photos .elementor-widget-image:nth-child(2) { width: 100%; }
.kx .kx-intro__photos .elementor-widget-image:nth-child(3) { width: 48%; align-self: flex-end; }
.kx .kx-intro__photos img { width: 100%; }
@media (max-width: 767px) {
	.kx .e-con.kx-intro { grid-template-columns: 1fr; }
	.kx .e-con.kx-intro__copy { position: static; height: auto; padding-bottom: 48px; }
	.kx .e-con.kx-intro__photos { gap: 56px; padding: 0; }
	.kx .kx-intro__photos .elementor-widget-image:nth-child(1) { width: 78%; }
	.kx .kx-intro__photos .elementor-widget-image:nth-child(3) { width: 64%; }
}

/* ---------- Meet: wide photo, colour tile, facts ---------- */
.kx .e-con.kx-meet { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px 16px; }
.kx .kx-meet > .kx-h2 { grid-column: 1 / span 7; }
.kx .kx-meet > .kx-lead { grid-column: 1 / span 7; margin-bottom: 48px; }
.kx .e-con.kx-meet__photo { grid-column: 1 / span 8; position: relative; }
.kx .kx-meet__photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.kx .kx-meet__note { position: absolute; top: 0; right: 0; width: min(340px, 60%); background: var(--kx-paper); padding: 0 0 24px 24px; font-size: 16px; }
.kx .e-con.kx-meet__tile { grid-column: 9 / span 4; display: flex; flex-direction: column; gap: 28px; }
.kx .kx-meet__seal { background: var(--kx-red); color: #fff; aspect-ratio: 4 / 3; display: grid; place-items: center; }
.kx .kx-meet__seal .elementor-heading-title { font-family: var(--kx-cjk); font-size: clamp(72px, 9vw, 150px); letter-spacing: 0; line-height: 1; color: #fff; }
.kx .kx-facts dl { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 16px; margin: 0; }
.kx .kx-facts dt { font-size: var(--kx-s5); color: var(--kx-muted); margin-bottom: 4px; }
.kx .kx-facts dd { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.35; }
@media (max-width: 1024px) {
	.kx .kx-meet > .kx-h2, .kx .kx-meet > .kx-lead, .kx .e-con.kx-meet__photo, .kx .e-con.kx-meet__tile { grid-column: 1 / -1; }
	.kx .kx-meet__note { position: static; width: auto; padding: 20px 0 0; }
	.kx .kx-meet__photo img { aspect-ratio: 4 / 3; }
	.kx .kx-meet__seal { aspect-ratio: 3 / 2; }
}

/* ---------- Showcase: full-bleed close-up with an ink card ---------- */
.kx .e-con.kx-showcase { margin-top: var(--kx-gap-section); min-height: 100svh; display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; background-size: cover; background-position: center; padding: 0 var(--kx-m); }
.kx .e-con.kx-card { grid-column: 2; min-height: 52svh; min-width: 300px; background: var(--kx-ink); color: var(--kx-paper); padding: 36px 30px; display: flex; flex-direction: column; gap: 14px; justify-content: space-between; }
.kx .kx-card .elementor-heading-title { font-size: clamp(30px, 2.4vw, 38px); color: var(--kx-paper); }
.kx .kx-card .kx-meta { color: #cfc4b6; }
.kx .kx-card p { font-size: 17px; }
.kx .kx-card .elementor-button { width: 100%; }
@media (max-width: 1024px) {
	.kx .e-con.kx-showcase { grid-template-columns: 1fr; align-items: end; padding: 0; min-height: 92svh; }
	.kx .e-con.kx-card { grid-column: 1; min-height: 0; min-width: 0; padding: 28px 20px; }
}

/* ---------- Try a move (the live thing) ---------- */
.kx .e-con.kx-try { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px 16px; }
.kx .kx-try > .kx-h2 { grid-column: 1 / span 8; }
.kx .kx-try > .kx-lead { grid-column: 1 / span 7; margin-bottom: 40px; }
.kx .kx-try > .elementor-widget-kx-moves { grid-column: 1 / -1; }
.kx-moves__prompt { font-size: var(--kx-s5); color: var(--kx-muted); margin-bottom: 14px; }
.kx-moves__tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.kx-moves__tab {
	display: inline-flex; align-items: baseline; gap: 10px; min-height: 52px; padding: 0 22px;
	border: 2px solid var(--kx-ink); background: transparent; color: var(--kx-ink); border-radius: 0;
	font: 600 16px var(--kx-text); cursor: pointer; transition: transform 140ms var(--ease-out), background-color 180ms ease, color 180ms ease;
}
.kx-moves__tab-cn { font-weight: 400; opacity: 0.75; }
.kx-moves__tab[aria-selected="true"] { background: var(--kx-ink); color: var(--kx-paper); }
.kx-moves__tab:active { transform: scale(0.97); }
@media (hover: hover) { .kx-moves__tab:not([aria-selected="true"]):hover { background: var(--kx-surface); } }
.kx-moves__panel { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0; background: var(--kx-surface); }
.kx-moves__panel[hidden] { display: none; }
.kx-moves__media img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.kx-moves__body { padding: clamp(28px, 4vw, 56px); align-self: center; }
.kx-moves__title { font-size: var(--kx-s2); margin-bottom: 6px !important; }
.kx-moves__cn { font-size: 20px; color: var(--kx-red); margin-bottom: 20px; }
.kx-moves__steps { margin: 20px 0; padding-left: 1.3em; display: grid; gap: 10px; }
.kx-moves__steps li::marker { color: var(--kx-red); font-weight: 700; }
.kx-moves__tip { font-size: 16px; border-left: 4px solid var(--kx-red); padding-left: 14px; }
.kx-moves.is-ready .kx-moves__panel:not([data-kx-active]) { display: none; }
@media (prefers-reduced-motion: no-preference) {
	.kx-moves.is-ready .kx-moves__panel[data-kx-active] .kx-moves__img { animation: kx-settle 700ms var(--ease-soft); }
	.kx-moves.is-ready .kx-moves__panel[data-kx-active] .kx-moves__body { animation: kx-rise 500ms var(--ease-out); }
}
@media (max-width: 767px) {
	.kx .kx-try > .kx-h2, .kx .kx-try > .kx-lead { grid-column: 1 / -1; }
	.kx-moves__tabs { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--kx-m) * -1); padding-inline: var(--kx-m); scrollbar-width: none; }
	.kx-moves__tab { flex: 0 0 auto; scroll-snap-align: start; }
	.kx-moves__panel { grid-template-columns: 1fr; }
}

/* ---------- The printed sheet (Growing with you) ---------- */
.kx .e-con.kx-band { margin-top: var(--kx-gap-section); background: var(--kx-plum); padding: clamp(72px, 9vw, 140px) var(--kx-m); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; gap: 40px 16px; }
.kx .kx-band > .kx-band__photo { grid-column: 1 / span 5; }
.kx .kx-band__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.kx .e-con.kx-sheet {
	grid-column: 7 / span 6; background: var(--kx-paper); color: var(--kx-ink); padding: 72px clamp(28px, 4vw, 64px);
	text-align: center; gap: 16px;
	--scallop: radial-gradient(circle at 12px 0, transparent 11px, #000 12px);
	-webkit-mask: radial-gradient(circle 12px at 50% 0, transparent 11.5px, #000 12px) 0 0 / 24px 51% repeat-x, radial-gradient(circle 12px at 50% 100%, transparent 11.5px, #000 12px) 0 100% / 24px 51% repeat-x;
	mask: radial-gradient(circle 12px at 50% 0, transparent 11.5px, #000 12px) 0 0 / 24px 51% repeat-x, radial-gradient(circle 12px at 50% 100%, transparent 11.5px, #000 12px) 0 100% / 24px 51% repeat-x;
}
.kx .kx-sheet .elementor-heading-title { font-size: clamp(36px, 3.4vw, 48px); }
.kx .kx-sheet .kx-sheet__note { font-size: 15px; color: var(--kx-muted); }
.kx .kx-stages { list-style: none; margin: 32px auto 0; padding: 0; max-width: 440px; display: grid; gap: 30px; }
.kx .kx-stages li { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; text-align: left; }
.kx .kx-stages strong { font-family: var(--kx-display); font-weight: 500; font-size: 24px; line-height: 1.1; }
.kx .kx-stages .kx-age { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--kx-red); align-self: center; }
.kx .kx-stages span.kx-desc { grid-column: 1 / -1; font-size: 15px; color: var(--kx-muted); }
@media (max-width: 1024px) {
	.kx .kx-band > .kx-band__photo, .kx .e-con.kx-sheet { grid-column: 1 / -1; }
	.kx .kx-band__photo img { aspect-ratio: 4 / 3; }
	.kx .e-con.kx-band { padding-inline: 10px; }
	.kx .e-con.kx-sheet { padding: 64px 24px; }
}

/* ---------- Gallery: staggered pairs ---------- */
.kx .e-con.kx-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 16px; row-gap: 0; }
.kx .kx-gallery > .elementor-widget-image img { width: 100%; object-fit: cover; }
.kx .kx-gallery figcaption, .kx .kx-gallery .widget-image-caption { font-size: 13px; color: var(--kx-muted); text-align: left; margin-top: 10px; }
.kx .kx-gallery > :nth-child(6n+1) { grid-column: 1 / span 4; }
.kx .kx-gallery > :nth-child(6n+1) img { aspect-ratio: 3 / 4; }
.kx .kx-gallery > :nth-child(6n+2) { grid-column: 7 / span 6; margin-top: 30vh; }
.kx .kx-gallery > :nth-child(6n+2) img { aspect-ratio: 5 / 4; }
.kx .kx-gallery > :nth-child(6n+3) { grid-column: 6 / span 6; margin-top: 24vh; }
.kx .kx-gallery > :nth-child(6n+3) img { aspect-ratio: 3 / 2; }
.kx .kx-gallery > :nth-child(6n+4) { grid-column: 2 / span 3; margin-top: 24vh; }
.kx .kx-gallery > :nth-child(6n+4) img { aspect-ratio: 4 / 5; }
.kx .kx-gallery > :nth-child(6n+5) { grid-column: 9 / span 4; margin-top: 24vh; }
.kx .kx-gallery > :nth-child(6n+5) img { aspect-ratio: 3 / 4; }
.kx .kx-gallery > :nth-child(6n+6) { grid-column: 1 / span 6; margin-top: 30vh; }
.kx .kx-gallery > :nth-child(6n+6) img { aspect-ratio: 5 / 4; }
@media (max-width: 767px) {
	.kx .e-con.kx-gallery { display: flex; flex-direction: column; gap: 64px; }
	.kx .kx-gallery > .elementor-widget-image { margin-top: 0 !important; }
	.kx .kx-gallery > :nth-child(4n+1) { width: 72%; align-self: flex-start; }
	.kx .kx-gallery > :nth-child(4n+2) { width: 86%; align-self: flex-end; }
	.kx .kx-gallery > :nth-child(4n+3) { width: 58%; align-self: flex-start; }
	.kx .kx-gallery > :nth-child(4n+4) { width: calc(100% + var(--kx-m) * 2); margin-inline: calc(var(--kx-m) * -1); }
}

/* ---------- Closing call to action ---------- */
.kx .e-con.kx-cta { margin-top: var(--kx-gap-section); min-height: 90svh; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; background-size: cover; background-position: 30% center; padding: 0 var(--kx-m) clamp(48px, 8vw, 110px); color: #fff; position: relative; isolation: isolate; }
.kx .kx-cta::before { content: ""; position: absolute; inset: 0; background: rgba(20, 14, 12, 0.28); z-index: -1; }
.kx .e-con.kx-cta__copy { grid-column: 8 / span 5; display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.kx .kx-cta .elementor-heading-title { font-size: clamp(40px, 3.8vw, 64px); color: #fff; }
.kx .kx-cta p { font-size: 18px; max-width: 40ch; }
@media (max-width: 1024px) {
	.kx .e-con.kx-cta { min-height: 0; padding: 62svh 0 0; background-position: 30% top; background-size: auto 70svh; background-repeat: no-repeat; background-color: var(--kx-ink); }
	.kx .kx-cta::before { display: none; }
	.kx .e-con.kx-cta__copy { grid-column: 1 / -1; background: var(--kx-ink); padding: 40px var(--kx-m) 56px; }
	.kx .kx-cta .elementor-button { width: 100%; }
	.kx .kx-cta .elementor-widget-button { width: 100%; }
}

/* ---------- Footer: photograph half, menu half ---------- */
.kx .e-con.kx-footer { display: grid; grid-template-columns: 1fr 1fr; min-height: 100svh; background: var(--kx-ink); color: var(--kx-paper); }
.kx .kx-footer__photo img { width: 100%; height: 100%; min-height: 100svh; object-fit: cover; object-position: 40% 30%; }
.kx .kx-footer__photo, .kx .kx-footer__photo .elementor-widget-container { height: 100%; }
.kx .e-con.kx-footer__menu { padding: 80px var(--kx-m) 32px; display: flex; flex-direction: column; gap: 56px; }
.kx .kx-footer__brand .elementor-heading-title { font-size: 26px; color: var(--kx-paper); }
.kx-bigmenu__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.kx-bigmenu__list a { display: inline-block; font-family: var(--kx-display); font-size: clamp(34px, 3vw, 52px); line-height: 1.05; text-decoration: none; color: var(--kx-paper); transition: transform 240ms var(--ease-out), color 180ms ease; }
@media (hover: hover) {
	.kx-bigmenu__list:hover a { color: #9d9186; }
	.kx-bigmenu__list a:hover { transform: translateX(12px); color: var(--kx-paper); }
}
.kx .e-con.kx-footer__info { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; font-size: 15px; }
.kx .kx-footer__info a { color: var(--kx-paper); }
.kx .kx-footer__info h3, .kx .kx-footer__info .elementor-heading-title { font-family: var(--kx-text); font-size: 14px; font-weight: 600; color: #b3a79b; margin-bottom: 8px; letter-spacing: 0; }
.kx .kx-footer__legal { margin-top: auto; font-size: 13px; color: #b3a79b; }
.kx .kx-footer__legal a { color: #b3a79b; }
@media (max-width: 767px) {
	.kx .e-con.kx-footer { grid-template-columns: 1fr; min-height: 0; }
	.kx .kx-footer__photo img { min-height: 0; height: 50svh; }
	.kx .e-con.kx-footer__info { grid-template-columns: 1fr; }
}

/* ---------- Content-type lists ---------- */
.kx-stories { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 96px 16px; }
.kx-story { grid-column: 1 / span 8; display: grid; grid-template-columns: subgrid; }
.kx-story:nth-child(even) { grid-column: 5 / span 8; }
.kx-story__media { grid-column: span 5; display: block; overflow: hidden; }
.kx-story__media img, .kx-story__media .kx-img-missing { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 900ms var(--ease-soft); }
@media (hover: hover) { .kx-story:hover .kx-story__media img { transform: scale(1.03); } }
.kx-story__body { grid-column: span 3; align-self: end; }
.kx-story__title { font-size: var(--kx-s3); margin-bottom: 12px !important; }
.kx-story__title a { text-decoration: none; }
@media (max-width: 1024px) {
	.kx-stories { display: flex; flex-direction: column; gap: 64px; }
	.kx-story { display: flex; flex-direction: column; gap: 20px; }
}
.kx-characters { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 56px 24px; }
.kx-character__img, .kx-character .kx-img-missing { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; margin-bottom: 18px; }
.kx-character__name { font-size: var(--kx-s3); margin-bottom: 6px !important; }
.kx-downloads { list-style: none; margin: 0; padding: 0; display: grid; gap: 48px; }
.kx-download { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 32px; align-items: center; }
.kx-download__img, .kx-download .kx-img-missing { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.kx-download__title { font-size: var(--kx-s3); margin-bottom: 10px !important; }
.kx-collection { display: grid; gap: 72px; }
.kx-piece { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px; align-items: center; }
.kx-piece:nth-child(even) .kx-piece__media { order: 2; }
.kx-piece__img, .kx-piece .kx-img-missing { width: 100%; aspect-ratio: 1; object-fit: cover; }
.kx-piece__name { font-size: var(--kx-s2); margin-bottom: 10px !important; }
.kx-piece__status { display: inline-block; font-weight: 600; color: var(--kx-red); margin-bottom: 16px; }
@media (max-width: 767px) {
	.kx-download, .kx-piece { grid-template-columns: 1fr; gap: 20px; }
	.kx-piece:nth-child(even) .kx-piece__media { order: 0; }
}

/* ---------- Generic two-column text section and glossary ---------- */
.kx .e-con.kx-split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 28px 16px; align-items: start; }
.kx .kx-split > :first-child { grid-column: 1 / span 5; }
.kx .kx-split > :not(:first-child) { grid-column: 7 / span 6; }
.kx .kx-split--photo > .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.kx .kx-glossary dl { display: grid; grid-template-columns: auto 1fr; gap: 22px 32px; margin: 0; }
.kx .kx-glossary dt { font-family: var(--kx-cjk); font-size: 30px; line-height: 1.1; color: var(--kx-red); }
.kx .kx-glossary dt small { display: block; font-family: var(--kx-text); font-size: 14px; color: var(--kx-muted); margin-top: 4px; }
.kx .kx-glossary dd { margin: 0; align-self: center; }
.kx .kx-glossary dd strong { display: block; font-family: var(--kx-display); font-weight: 500; font-size: 22px; }
@media (max-width: 1024px) {
	.kx .kx-split > :first-child, .kx .kx-split > :not(:first-child) { grid-column: 1 / -1; }
}

/* ---------- Forms (sign-up) ---------- */
.kx .kx-form-wrap { background: var(--kx-surface); padding: clamp(28px, 4vw, 56px); }
.kx input[type="email"], .kx input[type="text"], .kx textarea { min-height: 52px; border: 2px solid var(--kx-ink); border-radius: 0; background: var(--kx-paper); padding: 12px 16px; font: 16px var(--kx-text); color: var(--kx-ink); width: 100%; }

/* ---------- Single story ---------- */
.kx.single-kx_story .site-main, .kx.single-kx_character .site-main { max-width: 1040px; margin: 0 auto; padding: 140px var(--kx-m) var(--kx-gap-section); }
.kx.single-kx_story .entry-title, .kx.single-kx_character .entry-title { font-size: var(--kx-s2); margin-bottom: 32px; }

/* ---------- Motion: entrances (content stays visible without JS) ---------- */
@keyframes kx-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes kx-settle { from { transform: scale(1.05); } to { transform: none; } }
@media (prefers-reduced-motion: no-preference) {
	.kx-js .kx-hero__name, .kx-js .kx-hero__aside > * { animation: kx-rise 900ms var(--ease-out) both; }
	.kx-js .kx-hero__aside > :nth-child(1) { animation-delay: 220ms; }
	.kx-js .kx-hero__aside > :nth-child(2) { animation-delay: 310ms; }
	.kx-js [data-kx-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 700ms var(--ease-out), transform 900ms var(--ease-out); transition-delay: var(--kx-d, 0ms); }
	.kx-js [data-kx-reveal].is-in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; }
}

/* Elementor editor: never hide anything while editing. */
.elementor-editor-active [data-kx-reveal], .elementor-editor-active [data-kx-shutter] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
.elementor-editor-active .kx-site-header { position: relative; }

/* ---------- Join form + story page ---------- */
.kx-join__intro { font-size: 18px; margin-bottom: 20px; }
.kx-join__note { font-size: 14px; color: var(--kx-muted); margin-top: 16px; }
.kx .hostinger-reach-block-subscription-form .hostinger-reach-block-form-fields { display: grid; gap: 16px; }
.kx .hostinger-reach-block-subscription-form label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 6px; }
.kx .hostinger-reach-block-subscription-form button[type="submit"] { min-height: 52px; padding: 0 28px; border: 2px solid var(--kx-red) !important; border-radius: 0 !important; background: var(--kx-red) !important; color: #fff !important; font: 600 16px var(--kx-text); cursor: pointer; transition: transform 140ms var(--ease-out), background-color 180ms ease; }
.kx .hostinger-reach-block-subscription-form button[type="submit"]:active { transform: scale(0.97); }
@media (hover: hover) { .kx .hostinger-reach-block-subscription-form button[type="submit"]:hover { background: var(--kx-plum) !important; border-color: var(--kx-plum) !important; } }
.kx-story-media { margin: 0 0 40px; }
.kx-story-media img, .kx-story-media video, .kx-story-media iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.kx-story-text { font-size: 19px; max-width: 62ch; }
.kx-story-cta { margin-top: 48px; }

/* ---------- Managed fixes folded in ---------- */
.kx-seal { writing-mode: horizontal-tb; width: auto; height: auto; padding: 5px 6px; font-size: 14px; line-height: 1; letter-spacing: .02em; }
.kx-moves__tab { align-items: center; }
@media (max-width: 767px) { .kx-moves__tabs { flex-wrap: wrap; overflow: visible; margin-inline: 0; padding-inline: 0; } .kx-moves__tab { flex: 1 1 calc(50% - 5px); justify-content: center; padding: 0 12px; } }
.admin-bar .kx-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .kx-site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .kx-site-header { top: 0; } .admin-bar #wpadminbar { position: absolute; } }
.kx .kx-glossary dl > div { display: contents; }
.kx .kx-facts dl > div { display: block; }
.kx-piece:has(.kx-img-missing) { grid-template-columns: 1fr; max-width: 720px; }
.kx-piece .kx-img-missing, .kx-story .kx-img-missing { display: none; }
@media (max-width: 1024px) { body.kx .e-con.kx-cta.e-parent { background-size: cover !important; background-position: center 20% !important; } }
body.kx .e-con.kx-showcase.e-parent { background-position: center 35% !important; }
.kx-story-media .wp-video { width: 100% !important; max-width: 480px; }
.kx-story-media video, .kx-story-media .wp-video video { aspect-ratio: 3 / 4; object-fit: contain; background: #1b1613; }
.kx .hostinger-reach-block-subscription-form label { text-transform: none; letter-spacing: 0; }
.kx .kx-collection-sec .kx-lead { margin-bottom: 56px; }
/* Images: reserve space and decode off the main thread; never hidden by motion. */
.kx img { content-visibility: visible; }
.kx .kx-hero__media .swiper-slide { overflow: hidden; }
.kx .kx-intro__photos img, .kx .kx-gallery img, .kx .kx-meet__photo img, .kx .kx-band__photo img { background: var(--kx-surface); }
/* Text entrances: short and gentle; content is always visible without JS. */
@media (prefers-reduced-motion: no-preference) {
	.kx-js [data-kx-reveal] { opacity: 0; transform: translateY(16px); transition: opacity 600ms var(--ease-out), transform 700ms var(--ease-out); transition-delay: var(--kx-d, 0ms); }
	.kx-js [data-kx-reveal].is-in { opacity: 1; transform: none; }
}

/* ================= v2 design: calmer layouts, cards, compact footer ================= */
:root { --kx-gap-section: clamp(72px, 9vw, 136px); --kx-radius: 4px; }

/* Page heroes: choose the focal point per page so faces are never cut. */
.kx .kx-hero--top .kx-hero__media img { object-position: 50% 18%; }
.kx .kx-hero--mid .kx-hero__media img { object-position: 50% 40%; }
@media (max-width: 767px) { .kx .kx-hero--top .kx-hero__media img { object-position: 50% 12%; } }

/* Section heads used by the new blocks */
.kx .kx-head { margin-bottom: clamp(32px, 4vw, 56px); }
.kx .kx-head .kx-h2 .elementor-heading-title, .kx .kx-head .elementor-heading-title { font-size: var(--kx-s2); max-width: 18ch; }
.kx .kx-head .kx-lead { margin-top: 18px; }
.kx .e-con.kx-head { display: flex; flex-direction: column; }

/* ---------- Home: statement + fixed photo collage (replaces the scrolling intro) ---------- */
.kx .e-con.kx-duo { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: center; padding: var(--kx-gap-section) var(--kx-m) 0; }
.kx .e-con.kx-duo__copy { display: flex; flex-direction: column; gap: 24px; }
.kx .kx-duo__copy .kx-statement p, .kx .kx-duo__copy .kx-statement { font-size: clamp(26px, 2.7vw, 36px); max-width: 20ch; }
.kx .e-con.kx-collage { display: grid; grid-template-columns: 1.15fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; aspect-ratio: 6 / 5; }
.kx .kx-collage > .elementor-widget-image:first-child { grid-row: 1 / span 2; }
.kx .kx-collage .elementor-widget-container, .kx .kx-collage figure { height: 100%; }
.kx .kx-collage img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--kx-radius); }
@media (max-width: 767px) {
	.kx .e-con.kx-duo { grid-template-columns: 1fr; }
	.kx .e-con.kx-collage { aspect-ratio: 1 / 1; }
}

/* ---------- Ordered gallery: a calm bento grid ---------- */
.kx .e-con.kx-grid6 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(180px, 20vw, 300px); gap: 12px; }
.kx .kx-grid6 > .kx-head { grid-column: 1 / -1; grid-row: auto; margin-bottom: 8px; }
.kx .kx-grid6 > .elementor-widget-image { margin: 0 !important; }
.kx .kx-grid6 > .elementor-widget-image:nth-of-type(1) { grid-column: span 2; grid-row: span 2; }
.kx .kx-grid6 > .elementor-widget-image:nth-of-type(4) { grid-column: span 2; }
.kx .kx-grid6 .elementor-widget-container, .kx .kx-grid6 figure { height: 100%; position: relative; margin: 0; }
.kx .kx-grid6 img { width: 100%; height: 100% !important; object-fit: cover; border-radius: var(--kx-radius); }
.kx .kx-grid6 figcaption { position: absolute; left: 12px; bottom: 12px; margin: 0 !important; padding: 4px 10px; background: rgba(27, 22, 19, 0.72); color: #f5efe6 !important; font-size: 13px !important; border-radius: 2px; }
@media (max-width: 767px) {
	.kx .e-con.kx-grid6 { grid-template-columns: 1fr 1fr; grid-auto-rows: 44vw; }
	.kx .kx-grid6 > .elementor-widget-image:nth-of-type(1) { grid-column: span 2; grid-row: span 1; }
	.kx .kx-grid6 > .elementor-widget-image:nth-of-type(4) { grid-column: span 2; }
}

/* ---------- Compact footer ---------- */
.kx .e-con.kx-footer { min-height: 0; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.kx .kx-footer__photo img { min-height: 0; height: 100%; max-height: 520px; }
.kx .kx-footer__photo, .kx .kx-footer__photo .elementor-widget-container { height: 100%; max-height: 520px; overflow: hidden; }
.kx .e-con.kx-footer__menu { padding: 56px var(--kx-m) 28px; gap: 36px; }
.kx-bigmenu__list { gap: 6px; grid-template-columns: repeat(2, minmax(0, max-content)); column-gap: 56px; }
.kx-bigmenu__list a { font-size: clamp(24px, 2.1vw, 34px); }
@media (max-width: 767px) {
	.kx .kx-footer__photo, .kx .kx-footer__photo .elementor-widget-container { max-height: 240px; }
	.kx .kx-footer__photo img { height: 240px; }
	.kx-bigmenu__list { grid-template-columns: 1fr 1fr; column-gap: 24px; }
	.kx-bigmenu__list a { font-size: 22px; }
	.kx .e-con.kx-footer__menu { padding: 40px var(--kx-m) 24px; gap: 28px; }
}

/* ---------- Generic photo + text split ---------- */
.kx .e-con.kx-feature { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 5vw, 88px); align-items: center; }
.kx .e-con.kx-feature--flip > .elementor-widget-image { order: 2; }
.kx .kx-feature > .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 25%; border-radius: var(--kx-radius); }
.kx .e-con.kx-feature__copy { display: flex; flex-direction: column; gap: 20px; }
.kx .kx-feature__copy .kx-lead p { margin-bottom: 1em; }
.kx .kx-seal-big .elementor-heading-title { display: inline-block; font-family: var(--kx-cjk); font-size: 30px; line-height: 1; padding: 10px 12px; background: var(--kx-red); color: #fff; letter-spacing: 0; }
@media (max-width: 767px) {
	.kx .e-con.kx-feature { grid-template-columns: 1fr; }
	.kx .e-con.kx-feature--flip > .elementor-widget-image { order: 0; }
}

/* Dark band variant (legacy) */
.kx .e-con.kx-band-ink { margin-top: var(--kx-gap-section); background: var(--kx-ink); color: var(--kx-paper); padding: clamp(64px, 8vw, 120px) var(--kx-m); }
.kx .kx-band-ink .elementor-heading-title { color: var(--kx-paper); }
.kx .kx-band-ink .kx-lead, .kx .kx-band-ink p { color: #e6dccf; }
.kx .e-con.kx-band-plum { margin-top: var(--kx-gap-section); background: var(--kx-plum); color: var(--kx-paper); padding: clamp(64px, 8vw, 120px) var(--kx-m); }
.kx .kx-band-plum .kx-head .elementor-heading-title { color: var(--kx-paper); }
.kx .kx-band-plum .kx-head .kx-lead p { color: #ecdcd8; }
.kx .e-con.kx-band-shade { margin-top: var(--kx-gap-section); background: var(--kx-surface); padding: clamp(64px, 8vw, 120px) var(--kx-m); }

/* ---------- Cards ---------- */
.kx .e-con.kx-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.kx .e-con.kx-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kx .e-con.kx-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .kx .e-con.kx-cards--3, .kx .e-con.kx-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .kx .e-con.kx-cards--3, .kx .e-con.kx-cards--4, .kx .e-con.kx-cards { grid-template-columns: 1fr; } }
.kx .e-con.kx-card2 { background: var(--kx-paper); color: var(--kx-ink); border-radius: var(--kx-radius); overflow: hidden; display: flex; flex-direction: column; transition: transform 240ms var(--ease-out); }
.kx .kx-band-shade .e-con.kx-card2 { background: #fbf8f3; }
@media (hover: hover) { .kx .e-con.kx-card2:hover { transform: translateY(-4px); } }
.kx .kx-card2 > .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; }
.kx .e-con.kx-card2__body { padding: 24px 24px 28px; display: flex; flex-direction: column; gap: 8px; }
.kx .kx-card2__cn .elementor-heading-title { font-family: var(--kx-cjk); font-size: 34px; line-height: 1.1; color: var(--kx-red); letter-spacing: 0; }
.kx .kx-card2__py p { font-size: 14px; color: var(--kx-muted); margin: 0; }
.kx .kx-card2__title .elementor-heading-title { font-size: 24px; line-height: 1.15; color: var(--kx-ink); }
.kx .kx-card2__text p { font-size: 16px; line-height: 1.5; margin: 0; color: #3a322c; }
/* Word cards: the characters are the picture */
.kx .e-con.kx-card2--word .kx-card2__body { padding-top: 28px; }
.kx .kx-card2--word .kx-card2__cn .elementor-heading-title { font-size: 46px; }
/* Value cards on the plum band: seal on top */
.kx .kx-card2--value .kx-card2__cn .elementor-heading-title { display: inline-block; background: var(--kx-red); color: #fff; font-size: 28px; padding: 10px 12px; }

/* ---------- Try a move: tighter spacing ---------- */
.kx .e-con.kx-try { row-gap: 12px; }
.kx .kx-try > .kx-lead { margin-bottom: 20px; }
.kx-moves__tabs { margin-bottom: 20px; }
.kx-moves__body { padding: clamp(24px, 3vw, 44px); }
.kx-moves__steps { margin: 14px 0; gap: 8px; }

/* ---------- Stories: featured card + cards ---------- */
.kx-stories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.kx-story { grid-column: auto; display: flex; flex-direction: column; background: #fbf8f3; border-radius: var(--kx-radius); overflow: hidden; }
.kx-story:nth-child(even) { grid-column: auto; }
.kx-story__media { position: relative; display: block; overflow: hidden; }
.kx-story__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.kx-story__media::after { content: ""; position: absolute; left: 50%; top: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; background: rgba(181, 37, 29, 0.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5v14l11-7z'/%3E%3C/svg%3E") center / 30px no-repeat; transition: transform 200ms var(--ease-out); }
@media (hover: hover) { .kx-story:hover .kx-story__media::after { transform: scale(1.08); } }
.kx-story__body { padding: 24px; display: flex; flex-direction: column; gap: 8px; align-self: stretch; }
.kx-story__title { font-size: 26px; margin: 0 !important; }
/* First story is featured: wide, dark */
.kx-story:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); background: var(--kx-ink); color: var(--kx-paper); }
.kx-story:first-child .kx-story__media img { height: 100%; min-height: 420px; aspect-ratio: auto; }
.kx-story:first-child .kx-story__body { padding: clamp(28px, 4vw, 56px); justify-content: center; gap: 14px; }
.kx-story:first-child .kx-story__title { font-size: clamp(30px, 3vw, 44px); }
.kx-story:first-child .kx-meta { color: #cfc4b6; }
.kx-story:first-child .kx-story__excerpt { font-size: 18px; color: #e6dccf; }
.kx-story:first-child .kx-link { align-self: flex-start; margin-top: 8px; background: var(--kx-red); color: #fff; text-decoration: none; padding: 14px 24px; }
@media (max-width: 1024px) { .kx-stories { grid-template-columns: 1fr 1fr; } .kx-story:first-child { grid-template-columns: 1fr; } .kx-story:first-child .kx-story__media img { min-height: 0; aspect-ratio: 4 / 3; } }
@media (max-width: 600px) { .kx-stories { grid-template-columns: 1fr; } }

/* ---------- Collection: product cards ---------- */
.kx-collection { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.kx-piece, .kx-piece:has(.kx-img-missing) { display: flex; flex-direction: column; gap: 0; max-width: none; background: #fbf8f3; border-radius: var(--kx-radius); overflow: hidden; padding: 0; transition: transform 240ms var(--ease-out); }
@media (hover: hover) { .kx-piece:hover { transform: translateY(-4px); } }
.kx-piece:nth-child(even) .kx-piece__media { order: 0; }
.kx-piece__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.kx-piece .kx-img-missing { display: grid !important; place-items: center; aspect-ratio: 4 / 5; background: var(--kx-plum); position: relative; }
.kx-piece:nth-child(4n+2) .kx-img-missing { background: var(--kx-red); }
.kx-piece:nth-child(4n+3) .kx-img-missing { background: var(--kx-ink); }
.kx-piece:nth-child(4n+4) .kx-img-missing { background: var(--kx-gold); }
.kx-piece .kx-img-missing::after { content: "开心"; font-family: var(--kx-cjk); font-size: clamp(56px, 6vw, 84px); color: rgba(255, 255, 255, 0.92); line-height: 1; border: 3px solid rgba(255, 255, 255, 0.8); padding: 14px 10px; writing-mode: vertical-rl; }
.kx-piece__body { padding: 22px 22px 26px; display: flex; flex-direction: column; gap: 6px; }
.kx-piece__name { font-size: 24px !important; margin: 0 !important; }
.kx-piece__status { order: -1; align-self: flex-start; margin: 0 0 6px !important; font-size: 13px; font-weight: 600; color: var(--kx-red); background: rgba(181, 37, 29, 0.1); padding: 4px 10px; border-radius: 2px; }
.kx-piece__body p { font-size: 15px; margin: 0; }
@media (max-width: 1024px) { .kx-collection { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .kx-collection { grid-template-columns: 1fr; } }

/* ---------- Home: episode band with the animated video playing in place ---------- */
.kx .e-con.kx-episode { margin-top: var(--kx-gap-section); background: var(--kx-ink); color: var(--kx-paper); padding: clamp(64px, 8vw, 120px) var(--kx-m); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.kx .kx-episode__video { width: 100%; max-width: 440px; justify-self: end; }
.kx .kx-episode__video .elementor-wrapper, .kx .kx-episode__video .elementor-open-inline { aspect-ratio: 3 / 4; border-radius: var(--kx-radius); overflow: hidden; background: #000; --video-aspect-ratio: 0.75; }
.kx .kx-episode__video video { width: 100%; height: 100%; object-fit: cover; }
.kx .kx-episode__video .elementor-custom-embed-image-overlay { background-size: cover; background-position: 50% 40%; }
.kx .kx-episode__video .elementor-custom-embed-play i, .kx .kx-episode__video .elementor-custom-embed-play svg { color: #fff; fill: #fff; opacity: 1; filter: none; }
.kx .kx-episode__video .elementor-custom-embed-play { width: 84px; height: 84px; border-radius: 50%; background: var(--kx-red); display: grid; place-items: center; transition: transform 200ms var(--ease-out); }
.kx .kx-episode__video .elementor-custom-embed-play i { font-size: 34px; margin-left: 4px; }
@media (hover: hover) { .kx .kx-episode__video:hover .elementor-custom-embed-play { transform: translate(-50%, -50%) scale(1.06); } }
.kx .e-con.kx-episode__copy { display: flex; flex-direction: column; gap: 18px; max-width: 560px; }
.kx .kx-episode .elementor-heading-title { color: var(--kx-paper); font-size: clamp(36px, 3.8vw, 58px); }
.kx .kx-episode__tag p { display: inline-block; font-size: 14px; font-weight: 600; color: #fff; background: var(--kx-red); padding: 6px 12px; border-radius: 2px; margin: 0; }
.kx .kx-episode .kx-lead p { color: #e6dccf; }
.kx .kx-episode__note p { font-size: 15px; color: #b3a79b; margin: 0; }
.kx .e-con.kx-episode__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
@media (max-width: 767px) {
	.kx .e-con.kx-episode { grid-template-columns: 1fr; }
	.kx .kx-episode__video { justify-self: center; max-width: 360px; }
	.kx .e-con.kx-episode__actions .elementor-widget-button, .kx .e-con.kx-episode__actions .elementor-button { width: 100%; }
}


/* v2.1: episode player, collage rows, tag */
.kx .e-con.kx-collage { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.kx .kx-collage > .elementor-widget-image { min-height: 0; overflow: hidden; }
.kx .kx-episode p.kx-episode__tag { display: inline-block; font-size: 14px; font-weight: 600; color: #fff; background: var(--kx-red); padding: 6px 12px; border-radius: 2px; margin: 0; }
.kx .e-con.kx-episode__actions { flex-direction: row !important; }
.kx .kx-episode__video .elementor-custom-embed-image-overlay { display: none; }
.kx .kx-episode__video .elementor-wrapper { position: relative; }
.kx-play { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; border: 0; padding: 0; cursor: pointer; background: linear-gradient(180deg, rgba(27, 22, 19, 0) 55%, rgba(27, 22, 19, 0.55)); }
.kx-play__disc { width: 84px; height: 84px; border-radius: 50%; background: var(--kx-red); display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35); transition: transform 200ms var(--ease-out); }
.kx-play__disc svg { width: 32px; height: 32px; margin-left: 4px; fill: #fff; }
.kx-play__label { position: absolute; left: 16px; bottom: 14px; color: #fff; font-size: 14px; font-weight: 600; }
@media (hover: hover) { .kx-play:hover .kx-play__disc { transform: scale(1.06); } }
.kx-play:active .kx-play__disc { transform: scale(0.97); }
.kx-play:focus-visible { outline: 3px solid var(--kx-gold); outline-offset: -3px; }
.kx-play[hidden] { display: none; }


/* v2.2: gallery grid uses child positions (the heading is the first child) */
.kx .e-con.kx-grid6 { grid-template-rows: auto; padding-left: var(--kx-m); padding-right: var(--kx-m); }
.kx .kx-grid6 > .elementor-widget-image { grid-column: auto; grid-row: auto; min-height: 0; overflow: hidden; border-radius: var(--kx-radius); }
.kx .kx-grid6 > .elementor-widget-image:nth-child(2) { grid-column: span 2; grid-row: span 2; }
.kx .kx-grid6 > .elementor-widget-image:nth-child(3), .kx .kx-grid6 > .elementor-widget-image:nth-child(4) { grid-column: span 1; grid-row: span 1; }
.kx .kx-grid6 > .elementor-widget-image:nth-child(5),
.kx .kx-grid6 > .elementor-widget-image:nth-child(6),
.kx .kx-grid6 > .elementor-widget-image:nth-child(7) { grid-column: span 2; }
.kx .kx-grid6 figcaption { font-style: normal; text-align: left; line-height: 1.3; max-width: calc(100% - 24px); }
@media (max-width: 767px) {
	.kx .kx-grid6 > .elementor-widget-image:nth-child(2) { grid-row: span 1; }
	.kx .kx-grid6 > .elementor-widget-image:nth-child(6),
	.kx .kx-grid6 > .elementor-widget-image:nth-child(7) { grid-column: span 1; }
}


/* v2.3: card fixes (stories featured layout, collection tiles, word cards, odd last card) */
.kx-story__media, .kx-story__body { grid-column: auto; }
.kx-story:first-child .kx-story__media { min-height: 420px; }
.kx-story:first-child .kx-story__media img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-position: 50% 30%; }
.kx-story:first-child .kx-story__title a { color: var(--kx-paper); }
@media (max-width: 1024px) {
	.kx-story:first-child .kx-story__media { min-height: 0; }
	.kx-story:first-child .kx-story__media img { position: static; aspect-ratio: 4 / 3; height: auto; }
}
.kx-piece, .kx-piece:has(.kx-img-missing) { align-items: stretch; }
.kx-piece__media { width: 100%; }
.kx-piece .kx-img-missing { width: 100%; }
.kx .kx-band-shade .e-con.kx-cards { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1024px) { .kx .kx-band-shade .e-con.kx-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .kx .kx-band-shade .e-con.kx-cards { grid-template-columns: 1fr 1fr; } .kx .kx-band-shade .kx-card2:last-child { grid-column: 1 / -1; } }
@media (min-width: 601px) and (max-width: 1024px) {
	.kx .e-con.kx-cards--3 > .kx-card2:last-child:nth-child(odd) { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
	.kx .e-con.kx-cards--3 > .kx-card2:last-child:nth-child(odd) > .elementor-widget-image img { height: 100%; aspect-ratio: auto; }
}


/* v2.4: card surface on paper sections, wide last card */
.kx .e-con.kx-card2 { background: #fbf8f3; box-shadow: 0 1px 0 rgba(27, 22, 19, 0.06); }
@media (min-width: 601px) and (max-width: 1024px) {
	.kx .e-con.kx-cards--3 > .kx-card2:last-child:nth-child(odd) { align-items: center; }
	.kx .e-con.kx-cards--3 > .kx-card2:last-child:nth-child(odd) > .elementor-widget-image img { height: auto; aspect-ratio: 4 / 3; object-position: 50% 45%; }
}


/* v2.5: brand marks (logo, seal, emblem, tagline) */
.kx-site-header.is-solid .kx-header, .kx-site-header.is-static .kx-header { background: var(--kx-ink); color: var(--kx-paper); }
.kx-brand__logo { height: 52px; width: auto; display: block; transition: height 240ms var(--ease-out); }
.kx-site-header.is-solid .kx-brand__logo { height: 42px; }
@media (max-width: 767px) { .kx-brand__logo { height: 40px; } .kx-site-header.is-solid .kx-brand__logo { height: 36px; } }
.kx .kx-footer__logo img { width: clamp(180px, 18vw, 260px); height: auto; }
.kx .kx-footer__emblem img { width: 52px; height: auto; }
.kx .kx-footer__emblem { margin-top: -8px; }
.kx .kx-meet__seal.kx-seal-img { background: var(--kx-surface); display: grid; place-items: center; padding: 28px; }
.kx .kx-meet__seal.kx-seal-img .elementor-widget-container { display: grid; place-items: center; height: 100%; }
.kx .kx-meet__seal.kx-seal-img img { width: auto; height: auto; max-height: 220px; max-width: 60%; }
.kx .kx-seal-small img { width: 56px; height: auto; }
.kx .kx-seal-small { text-align: left; }
.kx .kx-tagline img { width: min(300px, 80%); height: auto; }
.kx .kx-tagline { text-align: left; }
.kx-piece .kx-img-missing, .kx-piece:nth-child(n) .kx-img-missing { background: var(--kx-surface) url(/wp-content/uploads/2026/10/kaixin-seal.webp) center / auto 42% no-repeat; }
.kx-piece:nth-child(even) .kx-img-missing { background: var(--kx-ink) url(/wp-content/uploads/2026/10/kaixin-emblem.webp) center / 46% auto no-repeat; }
.kx-piece .kx-img-missing::after { content: none; }

/* v2.6: logo sizing wins over Elementor's img rules */
.kx-site-header .kx-header .kx-brand img.kx-brand__logo { height: 64px; width: auto; max-width: none; }
.kx-site-header.is-solid .kx-header .kx-brand img.kx-brand__logo { height: 48px; }
@media (max-width: 767px) { .kx-site-header .kx-header .kx-brand img.kx-brand__logo { height: 48px; } .kx-site-header.is-solid .kx-header .kx-brand img.kx-brand__logo { height: 40px; } }

.kx .kx-footer__logo, .kx .kx-footer__logo .elementor-widget-container, .kx .kx-footer__emblem, .kx .kx-footer__emblem .elementor-widget-container, .kx .kx-tagline .elementor-widget-container, .kx .kx-seal-small .elementor-widget-container { text-align: left; }

/* v2.7: Chinese in a bold brush face (Ma Shan Zheng, self-hosted via Elementor) */
.kx [lang|="zh"], .kx .kx-card2__cn .elementor-heading-title, .kx .kx-glossary dt { font-family: var(--kx-cjk) !important; font-weight: 400 !important; font-style: normal; font-synthesis: none; letter-spacing: 0; }
.kx [lang|="zh"] { font-size: 1.08em; }
