/* ==========================================================================
   Kontakt Express — design system
   Ink navy foundation · logo red for action · waybill paper · label panels
   ========================================================================== */

@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo-ke-subset.woff2") format("woff2-variations"), url("../fonts/archivo-ke-subset.woff2") format("woff2");
	font-weight: 600 850;
	font-stretch: 80% 100%;
	font-style: normal;
	font-display: swap;
}
@font-face { font-family: "IBM Plex Sans"; src: url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }

:root {
	/* Colour — derived from the Kontakt Express logo (indigo #3C3C90, red #E43030) */
	--ke-ink: #101530;
	--ke-ink-2: #1a2046;
	--ke-ink-3: #262d5c;
	--ke-indigo: #3b3a8f;
	--ke-red: #e0352f;          /* decorative: stamps, route, marks */
	--ke-red-action: #c42a25;   /* buttons with white text (AA) */
	--ke-red-hover: #a4211d;
	--ke-paper: #f2f0ea;
	--ke-paper-2: #e7e3d8;
	--ke-white: #ffffff;
	--ke-rule: #d6d1c4;
	--ke-rule-strong: #b9b3a3;
	--ke-text: #171b31;
	--ke-muted: #555a6e;
	--ke-on-ink: #f3f2ee;
	--ke-on-ink-muted: #a9adc3;
	--ke-wa: #17804a;           /* WhatsApp actions only */
	--ke-wa-hover: #11653a;
	--ke-focus: #3b3a8f;

	/* Type */
	--ke-display: "Archivo", "Arial Narrow", Arial, sans-serif;
	--ke-body: "IBM Plex Sans", "Segoe UI", Roboto, Arial, sans-serif;
	--ke-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;

	--ke-fs-h1: clamp(2.35rem, 1.3rem + 3.6vw, 4.1rem);
	--ke-fs-h1-page: clamp(2.1rem, 1.25rem + 3.3vw, 3.75rem);
	--ke-fs-h2: clamp(1.8rem, 1.25rem + 2.1vw, 2.9rem);
	--ke-fs-h3: clamp(1.2rem, 1.08rem + .45vw, 1.45rem);
	--ke-fs-lead: clamp(1.075rem, 1rem + .35vw, 1.3rem);
	--ke-fs-body: 1.0625rem;
	--ke-fs-small: .9375rem;
	--ke-fs-mono: .75rem;

	/* Space & shape */
	--ke-max: 1240px;
	--ke-gutter: clamp(16px, 4vw, 40px);
	--ke-section: clamp(64px, 5rem + 3vw, 136px);
	--ke-r: 4px;
	--ke-r-lg: 8px;
	--ke-header-h: 76px;
	--ke-shadow-label: 0 1px 0 rgba(16, 21, 48, .08), 0 28px 60px -28px rgba(16, 21, 48, .45);
	--ke-ease: cubic-bezier(.22, 1, .36, 1);        /* entrances, reveals, hovers */
	--ke-ease-in-out: cubic-bezier(.77, 0, .175, 1); /* on-screen movement: route, accordion */
	--ke-dur-micro: 160ms;
	--ke-dur-hover: 280ms;
	--ke-dur-reveal: 650ms;
	--ke-dur-large: 900ms;
}

/* --------------------------------------------------------------------------
   Base
   ----------------------------------------------------------------------- */

/* Minimal reset (Astra's stylesheet is not loaded on Kontakt Express templates) */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body.ke-site { min-height: 100vh; }
.ke-site figure, .ke-site blockquote, .ke-site dl, .ke-site dd { margin: 0; }
.ke-site ul, .ke-site ol { margin: 0; }
.ke-site button, .ke-site input, .ke-site select, .ke-site textarea { font: inherit; color: inherit; }
.ke-site svg { overflow: visible; }
.ke-site a { transition: color .15s ease; }
.ke-site .skip-link.screen-reader-text:focus {
	clip: auto !important; clip-path: none; height: auto; width: auto; position: fixed !important; top: 8px; left: 8px; z-index: 1000;
	background: #fff; color: var(--ke-ink); padding: 12px 18px; border-radius: 4px; box-shadow: 0 4px 16px rgba(0,0,0,.2); font-weight: 600; text-decoration: none;
}
.ke-site #page { display: flex; flex-direction: column; min-height: 100vh; }
.ke-site #content { flex: 1 0 auto; }

html { scroll-padding-top: calc(var(--ke-header-h) + 16px); -webkit-text-size-adjust: 100%; }

body.ke-site {
	background: var(--ke-paper);
	color: var(--ke-text);
	font-family: var(--ke-body);
	font-size: var(--ke-fs-body);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.ke-site,
.ke-site button,
.ke-site input,
.ke-site select,
.ke-site textarea { font-family: var(--ke-body); }

.ke-site h1, .ke-site h2, .ke-site h3, .ke-site h4, .ke-site h5, .ke-site h6 {
	font-family: var(--ke-display);
	color: var(--ke-ink);
	font-weight: 750;
	font-stretch: 88%;
	letter-spacing: -.012em;
	line-height: 1.08;
	text-wrap: balance;
	margin: 0;
}
.ke-site h1 { font-size: var(--ke-fs-h1-page); }
.ke-site h2 { font-size: var(--ke-fs-h2); }
.ke-site h3 { font-size: var(--ke-fs-h3); font-weight: 700; font-stretch: 94%; line-height: 1.2; letter-spacing: 0; }
.ke-site p { margin: 0; }
.ke-site p + p { margin-top: 1em; }
.ke-site a { color: var(--ke-indigo); text-decoration-thickness: 1px; text-underline-offset: .18em; }
.ke-site a:hover { color: var(--ke-ink); }
.ke-site img { max-width: 100%; height: auto; }
.ke-site strong { font-weight: 600; }
.ke-site ::selection { background: var(--ke-ink); color: var(--ke-white); }

.ke-site :focus-visible {
	outline: 2.5px solid var(--ke-focus);
	outline-offset: 3px;
	border-radius: 2px;
}
.ke-band--ink :focus-visible,
.ke-footer :focus-visible,
.ke-facts-band :focus-visible,
.ke-footer :focus-visible { outline-color: #fff; }

.ke-icon { width: 1.25em; height: 1.25em; flex: none; display: inline-block; vertical-align: middle; }

/* Astra wrappers: let Kontakt Express templates run full width */
.ke-site .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.ke-template .site-content { padding: 0 !important; }
.ke-site #page { overflow-x: clip; }

/* --------------------------------------------------------------------------
   Layout primitives
   ----------------------------------------------------------------------- */

.ke-wrap { width: 100%; max-width: calc(var(--ke-max) + var(--ke-gutter) * 2); margin-inline: auto; padding-inline: var(--ke-gutter); }

.ke-section {
	padding-block: var(--ke-section);
	padding-inline: max(var(--ke-gutter), calc((100% - var(--ke-max)) / 2));
	position: relative;
}
.ke-section--white { background: var(--ke-white); }
.ke-section--paper { background: var(--ke-paper); }
.ke-section--tight { padding-block: clamp(48px, 3rem + 2vw, 88px); }
.ke-band--ink { background: var(--ke-ink); color: var(--ke-on-ink); }
.ke-band--ink h1, .ke-band--ink h2, .ke-band--ink h3 { color: var(--ke-white); }
.ke-band--ink a:not(.ke-btn) { color: var(--ke-white); }

.ke-site .ke-section > * + * { margin-top: clamp(32px, 2rem + 1.5vw, 56px); }

/* Eyebrow: mono label with a short red rule */
.ke-site .ke-eyebrow {
	font-family: var(--ke-mono);
	font-size: var(--ke-fs-mono);
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ke-muted);
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	line-height: 1.4;
}
.ke-site .ke-eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--ke-red); flex: none; }
.ke-band--ink .ke-eyebrow { color: var(--ke-on-ink-muted); }

.ke-site .ke-lead { font-size: var(--ke-fs-lead); line-height: 1.55; color: var(--ke-muted); max-width: 40ch; }
.ke-band--ink .ke-lead, .ke-band--ink p { color: var(--ke-on-ink-muted); }
.ke-site .ke-small { font-size: var(--ke-fs-small); color: var(--ke-muted); }

/* Section heading: headline left, context right (desktop) */
.ke-head { display: grid; gap: 16px 64px; align-items: end; }
.ke-head > * { margin: 0 !important; }
.ke-head .ke-eyebrow { grid-column: 1 / -1; margin-bottom: -4px !important; }
.ke-head h2 { max-width: 18ch; }
.ke-head .ke-head__intro { color: var(--ke-muted); max-width: 46ch; }
.ke-band--ink .ke-head .ke-head__intro { color: var(--ke-on-ink-muted); }
@media (min-width: 900px) {
	.ke-head { grid-template-columns: 1.15fr 1fr; }
	.ke-head .ke-head__intro { justify-self: end; padding-bottom: 6px; }
}

/* --------------------------------------------------------------------------
   Buttons
   ----------------------------------------------------------------------- */

.ke-site .ke-btn {
	--ke-btn-bg: var(--ke-ink);
	--ke-btn-fg: #fff;
	--ke-btn-bd: var(--ke-btn-bg);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 22px;
	border: 1.5px solid var(--ke-btn-bd);
	border-radius: var(--ke-r);
	background: var(--ke-btn-bg);
	color: var(--ke-btn-fg);
	font-family: var(--ke-body);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .005em;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}
.ke-site .ke-btn .ke-icon { width: 20px; height: 20px; }
.ke-site .ke-btn:hover { color: var(--ke-btn-fg); }
.ke-site .ke-btn:hover .ke-icon:last-child:not(:first-child) { transform: translateX(3px); }

.ke-site .ke-btn--primary { --ke-btn-bg: var(--ke-red-action); }
.ke-site .ke-btn--primary:hover { --ke-btn-bg: var(--ke-red-hover); }
.ke-site .ke-btn--whatsapp { --ke-btn-bg: var(--ke-wa); }
.ke-site .ke-btn--whatsapp:hover { --ke-btn-bg: var(--ke-wa-hover); }
.ke-site .ke-btn--ink:hover { --ke-btn-bg: var(--ke-ink-3); }
.ke-site .ke-btn--ghost { --ke-btn-bg: transparent; --ke-btn-fg: var(--ke-ink); --ke-btn-bd: var(--ke-rule-strong); }
.ke-site .ke-btn--ghost:hover { --ke-btn-bd: var(--ke-ink); --ke-btn-bg: var(--ke-white); }
.ke-band--ink .ke-btn--ghost { --ke-btn-fg: #fff; --ke-btn-bd: rgba(255, 255, 255, .35); }
.ke-band--ink .ke-btn--ghost:hover { --ke-btn-bg: rgba(255, 255, 255, .08); --ke-btn-bd: #fff; }
.ke-site .ke-btn--sm { min-height: 46px; padding: 0 16px; font-size: .9375rem; }

.ke-actions__row { display: flex; flex-wrap: wrap; gap: 12px; }
.ke-site .ke-actions__call { margin-top: 16px; font-size: var(--ke-fs-small); color: var(--ke-muted); }
.ke-actions__call a { font-weight: 600; white-space: nowrap; }
.ke-actions--dark .ke-actions__call { color: var(--ke-on-ink-muted); }
@media (max-width: 479px) {
	.ke-actions__row .ke-btn { flex: 1 1 100%; }
}

/* Text link with arrow */
.ke-site .ke-link {
	display: inline-flex; align-items: center; gap: 8px;
	font-weight: 600; color: var(--ke-ink); text-decoration: none;
	border-bottom: 1.5px solid var(--ke-red); padding-bottom: 2px;
}
.ke-site .ke-link:hover { color: var(--ke-red-hover); }

/* Core button block (for editor-added buttons) */
.ke-site .wp-block-button__link {
	background: var(--ke-red-action); color: #fff; border-radius: var(--ke-r);
	font-family: var(--ke-body); font-weight: 600; font-size: 1rem; padding: 14px 22px; text-decoration: none;
}
.ke-site .wp-block-button__link:hover { background: var(--ke-red-hover); color: #fff; }

/* --------------------------------------------------------------------------
   Header
   ----------------------------------------------------------------------- */

.ke-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, .96);
	-webkit-backdrop-filter: saturate(1.2) blur(10px);
	backdrop-filter: saturate(1.2) blur(10px);
	border-bottom: 1px solid var(--ke-rule);
	transition: box-shadow .25s var(--ke-ease);
}
.admin-bar .ke-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ke-header { top: 0; } }
.ke-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(16, 21, 48, .35); }

.ke-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--ke-header-h); }

.ke-site .ke-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ke-ink); flex: none; }
.ke-brand__logo { width: 46px; height: auto; display: block; }
.ke-brand__text { display: flex; flex-direction: column; line-height: 1.05; }
.ke-brand__name { font-family: var(--ke-display); font-weight: 800; font-stretch: 90%; font-size: 1.28rem; letter-spacing: -.01em; }
.ke-brand__meta { font-family: var(--ke-mono); font-size: .625rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ke-muted); margin-top: 5px; }

.ke-nav { margin-left: auto; }
.ke-nav__list { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; }
.ke-site .ke-nav__list a {
	display: block; padding: 10px 14px; border-radius: var(--ke-r);
	font-size: .96875rem; font-weight: 500; color: var(--ke-text); text-decoration: none; position: relative;
}
.ke-site .ke-nav__list a::after {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: 5px; height: 2px;
	background: var(--ke-red); transform: scaleX(0); transform-origin: left; transition: transform .22s var(--ke-ease);
}
.ke-site .ke-nav__list a:hover::after,
.ke-site .ke-nav__list .current-menu-item > a::after { transform: scaleX(1); }
.ke-site .ke-nav__list .current-menu-item > a { color: var(--ke-ink); font-weight: 600; }

