/* ============================================================
   KAELO GLOBAL — Division Hub template styles
   Used on /kaelo-advisory/ · /kaelo-investments/ ·
   /kaelo-marketing-media/ · /kaelo-commerce/ · /kaelo-textiles-garments/
   ============================================================ */

.k-division { display: block; }

/* ============================================================
   HERO
   ============================================================ */
.k-dhero {
	position: relative;
	min-height: 78vh;
	min-height: 78svh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	color: var(--k-white);
	isolation: isolate;
}
.k-dhero__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.k-dhero__bg img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.k-dhero__shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0.68) 40%, rgba(0,0,0,0.96) 100%);
}
.k-dhero__inner {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	width: 100%;
	padding: calc( var(--k-header-h) + var(--k-space-5) ) var(--k-bleed) var(--k-space-5);
	display: flex;
	flex-direction: column;
	gap: var(--k-space-2);
}
.k-dhero__inner .k-label { color: var(--k-cyan); margin: 0; }
.k-dhero__title {
	margin: 0;
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 2.5rem, 1rem + 4.5vw, 5.5rem );
	line-height: 1.02;
	letter-spacing: -0.018em;
	color: var(--k-white);
	max-width: 22ch;
}
.k-dhero__sub {
	max-width: 56ch;
	color: var(--k-white-60);
	font-size: var(--k-text-lg);
	line-height: var(--k-leading-snug);
	margin: 0;
}

/* ============================================================
   LEAD
   ============================================================ */
.k-dlead__inner {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: var(--k-space-5);
}
.k-dlead__inner .k-label { padding-top: 0.5rem; }
.k-dlead__body {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.5rem, 0.8rem + 1.8vw, 2.5rem );
	line-height: 1.2;
	letter-spacing: -0.012em;
	color: var(--k-ink);
	margin: 0;
	max-width: 50ch;
}

/* ============================================================
   PILLARS (numbered capability rows)
   ============================================================ */
.k-dpillars__head,
.k-dpillars__list {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-dpillars__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 2rem, 1rem + 3vw, 3.75rem );
	line-height: 1.1;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-5);
	max-width: 22ch;
}
.k-dpillars__list {
	list-style: none;
	padding-inline: var(--k-bleed);
	margin: 0 auto;
	border-top: 1px solid var(--k-line);
}
.k-dpillars__row {
	display: grid;
	grid-template-columns: 5rem 1fr;
	gap: var(--k-space-3);
	padding: clamp( 1.4rem, 0.5rem + 1.5vw, 2.4rem ) 0;
	border-bottom: 1px solid var(--k-line);
	align-items: baseline;
}
.k-dpillars__num {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.5rem, 0.7rem + 1.6vw, 2.5rem );
	color: var(--k-cyan-deep);
	letter-spacing: 0;
}
.k-dpillars__body {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: var(--k-space-3);
	align-items: baseline;
}
.k-dpillars__name {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.5rem, 0.6rem + 1.8vw, 2.5rem );
	line-height: 1.1;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--k-ink);
}
.k-dpillars__lead {
	font-size: var(--k-text-base);
	line-height: var(--k-leading-body);
	color: var(--k-ink-60);
	margin: 0;
	max-width: 56ch;
}

/* ============================================================
   SECTORS (inside division — dark band)
   ============================================================ */
.k-dsectors__head {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-dsectors__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.75rem, 0.9rem + 2.4vw, 3.25rem );
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-5);
	max-width: 36ch;
}
.k-dsectors__list {
	list-style: none;
	margin: 0 auto;
	padding-inline: var(--k-bleed);
	max-width: var(--k-container-wide);
	display: grid;
	grid-template-columns: repeat( 4, 1fr );
	gap: var(--k-space-3);
	border-top: 1px solid rgba(255,255,255,0.22);
	padding-top: var(--k-space-3);
}
.k-dsectors__cell {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.k-dsectors__num {
	font-family: var(--k-font-body);
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	color: var(--k-cyan);
}
.k-dsectors__name {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.25rem, 0.6rem + 1vw, 1.75rem );
	color: var(--k-white);
	letter-spacing: -0.01em;
}

/* ============================================================
   VIGNETTE
   ============================================================ */
.k-dvignette__inner {
	max-width: 880px;
	margin-inline: auto;
	padding: var(--k-space-5) var(--k-bleed);
	border: 1px solid var(--k-line);
	background: var(--k-white);
}
.k-dvignette__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.75rem, 0.9rem + 2.4vw, 3rem );
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-2);
	max-width: 24ch;
}
.k-dvignette__lead {
	color: var(--k-ink-60);
	margin: 0 0 var(--k-space-3);
	max-width: 56ch;
}
.k-dvignette__meta {
	font-size: 0.75rem;
	letter-spacing: var(--k-tracking-label);
	text-transform: uppercase;
	color: var(--k-ink-40);
	margin: 0;
}

/* ============================================================
   CROSS-LINK BACK TO OTHER DIVISIONS
   ============================================================ */
.k-dcross__inner {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-dcross__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.75rem, 0.9rem + 2.4vw, 3.25rem );
	line-height: 1.1;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-5);
	max-width: 24ch;
}
.k-dcross__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--k-line);
}
.k-dcross__cell { border-bottom: 1px solid var(--k-line); }
.k-dcross__link {
	display: grid;
	grid-template-columns: 5rem 1fr auto;
	gap: var(--k-space-3);
	align-items: baseline;
	padding: clamp(1.2rem, 0.5rem + 1.2vw, 2rem) 0;
	text-decoration: none;
	color: var(--k-ink);
	transition: padding-left var(--k-dur-fast) var(--k-ease),
				color var(--k-dur-fast) var(--k-ease);
}
.k-dcross__link:hover { padding-left: 0.5rem; color: var(--k-ink); }
.k-dcross__num {
	font-family: var(--k-font-heading);
	font-size: clamp( 1.25rem, 0.7rem + 0.9vw, 1.75rem );
	color: var(--k-cyan-deep);
}
.k-dcross__name {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.5rem, 0.7rem + 1.4vw, 2.25rem );
	letter-spacing: -0.01em;
}
.k-dcross__arrow {
	font-family: var(--k-font-heading);
	color: var(--k-ink-40);
	transition: transform var(--k-dur-fast) var(--k-ease),
				color var(--k-dur-fast) var(--k-ease);
}
.k-dcross__link:hover .k-dcross__arrow {
	color: var(--k-cyan-deep);
	transform: translateX( 0.4rem );
}

/* ============================================================
   CTA CLOSE (dark)
   ============================================================ */
.k-dcta__inner {
	max-width: 760px;
	margin-inline: auto;
	padding-inline: var(--k-bleed);
	text-align: center;
}
.k-dcta__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 2.25rem, 1rem + 4vw, 4.5rem );
	line-height: 1.05;
	letter-spacing: -0.015em;
	margin: var(--k-space-3) 0 var(--k-space-3);
	color: var(--k-white);
}
.k-dcta__sub {
	max-width: 50ch;
	margin: 0 auto var(--k-space-4);
	color: var(--k-white-60);
}

/* ============================================================
   SUB-SERVICE EXPANDED SECTIONS
   Pull quote · How we engage · When to call us · What we don't do
   · Dual-vignette grid · FAQ
   ============================================================ */

/* ── Pull quote (mid-page editorial moment) ─────────────────── */
.k-sspull__inner {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-sspull__quote {
	font-family: var(--k-font-accent);
	font-style: italic;
	font-weight: 400;
	font-size: clamp( 1.5rem, 0.8rem + 2vw, 2.5rem );
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--k-ink);
	margin: 0 0 var(--k-space-3);
	max-width: 36ch;
	border-left: 2px solid var(--k-cyan);
	padding-left: var(--k-space-3);
}
.k-sspull__cite {
	display: block;
	font-style: normal;
	font-family: var(--k-font-body);
	font-size: var(--k-text-xs);
	letter-spacing: var(--k-tracking-label);
	text-transform: uppercase;
	color: var(--k-ink-60);
	padding-left: calc( var(--k-space-3) + 2px );
}

/* ── How we engage (dark band, numbered list) ───────────────── */
.k-ssengage__head,
.k-ssengage__list {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-ssengage__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.75rem, 0.9rem + 2.4vw, 3rem );
	line-height: 1.1;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-5);
	color: var(--k-white);
	max-width: 28ch;
}
.k-ssengage__list {
	list-style: none;
	margin: 0;
	border-top: 1px solid rgba(255,255,255,0.22);
}
.k-ssengage__row {
	display: grid;
	grid-template-columns: 5rem 1fr;
	gap: var(--k-space-3);
	padding: clamp( 1.2rem, 0.5rem + 1.2vw, 2rem ) 0;
	border-bottom: 1px solid rgba(255,255,255,0.22);
	align-items: baseline;
}
.k-ssengage__num {
	font-family: var(--k-font-heading);
	font-size: clamp( 1.5rem, 0.7rem + 1.6vw, 2.5rem );
	color: var(--k-cyan);
}
.k-ssengage__name {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.25rem, 0.7rem + 1.1vw, 1.75rem );
	line-height: 1.2;
	margin: 0 0 var(--k-space-2);
	color: var(--k-white);
}
.k-ssengage__lead {
	font-size: var(--k-text-base);
	line-height: var(--k-leading-body);
	color: var(--k-white-60);
	margin: 0;
	max-width: 60ch;
}
.k-ssengage__lead a { color: var(--k-cyan); }