.ke-header__actions { display: flex; align-items: center; gap: 18px; }
.ke-site .ke-header__phone { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .96875rem; color: var(--ke-ink); text-decoration: none; white-space: nowrap; }
.ke-header__phone .ke-icon { width: 18px; height: 18px; color: var(--ke-red); }
.ke-site .ke-header__phone:hover { color: var(--ke-red-hover); }

.ke-menu-toggle {
	display: none; margin-left: auto; align-items: center; gap: 8px;
	min-height: 46px; padding: 0 14px; border: 1.5px solid var(--ke-rule-strong); border-radius: var(--ke-r);
	background: transparent; color: var(--ke-ink); font-weight: 600; font-size: .9375rem; cursor: pointer;
}
.ke-site .ke-menu-toggle:hover, .ke-site .ke-menu-toggle:focus { background: transparent; color: var(--ke-ink); border-color: var(--ke-ink); }
.ke-menu-toggle .ke-icon { width: 20px; height: 20px; }
.ke-menu-toggle__close { display: none; }
.ke-menu-toggle[aria-expanded="true"] .ke-menu-toggle__open { display: none; }
.ke-menu-toggle[aria-expanded="true"] .ke-menu-toggle__close { display: inline-flex; }
.ke-menu-toggle__open, .ke-menu-toggle__close { display: inline-flex; }
.ke-menu-toggle[aria-expanded="false"] .ke-menu-toggle__close { display: none; }

.ke-mobile-nav { border-top: 1px solid var(--ke-rule); background: var(--ke-white); max-height: calc(100vh - var(--ke-header-h)); overflow-y: auto; }
.ke-mobile-nav__list { list-style: none; margin: 0; padding: 8px 0; }
.ke-site .ke-mobile-nav__list a {
	display: flex; justify-content: space-between; align-items: center;
	padding: 16px 0; border-bottom: 1px solid var(--ke-rule);
	font-family: var(--ke-display); font-weight: 700; font-stretch: 90%; font-size: 1.5rem; color: var(--ke-ink); text-decoration: none;
}
.ke-site .ke-mobile-nav__list .current-menu-item > a { color: var(--ke-red-action); }
.ke-mobile-nav__contact { display: grid; gap: 4px; padding: 20px 0 28px; }
.ke-mobile-nav__contact .ke-eyebrow { margin-bottom: 6px; }
.ke-site .ke-mobile-nav__contact a { display: flex; align-items: center; gap: 12px; min-height: 44px; color: var(--ke-ink); font-weight: 600; text-decoration: none; }
.ke-mobile-nav__contact .ke-icon { color: var(--ke-red); width: 20px; height: 20px; }

@media (max-width: 1199px) { .ke-header__phone { display: none !important; } }
@media (max-width: 1023px) {
	:root { --ke-header-h: 64px; }
	.ke-nav, .ke-header__actions { display: none; }
	.ke-menu-toggle { display: inline-flex; }
	.ke-brand__logo { width: 40px; }
	.ke-brand__name { font-size: 1.15rem; }
}
@media (min-width: 1024px) { .ke-mobile-nav { display: none !important; } }
@media (max-width: 359px) { .ke-brand__meta { letter-spacing: .08em; } }

/* --------------------------------------------------------------------------
   Home hero
   ----------------------------------------------------------------------- */

.ke-hero {
	background:
		linear-gradient(to right, rgba(16, 21, 48, .045) 1px, transparent 1px) 0 0 / calc(100% / 12) 100%,
		var(--ke-paper);
	padding-top: clamp(40px, 2rem + 4vw, 104px);
	padding-bottom: clamp(56px, 3rem + 4vw, 120px);
}
.ke-hero__grid { display: grid; gap: clamp(40px, 5vw, 72px); align-items: center; }
.ke-hero__grid > * { margin: 0 !important; }
.ke-site .ke-hero h1 { font-size: var(--ke-fs-h1); font-weight: 800; font-stretch: 84%; line-height: .98; letter-spacing: -.02em; max-width: 16ch; }
.ke-hero h1 em { font-style: normal; color: var(--ke-red-action); }
.ke-hero .ke-lead { margin-top: 24px; max-width: 44ch; }
.ke-hero .ke-actions { margin-top: 36px; }
@media (min-width: 1024px) {
	.ke-hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
}

/* Hero visual: photo + consignment label */
.ke-hero__visual { position: relative; padding: 0 0 132px 0; max-width: 620px; justify-self: center; width: 100%; }
.ke-hero__visual .ke-photo { margin: 0 0 0 auto; width: 90%; border-radius: var(--ke-r-lg); }
.ke-hero__visual .ke-label { position: absolute; left: 0; bottom: 0; width: clamp(300px, 66%, 370px); }
@media (max-width: 599px) {
	.ke-hero__visual { padding-bottom: 0; }
	.ke-hero__visual .ke-photo { width: 100%; }
	.ke-hero__visual .ke-label { position: relative; width: calc(100% - 16px); margin: -56px auto 0; }
}

/* --------------------------------------------------------------------------
   Consignment label (signature)
   ----------------------------------------------------------------------- */

.ke-label {
	--ke-notch: 11px;
	margin: 0;
	background: var(--ke-white);
	border: 1.5px solid var(--ke-ink);
	border-radius: 6px;
	box-shadow: var(--ke-shadow-label);
	color: var(--ke-ink);
	transform: rotate(-1.5deg);
	position: relative;
	font-size: 1rem;
}
.ke-label::before, .ke-label::after {
	content: ""; position: absolute; top: 62%; width: calc(var(--ke-notch) * 2); height: calc(var(--ke-notch) * 2);
	background: var(--ke-paper); border: 1.5px solid var(--ke-ink); border-radius: 50%;
	transform: translateY(-50%); z-index: 2;
}
.ke-label::before { left: calc(var(--ke-notch) * -1 - 1.5px); clip-path: inset(0 0 0 50%); }
.ke-label::after { right: calc(var(--ke-notch) * -1 - 1.5px); clip-path: inset(0 50% 0 0); }
.ke-label__head { display: flex; flex-wrap: nowrap; white-space: nowrap; justify-content: space-between; align-items: center; gap: 10px; background: var(--ke-ink); color: #fff; padding: 12px 18px; border-radius: 4px 4px 0 0; }
.ke-label__brand { font-family: var(--ke-display); font-weight: 800; font-stretch: 88%; font-size: 1.05rem; letter-spacing: .01em; }
.ke-label__type { font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; background: var(--ke-red-action); padding: 4px 8px; border-radius: 2px; }
.ke-label__grid { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.ke-label__cell { padding: 12px 18px; border-bottom: 1px solid var(--ke-rule); }
.ke-label__cell:nth-child(4) { border-left: 1px solid var(--ke-rule); }
.ke-label__cell--wide { grid-column: 1 / -1; }
.ke-label dt { font-family: var(--ke-mono); font-size: .625rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ke-muted); margin: 0 0 3px; }
.ke-label dd { margin: 0; font-family: var(--ke-display); font-weight: 650; font-stretch: 92%; font-size: 1.02rem; line-height: 1.25; }
.ke-label__cell--to dd { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.65rem); font-weight: 800; font-stretch: 86%; }
.ke-label__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 18px 14px; border-top: 1px dashed var(--ke-rule-strong); margin-top: -1px; }
.ke-label__code { display: grid; gap: 4px; flex: 1; min-width: 0; }
.ke-barcode { width: 100%; max-width: 190px; height: 34px; color: var(--ke-ink); display: block; }
.ke-label__code > span { font-family: var(--ke-mono); font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ke-muted); }
.ke-stamp { width: 84px; height: 84px; color: var(--ke-red); transform: rotate(-14deg); opacity: .9; flex: none; font-family: var(--ke-mono); }
.ke-stamp text { font-family: var(--ke-mono); }

/* --------------------------------------------------------------------------
   Facts strip
   ----------------------------------------------------------------------- */

.ke-facts-band { background: var(--ke-ink); color: var(--ke-on-ink); padding-inline: max(var(--ke-gutter), calc((100% - var(--ke-max)) / 2)); }
.ke-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); }
.ke-facts li { padding: 22px 16px 22px 0; display: grid; gap: 4px; border-top: 1px solid rgba(255, 255, 255, .12); }
.ke-facts li:nth-child(-n+2) { border-top: 0; }
.ke-facts__k { font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ke-on-ink-muted); }
.ke-facts__v { font-family: var(--ke-display); font-weight: 700; font-stretch: 90%; font-size: clamp(1.05rem, .95rem + .5vw, 1.35rem); color: #fff; line-height: 1.2; }
@media (min-width: 900px) {
	.ke-facts { grid-template-columns: repeat(4, 1fr); }
	.ke-facts li { border-top: 0; padding: 28px 24px; border-left: 1px solid rgba(255, 255, 255, .12); }
	.ke-facts li:first-child { border-left: 0; padding-left: 0; }
}

/* --------------------------------------------------------------------------
   Service manifest (home)
   ----------------------------------------------------------------------- */

.ke-manifest { border-top: 1.5px solid var(--ke-ink); }
.ke-manifest > * + * { margin-top: 0 !important; }
.ke-row {
	position: relative;
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 6px 18px;
	padding: 24px 0;
	border-bottom: 1px solid var(--ke-rule);
	transition: background-color .2s var(--ke-ease);
}
.ke-row > * { margin: 0 !important; }
.ke-row__icon { grid-row: span 3; }
.ke-row__icon .ke-icon-badge { width: 48px; height: 48px; }
.ke-row__text { color: var(--ke-muted); }
.ke-site .ke-row__link a { font-weight: 600; font-size: var(--ke-fs-small); color: var(--ke-ink); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.ke-site .ke-row__link a::after { content: ""; position: absolute; inset: 0; }
.ke-site .ke-row__link a::before { content: "→"; order: 2; color: var(--ke-red); transition: transform .2s var(--ke-ease); }
.ke-row::before { content: ""; position: absolute; left: 0; top: -1px; bottom: -1px; width: 3px; background: var(--ke-red); transform: scaleY(0); transform-origin: top; transition: transform .25s var(--ke-ease); }
.ke-row:hover::before { transform: scaleY(1); }
.ke-row:hover .ke-row__link a::before { transform: translateX(4px); }
.ke-row:hover .ke-row__title { color: var(--ke-red-action); }
@media (min-width: 900px) {
	.ke-row { grid-template-columns: 56px minmax(0, .9fr) minmax(0, 1.3fr) 150px; align-items: center; gap: 32px; padding: 28px 0; }
	.ke-row__icon { grid-row: auto; }
	.ke-row__link { justify-self: end; }
}

.ke-icon-badge { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: var(--ke-r); background: var(--ke-paper); color: var(--ke-ink); border: 1px solid var(--ke-rule); }
.ke-icon-badge .ke-icon { width: 26px; height: 26px; }
.ke-section--paper .ke-icon-badge { background: var(--ke-white); }
.ke-band--ink .ke-icon-badge { background: var(--ke-ink-2); border-color: var(--ke-ink-3); color: #fff; }

/* --------------------------------------------------------------------------
   India–Nepal band + route diagram
   ----------------------------------------------------------------------- */

.ke-split { display: grid; gap: clamp(40px, 5vw, 80px); align-items: center; }
.ke-split > * { margin: 0 !important; }
@media (min-width: 1024px) { .ke-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); } .ke-split--flip > :first-child { order: 2; } }

.ke-site .ke-split__text > * + * { margin-top: 20px; }
.ke-site .ke-split__text > .ke-eyebrow + * { margin-top: 0; }
.ke-site .ke-split__text .ke-actions { margin-top: 32px; }

.ke-route { margin: 0; position: relative; }
.ke-route svg { width: 100%; height: auto; display: block; overflow: visible; }
.ke-route__dot { fill: rgba(255, 255, 255, .13); }
.ke-route__line { fill: none; stroke-width: 2.5; stroke-linecap: round; }
.ke-route__line--nepal { stroke: var(--ke-red); stroke-width: 3.5; }
.ke-route__line--india { stroke: rgba(255, 255, 255, .7); stroke-width: 2; }
.ke-route__line--intl { stroke: rgba(255, 255, 255, .45); stroke-dasharray: 3 7; }
.ke-route__node circle { fill: var(--ke-ink); stroke: #fff; stroke-width: 2; }
.ke-route__node--nepal circle { stroke: var(--ke-red); stroke-width: 2.5; }
.ke-route__node--nepal path { fill: var(--ke-red); }
.ke-route__node--origin circle { fill: var(--ke-red); stroke: none; }
.ke-route__node--origin .ke-route__pulse { fill: none; stroke: var(--ke-red); stroke-width: 1.5; opacity: .6; }
.ke-route__label { font-family: var(--ke-mono); font-size: 14px; letter-spacing: .14em; fill: #fff; font-weight: 500; }
.ke-route__label--origin { font-size: 16px; }
.ke-route__label--muted { fill: rgba(255, 255, 255, .72); font-size: 12px; }
.ke-route__sub { font-family: var(--ke-body); font-size: 12px; fill: var(--ke-on-ink-muted); }
.ke-site .ke-route__caption { font-family: var(--ke-mono); font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ke-on-ink-muted); margin-top: 8px; text-align: right; }

/* Checklist */
.ke-site .ke-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ke-site .ke-checklist li { position: relative; padding-left: 30px; margin: 0; }
.ke-site .ke-checklist li::before {
	content: ""; position: absolute; left: 0; top: .32em; width: 18px; height: 18px; border-radius: 3px;
	border: 1.5px solid currentColor; opacity: .55;
}
.ke-site .ke-checklist li::after {
	content: ""; position: absolute; left: 5px; top: calc(.32em + 4px); width: 8px; height: 5px;
	border-left: 2px solid var(--ke-red); border-bottom: 2px solid var(--ke-red); transform: rotate(-45deg);
}
.ke-checklist-title { font-family: var(--ke-mono); font-size: .6875rem !important; letter-spacing: .14em; text-transform: uppercase; }

/* --------------------------------------------------------------------------
   Steps (a real sequence)
   ----------------------------------------------------------------------- */

.ke-site .ke-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: ke-step; }
.ke-site .ke-steps > li {
	counter-increment: ke-step; position: relative; margin: 0;
	padding: 26px 0 26px 64px; border-top: 1px solid var(--ke-rule); color: var(--ke-muted);
}
.ke-site .ke-steps > li::before {
	content: counter(ke-step, decimal-leading-zero);
	position: absolute; left: 0; top: 24px;
	font-family: var(--ke-mono); font-size: .8125rem; letter-spacing: .08em; color: var(--ke-red-action);
	width: 42px; height: 42px; display: grid; place-items: center; border: 1.5px solid var(--ke-ink); border-radius: 50%; background: var(--ke-white);
}
.ke-site .ke-steps > li strong { display: block; font-family: var(--ke-display); font-weight: 700; font-stretch: 92%; font-size: var(--ke-fs-h3); color: var(--ke-ink); line-height: 1.2; margin-bottom: 6px; }
@media (min-width: 900px) {
	.ke-site .ke-steps { grid-template-columns: repeat(4, 1fr); gap: 32px; }
	.ke-site .ke-steps > li { padding: 72px 0 0; border-top: 0; }
	.ke-site .ke-steps > li::before { top: 0; }
	.ke-site .ke-steps > li::after { content: ""; position: absolute; top: 21px; left: 54px; right: -20px; height: 1.5px; background: repeating-linear-gradient(to right, var(--ke-rule-strong) 0 6px, transparent 6px 12px); }
	.ke-site .ke-steps > li:last-child::after { display: none; }
}

/* --------------------------------------------------------------------------
   Duo panels (who we serve) & cards
   ----------------------------------------------------------------------- */

.ke-duo { display: grid; gap: 16px; }
.ke-duo > * { margin: 0 !important; }
@media (min-width: 768px) { .ke-duo { grid-template-columns: 1fr 1fr; gap: 24px; } }
.ke-panel { background: var(--ke-white); border: 1px solid var(--ke-rule); border-radius: var(--ke-r-lg); padding: clamp(24px, 2rem + 1vw, 40px); }
.ke-section--white .ke-panel { background: var(--ke-paper); border-color: transparent; }
.ke-site .ke-panel > * + * { margin-top: 12px; }
.ke-site .ke-panel h3 { margin-top: 20px; }
.ke-panel p { color: var(--ke-muted); }
.ke-site .ke-panel .ke-checklist { margin-top: 20px; color: var(--ke-text); }

/* --------------------------------------------------------------------------
   Heritage
   ----------------------------------------------------------------------- */

.ke-heritage { display: grid; gap: clamp(32px, 5vw, 80px); align-items: center; }
.ke-heritage > * { margin: 0 !important; }
@media (min-width: 900px) { .ke-heritage { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } }
.ke-site .ke-heritage__text > * + * { margin-top: 18px; }
.ke-site .ke-heritage__text > .ke-eyebrow + * { margin-top: 0; }
.ke-heritage__text p { color: var(--ke-muted); max-width: 52ch; }
.ke-site .ke-year { font-family: var(--ke-display); font-weight: 800; font-stretch: 80%; font-size: clamp(4.5rem, 3rem + 7vw, 9rem); line-height: .85; color: transparent; -webkit-text-stroke: 1.5px var(--ke-ink); letter-spacing: -.03em; }

/* --------------------------------------------------------------------------
   Photos & placeholders
   ----------------------------------------------------------------------- */

.ke-photo { position: relative; margin: 0; overflow: hidden; border-radius: var(--ke-r-lg); background: var(--ke-paper-2); }
.ke-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ke-photo--placeholder {
	display: block;
	background:
		radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .09) 1px, transparent 1.4px) 0 0 / 22px 22px,
		linear-gradient(160deg, var(--ke-ink-3), var(--ke-ink) 70%);
	color: var(--ke-on-ink-muted);
}
.ke-photo__mark { position: absolute; inset: 0; display: grid; place-items: center; }
.ke-photo__stamp { width: 46%; max-width: 220px; height: auto; color: #fff; opacity: .1; transform: rotate(-12deg); font-family: var(--ke-mono); }
.ke-photo__caption {
	position: absolute; left: 16px; right: 16px; bottom: 16px;
	display: grid; gap: 4px; padding: 14px 16px;
	background: var(--ke-white); color: var(--ke-ink); border-radius: var(--ke-r);
	border-left: 3px solid var(--ke-red);
}
.ke-photo__label { display: flex; align-items: center; gap: 8px; font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ke-muted); }
.ke-photo__label .ke-icon { width: 16px; height: 16px; }
.ke-photo__note { font-family: var(--ke-display); font-weight: 650; font-stretch: 92%; font-size: 1.02rem; line-height: 1.3; }