/* ── When to call us (light band, compact numbered list) ───── */
.k-sswhen__head,
.k-sswhen__list {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-sswhen__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.75rem, 0.9rem + 2.4vw, 2.75rem );
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-4);
	max-width: 30ch;
}
.k-sswhen__list {
	list-style: none;
	margin: 0;
	border-top: 1px solid var(--k-line);
}
.k-sswhen__row {
	display: grid;
	grid-template-columns: 3.5rem 1fr;
	gap: var(--k-space-3);
	align-items: baseline;
	padding: clamp( 1rem, 0.4rem + 0.9vw, 1.5rem ) 0;
	border-bottom: 1px solid var(--k-line);
}
.k-sswhen__num {
	font-family: var(--k-font-body);
	font-weight: 500;
	font-size: 0.875rem;
	letter-spacing: 0.18em;
	color: var(--k-cyan-deep);
}
.k-sswhen__line {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.1rem, 0.6rem + 0.8vw, 1.375rem );
	line-height: 1.35;
	letter-spacing: -0.01em;
	color: var(--k-ink);
	margin: 0;
	max-width: 60ch;
}

/* ── What we don't do (clean checklist) ─────────────────────── */
.k-ssdont__inner {
	max-width: 760px;
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-ssdont__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.75rem, 0.9rem + 2.4vw, 2.5rem );
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-3);
	max-width: 24ch;
}
.k-ssdont__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--k-line);
}
.k-ssdont__list li {
	padding: var(--k-space-2) 0;
	border-bottom: 1px solid var(--k-line);
	font-size: var(--k-text-base);
	color: var(--k-ink-60);
	line-height: var(--k-leading-body);
}

/* ── Vignette dual-grid (when secondary present) ────────────── */
.k-dvignette__grid--dual {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--k-space-3);
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-dvignette__grid--dual .k-dvignette__inner {
	max-width: none;
	padding: var(--k-space-4) var(--k-space-3);
}

/* ── FAQ (definition list, scannable) ───────────────────────── */
.k-ssfaq__head,
.k-ssfaq__list {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-ssfaq__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.75rem, 0.9rem + 2.4vw, 3rem );
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-4);
	max-width: 30ch;
}
.k-ssfaq__list {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--k-line);
}
.k-ssfaq__pair {
	display: grid;
	grid-template-columns: 1fr 1.6fr;
	gap: var(--k-space-4);
	padding: clamp( 1.4rem, 0.5rem + 1.2vw, 2rem ) 0;
	border-bottom: 1px solid var(--k-line);
	align-items: baseline;
}
.k-ssfaq__q {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.125rem, 0.6rem + 0.9vw, 1.5rem );
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--k-ink);
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	max-width: 28ch;
}
.k-ssfaq__num {
	font-family: var(--k-font-body);
	font-weight: 500;
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	color: var(--k-cyan-deep);
	flex-shrink: 0;
}
.k-ssfaq__a {
	margin: 0;
	font-family: var(--k-font-body);
	font-size: var(--k-text-base);
	line-height: var(--k-leading-body);
	color: var(--k-ink-60);
	max-width: 60ch;
}
.k-ssfaq__a a { color: var(--k-cyan-deep); }

/* ── Inline image (between major sections) ─────────────────── */
.k-ssinline {
	margin: 0;
	padding: clamp( 2.5rem, 1rem + 3vw, 5rem ) var(--k-bleed);
	background: var(--k-paper);
}
.k-ssinline img {
	display: block;
	width: 100%;
	max-width: var(--k-container-wide);
	margin-inline: auto;
	height: clamp( 18rem, 14rem + 18vw, 32rem );
	object-fit: cover;
	filter: brightness( 0.92 );
}