/* --------------------------------------------------------------------------
   FAQ (core Details block)
   ----------------------------------------------------------------------- */

.ke-faq { border-top: 1.5px solid var(--ke-ink); }
.ke-faq > * + * { margin-top: 0 !important; }
.ke-site .ke-faq .wp-block-details { border-bottom: 1px solid var(--ke-rule); padding: 0; margin: 0; }
.ke-site .ke-faq summary {
	list-style: none; cursor: pointer; position: relative;
	padding: 22px 56px 22px 0;
	font-family: var(--ke-display); font-weight: 700; font-stretch: 92%; font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); color: var(--ke-ink); line-height: 1.3;
}
.ke-site .ke-faq summary::-webkit-details-marker { display: none; }
.ke-site .ke-faq summary::after {
	content: ""; position: absolute; right: 6px; top: 50%; width: 28px; height: 28px; margin-top: -14px;
	border: 1.5px solid var(--ke-rule-strong); border-radius: 50%;
	background:
		linear-gradient(var(--ke-ink), var(--ke-ink)) center / 12px 1.5px no-repeat,
		linear-gradient(var(--ke-ink), var(--ke-ink)) center / 1.5px 12px no-repeat;
	transition: transform .25s var(--ke-ease), background-color .2s;
}
.ke-site .ke-faq details[open] summary::after { transform: rotate(45deg); background-color: var(--ke-paper); }
.ke-site .ke-faq summary:hover { color: var(--ke-red-action); }
.ke-site .ke-faq details > :not(summary) { padding: 0 56px 24px 0; margin: 0; color: var(--ke-muted); max-width: 70ch; }
.ke-site .ke-faq details > :not(summary) + :not(summary) { margin-top: -12px; }

/* --------------------------------------------------------------------------
   Contact components
   ----------------------------------------------------------------------- */

.ke-site .ke-methods { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
@media (min-width: 600px) { .ke-site .ke-methods { grid-template-columns: 1fr 1fr; } }
.ke-method {
	position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 2px 14px; align-items: start;
	margin: 0; padding: 20px; background: var(--ke-white); border: 1px solid var(--ke-rule); border-radius: var(--ke-r-lg);
	transition: border-color .2s var(--ke-ease), transform .2s var(--ke-ease);
}
.ke-method:hover { border-color: var(--ke-ink); }
.ke-method__icon { grid-row: span 3; width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--ke-r); background: var(--ke-paper); color: var(--ke-ink); }
.ke-method--whatsapp .ke-method__icon { background: var(--ke-wa); color: #fff; }
.ke-method__icon .ke-icon { width: 22px; height: 22px; }
.ke-method__label { font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ke-muted); }
.ke-site .ke-method__value { font-family: var(--ke-display); font-weight: 700; font-stretch: 92%; font-size: 1.2rem; color: var(--ke-ink); text-decoration: none; overflow-wrap: anywhere; line-height: 1.25; }
.ke-site .ke-method__value::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ke-site .ke-method__value:hover { color: var(--ke-red-action); }
.ke-method__hint { font-size: .875rem; color: var(--ke-muted); position: relative; z-index: 1; overflow-wrap: anywhere; }
.ke-site .ke-method__hint a { color: var(--ke-indigo); }

.ke-address { background: var(--ke-ink); color: var(--ke-on-ink); border-radius: var(--ke-r-lg); padding: clamp(24px, 2rem + 1vw, 36px); display: grid; gap: 10px; }
.ke-address__icon { color: var(--ke-red); }
.ke-address__icon .ke-icon { width: 28px; height: 28px; }
.ke-site .ke-address__label { font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ke-on-ink-muted); }
.ke-site .ke-address__lines { font-style: normal; font-family: var(--ke-display); font-weight: 650; font-stretch: 92%; font-size: 1.2rem; line-height: 1.4; color: #fff; margin: 0; }
.ke-address__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.ke-site .ke-address .ke-btn--ghost { --ke-btn-fg: #fff; --ke-btn-bd: rgba(255, 255, 255, .35); }
.ke-site .ke-address .ke-btn--ghost:hover { --ke-btn-bg: rgba(255, 255, 255, .08); --ke-btn-bd: #fff; }
.ke-address .ke-icon { width: 16px; height: 16px; }

/* Contact band (home & inner pages) */
.ke-cta-band { display: grid; gap: 32px; align-items: stretch; }
.ke-cta-band > * { margin: 0 !important; }
@media (min-width: 900px) { .ke-cta-band { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 48px; } }
.ke-site .ke-cta-band__text > * + * { margin-top: 18px; }
.ke-site .ke-cta-band__text > .ke-eyebrow + * { margin-top: 0; }
.ke-site .ke-cta-band__text .ke-actions { margin-top: 28px; }

/* Enquiry block (contact page) */
.ke-enquiry { display: grid; gap: clamp(32px, 4vw, 64px); align-items: start; }
.ke-enquiry > * { margin: 0 !important; }
@media (min-width: 1024px) { .ke-enquiry { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } .ke-enquiry__aside { position: sticky; top: calc(var(--ke-header-h) + 32px); } }
.ke-site .ke-enquiry__aside > * + * { margin-top: 18px; }
.ke-site .ke-enquiry__aside > .ke-eyebrow + * { margin-top: 0; }
.ke-enquiry__aside p { color: var(--ke-muted); }

/* SureForms — bring the enquiry form into the design system */
.ke-form {
	background: var(--ke-white); border: 1.5px solid var(--ke-ink); border-radius: var(--ke-r-lg);
	padding: clamp(20px, 1.25rem + 2vw, 44px);
	box-shadow: var(--ke-shadow-label);
}
.ke-site .ke-form .srfm-form-container,
.ke-site .ke-form .srfm-form { font-family: var(--ke-body); }
.ke-site .ke-form .srfm-form-container {
	--srfm-color-scheme-primary: var(--ke-red-action);
	--srfm-color-scheme-text: var(--ke-text);
	--srfm-color-input-label: var(--ke-ink);
	--srfm-color-input-text: var(--ke-text);
	--srfm-color-input-placeholder: #8a8e9e;
	--srfm-color-input-border: var(--ke-rule-strong);
	--srfm-color-input-border-hover: var(--ke-ink);
	--srfm-color-input-border-focus-glow: rgba(59, 58, 143, .18);
	--srfm-color-input-background: #fff;
	--srfm-input-field-border-radius: 4px;
	--srfm-btn-border-radius: 4px;
}
.ke-site .ke-form .srfm-block-label,
.ke-site .ke-form .srfm-block-legend { font-family: var(--ke-body); font-weight: 600; font-size: .9375rem; color: var(--ke-ink); }
.ke-site .ke-form .srfm-required { color: var(--ke-red-action); }
.ke-site .ke-form input[type="text"],
.ke-site .ke-form input[type="email"],
.ke-site .ke-form input[type="tel"],
.ke-site .ke-form textarea,
.ke-site .ke-form .ts-control,
.ke-site .ke-form select { font-family: var(--ke-body); font-size: 1rem; min-height: 48px; }
.ke-site .ke-form .srfm-description { font-size: .875rem; color: var(--ke-muted); }
.ke-site .ke-form .srfm-submit-container .srfm-button,
.ke-site .ke-form button.srfm-submit-button,
.ke-site .ke-form .srfm-submit-btn {
	font-family: var(--ke-body); font-weight: 600; font-size: 1rem; min-height: 52px; padding: 0 28px;
	background: var(--ke-red-action); border-color: var(--ke-red-action); color: #fff; border-radius: 4px; text-transform: none; letter-spacing: 0;
}
.ke-site .ke-form .srfm-submit-container .srfm-button:hover,
.ke-site .ke-form button.srfm-submit-button:hover { background: var(--ke-red-hover); border-color: var(--ke-red-hover); }
.ke-site .ke-form .srfm-success-box { font-family: var(--ke-body); }

/* --------------------------------------------------------------------------
   Inner page hero
   ----------------------------------------------------------------------- */

.ke-pagehero {
	background:
		linear-gradient(to right, rgba(16, 21, 48, .045) 1px, transparent 1px) 0 0 / calc(100% / 12) 100%,
		var(--ke-paper);
	padding-top: clamp(40px, 2rem + 3vw, 96px);
	padding-bottom: clamp(40px, 2rem + 3vw, 88px);
	border-bottom: 1px solid var(--ke-rule);
}
.ke-pagehero__grid { display: grid; gap: 28px 64px; align-items: end; }
.ke-pagehero__grid > * { margin: 0 !important; }
.ke-pagehero h1 { max-width: 16ch; font-weight: 800; font-stretch: 84%; line-height: 1; letter-spacing: -.02em; }
.ke-pagehero .ke-lead { max-width: 46ch; }
@media (min-width: 900px) { .ke-pagehero__grid { grid-template-columns: 1.1fr 1fr; } .ke-pagehero__grid .ke-eyebrow { grid-column: 1 / -1; } }
.ke-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px !important; }
.ke-site .ke-jump a {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px;
	border: 1px solid var(--ke-rule-strong); border-radius: 999px; background: var(--ke-white);
	font-size: .875rem; font-weight: 500; color: var(--ke-ink); text-decoration: none;
}
.ke-site .ke-jump a:hover { border-color: var(--ke-ink); }

/* --------------------------------------------------------------------------
   Service detail (services page)
   ----------------------------------------------------------------------- */

.ke-service { display: grid; gap: 24px 64px; padding-block: clamp(40px, 2.5rem + 2vw, 72px); border-top: 1px solid var(--ke-rule); scroll-margin-top: calc(var(--ke-header-h) + 8px); }
.ke-services > .ke-service:first-child { border-top: 1.5px solid var(--ke-ink); }
.ke-services > * + * { margin-top: 0 !important; }
.ke-service > * { margin: 0 !important; }
.ke-site .ke-service__side > * + * { margin-top: 18px; }
.ke-service__side .ke-service__code { font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ke-red-action); }
.ke-site .ke-service__body > * + * { margin-top: 18px; }
.ke-service__body > p { color: var(--ke-muted); max-width: 60ch; }
.ke-service__body > p.ke-service__summary { color: var(--ke-text); font-size: var(--ke-fs-lead); line-height: 1.5; }
.ke-service__share { background: var(--ke-paper); border-radius: var(--ke-r-lg); padding: 22px 24px; }
.ke-section--paper .ke-service__share { background: var(--ke-white); }
.ke-site .ke-service__share > * + * { margin-top: 12px; }
.ke-service__body .ke-actions, .ke-service__body .ke-link { margin-top: 26px; }
@media (min-width: 900px) {
	.ke-service { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
	.ke-service__side { position: sticky; top: calc(var(--ke-header-h) + 32px); align-self: start; }
}

/* Notice (owner-review markers etc.) */
.ke-notice { border-left: 3px solid var(--ke-red); background: var(--ke-white); padding: 16px 20px; border-radius: 0 var(--ke-r) var(--ke-r) 0; font-size: var(--ke-fs-small); color: var(--ke-muted); }
.ke-notice strong { color: var(--ke-ink); }

/* Values list (about) */
.ke-values { display: grid; gap: 0; border-top: 1.5px solid var(--ke-ink); }
.ke-values > * { margin: 0 !important; }
@media (min-width: 900px) { .ke-values { grid-template-columns: repeat(3, 1fr); } }
.ke-value { padding: 28px 0; border-bottom: 1px solid var(--ke-rule); }
@media (min-width: 900px) { .ke-value { padding: 32px 32px 32px 0; border-bottom: 0; } .ke-value + .ke-value { padding-left: 32px; border-left: 1px solid var(--ke-rule); } }
.ke-site .ke-value > * + * { margin-top: 10px; }
.ke-value p { color: var(--ke-muted); }

/* Then / now (about) */
.ke-thennow { display: grid; gap: 16px; }
.ke-thennow > * { margin: 0 !important; }
@media (min-width: 768px) { .ke-thennow { grid-template-columns: 1fr 1fr; } }
.ke-thennow__item { border: 1px solid var(--ke-rule); border-radius: var(--ke-r-lg); padding: 28px; background: var(--ke-white); }
.ke-site .ke-thennow__item > * + * { margin-top: 10px; }
.ke-thennow__item .ke-year { font-size: clamp(3rem, 2rem + 3vw, 4.5rem); }
.ke-thennow__item p { color: var(--ke-muted); }

/* Prose (privacy policy) */
.ke-prose { max-width: 760px; }
.ke-site .ke-prose > * + * { margin-top: 1em; }
.ke-site .ke-prose h2 { font-size: clamp(1.35rem, 1.15rem + .8vw, 1.8rem); margin-top: 2.2em !important; }
.ke-site .ke-prose h2:first-child { margin-top: 0 !important; }
.ke-prose ul { padding-left: 1.2em; margin-left: 0; }
.ke-prose li + li { margin-top: .4em; }
.ke-prose p, .ke-prose li { color: var(--ke-text); }

/* --------------------------------------------------------------------------
   Footer
   ----------------------------------------------------------------------- */

.ke-footer { background: var(--ke-ink); color: var(--ke-on-ink-muted); font-size: var(--ke-fs-small); }
.ke-footer__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px 24px; padding-block: clamp(56px, 3rem + 3vw, 96px) 48px; }
/* Services and Company always sit side by side; brand and contact span the row. */
.ke-footer__brand, .ke-footer__contact { grid-column: 1 / -1; }
@media (min-width: 700px) { .ke-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr); } .ke-footer__contact { grid-column: auto; } }
@media (min-width: 1100px) { .ke-footer__top { grid-template-columns: 1.4fr .9fr .8fr 1.2fr; gap: 48px; } .ke-footer__brand { grid-column: auto; } }
.ke-site .ke-footer__motto { margin: -8px 0 22px; font-family: var(--ke-display); font-style: italic; font-weight: 650; font-stretch: 92%; color: #fff; max-width: 34ch; }
.ke-site .ke-brand--footer { color: #fff; }
.ke-brand--footer .ke-brand__logo { width: 56px; }
.ke-brand--footer .ke-brand__meta { color: var(--ke-on-ink-muted); }
.ke-site .ke-footer__about { margin: 20px 0 22px; max-width: 38ch; color: var(--ke-on-ink-muted); }
.ke-site .ke-footer__title { font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin: 0 0 16px; }
.ke-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.ke-footer li { margin: 0; }
.ke-site .ke-footer a:not(.ke-btn):not(.ke-brand) { color: var(--ke-on-ink); text-decoration: none; display: inline-block; padding: 6px 0; }
.ke-site .ke-footer a:not(.ke-btn):not(.ke-brand):hover { color: #fff; text-decoration: underline; text-decoration-color: var(--ke-red); text-underline-offset: .25em; }
.ke-footer__contact li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; }
.ke-footer__contact .ke-icon { width: 18px; height: 18px; color: var(--ke-red); margin-top: 8px; }
.ke-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-block: 22px; font-size: .8125rem; position: relative; }
.ke-footer__bottom::before { content: ""; position: absolute; top: 0; left: var(--ke-gutter); right: var(--ke-gutter); height: 1px; background: rgba(255, 255, 255, .12); }
.ke-site .ke-footer__mark { display: flex; gap: 8px; font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; }
.ke-footer__mark span[aria-hidden] { color: var(--ke-red); }

/* --------------------------------------------------------------------------
   Mobile action bar — removed at the owner's request (parts/action-bar.php is
   kept, unused). Third-party floating buttons stay hidden on small screens.
   ----------------------------------------------------------------------- */

@media (max-width: 1023px) {
	.ht-ctc, .ht_ctc_chat_style, .wp-call-button { display: none !important; }
}

/* --------------------------------------------------------------------------
   Astra fallback templates (404, search) inside the new chrome
   ----------------------------------------------------------------------- */

.ke-site:not(.ke-template) .site-content { padding-block: clamp(48px, 6vw, 96px); }
.ke-site:not(.ke-template) .site-content > .ast-container { max-width: calc(var(--ke-max) + var(--ke-gutter) * 2); padding-inline: var(--ke-gutter); margin-inline: auto; }
.ke-site .ast-archive-description, .ke-site .error-404 { background: transparent; }
.ke-site .page-title, .ke-site .error-404 .page-title { font-family: var(--ke-display); }

/* --------------------------------------------------------------------------
   Motion system
   One curve, four durations, a handful of primitives. JavaScript (ke.js)
   only tags elements that start BELOW the first screen, so nothing visible
   on load is ever hidden; the hero sequence is pure CSS. With JS disabled,
   or reduced motion requested, everything is simply visible.
   ----------------------------------------------------------------------- */

/* Primitives — applied via data-ke-motion by ke.js */
.ke-js [data-ke-motion] {
	transition:
		opacity var(--ke-dur-reveal) var(--ke-ease),
		transform var(--ke-dur-reveal) var(--ke-ease),
		clip-path var(--ke-dur-large) var(--ke-ease);
	transition-delay: calc(var(--ke-i, 0) * var(--ke-stagger, 90ms));
}
.ke-js [data-ke-motion="up"]:not(.is-in) { opacity: 0; transform: translate3d(0, 22px, 0); }
.ke-js [data-ke-motion="fade"]:not(.is-in) { opacity: 0; }
.ke-js [data-ke-motion="scale"]:not(.is-in) { opacity: 0; transform: scale(.97); }
.ke-js [data-ke-motion="frame"]:not(.is-in) { opacity: 0; clip-path: inset(6% 6% 6% 6% round 8px); }
.ke-js [data-ke-motion="image"]:not(.is-in) { clip-path: inset(0 0 100% 0 round 8px); }
.ke-js [data-ke-motion="image"] img { transition: transform 1.1s var(--ke-ease); transition-delay: inherit; }
.ke-js [data-ke-motion="image"]:not(.is-in) img { transform: scale(1.08); }

/* Placeholder frame: caption follows the frame, so it never reads as a photo "loading" */
.ke-js [data-ke-motion="frame"] .ke-photo__caption { transition: opacity .5s var(--ke-ease) .45s, transform .5s var(--ke-ease) .45s; }
.ke-js [data-ke-motion="frame"]:not(.is-in) .ke-photo__caption { opacity: 0; transform: translate3d(0, 10px, 0); }
.ke-js [data-ke-motion="frame"] .ke-photo__stamp { transition: opacity .9s var(--ke-ease) .3s, transform .9s var(--ke-ease) .3s; }
.ke-js [data-ke-motion="frame"]:not(.is-in) .ke-photo__stamp { opacity: 0; transform: rotate(-20deg) scale(.94); }

/* Outline year: a quiet settle, never a spin */
.ke-js .ke-year[data-ke-motion]:not(.is-in) { opacity: 0; transform: scale(.96); }
.ke-js .ke-year[data-ke-motion] { transform-origin: left bottom; }

/* Eyebrow rule draws in with its label */
.ke-js [data-ke-motion].ke-eyebrow::before { transition: transform .6s var(--ke-ease) .15s; transform-origin: left; }
.ke-js [data-ke-motion]:not(.is-in).ke-eyebrow::before { transform: scaleX(0); }

/* Process steps: numbers settle, dashed connector draws toward the next step */
.ke-js .ke-steps > li[data-ke-motion]::before { transition: transform .5s var(--ke-ease), background-color .3s ease; }
.ke-js .ke-steps > li[data-ke-motion]:not(.is-in)::before { transform: scale(.85); }
@media (min-width: 900px) {
	.ke-js .ke-steps > li[data-ke-motion]::after { transform-origin: left; transition: transform .7s var(--ke-ease); transition-delay: calc(var(--ke-i, 0) * var(--ke-stagger, 90ms) + 280ms); }
	.ke-js .ke-steps > li[data-ke-motion]:not(.is-in)::after { transform: scaleX(0); }
}

/* Footer: divider draws, columns follow */
.ke-js .ke-footer__bottom[data-ke-motion]::before { transform-origin: left; transition: transform 1s var(--ke-ease); }
.ke-js .ke-footer__bottom[data-ke-motion]:not(.is-in)::before { transform: scaleX(0); }

/* --------------------------------------------------------------------------
   Home hero — load sequence (CSS only; runs once per page view)
   ----------------------------------------------------------------------- */

@keyframes ke-rise { from { opacity: 0; transform: translate3d(0, 16px, 0); } }
@keyframes ke-fadein { from { opacity: 0; } }
@keyframes ke-photo-in { from { clip-path: inset(0 0 0 100% round 8px); } }
@keyframes ke-label-in { from { opacity: 0; transform: translate3d(0, 28px, 0) rotate(-4.5deg); } }
@keyframes ke-stamp-in { 0% { opacity: 0; transform: rotate(-26deg) scale(1.22); } 100% { opacity: .9; transform: rotate(-14deg) scale(1); } }
@keyframes ke-scan { 0% { opacity: 0; transform: translate3d(-8px, 0, 0); } 12% { opacity: 1; } 88% { opacity: 1; } 100% { opacity: 0; transform: translate3d(var(--ke-scan-w, 180px), 0, 0); } }
@keyframes ke-rule { from { transform: scaleX(0); } }

.ke-hero .ke-hero__text > .ke-eyebrow { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .1s both; }
.ke-hero .ke-hero__text > .ke-eyebrow::before { transform-origin: left; animation: ke-rule .6s var(--ke-ease) .2s both; }
.ke-hero .ke-hero__text > h1 { animation: ke-rise .75s var(--ke-ease) .2s both; }
.ke-hero .ke-hero__text > .ke-lead { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .35s both; }
.ke-hero .ke-hero__text > .ke-actions { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .45s both; }
.ke-hero .ke-hero__visual > .ke-photo { animation: ke-photo-in 1s var(--ke-ease) .5s both; }
.ke-hero .ke-label { animation: ke-label-in .9s var(--ke-ease) .7s both; }
.ke-hero .ke-stamp { animation: ke-stamp-in .55s var(--ke-ease) 1.35s both; }
.ke-barcode-wrap { position: relative; display: block; max-width: 190px; overflow: hidden; }
.ke-hero .ke-barcode-wrap::after {
	content: ""; position: absolute; top: -2px; bottom: -2px; left: 0; width: 2px;
	background: var(--ke-red); box-shadow: 0 0 6px 1px rgba(224, 53, 47, .45);
	opacity: 0; pointer-events: none;
	animation: ke-scan .9s var(--ke-ease-in-out) 1.55s 1 both;
}
.ke-hero + .ke-facts-band .ke-facts li { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) both; animation-delay: calc(.75s + var(--ke-n, 0) * 80ms); }
.ke-facts li:nth-child(2) { --ke-n: 1; }
.ke-facts li:nth-child(3) { --ke-n: 2; }
.ke-facts li:nth-child(4) { --ke-n: 3; }