/* ── Press releases archive (press-media-centre only) ──────── */
.k-ssreleases__head,
.k-ssreleases__list {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
}
.k-ssreleases__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.75rem, 0.9rem + 2.4vw, 3rem );
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: var(--k-space-2) 0 var(--k-space-1);
	max-width: 30ch;
}
.k-ssreleases__sub {
	font-family: var(--k-font-body);
	font-size: var(--k-text-base);
	color: var(--k-ink-60);
	margin: 0 0 var(--k-space-4);
	max-width: 60ch;
}
.k-ssreleases__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--k-line);
}
.k-ssreleases__row {
	border-bottom: 1px solid var(--k-line);
}
.k-ssreleases__link {
	display: grid;
	grid-template-columns: 5rem 1fr auto;
	align-items: baseline;
	gap: var(--k-space-3);
	padding: clamp( 1.2rem, 0.4rem + 1.2vw, 1.8rem ) 0;
	color: var(--k-ink);
	text-decoration: none;
	transition: color 0.2s ease;
}
.k-ssreleases__link:hover {
	color: var(--k-cyan-deep);
}
.k-ssreleases__year {
	font-family: var(--k-font-body);
	font-weight: 500;
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	color: var(--k-cyan-deep);
}
.k-ssreleases__title {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.0625rem, 0.55rem + 0.85vw, 1.375rem );
	line-height: 1.3;
	letter-spacing: -0.01em;
}
.k-ssreleases__date {
	font-family: var(--k-font-body);
	font-size: 0.8125rem;
	color: var(--k-ink-60);
	white-space: nowrap;
}

/* ── Press release single page ─────────────────────────────── */
.k-press {
	background: var(--k-paper);
}
.k-press__hero {
	padding: clamp( 7rem, 4rem + 7vw, 11rem ) var(--k-bleed) clamp( 2rem, 1rem + 2vw, 3.5rem );
	max-width: var(--k-container-wide);
	margin-inline: auto;
}
.k-press__crumbs {
	font-family: var(--k-font-body);
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--k-ink-60);
	margin: 0 0 var(--k-space-2);
}
.k-press__crumbs a {
	color: var(--k-cyan-deep);
	text-decoration: none;
}
.k-press__date {
	font-family: var(--k-font-body);
	font-weight: 500;
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	color: var(--k-cyan-deep);
	text-transform: uppercase;
	margin: 0 0 var(--k-space-2);
}
.k-press__h1 {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 2rem, 1.1rem + 3.2vw, 3.75rem );
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--k-ink);
	margin: 0 0 var(--k-space-3);
	max-width: 24ch;
}
.k-press__dek {
	font-family: var(--k-font-accent);
	font-style: italic;
	font-size: clamp( 1.125rem, 0.7rem + 0.8vw, 1.5rem );
	line-height: 1.4;
	color: var(--k-ink-80);
	margin: 0 0 var(--k-space-3);
	max-width: 60ch;
}
.k-press__body {
	max-width: var(--k-container-text);
	margin-inline: auto;
	padding: 0 var(--k-bleed) clamp( 3rem, 1.5rem + 3vw, 5rem );
}
.k-press__body p {
	font-family: var(--k-font-body);
	font-size: var(--k-text-base);
	line-height: var(--k-leading-body);
	color: var(--k-ink);
	margin: 0 0 var(--k-space-2);
}
.k-press__body h2 {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1.375rem, 0.8rem + 1.2vw, 1.75rem );
	line-height: 1.2;
	margin: var(--k-space-4) 0 var(--k-space-2);
	color: var(--k-ink);
}
.k-press__body a {
	color: var(--k-cyan-deep);
}
.k-press__body blockquote {
	border-left: 2px solid var(--k-cyan-deep);
	margin: var(--k-space-3) 0;
	padding: 0 0 0 var(--k-space-3);
	font-family: var(--k-font-accent);
	font-style: italic;
	font-size: clamp( 1.0625rem, 0.6rem + 0.7vw, 1.375rem );
	color: var(--k-ink-80);
}
.k-press__meta {
	border-top: 1px solid var(--k-line);
	margin-top: var(--k-space-4);
	padding-top: var(--k-space-3);
	font-family: var(--k-font-body);
	font-size: 0.8125rem;
	color: var(--k-ink-60);
}
.k-press__meta strong {
	color: var(--k-ink);
	font-weight: 500;
}

/* ============================================================
   404 PAGE
   ============================================================ */