/* Inner page intro — the same sequence, shorter */
.ke-pagehero .ke-pagehero__grid > .ke-eyebrow,
.ke-pagehero .ke-pagehero__grid > .ke-404__code { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .05s both; }
.ke-pagehero .ke-pagehero__grid > .ke-eyebrow::before { transform-origin: left; animation: ke-rule .6s var(--ke-ease) .15s both; }
.ke-pagehero .ke-pagehero__grid > h1 { animation: ke-rise .7s var(--ke-ease) .14s both; }
.ke-pagehero .ke-pagehero__grid > .ke-lead { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .26s both; }
.ke-pagehero > .ke-jump { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .36s both; }
.ke-photostrip > .ke-photo { animation: ke-photo-in .95s var(--ke-ease) both; animation-delay: calc(.35s + var(--ke-n, 0) * 100ms); }
.ke-photostrip > .ke-photo:nth-child(2) { --ke-n: 1; }
.ke-photostrip > .ke-photo:nth-child(3) { --ke-n: 2; }

/* 404 mark */
.ke-site .ke-404__code {
	grid-column: 1 / -1; margin: 0 0 -4px;
	font-family: var(--ke-display); font-weight: 800; font-stretch: 80%; line-height: .8;
	font-size: clamp(5rem, 3.5rem + 8vw, 10rem); letter-spacing: -.03em;
	color: transparent; -webkit-text-stroke: 1.5px var(--ke-ink);
}

/* --------------------------------------------------------------------------
   Route diagram — draw, then one parcel marker travels to Nepal, then labels
   ----------------------------------------------------------------------- */