.k-404 { background: var(--k-paper); }
.k-404__hero {
	position: relative;
	min-height: clamp( 22rem, 16rem + 18vw, 36rem );
	display: flex;
	align-items: center;
	overflow: hidden;
}
.k-404__bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
}
.k-404__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.6);
}
.k-404__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0,0,0,0.78) 0%,
		rgba(0,0,0,0.68) 50%,
		rgba(0,0,0,0.96) 100%
	);
}
.k-404__inner {
	position: relative;
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding: var(--k-space-4) var(--k-bleed);
	width: 100%;
	color: var(--k-paper);
}
.k-404__label {
	font-family: var(--k-font-body);
	font-weight: 500;
	font-size: 0.75rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--k-cyan);
	margin: 0 0 var(--k-space-2);
}
.k-404__h {
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 2rem, 1rem + 3.2vw, 3.75rem );
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0 0 var(--k-space-3);
	max-width: 26ch;
	color: var(--k-paper);
}
.k-404__sub {
	font-family: var(--k-font-accent);
	font-style: italic;
	font-size: clamp( 1.0625rem, 0.6rem + 0.9vw, 1.5rem );
	line-height: 1.4;
	color: rgba(255,255,255,0.82);
	max-width: 56ch;
	margin: 0;
}
.k-404__body {
	background: var(--k-paper);
}
.k-404__grid {
	max-width: var(--k-container-wide);
	margin-inline: auto;
	padding-inline: var(--k-bleed);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--k-space-4);
}
.k-404__col .k-label {
	color: var(--k-cyan-deep);
	margin-bottom: var(--k-space-2);
}
.k-404__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--k-line);
}
.k-404__list li {
	border-bottom: 1px solid var(--k-line);
}
.k-404__list a {
	display: block;
	padding: 0.85rem 0;
	font-family: var(--k-font-heading);
	font-weight: 400;
	font-size: clamp( 1rem, 0.55rem + 0.7vw, 1.25rem );
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--k-ink);
	text-decoration: none;
	transition: color 0.18s ease, padding-left 0.18s ease;
}
.k-404__list a:hover {
	color: var(--k-cyan-deep);
	padding-left: 0.5rem;
}
.k-404__note {
	font-family: var(--k-font-body);
	font-size: var(--k-text-base);
	line-height: var(--k-leading-body);
	color: var(--k-ink-60);
	margin: 0 0 var(--k-space-2);
}

@media ( max-width: 880px ) {
	.k-404__grid { grid-template-columns: 1fr; gap: var(--k-space-3); }
}

/* ============================================================
   RESPONSIVE — division template only
   Mobile pass will be done after desktop sign-off.
   ============================================================ */
@media ( max-width: 980px ) {
	.k-dlead__inner { grid-template-columns: 1fr; gap: var(--k-space-3); }

	.k-dpillars__row { grid-template-columns: 3.5rem 1fr; gap: var(--k-space-2); }
	.k-dpillars__body { grid-template-columns: 1fr; gap: var(--k-space-2); }

	.k-dsectors__list { grid-template-columns: repeat( 2, 1fr ); }
	.k-dcross__link { grid-template-columns: 3rem 1fr auto; }

	.k-ssengage__row { grid-template-columns: 3.5rem 1fr; }
	.k-dvignette__grid--dual { grid-template-columns: 1fr; }
	.k-ssfaq__pair { grid-template-columns: 1fr; gap: var(--k-space-2); }
	.k-ssfaq__q { max-width: 100%; }
	.k-ssreleases__link { grid-template-columns: 1fr; gap: var(--k-space-1); }
	.k-ssreleases__date { order: 3; }
}

@media ( max-width: 560px ) {
	.k-dhero__title { font-size: clamp( 2rem, 9vw, 2.75rem ); }
	.k-dhero__sub { font-size: var(--k-text-base); }
	.k-dlead__body { font-size: clamp( 1.25rem, 6vw, 1.75rem ); }
	.k-dpillars__row { padding: var(--k-space-3) 0; }
	.k-dsectors__list { grid-template-columns: 1fr; }
	.k-dvignette__inner { padding: var(--k-space-4) var(--k-space-3); }

	.k-sspull__quote { font-size: clamp( 1.25rem, 6vw, 1.75rem ); padding-left: var(--k-space-2); }
	.k-ssengage__row { grid-template-columns: 2.5rem 1fr; padding: var(--k-space-3) 0; }
	.k-sswhen__row { grid-template-columns: 2.5rem 1fr; padding: var(--k-space-2) 0; }
	.k-ssfaq__pair { padding: var(--k-space-3) 0; }
}