.ke-route__parcel rect { fill: #fff; stroke: var(--ke-red); stroke-width: 2.5; }
.ke-route__parcel { opacity: 0; transition: opacity .35s ease; }
.ke-route__parcel.is-travelling { opacity: 1; }
.ke-route__parcel.is-arrived { opacity: 0; transition-duration: .6s; }

.ke-js .ke-route .ke-route__line { stroke-dasharray: var(--ke-len, 600); stroke-dashoffset: var(--ke-len, 600); transition: stroke-dashoffset 1.4s var(--ke-ease-in-out); }
.ke-js .ke-route .ke-route__line--india { transition-delay: .5s; }
.ke-js .ke-route .ke-route__line--intl { stroke-dasharray: 3 7; stroke-dashoffset: 0; opacity: 0; transition: opacity .8s ease 1.3s; }
.ke-js .ke-route.is-in .ke-route__line { stroke-dashoffset: 0; }
.ke-js .ke-route.is-in .ke-route__line--intl { opacity: 1; }
.ke-js .ke-route .ke-route__node { opacity: 0; transition: opacity .5s ease; }
.ke-js .ke-route .ke-route__node--origin { transition-delay: .05s; }
.ke-js .ke-route .ke-route__node--nepal { transition-delay: 1.35s; }
.ke-js .ke-route .ke-route__node--india { transition-delay: 1.5s; }
.ke-js .ke-route .ke-route__node--intl { transition-delay: 1.7s; }
.ke-js .ke-route.is-in .ke-route__node { opacity: 1; }
.ke-js .ke-route svg text { opacity: 0; transition: opacity .6s ease 1.6s; }
.ke-js .ke-route.is-in svg text { opacity: 1; }
.ke-js .ke-route .ke-route__legend, .ke-js .ke-route .ke-route__caption { opacity: 0; transition: opacity .6s ease 1.4s; }
.ke-js .ke-route.is-in .ke-route__legend, .ke-js .ke-route.is-in .ke-route__caption { opacity: 1; }
/* Origin pulse: two soft rings on reveal, then still */
.ke-route__pulse { transform-box: fill-box; transform-origin: center; opacity: 0; }
.ke-route.is-in .ke-route__pulse { animation: ke-pulse 2.4s ease-out .2s 2 both; }
@keyframes ke-pulse { 0% { transform: scale(.7); opacity: .6; } 80%, 100% { transform: scale(2.1); opacity: 0; } }

/* --------------------------------------------------------------------------
   Micro-interactions (hover only on devices that truly hover)
   ----------------------------------------------------------------------- */

.ke-site .ke-btn { transition: background-color var(--ke-dur-hover) ease, border-color var(--ke-dur-hover) ease, color var(--ke-dur-hover) ease, transform var(--ke-dur-micro) var(--ke-ease), box-shadow var(--ke-dur-hover) ease; }
.ke-site .ke-btn .ke-icon { transition: transform var(--ke-dur-hover) var(--ke-ease); }
.ke-site .ke-btn:active { transform: scale(.98); transition-duration: 100ms; }

@media (hover: hover) and (pointer: fine) {
	.ke-site .ke-btn:hover { transform: translate3d(0, -2px, 0); box-shadow: 0 10px 20px -12px rgba(16, 21, 48, .45); }
	.ke-site .ke-btn--ghost:hover { box-shadow: none; }
	.ke-site .ke-btn:active { transform: scale(.98); box-shadow: none; }

	/* Service rows (home) */
	.ke-row .ke-icon-badge { transition: transform var(--ke-dur-hover) var(--ke-ease), border-color var(--ke-dur-hover) ease, color var(--ke-dur-hover) ease; }
	.ke-row:hover .ke-icon-badge { transform: translate3d(0, -2px, 0); border-color: var(--ke-red); color: var(--ke-red-action); }
	.ke-row__title { transition: color var(--ke-dur-hover) ease; }

	/* Service sections (services page) */
	.ke-service .ke-icon-badge { transition: transform var(--ke-dur-hover) var(--ke-ease), border-color var(--ke-dur-hover) ease, color var(--ke-dur-hover) ease; }
	.ke-service:hover .ke-icon-badge { transform: translate3d(0, -2px, 0) scale(1.03); border-color: var(--ke-red); color: var(--ke-red-action); }

	/* Contact cards: whole card is the link */
	.ke-method { transition: border-color var(--ke-dur-hover) ease, transform var(--ke-dur-hover) var(--ke-ease), box-shadow var(--ke-dur-hover) ease; }
	.ke-method:hover { transform: translate3d(0, -3px, 0); box-shadow: 0 16px 30px -22px rgba(16, 21, 48, .45); }
	.ke-method__icon { transition: background-color var(--ke-dur-hover) ease, color var(--ke-dur-hover) ease; }
	.ke-method__icon .ke-icon { transition: transform var(--ke-dur-hover) var(--ke-ease); }
	.ke-method:hover .ke-method__icon .ke-icon { transform: translate3d(0, -1px, 0) scale(1.06); }
	.ke-method:not(.ke-method--whatsapp):hover .ke-method__icon { background: var(--ke-ink); color: #fff; }
	.ke-method--whatsapp:hover .ke-method__icon { background: var(--ke-wa-hover); }

	/* Real photographs only (placeholders are excluded) */
	.ke-photo:not(.ke-photo--placeholder) img { transition: transform .6s var(--ke-ease); }
	.ke-photo:not(.ke-photo--placeholder):hover img { transform: scale(1.03); }

	/* Jump links + FAQ */
	.ke-site .ke-jump a { transition: border-color var(--ke-dur-hover) ease, background-color var(--ke-dur-hover) ease, color var(--ke-dur-hover) ease; }
	.ke-site .ke-jump a:hover { background: var(--ke-ink); color: #fff; border-color: var(--ke-ink); }
	.ke-site .ke-faq summary { transition: color var(--ke-dur-hover) ease; }
	.ke-site .ke-faq summary:hover::after { border-color: var(--ke-ink); }

	/* Footer + header phone + text links */
	.ke-footer__contact li .ke-icon { transition: transform var(--ke-dur-hover) var(--ke-ease); }
	.ke-footer__contact li:hover .ke-icon { transform: translate3d(2px, 0, 0); }
	.ke-header__phone .ke-icon { transition: transform var(--ke-dur-hover) var(--ke-ease); }
	.ke-header__phone:hover .ke-icon { transform: rotate(-12deg); }
	.ke-site .ke-link::after { content: "→"; display: inline-block; color: var(--ke-red); transition: transform var(--ke-dur-hover) var(--ke-ease); }
	.ke-site .ke-link:hover::after { transform: translate3d(4px, 0, 0); }
}

/* Touch: press feedback instead of hover */
@media (hover: none) {
	.ke-method { transition: transform 100ms ease; }
	.ke-method:active { transform: scale(.985); }
}

/* Header: scrolled state */
.ke-header { transition: box-shadow var(--ke-dur-hover) ease, background-color var(--ke-dur-hover) ease; }
.ke-header.is-scrolled { background: rgba(255, 255, 255, .985); }

/* Form fields: clear, calm focus */
.ke-site .ke-form input, .ke-site .ke-form textarea, .ke-site .ke-form .ts-control, .ke-site .ke-form select {
	transition: border-color var(--ke-dur-micro) ease, box-shadow var(--ke-dur-micro) ease, background-color var(--ke-dur-micro) ease;
}
.ke-site .ke-form input:not([type="checkbox"]):focus, .ke-site .ke-form textarea:focus, .ke-site .ke-form .ts-control.focus {
	border-color: var(--ke-indigo); box-shadow: 0 0 0 3px rgba(59, 58, 143, .16); background-color: #fff; outline: none;
}

/* Search results template (Astra) */
.ke-site .search-field { transition: border-color var(--ke-dur-micro) ease, box-shadow var(--ke-dur-micro) ease; }
.ke-site .search-field:focus { border-color: var(--ke-indigo); box-shadow: 0 0 0 3px rgba(59, 58, 143, .16); outline: none; }

/* --------------------------------------------------------------------------
   Mobile menu — fade/slide in with a short item stagger, reverse on close
   ----------------------------------------------------------------------- */

.ke-mobile-nav { transition: opacity 260ms var(--ke-ease), transform 260ms var(--ke-ease); }
.ke-js .ke-mobile-nav:not(.is-open) { opacity: 0; transform: translate3d(0, -8px, 0); }
.ke-mobile-nav__list li, .ke-mobile-nav__contact { transition: opacity 300ms var(--ke-ease), transform 300ms var(--ke-ease); }
.ke-js .ke-mobile-nav:not(.is-open) .ke-mobile-nav__list li,
.ke-js .ke-mobile-nav:not(.is-open) .ke-mobile-nav__contact { opacity: 0; transform: translate3d(0, 10px, 0); transition-duration: 160ms; }
.ke-mobile-nav.is-open .ke-mobile-nav__list li:nth-child(1) { transition-delay: 40ms; }
.ke-mobile-nav.is-open .ke-mobile-nav__list li:nth-child(2) { transition-delay: 80ms; }
.ke-mobile-nav.is-open .ke-mobile-nav__list li:nth-child(3) { transition-delay: 120ms; }
.ke-mobile-nav.is-open .ke-mobile-nav__list li:nth-child(4) { transition-delay: 160ms; }
.ke-mobile-nav.is-open .ke-mobile-nav__list li:nth-child(n+5) { transition-delay: 200ms; }
.ke-mobile-nav.is-open .ke-mobile-nav__contact { transition-delay: 240ms; }
.ke-menu-toggle[aria-expanded="true"] .ke-menu-toggle__close .ke-icon { animation: ke-turn-in var(--ke-dur-hover) var(--ke-ease); }
@keyframes ke-turn-in { from { transform: rotate(-90deg); opacity: 0; } }

/* --------------------------------------------------------------------------
   FAQ accordion — smooth height where the browser supports it (progressive)
   ----------------------------------------------------------------------- */

.ke-site .ke-faq summary::after { transition: transform var(--ke-dur-hover) var(--ke-ease), background-color var(--ke-dur-hover) ease, border-color var(--ke-dur-hover) ease; }
@supports selector(::details-content) {
	.ke-site .ke-faq details { interpolate-size: allow-keywords; }
	.ke-site .ke-faq details::details-content {
		block-size: 0; overflow-y: clip;
		transition: block-size 320ms var(--ke-ease-in-out), content-visibility 320ms allow-discrete;
	}
	.ke-site .ke-faq details[open]::details-content { block-size: auto; }
}
.ke-site .ke-faq details > :not(summary) { transition: opacity 320ms ease, transform 320ms var(--ke-ease); }
.ke-site .ke-faq details:not([open]) > :not(summary) { opacity: 0; transform: translate3d(0, -4px, 0); }

/* --------------------------------------------------------------------------
   Reduced motion: content appears immediately; colour/opacity feedback stays,
   movement, drawing, scanning and travelling are removed.
   ----------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ke-js [data-ke-motion], .ke-js [data-ke-motion] img, .ke-js [data-ke-motion] .ke-photo__caption, .ke-js [data-ke-motion] .ke-photo__stamp { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; }
	.ke-photo__stamp { transform: rotate(-12deg) !important; }
	.ke-hero, .ke-hero *, .ke-hero *::before, .ke-hero *::after, .ke-pagehero *, .ke-pagehero *::before, .ke-photostrip > .ke-photo, .ke-facts li { animation: none !important; }
	.ke-label { transform: rotate(-1.5deg) !important; }
	.ke-stamp { transform: rotate(-14deg) !important; opacity: .9 !important; }
	.ke-hero .ke-barcode-wrap::after { display: none; }
	.ke-js .ke-route .ke-route__line { stroke-dashoffset: 0 !important; transition: none !important; }
	.ke-js .ke-route .ke-route__line--intl, .ke-js .ke-route .ke-route__node, .ke-js .ke-route svg text, .ke-js .ke-route .ke-route__legend, .ke-js .ke-route .ke-route__caption { opacity: 1 !important; transition: none !important; }
	.ke-route__parcel { display: none; }
	.ke-route__pulse, .ke-route.is-in .ke-route__pulse { animation: none !important; opacity: 0 !important; }
	.ke-js .ke-steps > li[data-ke-motion]::before, .ke-js .ke-steps > li[data-ke-motion]::after, .ke-js .ke-footer__bottom[data-ke-motion]::before, .ke-js [data-ke-motion].ke-eyebrow::before { transform: none !important; transition: none !important; }
	.ke-js .ke-mobile-nav, .ke-js .ke-mobile-nav *, .ke-js .ke-mobile-nav:not(.is-open) .ke-mobile-nav__list li { transform: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
	.ke-site .ke-faq details > :not(summary) { transform: none !important; }
	.ke-site .ke-faq details::details-content { transition: none !important; }
	.ke-site .ke-btn:hover, .ke-site .ke-btn:active, .ke-method:hover, .ke-method:active, .ke-row:hover .ke-icon-badge, .ke-service:hover .ke-icon-badge, .ke-photo:hover img, .ke-method:hover .ke-method__icon .ke-icon, .ke-header__phone:hover .ke-icon { transform: none !important; }
	.ke-site .ke-link:hover::after, .ke-footer__contact li:hover .ke-icon { transform: none !important; }
	.ke-menu-toggle .ke-icon { animation: none !important; }
}

.ke-site .screen-reader-text { clip: rect(1px, 1px, 1px, 1px); position: absolute !important; height: 1px; width: 1px; overflow: hidden; }

/* Compact vertical steps (contact page aside) */
.ke-site .ke-steps.ke-steps--compact { grid-template-columns: 1fr; gap: 0; }
.ke-site .ke-steps--compact > li { padding: 18px 0 18px 56px; border-top: 1px solid var(--ke-rule); font-size: var(--ke-fs-small); }
.ke-site .ke-steps--compact > li::before { top: 16px; width: 36px; height: 36px; font-size: .75rem; }
.ke-site .ke-steps--compact > li::after { display: none; }
.ke-site .ke-steps--compact > li strong { font-size: 1.05rem; margin-bottom: 2px; }

/* Astra adds margins to #primary on some templates */
.ke-site #primary.ke-main { margin: 0 !important; padding: 0 !important; width: 100%; float: none; }

/* Mobile header fit: keep brand + menu button inside narrow screens */
@media (max-width: 1023px) {
	.ke-header__inner { gap: 12px; }
	.ke-menu-toggle { width: 46px; min-width: 46px; justify-content: center; padding: 0; flex: none; }
	.ke-site .ke-brand { min-width: 0; gap: 10px; }
	.ke-brand__text { min-width: 0; }
}
@media (max-width: 420px) {
	.ke-brand__logo { width: 36px; }
	.ke-brand__name { font-size: 1.06rem; }
	.ke-brand__meta { letter-spacing: .05em; font-size: .5625rem; }
}

/* Route diagram legend — replaces in-diagram labels on small screens */
.ke-route__legend { display: none; }
@media (max-width: 639px) {
	.ke-route svg text { display: none; }
	.ke-site .ke-route__legend { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; list-style: none; margin: 16px 0 0; padding: 0; }
	.ke-site .ke-route__legend li { display: flex; align-items: center; gap: 10px; margin: 0; font-size: .875rem; color: var(--ke-on-ink); line-height: 1.3; }
	.ke-route__key { flex: none; display: inline-block; width: 22px; height: 0; border-top: 2px solid rgba(255, 255, 255, .7); }
	.ke-route__key--origin { width: 12px; height: 12px; border: 0; border-radius: 50%; background: var(--ke-red); }
	.ke-route__key--nepal { border-top: 3px solid var(--ke-red); }
	.ke-route__key--intl { border-top: 2px dashed rgba(255, 255, 255, .55); }
	.ke-site .ke-route__caption { text-align: left; }
}

/* Services photo band: sits between the page intro and the service list */
.ke-photostrip {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
	padding: clamp(32px, 2rem + 2vw, 64px) max(var(--ke-gutter), calc((100% - var(--ke-max)) / 2)) 0;
	background: var(--ke-white);
}
.ke-site .ke-photostrip > * { margin: 0; }
.ke-site .ke-photostrip + .ke-section { padding-top: clamp(40px, 2.5rem + 2vw, 80px); }
@media (max-width: 599px) {
	.ke-photostrip { grid-template-columns: 1fr; }
	.ke-photostrip > :nth-child(n+2) { display: none; }
}

/* Photo placeholders on phones: shorter, and after the story text */
@media (max-width: 899px) {
	.ke-heritage > .ke-photo--placeholder { order: 2; }
}
@media (max-width: 599px) {
	.ke-site .ke-photo--placeholder { aspect-ratio: 4 / 3 !important; }
}

/* Section rhythm: lists that reset their own margin still get section spacing */
.ke-site .ke-section > .ke-steps,
.ke-site .ke-section > .ke-methods { margin-top: clamp(40px, 2.5rem + 1.5vw, 64px); }

/* Icon-only menu button (label is provided by aria-label) */
.ke-menu-toggle .ke-icon { width: 22px; height: 22px; }

/* Header: hides while scrolling down, returns on scroll up (see ke.js) */
.ke-header { transition: transform 320ms var(--ke-ease), box-shadow var(--ke-dur-hover) ease, background-color var(--ke-dur-hover) ease; will-change: transform; }
.ke-header.is-hidden { transform: translate3d(0, -100%, 0); box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
	.ke-header { transition: none; }
}

/* ==========================================================================
   Illustrated components (inc/visuals.php)
   ========================================================================== */

/* --------------------------------------------------------------------------
   Stats band — medallions with factual values
   ----------------------------------------------------------------------- */

.ke-stats-band { background: var(--ke-white); padding-inline: max(var(--ke-gutter), calc((100% - var(--ke-max)) / 2)); border-bottom: 1px solid var(--ke-rule); }
.ke-site .ke-stats { list-style: none; margin: 0; padding: clamp(28px, 1.5rem + 2vw, 48px) 0; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 20px; }
@media (min-width: 1024px) { .ke-site .ke-stats { grid-template-columns: repeat(4, 1fr); gap: 0; } }
.ke-stat { display: flex; align-items: center; gap: 16px; margin: 0; min-width: 0; }
@media (min-width: 1024px) {
	.ke-stat { padding: 4px 24px; border-left: 1px solid var(--ke-rule); }
	.ke-stat:first-child { padding-left: 0; border-left: 0; }
}
.ke-stat__badge {
	--tone: var(--ke-red-action);
	position: relative; flex: none; width: 64px; height: 64px; border-radius: 50%;
	display: grid; place-items: center; color: #fff; background: var(--tone);
	box-shadow: inset 0 -6px 0 rgba(0, 0, 0, .14), 0 12px 22px -14px var(--tone);
}
.ke-stat__badge::before { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1.5px dashed var(--tone); opacity: .35; }
.ke-stat__badge .ke-icon { width: 28px; height: 28px; }
.ke-stat__tick { position: absolute; top: -6px; right: -8px; width: 20px; height: 13px; background: var(--ke-ink); clip-path: polygon(0 100%, 100% 0, 78% 100%); }
.ke-stat--red .ke-stat__badge { --tone: var(--ke-red-action); }
.ke-stat--indigo .ke-stat__badge { --tone: var(--ke-indigo); }
.ke-stat--indigo .ke-stat__tick, .ke-stat--ink .ke-stat__tick { background: var(--ke-red); }
.ke-stat--ink .ke-stat__badge { --tone: var(--ke-ink); }
.ke-stat--paper .ke-stat__badge { --tone: var(--ke-ink); background: var(--ke-paper); color: var(--ke-ink); box-shadow: inset 0 0 0 1.5px var(--ke-ink); }
.ke-stat__body { display: grid; gap: 1px; min-width: 0; }
.ke-stat__value { font-family: var(--ke-display); font-weight: 800; font-stretch: 84%; font-size: clamp(1.9rem, 1.4rem + 1.4vw, 2.6rem); line-height: 1; color: var(--ke-ink); letter-spacing: -.02em; }
.ke-stat__value--text { font-size: clamp(1.15rem, 1rem + .5vw, 1.45rem); line-height: 1.15; letter-spacing: -.005em; }
.ke-stat__label { font-weight: 600; font-size: .9375rem; color: var(--ke-text); margin-top: 4px; }
.ke-stat__note { font-size: .8125rem; color: var(--ke-muted); line-height: 1.35; }
@media (max-width: 479px) {
	.ke-site .ke-stats { grid-template-columns: 1fr; }
}
@media (min-width: 480px) and (max-width: 767px) {
	.ke-stat { flex-direction: column; align-items: flex-start; gap: 12px; }
	.ke-stat__badge { width: 54px; height: 54px; }
}

/* --------------------------------------------------------------------------
   Services intro with icon arc
   ----------------------------------------------------------------------- */

.ke-services-intro { display: grid; gap: clamp(32px, 4vw, 64px); align-items: center; }
.ke-services-intro > * { margin: 0 !important; }
@media (min-width: 960px) { .ke-services-intro { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); } }
.ke-head.ke-head--stacked { grid-template-columns: 1fr; align-items: start; }
.ke-head.ke-head--stacked .ke-head__intro { justify-self: start; padding: 0; max-width: 48ch; }
.ke-head.ke-head--stacked h2 { max-width: 16ch; }
.ke-head--stacked .ke-actions { margin-top: 12px !important; }

.ke-orbit { position: relative; margin: 0; width: 100%; max-width: 580px; aspect-ratio: 520 / 300; justify-self: center; }
.ke-orbit__arc { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ke-orbit__arc path { fill: none; stroke: var(--ke-rule-strong); stroke-width: 1.5; stroke-dasharray: 4 7; }
.ke-orbit__arc .ke-orbit__arc-inner { stroke: var(--ke-red); opacity: .45; stroke-dasharray: 2 6; }
.ke-orbit__item { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); display: grid; justify-items: center; gap: 6px; z-index: 2; }
.ke-orbit__dot {
	--tone: var(--ke-ink);
	width: clamp(42px, 4.4vw, 60px); aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center;
	background: var(--tone); color: #fff; box-shadow: inset 0 -5px 0 rgba(0, 0, 0, .14), 0 14px 24px -16px rgba(16, 21, 48, .7);
}
.ke-orbit__dot .ke-icon { width: 46%; height: 46%; }
.ke-orbit__item--red .ke-orbit__dot { --tone: var(--ke-red-action); }
.ke-orbit__item--indigo .ke-orbit__dot { --tone: var(--ke-indigo); }
.ke-orbit__item--paper .ke-orbit__dot { background: #fff; color: var(--ke-ink); box-shadow: inset 0 0 0 1.5px var(--ke-ink), 0 14px 24px -16px rgba(16, 21, 48, .5); }
.ke-orbit__name { font-family: var(--ke-mono); font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ke-muted); white-space: nowrap; }
.ke-orbit__core { position: absolute; left: 50%; top: 70%; width: 29%; aspect-ratio: 1; transform: translate(-50%, -50%); display: grid; place-items: center; }
.ke-orbit__stamp { width: 100%; height: 100%; color: var(--ke-red); transform: rotate(-10deg); font-family: var(--ke-mono); }
@media (max-width: 559px) {
	.ke-orbit { aspect-ratio: 520 / 330; }
	.ke-orbit__name { font-size: .5rem; letter-spacing: .06em; }
}

/* --------------------------------------------------------------------------
   Service cards with photos
   ----------------------------------------------------------------------- */

.ke-cards { display: grid; gap: 20px; grid-template-columns: 1fr; }
.ke-cards > * { margin: 0 !important; }
@media (min-width: 700px) { .ke-cards { grid-template-columns: repeat(2, 1fr); } .ke-cards > .ke-card:last-child { grid-column: 1 / -1; } }
@media (min-width: 1024px) {
	.ke-cards { grid-template-columns: repeat(6, 1fr); gap: 24px; }
	.ke-cards > .ke-card { grid-column: span 2; }
	.ke-cards > .ke-card:nth-child(4), .ke-cards > .ke-card:nth-child(5) { grid-column: span 3; }
}
.ke-card { position: relative; display: flex; flex-direction: column; background: var(--ke-white); border: 1px solid var(--ke-rule); border-radius: 12px; overflow: hidden; }
.ke-card > .ke-photo { border-radius: 0; margin: 0; }
.ke-card__body { position: relative; flex: 1; display: grid; align-content: start; gap: 8px; padding: 38px 24px 24px; }
.ke-card__body > * { margin: 0 !important; }
.ke-card__icon { position: absolute !important; top: -30px; left: 22px; }
.ke-card__icon .ke-icon-badge { width: 58px; height: 58px; border-radius: 50%; border: 4px solid var(--ke-white); background: var(--ke-red-action); color: #fff; box-shadow: 0 10px 20px -12px rgba(16, 21, 48, .6); }
.ke-cards > .ke-card:nth-child(2) .ke-card__icon .ke-icon-badge, .ke-cards > .ke-card:nth-child(5) .ke-card__icon .ke-icon-badge { background: var(--ke-indigo); }
.ke-cards > .ke-card:nth-child(3) .ke-card__icon .ke-icon-badge { background: var(--ke-ink); }
.ke-card__title { font-size: var(--ke-fs-h3); }
.ke-site .ke-card__text { color: var(--ke-muted); }
.ke-site .ke-card__link { margin-top: 6px !important; }
.ke-site .ke-card__link a { font-weight: 600; font-size: var(--ke-fs-small); color: var(--ke-ink); text-decoration: none; display: inline-flex; gap: 6px; }
.ke-site .ke-card__link a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ke-site .ke-card__link a::before { content: "→"; order: 2; color: var(--ke-red); transition: transform var(--ke-dur-hover) var(--ke-ease); }
.ke-card .ke-photo img { transition: transform .7s var(--ke-ease); }
@media (hover: hover) and (pointer: fine) {
	.ke-card { transition: transform var(--ke-dur-hover) var(--ke-ease), box-shadow var(--ke-dur-hover) ease, border-color var(--ke-dur-hover) ease; }
	.ke-card:hover { transform: translate3d(0, -4px, 0); box-shadow: 0 24px 40px -28px rgba(16, 21, 48, .55); border-color: var(--ke-rule-strong); }
	.ke-card:hover .ke-photo img { transform: scale(1.04); }
	.ke-card__icon .ke-icon-badge { transition: transform var(--ke-dur-hover) var(--ke-ease); }
	.ke-card:hover .ke-card__icon .ke-icon-badge { transform: translate3d(0, -3px, 0); }
	.ke-card:hover .ke-card__title { color: var(--ke-red-action); }
	.ke-card:hover .ke-card__link a::before { transform: translate3d(4px, 0, 0); }
}

/* --------------------------------------------------------------------------
   Postcards + postmarks
   ----------------------------------------------------------------------- */

.ke-postcard {
	--tilt: 0deg;
	position: relative; margin: 0; width: 100%; max-width: 460px;
	background: var(--ke-white); padding: 12px 12px 0; border-radius: 6px;
	box-shadow: 0 1px 0 rgba(16, 21, 48, .06), 0 34px 60px -32px rgba(16, 21, 48, .55);
	transform: rotate(var(--tilt));
}
.ke-postcard__photo { display: block; overflow: hidden; border-radius: 3px; background: var(--ke-paper-2); }
.ke-postcard__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ke-postcard__caption { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 4px 14px; }
.ke-postcard__label { font-family: var(--ke-display); font-weight: 800; font-stretch: 86%; font-size: 1.35rem; line-height: 1.1; color: var(--ke-ink); }
.ke-postcard__note { font-family: var(--ke-mono); font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ke-muted); text-align: right; line-height: 1.4; }
.ke-postmark { position: absolute; top: -22px; right: -18px; width: 104px; height: 104px; z-index: 3; pointer-events: none; }
.ke-postmark__stamp { width: 100%; height: 100%; color: var(--ke-red); transform: rotate(-16deg); font-family: var(--ke-mono); filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .6)); }
.ke-postmark__waves { position: absolute; top: 34px; right: 78px; width: 96px; height: 40px; }
.ke-postmark__waves path { fill: none; stroke: var(--ke-red); stroke-width: 2; opacity: .7; }
.ke-postcard::before { content: ""; position: absolute; left: 50%; top: -9px; width: 64px; height: 20px; transform: translateX(-50%) rotate(-2deg); background: rgba(232, 222, 196, .85); box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }

/* Page intros with a postcard */
.ke-pagehero--visual .ke-pagehero__grid { align-items: center; }
@media (min-width: 900px) { .ke-pagehero--visual .ke-pagehero__grid { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); } }
.ke-site .ke-pagehero__text > * + * { margin-top: 20px; }
.ke-site .ke-pagehero__text > .ke-eyebrow + * { margin-top: 0; }
.ke-site .ke-pagehero__text > .ke-jump { margin-top: 30px !important; }
.ke-pagehero--visual .ke-postcard, .ke-pagehero--visual .ke-lost { justify-self: center; max-width: 420px; }
@media (min-width: 900px) { .ke-pagehero--visual .ke-postcard, .ke-pagehero--visual .ke-lost { justify-self: end; margin-right: 18px !important; } }
@media (max-width: 899px) { .ke-pagehero--visual .ke-postcard { max-width: 360px; margin-top: 18px !important; } }

/* --------------------------------------------------------------------------
   Kolkata → Nepal postcard route
   ----------------------------------------------------------------------- */

.ke-postroute { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; padding-top: 22px; }
.ke-postroute > .ke-postcard { max-width: none; }
.ke-postroute__from { grid-column: 1 / 8; grid-row: 1; z-index: 2; }
.ke-postroute__to { grid-column: 6 / 13; grid-row: 2; margin-top: -6% !important; z-index: 3; }
.ke-postroute__line { position: absolute; left: 0; top: 0; width: 100%; height: calc(100% - 64px); z-index: 1; pointer-events: none; overflow: visible; }
.ke-postroute__path { fill: none; stroke: var(--ke-red); stroke-width: 3; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.ke-postroute__dots { fill: var(--ke-red); }
.ke-postroute .ke-route__parcel rect { fill: #fff; stroke: var(--ke-red); stroke-width: 3; }
.ke-site .ke-postroute__chips { grid-column: 1 / -1; grid-row: 3; list-style: none; margin: 26px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ke-site .ke-postroute__chips li { margin: 0; padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .28); color: var(--ke-on-ink); font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; }
.ke-site .ke-postroute__chips li:first-child { border-color: var(--ke-red); }
.ke-postroute__path { stroke-dasharray: 700; stroke-dashoffset: 0; }
.ke-js .ke-postroute .ke-postroute__path { transition: stroke-dashoffset 1.4s var(--ke-ease-in-out) .5s; }
.ke-js .ke-postroute:not(.is-in) .ke-postroute__path { stroke-dashoffset: 700; }
@media (max-width: 599px) {
	.ke-postroute__from { grid-column: 1 / 12; }
	.ke-postroute__to { grid-column: 2 / 13; margin-top: -8% !important; }
	.ke-postmark { width: 84px; height: 84px; top: -18px; right: -10px; }
	.ke-postmark__waves { right: 60px; top: 26px; width: 74px; }
}

/* --------------------------------------------------------------------------
   Shipment journey illustration
   ----------------------------------------------------------------------- */

.ke-journey { margin: 0; }
.ke-journey svg { width: 100%; height: auto; display: block; overflow: visible; }
.ke-j-fill-white { fill: #fff; stroke: var(--ke-ink); stroke-width: 2.5; stroke-linejoin: round; }
.ke-j-fill-red { fill: var(--ke-red-action); stroke: var(--ke-ink); stroke-width: 2.5; stroke-linejoin: round; }
.ke-j-fill-ink { fill: var(--ke-ink); }
.ke-j-fill-paper { fill: var(--ke-paper-2); stroke: var(--ke-ink); stroke-width: 2.5; stroke-linejoin: round; }
.ke-j-fill-sky { fill: #dfe5f4; stroke: var(--ke-ink); stroke-width: 2; stroke-linejoin: round; }
.ke-j-fill-indigo { fill: var(--ke-indigo); stroke: var(--ke-ink); stroke-width: 2.5; stroke-linejoin: round; }
.ke-j-stripe { stroke: #fff; stroke-width: 7; }
.ke-j-box rect { fill: #d6ad73; stroke: var(--ke-ink); stroke-width: 2.5; }
.ke-j-box path { fill: none; stroke: var(--ke-ink); stroke-width: 2; }
.ke-j-line { fill: none; stroke: var(--ke-ink); stroke-width: 2.5; stroke-linecap: round; }
.ke-j-line-light { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; }
.ke-j-check { fill: none; stroke: var(--ke-red-action); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.ke-j-stamp { fill: #fff; stroke: var(--ke-red); stroke-width: 2.5; }
.ke-j-stamp-text { font-family: var(--ke-mono); font-size: 9px; font-weight: 500; letter-spacing: .06em; fill: var(--ke-red); }
.ke-j-globe { fill: #fff; stroke: var(--ke-ink); stroke-width: 2.5; }
.ke-journey__sky path { stroke: var(--ke-rule-strong); stroke-width: 3; stroke-linecap: round; }
.ke-journey__road { stroke: var(--ke-ink); stroke-width: 10; stroke-linecap: round; }
.ke-journey__road-dash { stroke: #fff; stroke-width: 2; stroke-dasharray: 14 12; }
.ke-journey__pins circle { fill: #fff; stroke: var(--ke-red-action); stroke-width: 3; }
.ke-j-wheel > circle:first-child { fill: var(--ke-ink); }
.ke-j-hub { fill: #fff; }
.ke-j-spoke { stroke: #fff; stroke-width: 2; }
.ke-j-speed { stroke: var(--ke-red); stroke-width: 3; stroke-linecap: round; opacity: 0; }
.ke-journey__van { transform: translate3d(850px, 0, 0); }
.ke-j-wheel { transform-box: fill-box; transform-origin: center; }
@media (max-width: 699px) { .ke-journey { display: none; } }

.ke-js .ke-journey .ke-journey__van { transition: transform 2.8s var(--ke-ease-in-out) .25s; }
.ke-js .ke-journey:not(.is-in) .ke-journey__van { transform: translate3d(0, 0, 0); }
.ke-journey.is-in .ke-j-wheel > * { animation: ke-wheel .45s linear 6 .25s; transform-box: fill-box; transform-origin: center; }
.ke-journey.is-in .ke-j-speed { animation: ke-speed 2.8s ease .25s 1 both; }
@keyframes ke-wheel { to { transform: rotate(360deg); } }
@keyframes ke-speed { 0%, 85% { opacity: .8; } 100% { opacity: 0; } }
.ke-js .ke-journey .ke-journey__station { transition: opacity .5s ease, transform .5s var(--ke-ease); transition-delay: calc(var(--s) * .75s + .35s); transform-box: fill-box; transform-origin: center bottom; }
.ke-js .ke-journey:not(.is-in) .ke-journey__station { opacity: .2; transform: translate3d(0, 6px, 0); }
.ke-js .ke-journey .ke-journey__pins circle { transition: transform .4s var(--ke-ease), fill .3s ease; transition-delay: calc(var(--s) * .75s + .45s); transform-box: fill-box; transform-origin: center; }
.ke-js .ke-journey:not(.is-in) .ke-journey__pins circle { transform: scale(0.4); }
.ke-journey.is-in .ke-journey__pins circle { fill: var(--ke-red-action); }

/* --------------------------------------------------------------------------
   Story collage (home)
   ----------------------------------------------------------------------- */

.ke-collage { position: relative; padding: 14px 16% 30% 0; }
.ke-collage > * { margin: 0 !important; }
.ke-collage > .ke-postcard { max-width: none; }
.ke-collage > .ke-photo--placeholder { position: absolute; right: 0; bottom: 0; width: 50%; z-index: 4; border: 6px solid var(--ke-white); box-shadow: 0 24px 40px -26px rgba(16, 21, 48, .6); }
.ke-collage .ke-postcard__caption { padding-right: 52%; }
.ke-collage .ke-postcard__note { display: none; }
.ke-collage > .ke-photo--placeholder .ke-photo__caption { left: 10px; right: 10px; bottom: 10px; padding: 10px 12px; }
.ke-collage > .ke-photo--placeholder .ke-photo__note { font-size: .875rem; }
.ke-collage > .ke-photo--placeholder .ke-photo__label { font-size: .5625rem; letter-spacing: .08em; }
@media (max-width: 899px) { .ke-heritage > .ke-collage { order: 2; } }
@media (max-width: 559px) {
	.ke-collage { padding: 14px 0 0; }
	.ke-collage > .ke-photo--placeholder { position: relative; width: 86%; margin: -34px 0 0 auto !important; }
}

/* --------------------------------------------------------------------------
   Photo background bands
   ----------------------------------------------------------------------- */

.ke-band--photo { position: relative; overflow: hidden; isolation: isolate; }
.ke-bg { position: absolute; inset: 0; z-index: -1; }
.ke-bg img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.8s var(--ke-ease); }
.ke-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(95deg, rgba(16, 21, 48, .95) 0%, rgba(16, 21, 48, .86) 42%, rgba(16, 21, 48, .6) 100%); }
.ke-site .ke-band--photo > .ke-bg + * { margin-top: 0; }
.ke-band--photo .ke-address { background: rgba(16, 21, 48, .55); border: 1px solid rgba(255, 255, 255, .18); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ke-band--photo .ke-lead { color: var(--ke-on-ink-muted); }
.ke-js [data-ke-motion="bgzoom"]:not(.is-in) img { transform: scale(1.08); }

.ke-photoband { padding-block: clamp(96px, 5rem + 6vw, 180px); }
.ke-photoband .ke-bg::after { background: linear-gradient(90deg, rgba(16, 21, 48, .92) 0%, rgba(16, 21, 48, .7) 55%, rgba(16, 21, 48, .35) 100%); }
.ke-photoband__text { max-width: 620px; }
.ke-site .ke-photoband__text > * + * { margin-top: 18px; }
.ke-site .ke-photoband__text > .ke-eyebrow + * { margin-top: 0; }
.ke-photoband__text p:not(.ke-eyebrow) { font-size: var(--ke-fs-lead); color: var(--ke-on-ink); max-width: 46ch; }

/* Values with icons (about) */
.ke-site .ke-value__icon { margin-bottom: 14px !important; }
.ke-value__icon .ke-icon-badge { border-radius: 50%; background: var(--ke-paper); border-color: transparent; color: var(--ke-red-action); }

/* --------------------------------------------------------------------------
   404 illustration
   ----------------------------------------------------------------------- */

.ke-lost { margin: 0; width: 100%; max-width: 380px; }
.ke-lost svg { width: 100%; height: auto; display: block; overflow: visible; }
.ke-lost__route { fill: none; stroke: var(--ke-indigo); stroke-width: 3; stroke-dasharray: 3 9; stroke-linecap: round; }
.ke-lost__pin { fill: var(--ke-red-action); }
.ke-lost__tape { fill: none; stroke: #c9a46a; stroke-width: 12; }
.ke-lost__q { font-family: var(--ke-display); font-weight: 800; font-size: 64px; fill: var(--ke-red-action); }
.ke-lost__box { transform-box: fill-box; transform-origin: center bottom; animation: ke-lost-in .9s var(--ke-ease) .4s both; }
@keyframes ke-lost-in { from { opacity: 0; transform: translate3d(0, -30px, 0) rotate(-8deg); } }

/* --------------------------------------------------------------------------
   Motion for illustrated components
   ----------------------------------------------------------------------- */

/* Orbit: arc fades in, icons settle one by one, stamp lands last */
.ke-js .ke-orbit .ke-orbit__arc { transition: opacity .8s ease; }
.ke-js .ke-orbit:not(.is-in) .ke-orbit__arc { opacity: 0; }
.ke-js .ke-orbit .ke-orbit__item { transition: opacity .5s var(--ke-ease), transform .6s var(--ke-ease); transition-delay: calc(var(--i) * 75ms + 150ms); }
.ke-js .ke-orbit:not(.is-in) .ke-orbit__item { opacity: 0; transform: translate(-50%, -50%) scale(.7); }
.ke-js .ke-orbit .ke-orbit__stamp { transition: opacity .5s ease .85s, transform .6s var(--ke-ease) .85s; }
.ke-js .ke-orbit:not(.is-in) .ke-orbit__stamp { opacity: 0; transform: rotate(-30deg) scale(1.2); }

/* Postcards revealed on scroll: drop in and settle to their tilt; postmark lands after */
.ke-js [data-ke-motion="card"]:not(.is-in) { opacity: 0; transform: translate3d(0, 34px, 0) rotate(calc(var(--tilt, 0deg) - 5deg)); }
.ke-js [data-ke-motion="card"] .ke-postmark { transition: opacity .35s ease .55s, transform .5s var(--ke-ease) .55s; }
.ke-js [data-ke-motion="card"]:not(.is-in) .ke-postmark { opacity: 0; transform: scale(1.3) rotate(-12deg); }

/* Postcards in page intros: part of the load sequence */
@keyframes ke-card-in { from { opacity: 0; transform: translate3d(0, 28px, 0) rotate(calc(var(--tilt, 0deg) - 5deg)); } }
@keyframes ke-postmark-in { from { opacity: 0; transform: scale(1.35) rotate(-14deg); } }
.ke-pagehero--visual .ke-postcard { animation: ke-card-in .9s var(--ke-ease) .3s both; }
.ke-pagehero--visual .ke-postmark { animation: ke-postmark-in .5s var(--ke-ease) 1s both; }
.ke-pagehero .ke-pagehero__text > .ke-eyebrow,
.ke-pagehero .ke-pagehero__text > .ke-404__code { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .05s both; }
.ke-pagehero .ke-pagehero__text > .ke-eyebrow::before { transform-origin: left; animation: ke-rule .6s var(--ke-ease) .15s both; }
.ke-pagehero .ke-pagehero__text > h1 { animation: ke-rise .7s var(--ke-ease) .14s both; }
.ke-pagehero .ke-pagehero__text > .ke-lead { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .26s both; }
.ke-pagehero .ke-pagehero__text > .ke-jump { animation: ke-rise var(--ke-dur-reveal) var(--ke-ease) .36s both; }

/* Stats: numbers count up once (see ke.js); stay visible without JS */
.ke-js .ke-stats:not(.is-counted) .ke-stat__num { opacity: 0; animation: ke-failsafe-num 0s 2.5s forwards; }
@keyframes ke-failsafe-num { to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
	.ke-js .ke-orbit .ke-orbit__arc, .ke-js .ke-orbit .ke-orbit__item, .ke-js .ke-orbit .ke-orbit__stamp { opacity: 1 !important; transition: none !important; }
	.ke-js .ke-orbit .ke-orbit__item { transform: translate(-50%, -50%) !important; }
	.ke-js .ke-orbit .ke-orbit__stamp { transform: rotate(-10deg) !important; }
	.ke-js [data-ke-motion="card"] { transform: rotate(var(--tilt, 0deg)) !important; }
	.ke-js [data-ke-motion="card"] .ke-postmark { opacity: 1 !important; transform: none !important; transition: none !important; }
	.ke-pagehero--visual .ke-postcard, .ke-pagehero--visual .ke-postmark, .ke-lost__box { animation: none !important; }
	.ke-js .ke-journey .ke-journey__van { transform: translate3d(850px, 0, 0) !important; transition: none !important; }
	.ke-js .ke-journey .ke-journey__station, .ke-js .ke-journey .ke-journey__pins circle { opacity: 1 !important; transform: none !important; transition: none !important; }
	.ke-journey.is-in .ke-j-wheel > *, .ke-journey.is-in .ke-j-speed { animation: none !important; }
	.ke-js .ke-postroute .ke-postroute__path { stroke-dashoffset: 0 !important; transition: none !important; }
	.ke-js [data-ke-motion="bgzoom"] img, .ke-bg img { transform: none !important; transition: none !important; }
	.ke-js .ke-stats .ke-stat__num { opacity: 1 !important; animation: none !important; }
	.ke-card, .ke-card:hover, .ke-card:hover .ke-photo img, .ke-card:hover .ke-card__icon .ke-icon-badge { transform: none !important; }
}

/* Postroute: the line is stretched to the card area, so the parcel marker travels in its own un-stretched layer */
.ke-postroute__line .ke-route__parcel { display: none; }
@media (max-width: 599px) { .ke-postroute__line { display: none; } }

/* Phones: postcards and collage stack without covering captions */
@media (max-width: 599px) {
	.ke-postroute__from { grid-column: 1 / 12; }
	.ke-postroute__to { grid-column: 2 / 13; margin-top: 26px !important; }
	.ke-collage .ke-postcard__caption { padding-right: 4px; }
	.ke-collage > .ke-photo--placeholder { width: 90%; margin: 22px 0 0 auto !important; }
}

/* --------------------------------------------------------------------------
   Road · Rail · Air
   ----------------------------------------------------------------------- */

.ke-site .ke-modes { list-style: none; margin: clamp(36px, 2.25rem + 1.5vw, 60px) 0 0; padding: 0; display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 700px) and (max-width: 979px) { .ke-site .ke-modes { grid-template-columns: repeat(2, 1fr); } .ke-modes > .ke-mode:last-child { grid-column: 1 / -1; } }
@media (min-width: 980px) { .ke-site .ke-modes { grid-template-columns: repeat(3, 1fr); gap: 22px; } }
.ke-mode { position: relative; margin: 0 !important; min-height: clamp(340px, 30vw, 460px); display: flex; align-items: flex-end; overflow: hidden; border-radius: 14px; background: var(--ke-ink); color: #fff; isolation: isolate; }
.ke-mode__media { position: absolute; inset: 0; margin: 0; z-index: -2; overflow: hidden; }
.ke-mode__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s var(--ke-ease); }
.ke-mode--rail .ke-mode__media img { object-position: 70% 50%; }
.ke-mode--road .ke-mode__media img { object-position: 72% 50%; }
.ke-mode::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(16, 21, 48, 0) 30%, rgba(16, 21, 48, .5) 58%, rgba(16, 21, 48, .92) 100%); }
.ke-mode__body { position: relative; width: 100%; display: grid; gap: 8px; padding: 24px 24px 26px; transition: transform var(--ke-dur-hover) var(--ke-ease); }
.ke-mode__icon { width: 50px; height: 50px; margin-bottom: 6px; border-radius: 50%; display: grid; place-items: center; background: var(--ke-red-action); color: #fff; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .6); transition: transform var(--ke-dur-hover) var(--ke-ease); }
.ke-mode--rail .ke-mode__icon { background: var(--ke-indigo); }
.ke-mode--air .ke-mode__icon { background: #fff; color: var(--ke-ink); }
.ke-mode__icon .ke-icon { width: 24px; height: 24px; }
.ke-mode__index { position: absolute; top: -26px; right: 24px; font-family: var(--ke-mono); font-size: .75rem; letter-spacing: .16em; color: rgba(255, 255, 255, .75); }
.ke-site .ke-mode__label { margin: 0; color: #fff; font-size: var(--ke-fs-h3); }
.ke-site .ke-mode__text { margin: 0; max-width: 34ch; color: rgba(255, 255, 255, .84); font-size: var(--ke-fs-small); }
@media (hover: hover) and (pointer: fine) {
	.ke-mode:hover .ke-mode__media img { transform: scale(1.06); }
	.ke-mode:hover .ke-mode__body { transform: translate3d(0, -4px, 0); }
	.ke-mode:hover .ke-mode__icon { transform: rotate(-8deg) scale(1.06); }
}

/* --------------------------------------------------------------------------
   Motion v2 — photos slide in, headings rise word by word, text un-blurs,
   large photos drift gently with the scroll.
   ----------------------------------------------------------------------- */

/* Photos: slide from their side with a wipe, the picture settles inside */
.ke-js [data-ke-motion="slide"] {
	transition: opacity .7s ease, transform 1.05s var(--ke-ease), clip-path 1.15s var(--ke-ease);
	transition-delay: calc(var(--ke-i, 0) * var(--ke-stagger, 90ms));
}
.ke-js [data-ke-motion="slide"]:not(.is-in) { opacity: 0; }
.ke-js [data-ke-motion="slide"][data-ke-dir="left"]:not(.is-in) { transform: translate3d(-64px, 0, 0); clip-path: inset(0 100% 0 0 round 14px); }
.ke-js [data-ke-motion="slide"][data-ke-dir="right"]:not(.is-in) { transform: translate3d(64px, 0, 0); clip-path: inset(0 0 0 100% round 14px); }
.ke-js [data-ke-motion="slide"].is-in { clip-path: inset(0 0 0 0 round 14px); }
.ke-js [data-ke-motion="slide"] img { transition: transform 1.35s var(--ke-ease); transition-delay: inherit; }
.ke-js [data-ke-motion="slide"]:not(.is-in) img { transform: scale(1.14); }
.ke-js [data-ke-motion="slide"] .ke-mode__body { transition: opacity .6s ease, transform .8s var(--ke-ease); transition-delay: calc(var(--ke-i, 0) * var(--ke-stagger, 90ms) + 420ms); }
.ke-js [data-ke-motion="slide"]:not(.is-in) .ke-mode__body { opacity: 0; transform: translate3d(0, 18px, 0); }
@media (max-width: 699px) {
	.ke-js [data-ke-motion="slide"][data-ke-dir="left"]:not(.is-in) { transform: translate3d(-32px, 0, 0); }
	.ke-js [data-ke-motion="slide"][data-ke-dir="right"]:not(.is-in) { transform: translate3d(32px, 0, 0); }
}

/* Headings: each word rises from its own mask */
.ke-js .ke-w { display: inline-block; overflow: hidden; vertical-align: top; padding: .04em 0 .14em; margin: -.04em 0 -.14em; }
.ke-js .ke-w__i { display: inline-block; }
.ke-js [data-ke-motion="words"] { transition: none; }
.ke-js [data-ke-motion="words"] .ke-w__i { transition: transform .9s var(--ke-ease), opacity .5s ease; transition-delay: calc(var(--w, 0) * 45ms + 80ms); }
.ke-js [data-ke-motion="words"]:not(.is-in) .ke-w__i { transform: translate3d(0, 110%, 0); opacity: 0; }

/* Paragraphs and lists: fade up out of a light blur */
.ke-js p[data-ke-motion="up"], .ke-js ul[data-ke-motion="up"], .ke-js .ke-lead[data-ke-motion="up"] {
	transition: opacity var(--ke-dur-reveal) var(--ke-ease), transform var(--ke-dur-reveal) var(--ke-ease), filter var(--ke-dur-reveal) var(--ke-ease);
	transition-delay: calc(var(--ke-i, 0) * var(--ke-stagger, 90ms));
}
.ke-js p[data-ke-motion="up"]:not(.is-in), .ke-js ul[data-ke-motion="up"]:not(.is-in) { filter: blur(5px); }

/* Depth: photos drift against the scroll (translate/scale compose with hover transforms) */
.ke-drift { translate: 0 var(--ke-drift, 0px); scale: 1.08; }

/* Footer: Services and Company side by side, brand and contact span the row */
.ke-site .ke-footer__col ul { gap: 2px; }

@media (prefers-reduced-motion: reduce) {
	.ke-js [data-ke-motion="slide"], .ke-js [data-ke-motion="slide"] img, .ke-js [data-ke-motion="slide"] .ke-mode__body, .ke-js .ke-w__i, .ke-js p[data-ke-motion], .ke-js ul[data-ke-motion] { opacity: 1 !important; transform: none !important; clip-path: none !important; filter: none !important; transition: none !important; }
	.ke-drift { translate: none !important; scale: none !important; }
	.ke-mode:hover .ke-mode__media img, .ke-mode:hover .ke-mode__body, .ke-mode:hover .ke-mode__icon { transform: none !important; }
}

/* Hero photo: keep the signage clear of the consignment label */
.ke-hero__visual .ke-photo img { object-position: 100% 30%; }

/* Longer brand name: the hero grid must never grow past the screen */
.ke-hero__grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .ke-hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); } }
@media (max-width: 479px) {
	.ke-label__head { padding: 10px 12px; gap: 8px; }
	.ke-label__brand { font-size: .92rem; }
	.ke-label__type { font-size: .6rem; letter-spacing: .08em; padding: 3px 6px; }
}

/* Caption on a supplied photograph (e.g. the founder portrait) */
.ke-photo__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 32px 18px 14px; font-family: var(--ke-mono); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: linear-gradient(180deg, rgba(16, 21, 48, 0), rgba(16, 21, 48, .86)); }

/* Desktop header: brand left, navigation centred, actions right */
@media (min-width: 1024px) {
	.ke-header__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 20px; }
	.ke-header .ke-brand { justify-self: start; }
	.ke-nav { margin-left: 0; justify-self: center; }
	.ke-header__actions { justify-self: end; }
}
