/* =========================================================
   KST INSTITUTE — Design System
   Refined institutional minimalism
   Positioning: ARUP / DNV / Mott MacDonald / WSP / PwC caliber
   v2.0
   ========================================================= */

/* Skip to content — WCAG AAA */
.skip-to-content {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px; height: 1px;
  overflow: hidden;
  z-index: 9999;
}
.skip-to-content:focus {
  left: 16px; top: 16px;
  width: auto; height: auto;
  padding: 10px 16px;
  background: var(--kst-primary);
  color: #fff;
  text-decoration: none;
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important;
  white-space: nowrap !important; border: 0 !important;
}

/* -------- Design tokens -------- */
:root {
  /* Brand */
  --kst-primary: #1E3A5F;
  --kst-primary-600: #244775;
  --kst-primary-300: #6B84A6;
  --kst-dark: #0F2236;
  --kst-dark-2: #0A1826;

  /* Neutrals */
  --kst-white: #FFFFFF;
  --kst-bg: #F9FAFB;
  --kst-bg-2: #F3F5F8;
  --kst-border: #E5E7EB;
  --kst-border-strong: #D1D5DB;
  --kst-text: #111827;
  --kst-text-secondary: #6B7280;
  --kst-text-muted: #9CA3AF;

  /* Accents (sparing) */
  --kst-teal: #2A7F7F;
  --kst-teal-dark: #1E5C5C;
  --kst-amber: #C7A24A;

  /* Typography */
  --ff-display: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ff-sans: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --ff-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Scale */
  --fs-display-xl: clamp(2.75rem, 5.2vw, 5.25rem);
  --fs-display-lg: clamp(2.25rem, 4vw, 3.75rem);
  --fs-display: clamp(1.875rem, 3vw, 2.75rem);
  --fs-h1: clamp(1.875rem, 2.4vw, 2.5rem);
  --fs-h2: clamp(1.5rem, 2vw, 2rem);
  --fs-h3: 1.375rem;
  --fs-h4: 1.125rem;
  --fs-body: 1rem;
  --fs-sm: 0.875rem;
  --fs-xs: 0.78rem;
  --fs-micro: 0.7rem;

  /* Spacing */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 3rem;
  --sp-8: 4rem;
  --sp-9: 6rem;
  --sp-10: 8rem;

  /* Layout */
  --container: 1280px;
  --container-wide: 1440px;
  --gutter: clamp(1.25rem, 3vw, 2rem);
  --nav-h: 76px;

  /* Effects */
  --radius-sm: 2px;
  --radius: 3px;
  --radius-lg: 6px;
  --shadow-sm: 0 1px 2px rgba(15, 34, 54, 0.04);
  --shadow: 0 2px 8px rgba(15, 34, 54, 0.06);
  --shadow-lg: 0 20px 48px -16px rgba(15, 34, 54, 0.18);

  /* Motion */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

/* -------- Reset -------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--ff-sans);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--kst-text);
  background: var(--kst-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "ss01", "cv11";
}

img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; padding: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
p { margin: 0 0 1em; }
hr { border: 0; border-top: 1px solid var(--kst-border); margin: var(--sp-6) 0; }
::selection { background: var(--kst-primary); color: #fff; }

/* -------- Typography -------- */
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 0.6em;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--kst-text);
}

.display-xl {
  font-family: var(--ff-display);
  font-size: var(--fs-display-xl);
  font-weight: 300;
  line-height: 1.02;
  letter-spacing: -0.035em;
  font-variation-settings: "SOFT" 25, "WONK" 0, "opsz" 144;
}
.display-lg {
  font-family: var(--ff-display);
  font-size: var(--fs-display-lg);
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.03em;
  font-variation-settings: "SOFT" 25, "opsz" 144;
}
.display {
  font-family: var(--ff-display);
  font-size: var(--fs-display);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -0.025em;
}
.eyebrow {
  font-family: var(--ff-sans);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--kst-primary);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow::before {
  content: "";
  width: 28px; height: 1px;
  background: var(--kst-primary);
  display: inline-block;
}
.eyebrow--muted { color: var(--kst-text-secondary); }
.eyebrow--muted::before { background: var(--kst-text-secondary); }
.eyebrow--light { color: rgba(255, 255, 255, 0.78); }
.eyebrow--light::before { background: rgba(255, 255, 255, 0.78); }

.lead {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--kst-text-secondary);
  max-width: 62ch;
}

.small { font-size: var(--fs-sm); color: var(--kst-text-secondary); }
.mono { font-family: var(--ff-mono); letter-spacing: -0.01em; }

/* -------- Layout -------- */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
.container--wide { max-width: var(--container-wide); }
.section { padding: var(--sp-10) 0; }
.section--sm { padding: var(--sp-9) 0; }
.section--dark { background: var(--kst-dark); color: #fff; }
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4 { color: #fff; }
.section--dark .lead { color: rgba(255, 255, 255, 0.72); }
.section--bg { background: var(--kst-bg); }

.grid { display: grid; gap: var(--sp-6); }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--sp-5); }

.flex { display: flex; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }
.gap-2 { gap: var(--sp-2); } .gap-3 { gap: var(--sp-3); }
.gap-4 { gap: var(--sp-4); } .gap-5 { gap: var(--sp-5); }

.section-head {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--sp-6);
  align-items: end;
  margin-bottom: var(--sp-7);
  padding-bottom: var(--sp-5);
  border-bottom: 1px solid var(--kst-border);
}
.section-head h2 {
  font-family: var(--ff-display);
  font-size: var(--fs-h1);
  font-weight: 300;
  letter-spacing: -0.02em;
  margin: 0.3em 0 0;
}
.section-head p { margin: 0; color: var(--kst-text-secondary); max-width: 58ch; }
.section--dark .section-head { border-bottom-color: rgba(255, 255, 255, 0.12); }
.section--dark .section-head p { color: rgba(255, 255, 255, 0.72); }

/* -------- Announcement bar -------- */
.announce {
  background: var(--kst-dark);
  color: rgba(255, 255, 255, 0.85);
  font-size: var(--fs-xs);
  letter-spacing: 0.03em;
}
.announce__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px var(--gutter);
  max-width: var(--container-wide);
  margin: 0 auto;
}
.announce a { color: #fff; border-bottom: 1px solid rgba(255, 255, 255, 0.35); }
.announce__links { display: flex; gap: var(--sp-5); }
.announce__links a { border: 0; color: rgba(255, 255, 255, 0.7); }
.announce__links a:hover { color: #fff; }

/* -------- Top navigation -------- */
.topnav {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--kst-border);
}
.topnav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-h);
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 36px;
}
.brand img { height: 34px; width: auto; }
.brand__name { display: none; } /* logo carries the brand */

.mainnav { display: flex; align-items: center; gap: 4px; }
.mainnav > li { position: relative; }
.mainnav > li > a,
.mainnav > li > button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 10px 14px;
  font-size: var(--fs-sm);
  color: var(--kst-text);
  font-weight: 500;
  letter-spacing: 0.01em;
  border-radius: 0;
  transition: color 0.2s var(--ease);
  position: relative;
}
.mainnav > li > a::after,
.mainnav > li > button::after {
  content: "";
  position: absolute;
  left: 14px; right: 14px; bottom: 6px;
  height: 1px;
  background: var(--kst-primary);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s var(--ease);
}
.mainnav > li > a:hover,
.mainnav > li > button:hover,
.mainnav > li.is-current > a,
.mainnav > li.is-open > button {
  color: var(--kst-primary);
}
.mainnav > li > a:hover::after,
.mainnav > li > button:hover::after,
.mainnav > li.is-current > a::after,
.mainnav > li.is-open > button::after {
  transform: scaleX(1);
}
.mainnav svg.caret { width: 10px; height: 10px; transition: transform 0.2s; }
.mainnav .is-open svg.caret { transform: rotate(180deg); }

/* Mega dropdown */
.megamenu {
  position: fixed;
  left: 0; right: 0;
  top: calc(var(--nav-h) + var(--announce-h, 0px));
  background: #fff;
  border-top: 1px solid var(--kst-border);
  border-bottom: 1px solid var(--kst-border);
  box-shadow: var(--shadow);
  padding: var(--sp-7) 0 var(--sp-7);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.25s var(--ease), transform 0.25s var(--ease), visibility 0s linear 0.25s;
}
.mainnav > li.is-open .megamenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 0s;
}
.megamenu__inner {
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
  gap: var(--sp-7);
}
.megamenu__intro h4 {
  font-family: var(--ff-display);
  font-size: 1.5rem;
  font-weight: 300;
  letter-spacing: -0.02em;
  margin: 8px 0 10px;
}
.megamenu__intro p { color: var(--kst-text-secondary); font-size: var(--fs-sm); max-width: 34ch; }
.megamenu__intro a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: var(--sp-3);
  color: var(--kst-primary);
  font-weight: 500;
  font-size: var(--fs-sm);
  border-bottom: 1px solid var(--kst-primary);
  padding-bottom: 2px;
}
.megamenu__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-5) var(--sp-6);
}
.megamenu__grid a {
  display: block;
  padding: 12px 0;
  border-top: 1px solid var(--kst-border);
  font-size: var(--fs-sm);
  color: var(--kst-text);
  position: relative;
  transition: color 0.2s, padding-left 0.2s var(--ease);
}
.megamenu__grid a::before {
  content: "→";
  position: absolute;
  left: -18px; top: 12px;
  color: var(--kst-primary);
  opacity: 0;
  transition: opacity 0.2s, left 0.2s var(--ease);
}
.megamenu__grid a:hover {
  color: var(--kst-primary);
  padding-left: 4px;
}
.megamenu__grid a:hover::before { opacity: 1; left: -14px; }
.megamenu__grid span.num {
  display: inline-block;
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  color: var(--kst-text-muted);
  margin-right: 8px;
}

.nav-cta { display: flex; align-items: center; gap: var(--sp-3); }
.nav-lang {
  font-size: var(--fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kst-text-secondary);
  font-weight: 500;
}
.nav-lang span.on { color: var(--kst-primary); font-weight: 600; }

/* (nav-burger defined canonically in v2.9 mobile nav block below) */

/* -------- Buttons -------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 22px;
  font-family: var(--ff-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: 0.02em;
  border-radius: var(--radius);
  transition: background 0.22s var(--ease), color 0.22s var(--ease), border-color 0.22s var(--ease), transform 0.2s var(--ease);
  cursor: pointer;
  border: 1px solid transparent;
  white-space: nowrap;
}
.btn svg { width: 14px; height: 14px; transition: transform 0.22s var(--ease); }
.btn:hover svg.arrow { transform: translateX(4px); }

.btn--primary {
  background: var(--kst-primary);
  color: #fff;
}
.btn--primary:hover { background: var(--kst-dark); }

.btn--secondary {
  background: transparent;
  color: var(--kst-primary);
  border-color: var(--kst-primary);
}
.btn--secondary:hover { background: var(--kst-primary); color: #fff; }

.btn--ghost {
  background: transparent;
  color: var(--kst-text);
  padding: 10px 0;
  border-bottom: 1px solid var(--kst-text);
  border-radius: 0;
}
.btn--ghost:hover { color: var(--kst-primary); border-bottom-color: var(--kst-primary); }

.btn--light {
  background: #fff;
  color: var(--kst-dark);
}
.btn--light:hover { background: var(--kst-bg); }

.btn--light-outline {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
}
.btn--light-outline:hover { background: #fff; color: var(--kst-dark); border-color: #fff; }

.btn--lg { padding: 16px 28px; font-size: 0.9375rem; }

/* Inline arrow link */
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  color: var(--kst-primary);
  padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  transition: color 0.2s var(--ease);
}
.link-arrow svg { width: 12px; height: 12px; transition: transform 0.22s var(--ease); }
.link-arrow:hover { color: var(--kst-teal); }
.link-arrow:hover svg { transform: translateX(4px); }
.link-arrow--light { color: #fff; border-bottom-color: rgba(255,255,255,0.5); }
.link-arrow--light:hover { color: #fff; border-bottom-color: #fff; }

/* -------- HERO -------- */
.hero {
  position: relative;
  padding: var(--sp-9) 0 var(--sp-9);
  background: var(--kst-bg);
  overflow: hidden;
  border-bottom: 1px solid var(--kst-border);
}
.hero--dark {
  background: var(--kst-dark);
  color: #fff;
  border-bottom: 0;
}
.hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--sp-8);
  align-items: end;
}
.hero__content h1 {
  margin: var(--sp-3) 0 var(--sp-4);
}
.hero__meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-5);
  padding-top: var(--sp-6);
  border-top: 1px solid rgba(255,255,255,0.14);
  margin-top: var(--sp-6);
}
.hero--light .hero__meta { border-top-color: var(--kst-border); }
.hero__meta dt {
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 6px;
}
.hero--light .hero__meta dt { color: var(--kst-text-muted); }
.hero__meta dd { margin: 0; font-size: var(--fs-sm); line-height: 1.5; }

.hero__cta { margin-top: var(--sp-6); display: flex; flex-wrap: wrap; gap: 14px; }

.hero__aside {
  position: relative;
  padding-left: var(--sp-7);
  padding-bottom: var(--sp-3);
  border-left: 1px solid rgba(255, 255, 255, 0.16);
}
.hero--light .hero__aside { border-left-color: var(--kst-border); }
.hero__index {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: var(--sp-5);
}
.hero--light .hero__index { color: var(--kst-text-muted); }
.hero__quote {
  font-family: var(--ff-display);
  font-weight: 300;
  font-size: 1.25rem;
  line-height: 1.45;
  letter-spacing: -0.015em;
  margin-bottom: var(--sp-5);
}

/* decorative grid backdrop */
.hero__backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.5;
  background-image:
    linear-gradient(to right, rgba(30, 58, 95, 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(30, 58, 95, 0.06) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse 80% 60% at 80% 40%, black 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 80% 40%, black 30%, transparent 75%);
}
.hero--dark .hero__backdrop {
  background-image:
    linear-gradient(to right, rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,0.06) 1px, transparent 1px);
  opacity: 1;
  mask-image: radial-gradient(ellipse 80% 60% at 80% 40%, black 10%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 80% 40%, black 10%, transparent 70%);
}

/* -------- Marquee ribbon -------- */
.ribbon {
  border-top: 1px solid var(--kst-border);
  border-bottom: 1px solid var(--kst-border);
  background: #fff;
  overflow: hidden;
  padding: 22px 0;
}
.ribbon__track {
  display: flex;
  gap: var(--sp-7);
  align-items: center;
  animation: ribbon 45s linear infinite;
  will-change: transform;
}
.ribbon__track span {
  flex: 0 0 auto;
  font-family: var(--ff-display);
  font-weight: 300;
  font-size: 1.25rem;
  letter-spacing: -0.015em;
  color: var(--kst-text-secondary);
  display: inline-flex; align-items: center; gap: var(--sp-5);
}
.ribbon__track span::after {
  content: "•";
  color: var(--kst-amber);
  margin-left: var(--sp-5);
}
@keyframes ribbon {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* -------- Institutional model diagram -------- */
.model {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
}
.model__cell {
  background: #fff;
  padding: var(--sp-6);
  min-height: 280px;
  display: flex;
  flex-direction: column;
  position: relative;
}
.model__cell h4 {
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  margin: 0 0 var(--sp-3);
}
.model__cell p { color: var(--kst-text-secondary); font-size: var(--fs-sm); }
.model__cell .num {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--kst-primary);
  letter-spacing: 0.08em;
  margin-bottom: var(--sp-5);
}
.model__cell ul { margin-top: auto; padding-top: var(--sp-4); }
.model__cell li {
  font-size: var(--fs-xs);
  padding: 6px 0;
  border-top: 1px solid var(--kst-border);
  color: var(--kst-text-secondary);
  font-family: var(--ff-mono);
  letter-spacing: -0.01em;
}

/* -------- Division / CoE cards -------- */
.card-list { display: grid; gap: 1px; background: var(--kst-border); border: 1px solid var(--kst-border); }
.card-list--2 { grid-template-columns: repeat(2, 1fr); }
.card-list--3 { grid-template-columns: repeat(3, 1fr); }

.card {
  background: #fff;
  padding: var(--sp-6);
  display: flex;
  flex-direction: column;
  min-height: 280px;
  transition: background 0.22s var(--ease), transform 0.22s var(--ease);
  position: relative;
}
.card:hover {
  background: var(--kst-bg);
}
.card__num {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--kst-primary);
  letter-spacing: 0.1em;
  margin-bottom: var(--sp-4);
}
.card h3 {
  font-family: var(--ff-display);
  font-size: 1.375rem;
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 var(--sp-3);
}
.card p {
  color: var(--kst-text-secondary);
  font-size: var(--fs-sm);
  line-height: 1.6;
  margin: 0;
}
.card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--sp-5); }
.card__tags span {
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  padding: 4px 8px;
  border: 1px solid var(--kst-border-strong);
  color: var(--kst-text-secondary);
}
.card__arrow {
  margin-top: auto;
  padding-top: var(--sp-5);
  display: inline-flex;
  align-items: center;
  color: var(--kst-primary);
  font-weight: 500;
  font-size: var(--fs-sm);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
}
.card__arrow svg { width: 14px; height: 14px; margin-left: 6px; transition: transform 0.22s var(--ease); }
.card:hover .card__arrow { opacity: 1; transform: translateY(0); }
.card:hover .card__arrow svg { transform: translateX(4px); }

.card--dark {
  background: var(--kst-dark);
  color: #fff;
}
.card--dark:hover { background: var(--kst-dark-2); }
.card--dark h3 { color: #fff; }
.card--dark p { color: rgba(255,255,255,0.72); }
.card--dark .card__num { color: var(--kst-amber); }
.card--dark .card__tags span { border-color: rgba(255,255,255,0.18); color: rgba(255,255,255,0.72); }

/* -------- Split feature -------- */
.split {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--sp-7);
  align-items: start;
}
.split--reverse { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }

/* -------- Stat row -------- */
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--kst-border);
  border-bottom: 1px solid var(--kst-border);
}
.stat {
  padding: var(--sp-6) var(--sp-5);
  border-right: 1px solid var(--kst-border);
}
.stat:last-child { border-right: 0; }
.stat__value {
  font-family: var(--ff-display);
  font-weight: 300;
  font-size: 3rem;
  line-height: 1;
  letter-spacing: -0.035em;
  color: var(--kst-primary);
  margin-bottom: var(--sp-3);
}
.stat__value sup {
  font-size: 1rem;
  vertical-align: super;
  margin-left: 4px;
  color: var(--kst-text-secondary);
}
.stat__label {
  font-size: var(--fs-sm);
  color: var(--kst-text-secondary);
  line-height: 1.45;
  max-width: 26ch;
}
.section--dark .stat { border-right-color: rgba(255,255,255,0.14); }
.section--dark .stats { border-color: rgba(255,255,255,0.14); }
.section--dark .stat__value { color: #fff; }
.section--dark .stat__value sup { color: rgba(255,255,255,0.55); }
.section--dark .stat__label { color: rgba(255,255,255,0.72); }

/* -------- Pull quote -------- */
.pullquote {
  padding: var(--sp-8) 0;
  border-top: 1px solid var(--kst-border);
  border-bottom: 1px solid var(--kst-border);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
  gap: var(--sp-6);
}
.pullquote blockquote {
  margin: 0;
  font-family: var(--ff-display);
  font-weight: 300;
  font-size: clamp(1.5rem, 2.2vw, 2.25rem);
  line-height: 1.25;
  letter-spacing: -0.02em;
}
.pullquote figcaption {
  margin-top: var(--sp-5);
  font-size: var(--fs-sm);
  color: var(--kst-text-secondary);
}

/* -------- Insight / article card -------- */
.insights { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-6); }
.insight {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--kst-text);
  padding-top: var(--sp-4);
  transition: transform 0.25s var(--ease);
}
.insight:hover { transform: translateY(-4px); }
.insight__meta {
  display: flex;
  justify-content: space-between;
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.06em;
  color: var(--kst-text-muted);
  text-transform: uppercase;
  margin-bottom: var(--sp-3);
}
.insight h4 {
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: 1.375rem;
  letter-spacing: -0.02em;
  line-height: 1.25;
  margin: 0 0 var(--sp-3);
}
.insight p { color: var(--kst-text-secondary); font-size: var(--fs-sm); margin: 0 0 var(--sp-4); }
.insight__foot {
  margin-top: auto;
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--kst-primary);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* -------- ESG feature block -------- */
.esg {
  background: var(--kst-dark);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.esg__inner {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: var(--sp-8);
  align-items: center;
}
.esg__pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.14);
}
.esg__pillar {
  padding: var(--sp-5);
  background: var(--kst-dark);
  min-height: 180px;
}
.esg__pillar .k {
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--kst-teal);
  letter-spacing: 0.08em;
  margin-bottom: var(--sp-3);
}
.esg__pillar h4 {
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: 1.25rem;
  margin: 0 0 var(--sp-3);
}
.esg__pillar p { font-size: var(--fs-xs); color: rgba(255,255,255,0.7); line-height: 1.5; margin: 0; }

/* -------- Project filter / grid -------- */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  align-items: center;
  padding: var(--sp-4) 0;
  border-top: 1px solid var(--kst-border);
  border-bottom: 1px solid var(--kst-border);
  margin-bottom: var(--sp-6);
}
.filter-bar label {
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  margin-right: 4px;
}
.filter-bar select {
  font-family: var(--ff-sans);
  font-size: var(--fs-sm);
  padding: 8px 28px 8px 10px;
  border: 1px solid var(--kst-border-strong);
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path fill='%236B7280' d='M6 8L2 4h8z'/></svg>") right 8px center/10px no-repeat;
  appearance: none; -webkit-appearance: none;
  color: var(--kst-text);
  border-radius: var(--radius);
  cursor: pointer;
}
.filter-bar select:focus { outline: 2px solid var(--kst-primary); outline-offset: -1px; }
.filter-count {
  margin-left: auto;
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  color: var(--kst-text-muted);
}

.project-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--kst-border); border: 1px solid var(--kst-border); }
.project {
  background: #fff;
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  min-height: 320px;
}
.project__tags {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-bottom: var(--sp-4);
}
.project__tags span {
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kst-text-secondary);
  padding: 3px 7px;
  border: 1px solid var(--kst-border-strong);
}
.project h4 {
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  line-height: 1.25;
  margin: 0 0 var(--sp-3);
}
.project p { color: var(--kst-text-secondary); font-size: var(--fs-sm); margin: 0; }
.project__foot {
  margin-top: auto;
  padding-top: var(--sp-4);
  border-top: 1px solid var(--kst-border);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-3);
}
.project__foot dt {
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.06em;
  color: var(--kst-text-muted);
  margin-bottom: 2px;
}
.project__foot dd { margin: 0; font-size: var(--fs-sm); }
.project.is-hidden { display: none; }

/* -------- CTA band -------- */
.cta-band {
  background: var(--kst-dark);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.cta-band__inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--sp-7);
  align-items: end;
  padding: var(--sp-9) 0;
}
.cta-band h2 {
  font-family: var(--ff-display);
  font-weight: 300;
  font-size: clamp(2rem, 3.6vw, 3.25rem);
  letter-spacing: -0.025em;
  color: #fff;
  margin: var(--sp-3) 0 0;
}
.cta-band__actions { display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }

/* -------- Footer -------- */
.footer {
  background: var(--kst-dark-2);
  color: rgba(255, 255, 255, 0.78);
  font-size: var(--fs-sm);
}
.footer__top {
  padding: var(--sp-8) 0 var(--sp-7);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) repeat(4, minmax(0, 2fr));
  gap: var(--sp-6);
}
.footer__brand img { height: 32px; width: auto; margin-bottom: var(--sp-4); }
.footer__brand p { color: rgba(255,255,255,0.6); max-width: 34ch; font-size: var(--fs-sm); }
.footer h5 {
  color: #fff;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 var(--sp-4);
  font-family: var(--ff-sans);
}
.footer ul li { margin-bottom: 10px; }
.footer ul a { color: rgba(255, 255, 255, 0.68); transition: color 0.2s; }
.footer ul a:hover { color: #fff; }
.footer__bottom {
  padding: var(--sp-5) 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--fs-xs);
  color: rgba(255,255,255,0.5);
  flex-wrap: wrap;
  gap: var(--sp-4);
}
.footer__bottom a { color: rgba(255,255,255,0.6); }
.footer__bottom a:hover { color: #fff; }
.footer__legal { display: flex; gap: var(--sp-5); }

.footer__powered {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,0.55);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-family: var(--ff-mono);
  transition: color 0.2s;
  margin-left: var(--sp-5);
}
.footer__powered:hover { color: #fff; }
.footer__powered img,
.footer__powered svg { height: 16px; width: auto; opacity: 0.75; transition: opacity 0.2s; }
.footer__powered:hover img,
.footer__powered:hover svg { opacity: 1; }

/* Social media icons */
.footer__social {
  display: flex;
  gap: 10px;
  margin-top: var(--sp-5);
  padding-top: var(--sp-4);
  border-top: 1px solid rgba(255,255,255,0.12);
}
.footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 50%;
  color: rgba(255,255,255,0.7);
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
}
.footer__social a:hover {
  background: var(--kst-primary);
  color: #fff;
  border-color: var(--kst-primary);
  transform: translateY(-2px);
}
.footer__social svg {
  width: 15px;
  height: 15px;
  display: block;
}

/* =========================================================
   Readability on dark & light surfaces — enforced contrast
   ========================================================= */

/* Dark sections — all inline text must be readable */
.section--dark,
.hero--dark,
.page-hero {
  color: rgba(255, 255, 255, 0.86);
}
.section--dark p,
.hero--dark p,
.page-hero p {
  color: rgba(255, 255, 255, 0.78);
}
.section--dark .small,
.section--dark .text-secondary,
.hero--dark .small,
.page-hero .small {
  color: rgba(255, 255, 255, 0.65);
}
.section--dark a:not(.btn):not(.link-arrow):not(.card):not(.insight):not(.card__arrow),
.hero--dark a:not(.btn):not(.link-arrow):not(.card):not(.insight):not(.card__arrow) {
  color: #fff;
}
.section--dark strong,
.hero--dark strong,
.page-hero strong { color: #fff; }

/* Ensure inline h3/h4 inside dark split blocks are white */
.section--dark .split h3,
.section--dark .split h4,
.section--dark h3,
.section--dark h4 { color: #fff; }

/* Dark card overrides — ensure anything nested inherits white correctly */
.card--dark,
.card--dark * { color: inherit; }
.card--dark h3 { color: #fff; }
.card--dark p { color: rgba(255,255,255,0.72); }
.card--dark .card__num { color: var(--kst-amber); }

/* Light section defaults — ensure no dark-on-dark mistakes */
.section:not(.section--dark),
.section--bg {
  color: var(--kst-text);
}
.section:not(.section--dark) p,
.section--bg p {
  color: var(--kst-text-secondary);
}

/* Eyebrow colour consistency */
.section--dark .eyebrow:not(.eyebrow--light),
.hero--dark .eyebrow:not(.eyebrow--light) { color: rgba(255, 255, 255, 0.78); }
.section--dark .eyebrow:not(.eyebrow--light)::before,
.hero--dark .eyebrow:not(.eyebrow--light)::before { background: rgba(255, 255, 255, 0.78); }

/* Stat values on dark sections */
.section--dark .stat__value,
.hero--dark .stat__value { color: #fff; }

/* ESG pillars — fully white body text */
.esg__pillar p { color: rgba(255,255,255,0.78); }

/* CTA band is dark */
.cta-band { color: #fff; }
.cta-band h2 { color: #fff; }
.cta-band p { color: rgba(255,255,255,0.78); }

/* Footer content contrast */
.footer, .footer * { color: rgba(255,255,255,0.68); }
.footer h5 { color: rgba(255,255,255,0.92); }
.footer a { color: rgba(255,255,255,0.68); }
.footer a:hover { color: #fff; }
.footer__brand p { color: rgba(255,255,255,0.6); }

/* Detail section h3 on light sections */
.detail__content h3 { color: var(--kst-text); }

/* Inputs / selects — ensure dark-on-light always */
.form input, .form select, .form textarea,
.filter-bar select {
  color: var(--kst-text);
  background: #fff;
}

/* -------- Page hero (interior) -------- */
.page-hero {
  background: var(--kst-dark);
  color: #fff;
  padding: calc(var(--nav-h) + var(--sp-7)) 0 var(--sp-8);
  position: relative;
  overflow: hidden;
}
.page-hero--light {
  background: var(--kst-bg);
  color: var(--kst-text);
  border-bottom: 1px solid var(--kst-border);
}
.page-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--sp-7);
  align-items: end;
  position: relative;
  z-index: 2;
}
.page-hero h1 {
  font-family: var(--ff-display);
  font-weight: 300;
  font-size: var(--fs-display-lg);
  letter-spacing: -0.03em;
  line-height: 1.06;
  margin: var(--sp-3) 0 0;
  color: #fff;
}
.page-hero--light h1 { color: var(--kst-text); }
.page-hero p { color: rgba(255,255,255,0.78); max-width: 54ch; margin-top: var(--sp-5); }
.page-hero--light p { color: var(--kst-text-secondary); }

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin-bottom: var(--sp-5);
}
.breadcrumbs a { color: inherit; }
.breadcrumbs a:hover { color: #fff; }
.breadcrumbs span.sep { opacity: 0.4; }
.page-hero--light .breadcrumbs { color: var(--kst-text-muted); }
.page-hero--light .breadcrumbs a:hover { color: var(--kst-primary); }

/* -------- Division / CoE detail layout -------- */
.detail {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
  gap: var(--sp-8);
  padding-top: var(--sp-8);
}
.detail__nav {
  position: sticky;
  top: calc(var(--nav-h) + var(--sp-5));
  align-self: start;
}
.detail__nav h5 {
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  margin: 0 0 var(--sp-3);
}
.detail__nav ol {
  counter-reset: dn;
  border-left: 1px solid var(--kst-border);
}
.detail__nav li { counter-increment: dn; }
.detail__nav a {
  display: block;
  padding: 10px 14px;
  font-size: var(--fs-sm);
  color: var(--kst-text-secondary);
  border-left: 2px solid transparent;
  margin-left: -1px;
  transition: color 0.2s, border-color 0.2s;
}
.detail__nav a::before {
  content: counter(dn, decimal-leading-zero) " · ";
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  color: var(--kst-text-muted);
  margin-right: 6px;
}
.detail__nav a:hover,
.detail__nav a.is-active {
  color: var(--kst-primary);
  border-left-color: var(--kst-primary);
}

.detail__content section {
  padding-top: var(--sp-6);
  padding-bottom: var(--sp-6);
  border-top: 1px solid var(--kst-border);
}
.detail__content section:first-child { border-top: 0; padding-top: 0; }
.detail__content h2 {
  font-family: var(--ff-display);
  font-weight: 300;
  font-size: 1.875rem;
  letter-spacing: -0.02em;
  margin: 0 0 var(--sp-4);
}
.detail__content h3 {
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  margin-bottom: var(--sp-3);
}
.detail__content p { color: var(--kst-text-secondary); max-width: 68ch; }
.detail__content ul.bullets {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-3) var(--sp-5);
  margin: var(--sp-3) 0;
}
.detail__content ul.bullets li {
  font-size: var(--fs-sm);
  padding-left: 22px;
  position: relative;
  color: var(--kst-text);
}
.detail__content ul.bullets li::before {
  content: "";
  position: absolute;
  left: 0; top: 10px;
  width: 12px; height: 1px;
  background: var(--kst-primary);
}

/* -------- FAQ / accordion -------- */
.accordion details {
  border-bottom: 1px solid var(--kst-border);
}
.accordion summary {
  list-style: none;
  cursor: pointer;
  padding: var(--sp-4) 0;
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: 1.25rem;
  letter-spacing: -0.015em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--sp-4);
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after {
  content: "+";
  font-family: var(--ff-mono);
  font-size: 1.25rem;
  color: var(--kst-primary);
  transition: transform 0.22s;
}
.accordion details[open] summary::after { content: "–"; }
.accordion details > div {
  padding-bottom: var(--sp-5);
  color: var(--kst-text-secondary);
  max-width: 70ch;
}

/* -------- Form -------- */
.form { display: grid; gap: var(--sp-4); max-width: 620px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
.form label {
  display: block;
  font-family: var(--ff-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  margin-bottom: 6px;
}
.form input,
.form select,
.form textarea {
  width: 100%;
  font: inherit;
  color: var(--kst-text);
  padding: 12px 14px;
  border: 1px solid var(--kst-border-strong);
  background: #fff;
  border-radius: var(--radius);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.form textarea { min-height: 140px; resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus {
  outline: none;
  border-color: var(--kst-primary);
  box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.08);
}

/* -------- Utility -------- */
.mt-0 { margin-top: 0 !important; } .mb-0 { margin-bottom: 0 !important; }
.text-center { text-align: center; }
.text-secondary { color: var(--kst-text-secondary); }
.maxw-prose { max-width: 62ch; }

/* -------- Reveal on scroll -------- */
/* Reveal animation — defensive: content visible by default, JS enhances */
.reveal { opacity: 1; transform: none; }
.js-ready .reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out); }
.js-ready .reveal.is-visible,
.reveal.is-visible,
.reveal.is-in { opacity: 1; transform: translateY(0); }
.js-ready .reveal:nth-child(2) { transition-delay: 0.05s; }
.js-ready .reveal:nth-child(3) { transition-delay: 0.10s; }
.js-ready .reveal:nth-child(4) { transition-delay: 0.15s; }
.js-ready .reveal:nth-child(5) { transition-delay: 0.20s; }
.js-ready .reveal:nth-child(6) { transition-delay: 0.25s; }

/* -------- Responsive -------- */
@media (max-width: 1080px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .card-list--3, .project-grid, .insights, .esg__pillars { grid-template-columns: repeat(2, 1fr); }
  .model { grid-template-columns: 1fr; }
  .megamenu__grid { grid-template-columns: repeat(2, 1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .detail { grid-template-columns: 1fr; }
  .detail__nav { position: static; }
  /* Collapse inline grid-12 detail layouts (CoE & Services inline sections) */
  .grid-12 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .grid-12 > [style*="span 4"] { grid-column: span 6 !important; }
  .grid-12 > [style*="span 8"] { grid-column: span 6 !important; }
}
@media (max-width: 860px) {
  :root { --nav-h: 66px; }
  .mainnav, .nav-cta .btn, .nav-lang { display: none; }
  .nav-burger { display: inline-flex; }
  .hero__inner,
  .page-hero__inner,
  .cta-band__inner,
  .split, .split--reverse,
  .esg__inner {
    grid-template-columns: 1fr;
    gap: var(--sp-6);
  }
  .hero__aside { border-left: 0; border-top: 1px solid var(--kst-border); padding-left: 0; padding-top: var(--sp-5); }
  .hero--dark .hero__aside { border-top-color: rgba(255,255,255,0.18); }
  .section-head { grid-template-columns: 1fr; align-items: start; }
  .grid-3, .grid-2 { grid-template-columns: 1fr; }
  .card-list--2, .card-list--3, .project-grid, .insights, .esg__pillars { grid-template-columns: 1fr; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .stat { border-right: 0; border-bottom: 1px solid var(--kst-border); }
  .stat:nth-child(2n) { border-right: 0; }
  .section--dark .stat { border-bottom-color: rgba(255,255,255,0.14); }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__bottom { flex-direction: column; align-items: flex-start; gap: var(--sp-4); }
  .footer__legal { flex-wrap: wrap; gap: var(--sp-4); }
  .pullquote { grid-template-columns: 1fr; }
  .cta-band__actions { justify-content: flex-start; }
  .cta-band__actions .btn { width: 100%; justify-content: center; }
  .detail__content ul.bullets { grid-template-columns: 1fr; }
  .form__row { grid-template-columns: 1fr; }
  .announce__links { display: none; }
  .filter-bar { grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
  .filter-bar > .filter-count { grid-column: 1 / -1; }
  .grid-12 { grid-template-columns: 1fr !important; }
  .grid-12 > [style*="span 4"],
  .grid-12 > [style*="span 8"] { grid-column: 1 / -1 !important; }
  .section { padding: var(--sp-8) 0; }
  .section--sm { padding: var(--sp-7) 0; }
  .hero { padding: var(--sp-8) 0 var(--sp-7); }
  .page-hero { padding: var(--sp-7) 0 var(--sp-6); }

  /* Mobile nav open */
  .mobile-open .mainnav {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: var(--nav-h); left: 0; right: 0; bottom: 0;
    background: #fff;
    padding: var(--sp-5) var(--gutter);
    align-items: stretch;
    overflow-y: auto;
    gap: 0;
    border-top: 1px solid var(--kst-border);
    z-index: 90;
  }
  .mobile-open .mainnav > li { border-bottom: 1px solid var(--kst-border); }
  .mobile-open .mainnav > li > a,
  .mobile-open .mainnav > li > button {
    padding: 16px 0;
    font-size: 1.125rem;
    justify-content: space-between;
    width: 100%;
  }
  .mobile-open .mainnav > li > a::after,
  .mobile-open .mainnav > li > button::after { display: none; }
  .mobile-open .megamenu {
    position: static;
    box-shadow: none;
    border: 0;
    padding: 0 0 var(--sp-4);
    opacity: 1; visibility: visible; transform: none;
    display: none;
    background: transparent;
  }
  .mobile-open .mainnav > li.is-open .megamenu { display: block; }
  .mobile-open .megamenu__inner { grid-template-columns: 1fr; padding: 0; gap: var(--sp-4); }
  .mobile-open .megamenu__grid { grid-template-columns: 1fr; gap: 0; }
  .mobile-open { overflow: hidden; }

  .nav-burger { display: inline-flex; }
  body.mobile-open .nav-burger span { background: transparent; }
  body.mobile-open .nav-burger span::before { transform: rotate(45deg); top: 0; }
  body.mobile-open .nav-burger span::after { transform: rotate(-45deg); top: 0; }
}

/* Small phones */
@media (max-width: 520px) {
  :root { --gutter: 1.125rem; }
  .brand img { height: 28px; }
  .btn { padding: 12px 18px; font-size: 0.8125rem; }
  .btn--lg { padding: 14px 22px; font-size: 0.875rem; }
  .stats { grid-template-columns: 1fr; }
  .stat { padding: var(--sp-5) var(--sp-4); }
  .stat:last-child { border-bottom: 0; }
  .card { padding: var(--sp-5); }
  .project { padding: var(--sp-5); }
  .project__foot { grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
  .hero__meta { grid-template-columns: 1fr; }
  .cta-band { padding: var(--sp-7) 0; }
  .detail__content section { padding: var(--sp-6) 0; }
  .filter-bar { padding: var(--sp-4); }
  .filter-bar { grid-template-columns: 1fr; }
  .page-hero h1 { font-size: clamp(1.75rem, 7vw, 2.25rem); }
  .topnav__inner { gap: var(--sp-3); }
  .footer { padding: var(--sp-7) 0 var(--sp-5); }
}

/* Print-style fallback */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
  .ribbon__track { animation: none; }
}

/* =========================================================
   v2.0 additions
   ========================================================= */

/* Wide mega-menu (3 columns) */
.megamenu--wide {
  left: 50%;
  transform: translate(-50%, 8px);
  right: auto;
  width: min(1280px, calc(100vw - 48px));
  max-width: 1280px;
}
.mainnav > li.is-open .megamenu--wide {
  transform: translate(-50%, 0);
}
.megamenu__inner--3col {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  gap: var(--sp-6);
  padding: var(--sp-6) var(--sp-7);
}
.mm-col__head {
  margin-bottom: var(--sp-4);
  padding-bottom: var(--sp-4);
  border-bottom: 1px solid var(--kst-border);
}
.mm-col__head h4 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 500;
  margin: 0.25rem 0 0.5rem;
}
.mm-col__head p {
  color: var(--kst-text-secondary);
  font-size: 0.8125rem;
  margin: 0 0 var(--sp-3);
}
.mm-all {
  font-size: 0.8125rem;
  color: var(--kst-primary);
  font-weight: 500;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}
.mm-all:hover { color: var(--kst-dark); }
.mm-col__note {
  margin-top: var(--sp-4);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--kst-border);
  font-size: 0.8125rem;
  color: var(--kst-text-secondary);
}
.mm-col__note a {
  color: var(--kst-primary);
  border-bottom: 1px solid currentColor;
}

/* Status tags inside mega-menu (CoE) */
.mm-tag {
  margin-left: auto;
  padding: 2px 8px;
  font-size: 0.625rem;
  font-family: var(--ff-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 2px;
  border: 1px solid var(--kst-border-strong);
  color: var(--kst-text-muted);
}
.mm-tag--operational { color: var(--kst-teal); border-color: var(--kst-teal); }
.mm-tag--developing { color: var(--kst-amber); border-color: var(--kst-amber); }
.mm-tag--planned { color: var(--kst-text-muted); }

.megamenu__grid a {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Search button in nav */
.nav-search {
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: var(--kst-text-secondary);
  transition: color 0.2s, background 0.2s;
}
.nav-search:hover { color: var(--kst-primary); background: var(--kst-bg-2); }
.nav-search svg { width: 18px; height: 18px; }

/* Language switcher — multilingual-ready */
.nav-lang .muted { color: var(--kst-text-muted); }

/* ===== Footer — 5-col v2.0 ===== */
.footer__grid--5 {
  grid-template-columns: 1.05fr 1fr 1fr 1.1fr 1.4fr;
  gap: var(--sp-6);
}
.footer__brand-row {
  margin-top: var(--sp-8);
  padding-top: var(--sp-6);
  border-top: 1px solid rgba(255,255,255,0.1);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--sp-5);
  align-items: center;
}
.footer__brand-row img {
  height: 32px;
  width: auto;
}
.footer__brand-row p {
  margin: 0;
  color: rgba(255,255,255,0.55);
  font-size: var(--fs-sm);
  max-width: 70ch;
}

/* Newsletter inside footer Contact column */
.footer__newsletter {
  display: flex;
  gap: 0;
  margin-top: var(--sp-4);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 3px;
  overflow: hidden;
  max-width: 320px;
}
.footer__newsletter input {
  flex: 1;
  padding: 10px 12px;
  background: transparent;
  border: 0;
  color: #fff;
  font-family: var(--ff-sans);
  font-size: 0.875rem;
  outline: none;
}
.footer__newsletter input::placeholder {
  color: rgba(255,255,255,0.4);
}
.footer__newsletter button {
  width: 42px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--kst-primary);
  color: #fff;
  transition: background 0.2s;
}
.footer__newsletter button:hover { background: var(--kst-primary-600); }
.footer__newsletter button svg { width: 14px; height: 14px; }

/* Status badge (on CoE / audience / status-labeled lists) */
.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  font-size: 0.6875rem;
  font-family: var(--ff-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 2px;
  border: 1px solid;
}
.status-badge--operational { color: var(--kst-teal); border-color: var(--kst-teal); background: rgba(42,127,127,0.05); }
.status-badge--developing { color: var(--kst-amber); border-color: var(--kst-amber); background: rgba(199,162,74,0.05); }
.status-badge--planned { color: var(--kst-text-muted); border-color: var(--kst-border-strong); }
.status-badge--live { color: #fff; background: var(--kst-primary); border-color: var(--kst-primary); }

/* Institutional model diagram (3-column with connector arrows) */
.inst-model {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  margin-top: var(--sp-6);
  border: 1px solid var(--kst-border);
}
.inst-model__cell {
  padding: var(--sp-6);
  border-right: 1px solid var(--kst-border);
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.inst-model__cell:last-child { border-right: 0; }
.inst-model__cell .num {
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  color: var(--kst-primary);
}
.inst-model__cell h4 {
  font-family: var(--ff-display);
  font-size: 1.25rem;
  font-weight: 500;
  margin: 0;
}
.inst-model__cell .role {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
}
.inst-model__cell p {
  color: var(--kst-text-secondary);
  font-size: var(--fs-sm);
  margin: 0;
}
.inst-model__cell ul {
  margin-top: auto;
  padding-top: var(--sp-3);
}
.inst-model__cell ul li {
  font-size: 0.75rem;
  color: var(--kst-text-muted);
  padding: 4px 0;
  border-top: 1px solid var(--kst-border);
}

/* Divisions × Industries matrix */
.matrix {
  overflow-x: auto;
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-6);
}
.matrix table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
  min-width: 900px;
}
.matrix th, .matrix td {
  padding: 10px 12px;
  border-right: 1px solid var(--kst-border);
  border-bottom: 1px solid var(--kst-border);
  text-align: left;
  vertical-align: top;
}
.matrix thead th {
  background: var(--kst-bg);
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--kst-text-secondary);
  font-weight: 500;
  position: sticky;
  top: 0;
}
.matrix tbody th {
  background: var(--kst-bg);
  font-weight: 500;
  font-size: 0.8125rem;
  white-space: nowrap;
  position: sticky;
  left: 0;
}
.matrix td.dot { text-align: center; color: var(--kst-primary); font-weight: 600; }
.matrix td:last-child, .matrix th:last-child { border-right: 0; }

/* Course / academy cards */
.course-card {
  display: flex;
  flex-direction: column;
  padding: var(--sp-5);
  border: 1px solid var(--kst-border);
  background: #fff;
  transition: border-color 0.2s, transform 0.2s;
}
.course-card:hover { border-color: var(--kst-primary); transform: translateY(-2px); }
.course-card__meta {
  display: flex;
  gap: var(--sp-3);
  flex-wrap: wrap;
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  margin-bottom: var(--sp-3);
}
.course-card__meta span + span::before {
  content: "·";
  margin-right: var(--sp-3);
  opacity: 0.5;
}
.course-card h3 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 500;
  margin: 0 0 var(--sp-3);
  line-height: 1.3;
}
.course-card p {
  color: var(--kst-text-secondary);
  font-size: var(--fs-sm);
  margin: 0 0 var(--sp-4);
  flex-grow: 1;
}
.course-card .link-arrow { margin-top: auto; }

.course-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-5);
}

/* Trust row (logos) */
.trust-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--sp-6);
  padding: var(--sp-6) 0;
  align-items: center;
}
.trust-row__item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  font-family: var(--ff-mono);
  font-size: 0.8125rem;
  color: var(--kst-text-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--kst-border);
  padding: 0 var(--sp-3);
  transition: color 0.2s, border-color 0.2s;
}
.trust-row__item:hover { color: var(--kst-primary); border-color: var(--kst-primary-300); }

/* Audience card — for landing pages */
.audience-card {
  padding: var(--sp-6);
  border: 1px solid var(--kst-border);
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}
.audience-card h3 {
  font-family: var(--ff-display);
  font-size: 1.375rem;
  font-weight: 500;
  margin: 0;
}
.audience-card ul {
  border-top: 1px solid var(--kst-border);
  padding-top: var(--sp-4);
}
.audience-card li {
  padding: 6px 0;
  font-size: 0.875rem;
  color: var(--kst-text-secondary);
}

/* Contact channels grid */
.channels {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
}
.channel {
  padding: var(--sp-5) var(--sp-6);
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.channel h4 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  margin: 0;
}
.channel p {
  font-size: var(--fs-sm);
  color: var(--kst-text-secondary);
  margin: 0;
}
.channel .sla {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  margin-top: var(--sp-3);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--kst-border);
}

/* Responsive additions for v2 */
@media (max-width: 1080px) {
  .megamenu__inner--3col { grid-template-columns: 1fr; gap: var(--sp-5); padding: var(--sp-5); }
  .footer__grid--5 { grid-template-columns: 1fr 1fr; }
  .course-grid { grid-template-columns: repeat(2, 1fr); }
  .inst-model { grid-template-columns: 1fr; }
  .inst-model__cell { border-right: 0; border-bottom: 1px solid var(--kst-border); }
  .inst-model__cell:last-child { border-bottom: 0; }
  .channels { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .megamenu--wide { width: calc(100vw - 24px); }
  .footer__grid--5 { grid-template-columns: 1fr; gap: var(--sp-5); }
  .footer__brand-row { grid-template-columns: 1fr; text-align: left; }
  .course-grid { grid-template-columns: 1fr; }
  .nav-search { display: none; }
  .nav-lang { display: none; }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v2.0 — HOME TILE GRIDS & FILTERS (additional)
   ========================================================= */

/* Tile grids — home page */
.tile-grid {
  display: grid;
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-5);
}
.tile-grid--5 { grid-template-columns: repeat(5, 1fr); }
.tile-grid--4 { grid-template-columns: repeat(4, 1fr); }
.tile-grid--6 { grid-template-columns: repeat(6, 1fr); }

.tile-card {
  display: flex;
  flex-direction: column;
  padding: var(--sp-5);
  background: #fff;
  gap: var(--sp-3);
  transition: background 0.2s, transform 0.2s;
  min-height: 180px;
}
.tile-card:hover {
  background: var(--kst-bg);
  transform: translateY(-1px);
}
.tile-card__num {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kst-primary);
}
.tile-card h3 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 500;
  margin: 0;
  line-height: 1.3;
}
.tile-card p {
  font-size: 0.8125rem;
  color: var(--kst-text-secondary);
  margin: 0;
  line-height: 1.5;
}
.tile-card--compact {
  min-height: 110px;
}
.tile-card--compact p { display: none; }

/* Hero stat line */
.hero__statline {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-5);
  margin-top: var(--sp-5);
  padding-top: var(--sp-4);
  border-top: 1px solid rgba(15,34,54,0.1);
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
}
.hero__statline strong {
  font-family: var(--ff-display);
  font-size: 0.95rem;
  color: var(--kst-primary);
  font-weight: 500;
  margin-right: 4px;
}

/* Filters — advanced (Projects, Insights, Careers) */
.filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--sp-4);
  padding: var(--sp-5);
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
  margin-bottom: var(--sp-5);
}
.filters--advanced {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.filter-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.filter-group label {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
}
.filter-group select {
  padding: 8px 10px;
  border: 1px solid var(--kst-border);
  background: #fff;
  font-family: var(--ff-sans);
  font-size: 0.8125rem;
  color: var(--kst-text);
  cursor: pointer;
}
.filter-group select:focus {
  outline: none;
  border-color: var(--kst-primary);
}

/* Contact form */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.contact-form label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form select,
.contact-form textarea {
  padding: 10px 12px;
  border: 1px solid var(--kst-border);
  background: #fff;
  font-family: var(--ff-sans);
  font-size: 0.9375rem;
  color: var(--kst-text);
  text-transform: none;
  letter-spacing: normal;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--kst-primary);
  box-shadow: 0 0 0 3px rgba(42,62,95,0.1);
}
.contact-form .checkbox {
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  font-family: var(--ff-sans);
  font-size: 0.8125rem;
  letter-spacing: normal;
  text-transform: none;
  color: var(--kst-text-secondary);
}
.contact-form .checkbox input { margin-top: 3px; }
.contact-form .checkbox a { color: var(--kst-primary); border-bottom: 1px solid currentColor; }

/* Responsive for tile grids */
@media (max-width: 1080px) {
  .tile-grid--5 { grid-template-columns: repeat(3, 1fr); }
  .tile-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .tile-grid--6 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .tile-grid--5 { grid-template-columns: repeat(2, 1fr); }
  .tile-grid--4 { grid-template-columns: 1fr; }
  .tile-grid--6 { grid-template-columns: repeat(2, 1fr); }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v2.1 — NAV RESTRUCTURE
   Full-bleed mega menu · About dropdown · Locations dropdown
   Mobile-first throughout
   ========================================================= */

/* ---------- Full-bleed Expertise mega menu ---------- */
.has-menu--mega .megamenu--fullbleed {
  position: fixed;
  left: 0;
  right: 0;
  top: auto;
  width: 100vw;
  max-width: 100vw;
  transform: translateY(8px);
  padding: 0;
  border-top: 1px solid var(--kst-border);
  box-shadow: 0 32px 48px rgba(15,34,54,0.14);
  max-height: calc(100vh - 100px);
  overflow-y: auto;
}
.mainnav > li.is-open .megamenu--fullbleed {
  transform: translateY(0);
}
.megamenu__inner--fullbleed {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 0;
  max-width: 1480px;
  margin: 0 auto;
  padding: 0;
  min-height: 440px;
}

/* Left featured panel */
.megamenu__feature {
  background: linear-gradient(155deg, var(--kst-primary) 0%, var(--kst-dark) 100%);
  color: #fff;
  padding: var(--sp-7) var(--sp-6);
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  position: relative;
  overflow: hidden;
}
.megamenu__feature::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 80% 20%, rgba(255,255,255,0.08), transparent 50%),
                    radial-gradient(circle at 20% 90%, rgba(42,127,127,0.18), transparent 55%);
  pointer-events: none;
}
.megamenu__feature > * { position: relative; z-index: 1; }
.megamenu__feature .eyebrow {
  color: rgba(255,255,255,0.65);
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.megamenu__feature h3 {
  font-family: var(--ff-display);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.25;
  margin: 0;
}
.megamenu__feature p {
  color: rgba(255,255,255,0.8);
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.6;
}
.mm-feature-cta {
  color: #fff;
  font-size: 0.875rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid rgba(255,255,255,0.4);
  padding-bottom: 3px;
  margin-top: auto;
  align-self: flex-start;
  transition: border-color 0.2s, gap 0.2s;
}
.mm-feature-cta:hover { border-color: #fff; gap: 12px; }
.mm-feature-cta svg { width: 14px; height: 14px; }
.mm-feature-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin-top: var(--sp-4);
  padding-top: var(--sp-4);
  border-top: 1px solid rgba(255,255,255,0.15);
}
.mm-feature-stats > div { display: flex; flex-direction: column; gap: 2px; }
.mm-feature-stats strong {
  font-family: var(--ff-display);
  font-size: 1.5rem;
  font-weight: 500;
  color: #fff;
  line-height: 1;
}
.mm-feature-stats span {
  color: rgba(255,255,255,0.6);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-family: var(--ff-mono);
}

/* Right: 3 columns of links */
.megamenu__cols {
  display: grid;
  grid-template-columns: 1fr 1.15fr 1fr;
  gap: var(--sp-5);
  padding: var(--sp-6) var(--sp-7);
}
.mm-col {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.mm-col__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--kst-border);
}
.mm-col__head .eyebrow {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text);
  font-weight: 500;
}
.mm-all {
  font-size: 0.75rem;
  color: var(--kst-primary);
  font-weight: 500;
  font-family: var(--ff-mono);
  letter-spacing: 0.05em;
}
.mm-all:hover { color: var(--kst-dark); }
.megamenu__grid {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.megamenu__grid a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  color: var(--kst-text);
  font-size: 0.825rem;
  line-height: 1.35;
  border-radius: 3px;
  transition: background 0.15s, color 0.15s;
  min-height: 38px;
}
.megamenu__grid a:hover {
  background: var(--kst-bg);
  color: var(--kst-primary);
}
.megamenu__grid .num {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  color: var(--kst-text-muted);
  min-width: 20px;
  flex-shrink: 0;
}
.megamenu__grid .lbl { flex: 1; }

/* CoE status tag (3-letter) */
.mm-tag {
  font-family: var(--ff-mono);
  font-size: 0.58rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 2px 5px;
  border-radius: 2px;
  border: 1px solid var(--kst-border-strong);
  color: var(--kst-text-muted);
  flex-shrink: 0;
}
.mm-tag--operational { color: var(--kst-teal); border-color: var(--kst-teal); }
.mm-tag--developing { color: var(--kst-amber); border-color: var(--kst-amber); }
.mm-tag--planned { color: var(--kst-text-muted); }

/* ---------- About dropdown (2-column compact) ---------- */
.has-menu--dropdown .dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  transform: translateY(8px);
  opacity: 0;
  pointer-events: none;
  min-width: 440px;
  background: #fff;
  border: 1px solid var(--kst-border);
  box-shadow: 0 16px 32px rgba(15,34,54,0.1);
  border-radius: 2px;
  z-index: 1100;
  transition: transform 0.2s, opacity 0.2s;
}
.mainnav > li.is-open .dropdown {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.dropdown__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-5);
  padding: var(--sp-5);
}
.dropdown__inner--1col {
  grid-template-columns: 1fr;
}
.dropdown__col {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.dropdown__col .eyebrow {
  font-family: var(--ff-mono);
  font-size: 0.66rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  margin-bottom: var(--sp-3);
  padding-bottom: var(--sp-2);
  border-bottom: 1px solid var(--kst-border);
}
.dropdown__col a {
  padding: 7px 10px;
  font-size: 0.875rem;
  color: var(--kst-text);
  border-radius: 3px;
  transition: background 0.15s, color 0.15s;
  min-height: 36px;
  display: flex;
  align-items: center;
}
.dropdown__col a:hover {
  background: var(--kst-bg);
  color: var(--kst-primary);
}
.dropdown__col a.is-disabled {
  color: var(--kst-text-muted);
  cursor: not-allowed;
}
.dropdown__col a[aria-current="true"] {
  background: var(--kst-bg);
  color: var(--kst-primary);
  font-weight: 500;
}

/* ---------- Locations dropdown ---------- */
.nav-locations {
  position: relative;
  display: flex;
  align-items: center;
}
.nav-locations__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 3px;
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  color: var(--kst-text);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.nav-locations__btn:hover,
.nav-locations.is-open .nav-locations__btn {
  border-color: var(--kst-border);
  background: var(--kst-bg);
}
.nav-locations__btn .muted { color: var(--kst-text-muted); }
.nav-locations__btn svg:first-child {
  width: 13px; height: 13px;
  color: var(--kst-primary);
}
.nav-locations__btn .caret { width: 9px; height: 9px; color: var(--kst-text-muted); }
.nav-locations .dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  left: auto;
  min-width: 260px;
  transform: translateY(8px);
  opacity: 0;
  pointer-events: none;
  background: #fff;
  border: 1px solid var(--kst-border);
  box-shadow: 0 16px 32px rgba(15,34,54,0.1);
  border-radius: 2px;
  z-index: 1100;
  transition: transform 0.2s, opacity 0.2s;
  margin-top: 6px;
}
.nav-locations.is-open .dropdown {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.nav-locations .dropdown__col a {
  font-size: 0.8125rem;
  gap: 8px;
  min-height: 34px;
}
.nav-locations .dropdown__col a strong {
  font-weight: 500;
}
.nav-locations .dropdown__col a .muted {
  color: var(--kst-text-muted);
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  margin-left: auto;
}

/* Hide old language switcher */
.nav-lang { display: none !important; }

/* ---------- Page hero with background image ---------- */
.page-hero--imaged {
  position: relative;
  color: #fff;
  overflow: hidden;
  min-height: 320px;
}
.page-hero__image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.page-hero--imaged::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(125deg, rgba(15,34,54,0.85) 0%, rgba(15,34,54,0.62) 55%, rgba(15,34,54,0.35) 100%);
  z-index: 1;
}
.page-hero--imaged .hero__backdrop { display: none; }
.page-hero--imaged .container { position: relative; z-index: 2; }
.page-hero--imaged h1 { color: #fff; }
.page-hero--imaged p { color: rgba(255,255,255,0.85); }
.page-hero--imaged .breadcrumbs { color: rgba(255,255,255,0.6); }
.page-hero--imaged .breadcrumbs a { color: rgba(255,255,255,0.9); }
.page-hero--imaged .breadcrumbs .sep { color: rgba(255,255,255,0.3); }
.page-hero--imaged .eyebrow { color: rgba(255,255,255,0.75); }

/* ===========================================================
   MOBILE NAV (< 1080px) — full overhaul
   =========================================================== */
@media (max-width: 1080px) {
  /* Hide desktop primary nav; show burger */
  .mainnav-wrap {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(420px, 100vw);
    background: #fff;
    box-shadow: -20px 0 40px rgba(15,34,54,0.2);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    z-index: 1200;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 72px var(--sp-5) var(--sp-6);
  }
  body.nav-open .mainnav-wrap { transform: translateX(0); }

  /* Backdrop */
  body.nav-open::after {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(15,34,54,0.55);
    z-index: 1150;
    animation: fade-in 0.25s ease;
  }
  @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }

  body.nav-open { overflow: hidden; }

  .mainnav {
    display: block;
    flex-direction: column;
    gap: 0;
    padding: 0;
  }
  .mainnav > li {
    display: block;
    border-bottom: 1px solid var(--kst-border);
    width: 100%;
  }
  .mainnav > li > a,
  .mainnav > li > button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 0;
    font-size: 1rem;
    font-weight: 500;
    color: var(--kst-text);
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    font-family: var(--ff-sans);
  }
  .mainnav > li > button { width: 100%; }
  .mainnav > li > a .caret,
  .mainnav > li > button .caret {
    width: 14px;
    height: 14px;
    transition: transform 0.2s;
  }
  .mainnav > li.is-open > button .caret { transform: rotate(180deg); }

  /* Mega menu becomes accordion */
  .has-menu--mega .megamenu--fullbleed,
  .has-menu--dropdown .dropdown {
    position: static;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    transform: none;
    opacity: 1;
    pointer-events: auto;
    box-shadow: none;
    border: none;
    border-top: 1px solid var(--kst-border);
    background: var(--kst-bg);
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.25s ease, padding 0.25s ease;
  }
  .mainnav > li.is-open .megamenu--fullbleed,
  .mainnav > li.is-open .dropdown {
    max-height: 2000px;
    padding: var(--sp-4) 0;
  }
  .megamenu__inner--fullbleed {
    grid-template-columns: 1fr;
    min-height: 0;
    max-width: none;
  }
  .megamenu__feature {
    padding: var(--sp-5);
    border-radius: 0;
  }
  .megamenu__feature h3 { font-size: 1.125rem; }
  .mm-feature-stats { grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); }
  .mm-feature-stats strong { font-size: 1.25rem; }
  .megamenu__cols {
    grid-template-columns: 1fr;
    gap: var(--sp-4);
    padding: var(--sp-5);
  }
  .megamenu__grid a { padding: 10px 12px; min-height: 44px; font-size: 0.875rem; }

  /* About dropdown accordion */
  .has-menu--dropdown .dropdown {
    min-width: 0;
  }
  .dropdown__inner {
    grid-template-columns: 1fr;
    gap: var(--sp-4);
    padding: var(--sp-4) var(--sp-5);
  }
  .dropdown__col a { padding: 10px 12px; min-height: 44px; font-size: 0.875rem; }

  /* Show burger, hide inline-only nav items */
  .nav-burger { display: inline-flex; }
  .nav-search, .nav-locations { display: none; }
  body.nav-open .nav-burger { position: fixed; top: 16px; right: 16px; z-index: 1250; }

  /* Hide 'Work with us' button on mobile; provide inside the nav drawer */
  .nav-cta .btn--primary { display: none; }

  /* Add location switcher and CTA at bottom of drawer — mobile-only */
  .mainnav-wrap::after {
    content: "";
  }
  /* NOTE: .mainnav-mobile-footer handled in v2.6 mobile-nav block below */
}

/* Burger — 3 lines that animate to X */
.nav-burger {
  display: none;
  width: 40px;
  height: 40px;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  position: relative;
  align-items: center;
  justify-content: center;
}
.nav-burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--kst-text);
  position: absolute;
  left: 9px;
  transition: transform 0.25s, opacity 0.2s, top 0.25s;
}
.nav-burger span:nth-child(1) { top: 13px; }
.nav-burger span:nth-child(2) { top: 19px; }
.nav-burger span:nth-child(3) { top: 25px; }
body.nav-open .nav-burger span:nth-child(1) { top: 19px; transform: rotate(45deg); }
body.nav-open .nav-burger span:nth-child(2) { opacity: 0; }
body.nav-open .nav-burger span:nth-child(3) { top: 19px; transform: rotate(-45deg); }

/* ===========================================================
   GENERAL MOBILE POLISH (< 860px)
   =========================================================== */
@media (max-width: 860px) {
  .container { padding-left: 20px; padding-right: 20px; }

  /* Hero — more vertical rhythm */
  .hero { padding: var(--sp-7) 0; }
  .hero__h1 { font-size: clamp(2rem, 7vw, 2.75rem); line-height: 1.1; }
  .hero__inner { grid-template-columns: 1fr; gap: var(--sp-6); }
  .hero__visual { display: none; }
  .hero__actions { flex-direction: column; align-items: stretch; gap: var(--sp-3); }
  .hero__actions .btn { width: 100%; justify-content: center; }
  .hero__statline {
    gap: var(--sp-3);
    font-size: 0.68rem;
  }

  /* Page hero */
  .page-hero { padding: var(--sp-5) 0 var(--sp-6); }
  .page-hero h1 { font-size: clamp(1.75rem, 6vw, 2.5rem); }
  .page-hero__inner { grid-template-columns: 1fr; gap: var(--sp-4); }

  /* Sections */
  .section { padding: var(--sp-6) 0; }
  .section-head { grid-template-columns: 1fr; gap: var(--sp-3); }
  .section-head p { max-width: none; }

  /* Announcement bar — tighten */
  .announce { font-size: 0.72rem; }
  .announce__inner { flex-direction: column; align-items: flex-start; gap: 6px; padding: 10px 16px; }
  .announce__links { gap: var(--sp-3); }

  /* Topnav */
  .topnav__inner { padding: 12px 20px; gap: var(--sp-3); }
  .brand img { height: 28px; }
  .nav-cta { gap: 6px; }

  /* Split layouts stack */
  .split, .grid-2, .grid-3 { grid-template-columns: 1fr !important; gap: var(--sp-4) !important; }

  /* CTA band */
  .cta-band__inner { flex-direction: column; align-items: flex-start; gap: var(--sp-5); }
  .cta-band__inner h2 { font-size: 1.5rem; }
  .cta-band__actions { flex-direction: column; width: 100%; }
  .cta-band__actions .btn { width: 100%; justify-content: center; }

  /* Detail layout — sidebar goes above */
  .detail {
    grid-template-columns: 1fr !important;
    gap: var(--sp-5) !important;
  }
  .detail__nav {
    position: static !important;
    padding: var(--sp-4);
    background: var(--kst-bg);
    border: 1px solid var(--kst-border);
    margin-bottom: var(--sp-4);
  }
  .detail__nav ol { columns: 2; column-gap: var(--sp-3); }
  .detail__nav ol li { padding: 4px 0; }

  /* Card lists */
  .card-list--2, .card-list--3 { grid-template-columns: 1fr !important; }
  .card { padding: var(--sp-5) !important; }

  /* Tile grids */
  .tile-grid--5, .tile-grid--4, .tile-grid--6 { grid-template-columns: 1fr 1fr; }
  .tile-card { min-height: 150px; padding: var(--sp-4); }
  .tile-card h3 { font-size: 0.95rem; }
  .tile-card p { font-size: 0.75rem; }

  /* Institutional model — stack */
  .inst-model { grid-template-columns: 1fr; }

  /* Matrix — scrollable */
  .matrix { font-size: 0.75rem; }
  .matrix table { min-width: 640px; }

  /* Channels grid */
  .channels { grid-template-columns: 1fr; }

  /* Filters — stack */
  .filters { padding: var(--sp-4); grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
  .filters--advanced { grid-template-columns: 1fr 1fr; }

  /* Course grid */
  .course-grid { grid-template-columns: 1fr; }

  /* Footer */
  .footer__grid--5 { grid-template-columns: 1fr; gap: var(--sp-5); }
  .footer__bottom { flex-direction: column; align-items: flex-start; gap: var(--sp-3); }
  .footer__legal { flex-wrap: wrap; gap: var(--sp-3); }
  .footer__brand-row { grid-template-columns: 1fr; text-align: left; gap: var(--sp-3); }
  .footer__newsletter { max-width: 100%; }

  /* Typography rhythm */
  h1 { font-size: clamp(1.75rem, 6vw, 2.5rem) !important; line-height: 1.1; }
  h2 { font-size: clamp(1.375rem, 4.5vw, 1.875rem) !important; line-height: 1.2; }
  h3 { font-size: 1.125rem !important; line-height: 1.3; }

  /* Trust row */
  .trust-row { grid-template-columns: 1fr 1fr; gap: var(--sp-3); }

  /* Contact form */
  .contact-form input[type="text"],
  .contact-form input[type="email"],
  .contact-form select,
  .contact-form textarea { font-size: 16px; /* prevent iOS zoom */ }

  /* Buttons on mobile */
  .btn { min-height: 44px; /* touch target */ }
  .btn--lg { padding: 12px 20px; font-size: 0.9375rem; }

  /* Sidebar detail nav columns → 1 on tiny screens */
  .detail__nav ol { columns: 1; }
}

@media (max-width: 520px) {
  .tile-grid--5, .tile-grid--4, .tile-grid--6 { grid-template-columns: 1fr; }
  .filters, .filters--advanced { grid-template-columns: 1fr; }
  .trust-row { grid-template-columns: 1fr; }
  .mm-feature-stats { grid-template-columns: repeat(3, 1fr); gap: var(--sp-2); }
  .detail__nav ol { columns: 1; }
  .announce__links a:nth-child(n+3) { display: none; }
  .footer__legal { font-size: 0.75rem; }
}

/* Prevent horizontal scroll anywhere */
html, body { overflow-x: hidden; max-width: 100%; }

/* Images on mobile never overflow */
img { max-width: 100%; height: auto; }

/* Touch-friendly focus states */
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--kst-primary);
  outline-offset: 3px;
  border-radius: 2px;
}

/* ---------- Homepage hero with background image ---------- */
.hero--imaged {
  position: relative;
  color: #fff;
  overflow: hidden;
  min-height: 620px;
  display: flex;
  align-items: center;
}
.hero--imaged .hero__image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.hero--imaged::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(15,34,54,0.92) 0%, rgba(15,34,54,0.75) 45%, rgba(15,34,54,0.35) 100%);
  z-index: 1;
}
.hero--imaged .hero__backdrop { display: none; }
.hero--imaged .container { position: relative; z-index: 2; }
.hero--imaged .hero__inner { grid-template-columns: minmax(0, 720px); }
.hero--imaged h1,
.hero--imaged .hero__h1 { color: #fff; }
.hero--imaged .hero__h1 em {
  color: rgba(255,255,255,0.85);
  font-style: italic;
}
.hero--imaged .hero__lede { color: rgba(255,255,255,0.9); }
.hero--imaged .eyebrow,
.hero--imaged .eyebrow--light { color: rgba(255,255,255,0.7); }
.hero--imaged .hero__statline {
  color: rgba(255,255,255,0.7);
  border-top-color: rgba(255,255,255,0.18);
}
.hero--imaged .hero__statline strong { color: #fff; }
.hero--imaged .btn--light-outline {
  border: 1px solid rgba(255,255,255,0.5);
  color: #fff;
  background: transparent;
}
.hero--imaged .btn--light-outline:hover {
  background: rgba(255,255,255,0.08);
  border-color: #fff;
}

@media (max-width: 860px) {
  .hero--imaged { min-height: 480px; padding: var(--sp-6) 0; }
  .hero--imaged .hero__inner { grid-template-columns: 1fr; }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v2.2 — HOMEPAGE REBUILD
   Hero · About · Model · Divisions · CoEs · Services
   Industries · ESG · Projects · Insights · EU
   ========================================================= */

/* -------- HERO (upgraded) -------- */
.hero--imaged {
  position: relative;
  color: #fff;
  overflow: hidden;
  min-height: 760px;
  display: flex;
  align-items: center;
  padding: var(--sp-8) 0;
}
.hero--imaged .hero__image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
  transform: scale(1.02);
  filter: saturate(1.05);
}
.hero--imaged .hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(100deg, rgba(15,34,54,0.85) 0%, rgba(15,34,54,0.48) 50%, rgba(15,34,54,0.12) 100%),
    linear-gradient(180deg, transparent 40%, rgba(15,34,54,0.25) 100%);
  z-index: 1;
}
.hero--imaged::after { display: none; }
.hero--imaged .container { position: relative; z-index: 2; width: 100%; }
.hero--imaged .hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(320px, 0.9fr);
  gap: var(--sp-7);
  align-items: center;
}
.hero--imaged h1,
.hero--imaged .hero__h1 {
  font-family: var(--ff-display);
  font-size: clamp(2.25rem, 5vw, 4rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: #fff;
  margin: var(--sp-4) 0 var(--sp-4);
}
.hero--imaged .hero__h1 em {
  color: rgba(255,255,255,0.85);
  font-style: italic;
  font-weight: 400;
}
.hero--imaged .hero__lede {
  color: rgba(255,255,255,0.88);
  font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
  line-height: 1.55;
  max-width: 620px;
  margin: 0 0 var(--sp-5);
}
.hero--imaged .eyebrow--light {
  color: rgba(255,255,255,0.75);
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
}
.hero--imaged .btn--light-outline {
  border: 1px solid rgba(255,255,255,0.55);
  color: #fff;
  background: transparent;
}
.hero--imaged .btn--light-outline:hover {
  background: rgba(255,255,255,0.1);
  border-color: #fff;
}

/* Hero right panel */
.hero__panel {
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.18);
  padding: var(--sp-6);
  color: #fff;
}
.hero__panel-head .eyebrow {
  color: rgba(255,255,255,0.7) !important;
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  display: block;
  margin-bottom: var(--sp-2);
}
.hero__panel-head h4 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.35;
  margin: 0 0 var(--sp-5);
  color: #fff;
}
.hero__panel-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(255,255,255,0.15);
  margin: 0;
}
.hero__panel-stats > div {
  padding: var(--sp-4) var(--sp-3);
  background: rgba(15,34,54,0.45);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hero__panel-stats dt {
  order: 2;
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.7);
}
.hero__panel-stats dd {
  order: 1;
  margin: 0;
  font-family: var(--ff-display);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
}
.hero__panel-foot {
  display: flex;
  justify-content: space-between;
  margin-top: var(--sp-4);
  padding-top: var(--sp-4);
  border-top: 1px solid rgba(255,255,255,0.15);
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
}

/* Hero scroll cue */
.hero__scroll {
  position: absolute;
  bottom: var(--sp-5);
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 38px;
  border: 1px solid rgba(255,255,255,0.45);
  border-radius: 12px;
  z-index: 3;
  display: flex;
  justify-content: center;
  padding-top: 6px;
}
.hero__scroll span {
  display: block;
  width: 2px;
  height: 8px;
  background: rgba(255,255,255,0.9);
  border-radius: 1px;
  animation: scroll-cue 1.8s ease-in-out infinite;
}
@keyframes scroll-cue {
  0% { transform: translateY(0); opacity: 1; }
  60% { transform: translateY(10px); opacity: 0; }
  100% { transform: translateY(0); opacity: 0; }
}
.hero__scroll:hover { border-color: #fff; }

/* -------- ABOUT section -------- */
.home-about {
  padding: var(--sp-8) 0;
}
.home-about__grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: var(--sp-8);
  align-items: center;
}
.home-about__content .eyebrow {
  color: var(--kst-primary);
}
.home-about__h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.75rem, 3.2vw, 2.5rem);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--kst-text);
  margin: var(--sp-3) 0 var(--sp-4);
}
.home-about__lede {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--kst-text);
  margin-bottom: var(--sp-4);
}
.home-about__content p {
  color: var(--kst-text-secondary);
  line-height: 1.7;
  margin-bottom: var(--sp-4);
}
.home-about__quote {
  margin: var(--sp-5) 0;
  padding: var(--sp-4) var(--sp-5);
  background: var(--kst-bg);
  border-left: 3px solid var(--kst-primary);
}
.home-about__quote p {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--kst-text);
  font-style: italic;
  margin: 0;
  font-weight: 400;
}
.home-about__visual {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}
.home-about__image {
  width: 100%;
  aspect-ratio: 4/3;
  background-size: cover;
  background-position: center;
  border: 1px solid var(--kst-border);
}
.home-about__pills {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
}
.home-about__pills > div {
  padding: var(--sp-4);
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.home-about__pills strong {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--kst-primary);
}
.home-about__pills span {
  font-size: 0.78rem;
  color: var(--kst-text-muted);
}

/* -------- INSTITUTIONAL MODEL -------- */
.home-model .model-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin-top: var(--sp-6);
}
.model-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.model-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 40px rgba(15,34,54,0.1);
}
.model-card__strip {
  background: linear-gradient(135deg, var(--kst-primary) 0%, var(--kst-dark) 100%);
  color: rgba(255,255,255,0.95);
  padding: var(--sp-4);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  min-height: 120px;
  overflow: hidden;
}
.model-card__strip::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.08), transparent 50%);
}
.model-card__strip svg {
  width: 60px;
  height: 60px;
  position: relative;
  z-index: 1;
}
.model-card--02 .model-card__strip {
  background: linear-gradient(135deg, var(--kst-teal) 0%, var(--kst-dark) 100%);
}
.model-card--03 .model-card__strip {
  background: linear-gradient(135deg, var(--kst-amber) 0%, var(--kst-dark) 100%);
  color: rgba(255,255,255,0.95);
}
.model-card__body {
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  flex: 1;
}
.model-card__num {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 500;
}
.model-card__body h4 {
  font-family: var(--ff-display);
  font-size: 1.375rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.01em;
}
.model-card__body p {
  color: var(--kst-text-secondary);
  font-size: 0.9375rem;
  line-height: 1.55;
  margin: 0;
}
.model-card__tags {
  list-style: none;
  padding: 0;
  margin: auto 0 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--kst-border);
  padding-top: var(--sp-3);
}
.model-card__tags li {
  padding: 6px 0;
  font-size: 0.78rem;
  color: var(--kst-text-muted);
  font-family: var(--ff-mono);
  letter-spacing: 0.02em;
  border-bottom: 1px solid var(--kst-border);
}
.model-card__tags li:last-child { border-bottom: 0; }

/* -------- DIVISIONS GRID (image cards, hover navy) -------- */
.div-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.div-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 3/4;
  padding: var(--sp-4);
  color: #fff;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  transition: transform 0.3s;
}
.div-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15,34,54,0);
  transition: background 0.3s;
  z-index: 1;
}
.div-card:hover::after {
  background: rgba(15,34,54,0.75);
}
.div-card > * { position: relative; z-index: 2; }
.div-card__num {
  position: absolute;
  top: var(--sp-3);
  left: var(--sp-4);
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: #fff;
  opacity: 0.9;
  font-weight: 500;
  z-index: 2;
}
.div-card__body h3 {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 var(--sp-2);
  letter-spacing: -0.005em;
}
.div-card__body p {
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.85);
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease, margin 0.3s ease;
}
.div-card:hover .div-card__body p {
  max-height: 100px;
  opacity: 1;
  margin-bottom: var(--sp-3);
}
.div-card__arrow {
  display: inline-flex;
  width: 32px; height: 32px;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border-radius: 50%;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s, transform 0.3s;
}
.div-card:hover .div-card__arrow {
  opacity: 1;
  transform: translateY(0);
}
.div-card__arrow svg {
  width: 14px; height: 14px;
  color: #fff;
}

/* -------- CENTERS OF EXCELLENCE -------- */
.coe-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.coe-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  transition: background 0.25s, border-color 0.25s, transform 0.25s;
  position: relative;
  min-height: 230px;
}
.coe-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 32px; height: 1px;
  background: var(--kst-primary);
  transition: width 0.3s;
}
.coe-card:hover {
  background: var(--kst-dark);
  border-color: var(--kst-dark);
  color: #fff;
  transform: translateY(-3px);
}
.coe-card:hover::before { width: 100%; background: var(--kst-teal); }
.coe-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
}
.coe-card__num {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--kst-primary);
  font-weight: 500;
}
.coe-card:hover .coe-card__num { color: var(--kst-teal); }
.coe-card:hover .status-badge { color: rgba(255,255,255,0.9); border-color: rgba(255,255,255,0.35); background: transparent; }
.coe-card h3 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.25;
  margin: 0;
  color: inherit;
  letter-spacing: -0.005em;
}
.coe-card p {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.coe-card:hover p { color: rgba(255,255,255,0.8); }
.coe-card__footer {
  margin-top: auto;
  padding-top: var(--sp-3);
  border-top: 1px solid var(--kst-border);
}
.coe-card:hover .coe-card__footer { border-top-color: rgba(255,255,255,0.15); }
.coe-card__cta {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-primary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
}
.coe-card:hover .coe-card__cta { color: var(--kst-teal); }
.coe-card__cta svg { width: 12px; height: 12px; }

/* -------- SERVICES -------- */
.svc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-5);
}
.svc-card {
  background: #fff;
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  transition: background 0.25s, color 0.25s;
  position: relative;
  min-height: 220px;
}
.svc-card:hover {
  background: var(--kst-primary);
  color: #fff;
}
.svc-card__num {
  font-family: var(--ff-display);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  color: var(--kst-primary);
  letter-spacing: -0.02em;
  transition: color 0.25s;
}
.svc-card:hover .svc-card__num { color: #fff; }
.svc-card h3 {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
  margin: 0;
  letter-spacing: -0.005em;
}
.svc-card p {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.svc-card:hover p { color: rgba(255,255,255,0.85); }
.svc-card__arrow {
  width: 32px; height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--kst-bg);
  border-radius: 50%;
  transition: background 0.25s, transform 0.25s;
}
.svc-card:hover .svc-card__arrow {
  background: rgba(255,255,255,0.15);
  transform: translateX(3px);
}
.svc-card__arrow svg { width: 13px; height: 13px; color: currentColor; }

/* -------- INDUSTRIES (BIG image cards) -------- */
.ind-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.ind-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 4/5;
  color: #fff;
  overflow: hidden;
  transition: transform 0.3s;
}
.ind-card__image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 0.5s ease;
}
.ind-card:hover .ind-card__image { transform: scale(1.05); }
.ind-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,34,54,0.05) 0%, rgba(15,34,54,0.35) 40%, rgba(15,34,54,0.95) 100%);
  transition: background 0.3s;
}
.ind-card:hover .ind-card__overlay {
  background: linear-gradient(180deg, rgba(15,34,54,0.4) 0%, rgba(15,34,54,0.85) 50%, rgba(15,34,54,0.98) 100%);
}
.ind-card__content {
  position: relative;
  z-index: 2;
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.ind-card__num {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,0.85);
  text-transform: uppercase;
}
.ind-card__content h3 {
  font-family: var(--ff-display);
  font-size: clamp(1.125rem, 1.6vw, 1.375rem);
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0;
  letter-spacing: -0.01em;
}
.ind-card__content p {
  font-size: 0.85rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.88);
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease, margin 0.3s ease;
}
.ind-card:hover .ind-card__content p {
  max-height: 120px;
  opacity: 1;
  margin-top: var(--sp-1);
  margin-bottom: var(--sp-1);
}
.ind-card__cta {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: var(--sp-2);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s, transform 0.3s;
}
.ind-card:hover .ind-card__cta { opacity: 1; transform: translateY(0); }
.ind-card__cta svg { width: 13px; height: 13px; }

/* -------- SUSTAINABILITY & ESG -------- */
.home-esg {
  padding: var(--sp-8) 0;
}
.home-esg__grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--sp-7);
  align-items: center;
}
.home-esg__content .eyebrow--light {
  color: rgba(255,255,255,0.75);
}
.home-esg__content h2 {
  color: #fff;
  font-family: var(--ff-display);
  font-size: clamp(1.75rem, 3.2vw, 2.5rem);
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.15;
}
.home-esg__content p {
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
  font-size: 1.0625rem;
  max-width: 60ch;
  margin: var(--sp-4) 0 var(--sp-5);
}
.home-esg__pillars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.15);
}
.esg-pillar {
  padding: var(--sp-5);
  background: rgba(255,255,255,0.04);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: background 0.25s;
}
.esg-pillar:hover { background: rgba(255,255,255,0.08); }
.esg-pillar__tag {
  font-family: var(--ff-display);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--kst-teal);
  line-height: 1;
  display: block;
  margin-bottom: var(--sp-2);
}
.esg-pillar h4 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: #fff;
  margin: 0;
}
.esg-pillar p {
  font-size: 0.85rem;
  line-height: 1.55;
  color: rgba(255,255,255,0.8);
  margin: 0;
}
.esg-pillar--visual {
  background-size: cover;
  background-position: center;
  position: relative;
}
.esg-pillar--visual h4, .esg-pillar--visual p {
  color: #fff;
}

/* -------- FEATURED ENGAGEMENTS -------- */
.home-projects { padding: var(--sp-8) 0; }
.proj-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-5);
  margin-top: var(--sp-5);
}
.proj-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.proj-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(15,34,54,0.12);
}
.proj-card__image {
  width: 100%;
  aspect-ratio: 16/10;
  background-size: cover;
  background-position: center;
  transition: transform 0.5s ease;
}
.proj-card:hover .proj-card__image { transform: scale(1.04); }
.proj-card__body {
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  flex: 1;
}
.proj-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.proj-card__eyebrow {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 500;
}
.proj-card h3 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
  letter-spacing: -0.005em;
}
.proj-card p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.proj-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.proj-card__tags span {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  padding: 3px 8px;
  border: 1px solid var(--kst-border-strong);
  border-radius: 2px;
}
.proj-card__footer {
  display: flex;
  justify-content: space-between;
  padding-top: var(--sp-3);
  border-top: 1px solid var(--kst-border);
  font-size: 0.78rem;
  color: var(--kst-text-secondary);
}
.proj-card__footer strong {
  color: var(--kst-text-muted);
  font-family: var(--ff-mono);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 2px;
  font-weight: 500;
}

/* -------- INSIGHTS -------- */
.ins-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-5);
  margin-top: var(--sp-5);
}
.ins-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.ins-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(15,34,54,0.12);
}
.ins-card__image {
  width: 100%;
  aspect-ratio: 16/9;
  background-size: cover;
  background-position: center;
  transition: transform 0.5s ease;
}
.ins-card:hover .ins-card__image { transform: scale(1.04); }
.ins-card__body {
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  flex: 1;
}
.ins-card__eyebrow {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 500;
}
.ins-card h3 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
  letter-spacing: -0.005em;
}
.ins-card p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.ins-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: var(--sp-3);
  border-top: 1px solid var(--kst-border);
}
.ins-card__tags span {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
}
.ins-card__tags span + span::before { content: "·"; margin-right: 4px; }

/* -------- EU & IFI -------- */
.home-eu__grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: var(--sp-7);
  align-items: center;
}
.home-eu__instruments {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
}
.eu-card {
  background: #fff;
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: 4px;
  transition: background 0.2s;
  position: relative;
}
.eu-card:hover { background: var(--kst-bg); }
.eu-card__tag {
  font-family: var(--ff-mono);
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 600;
  margin-bottom: 4px;
}
.eu-card strong {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--kst-text);
  letter-spacing: -0.005em;
}
.eu-card span:last-child {
  font-size: 0.78rem;
  color: var(--kst-text-muted);
  line-height: 1.4;
}
.eu-card--ifi {
  grid-column: span 2;
  background: var(--kst-primary);
  color: #fff;
}
.eu-card--ifi strong { color: #fff; }
.eu-card--ifi span:last-child { color: rgba(255,255,255,0.8); }
.eu-card--ifi .eu-card__tag { color: var(--kst-teal); }
.eu-card--ifi:hover { background: var(--kst-dark); }

/* Section eyebrow (primary color by default) */
.eyebrow {
  display: inline-block;
  position: relative;
  padding-left: var(--sp-4);
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--kst-primary);
}
.eyebrow::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 10px;
  height: 1px;
  background: currentColor;
}
.eyebrow--light { color: rgba(255,255,255,0.75); }

/* ======= Ensure text legibility on dark/light ======= */
.section--dark, .section--dark h2, .section--dark h3, .section--dark h4,
.section--dark p, .section--dark li, .section--dark span {
  color: #fff;
}
.section--dark p, .section--dark li {
  color: rgba(255,255,255,0.85);
}
.section--dark .eyebrow { color: rgba(255,255,255,0.75); }

/* =========================================================
   MOBILE HOMEPAGE (< 1080)
   ========================================================= */
@media (max-width: 1080px) {
  .hero--imaged { min-height: 620px; }
  .hero--imaged .hero__layout { grid-template-columns: 1fr; gap: var(--sp-5); }
  .hero__panel { max-width: 440px; }
  .home-about__grid { grid-template-columns: 1fr; gap: var(--sp-5); }
  .home-model .model-grid { grid-template-columns: 1fr; }
  .div-grid { grid-template-columns: repeat(3, 1fr); }
  .coe-grid { grid-template-columns: repeat(3, 1fr); }
  .svc-grid { grid-template-columns: repeat(2, 1fr); }
  .ind-grid { grid-template-columns: repeat(2, 1fr); }
  .home-esg__grid { grid-template-columns: 1fr; gap: var(--sp-5); }
  .home-esg__pillars { grid-template-columns: 1fr 1fr; }
  .proj-grid, .ins-grid { grid-template-columns: repeat(2, 1fr); }
  .home-eu__grid { grid-template-columns: 1fr; gap: var(--sp-5); }
}

@media (max-width: 860px) {
  .hero--imaged { min-height: 560px; padding: var(--sp-6) 0; }
  .hero--imaged .hero__h1 { font-size: clamp(1.875rem, 7vw, 2.5rem); }
  .hero__panel { padding: var(--sp-4); max-width: 100%; }
  .hero__panel-stats dd { font-size: 1.5rem; }
  .hero__scroll { display: none; }

  .home-about { padding: var(--sp-6) 0; }
  .home-about__h2 { font-size: clamp(1.5rem, 5vw, 2rem); }
  .home-about__quote { padding: var(--sp-3) var(--sp-4); }
  .home-about__quote p { font-size: 1rem; }

  .div-grid { grid-template-columns: repeat(2, 1fr); }
  .div-card { aspect-ratio: 4/5; padding: var(--sp-3); }
  .div-card__body h3 { font-size: 0.95rem; }
  .div-card__body p { display: none; }

  .coe-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); }
  .coe-card { padding: var(--sp-4); min-height: 200px; }
  .coe-card h3 { font-size: 0.95rem; }
  .coe-card p { font-size: 0.8rem; }

  .svc-grid { grid-template-columns: 1fr; }
  .svc-card { min-height: 180px; padding: var(--sp-4); }

  .ind-grid { grid-template-columns: 1fr; gap: var(--sp-4); }
  .ind-card { aspect-ratio: 16/11; }
  .ind-card__content p {
    max-height: 100px;
    opacity: 1;
    margin-top: var(--sp-1);
    margin-bottom: var(--sp-1);
  }

  .home-esg__pillars { grid-template-columns: 1fr; }

  .proj-grid, .ins-grid { grid-template-columns: 1fr; gap: var(--sp-4); }
  .proj-card__body, .ins-card__body { padding: var(--sp-4); }

  .home-eu__instruments { grid-template-columns: 1fr; }
  .eu-card--ifi { grid-column: span 1; }
}

@media (max-width: 520px) {
  .div-grid { grid-template-columns: 1fr; }
  .coe-grid { grid-template-columns: 1fr; }
  .hero__panel-stats { grid-template-columns: 1fr 1fr; }
}

/* Legacy mobile overrides adjustments from v2.1 */
@media (max-width: 860px) {
  .tile-grid--5, .tile-grid--4, .tile-grid--6 { grid-template-columns: 1fr 1fr; }
}

/* About mega menu — 3 column variant (same as Expertise but different content) */
.megamenu__cols--3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--sp-5);
  padding: var(--sp-6) var(--sp-7);
}
@media (max-width: 1080px) {
  .megamenu__cols--3 { grid-template-columns: 1fr; padding: var(--sp-4) var(--sp-5); }
}

/* Hide dropdown--compact selector if still used anywhere */
.dropdown--compact { min-width: 220px; }

/* ESG pillar — visual last cell should span full width on mobile */
@media (max-width: 860px) {
  .esg-pillar--visual { padding: var(--sp-5); }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v2.2 — ABOUT PAGE
   ========================================================= */

/* About detail: wider content, no heavy sidebar */
.detail--about {
  grid-template-columns: 240px 1fr;
}
.about-section {
  padding-top: var(--sp-7);
  padding-bottom: var(--sp-7);
  border-bottom: 1px solid var(--kst-border);
}
.about-section:first-of-type { padding-top: 0; }
.about-section:last-of-type { border-bottom: 0; }
.about-section__h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.625rem, 3vw, 2.25rem);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.015em;
  margin: var(--sp-3) 0 var(--sp-4);
  color: var(--kst-text);
}
.about-section__lede {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--kst-text);
  margin-bottom: var(--sp-5);
  max-width: 72ch;
}

/* 01 — Who we are */
.about-who__grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: var(--sp-6);
  align-items: start;
}
.about-who__lede {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--kst-text);
  margin-bottom: var(--sp-4);
}
.about-who__content p {
  color: var(--kst-text-secondary);
  line-height: 1.7;
  margin-bottom: var(--sp-4);
}
.about-who__quote {
  margin: var(--sp-5) 0 0;
  padding: var(--sp-4) var(--sp-5);
  background: var(--kst-bg);
  border-left: 3px solid var(--kst-primary);
}
.about-who__quote p {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--kst-text);
  font-style: italic;
  margin: 0;
}
.about-who__pills {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
}
.about-who__pills > div {
  padding: var(--sp-4) var(--sp-5);
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.about-who__pills strong {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--kst-primary);
  letter-spacing: -0.005em;
}
.about-who__pills span {
  font-size: 0.85rem;
  color: var(--kst-text-secondary);
}

/* 02 — Vision / Mission / Values */
.vmv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.vmv-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  position: relative;
  transition: transform 0.25s, box-shadow 0.25s;
}
.vmv-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(15,34,54,0.1);
}
.vmv-card__mark {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--kst-border);
  margin-bottom: var(--sp-2);
}
.vmv-card__mark span {
  font-family: var(--ff-display);
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--kst-primary);
  line-height: 1;
  letter-spacing: -0.02em;
}
.vmv-card__mark small {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.vmv-card h3 {
  font-family: var(--ff-display);
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.01em;
}
.vmv-card p {
  color: var(--kst-text-secondary);
  line-height: 1.6;
  font-size: 0.9375rem;
  margin: 0;
}
.vmv-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.vmv-card ul li {
  padding: 8px 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--kst-text-secondary);
  border-bottom: 1px solid var(--kst-border);
}
.vmv-card ul li:last-child { border-bottom: 0; }
.vmv-card ul li strong { color: var(--kst-text); font-weight: 600; }
.vmv-card--vision { border-top: 3px solid var(--kst-primary); }
.vmv-card--mission { border-top: 3px solid var(--kst-teal); }
.vmv-card--values { border-top: 3px solid var(--kst-amber); }
.vmv-card--mission .vmv-card__mark span { color: var(--kst-teal); }
.vmv-card--values .vmv-card__mark span { color: var(--kst-amber); }

/* 04 — Governance hero */
.about-section--governance { }
.gov-hero {
  background-size: cover;
  background-position: center;
  color: #fff;
  padding: var(--sp-7) var(--sp-6);
  margin-top: var(--sp-4);
  position: relative;
  min-height: 280px;
  display: flex;
  align-items: center;
}
.gov-hero__content { max-width: 720px; }
.gov-hero__content .eyebrow--light { color: rgba(255,255,255,0.75); }
.gov-hero__quote {
  font-family: var(--ff-display);
  font-size: clamp(1.125rem, 2vw, 1.375rem);
  line-height: 1.45;
  color: #fff;
  margin: var(--sp-4) 0 var(--sp-5);
  font-weight: 400;
  letter-spacing: -0.005em;
}
.gov-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.gov-pillar {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: border-color 0.2s, transform 0.25s;
}
.gov-pillar:hover {
  border-color: var(--kst-primary);
  transform: translateY(-2px);
}
.gov-pillar__icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kst-bg);
  color: var(--kst-primary);
  border-radius: 4px;
  margin-bottom: var(--sp-2);
}
.gov-pillar__icon svg { width: 22px; height: 22px; }
.gov-pillar h4 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.005em;
}
.gov-pillar p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
}

/* 05 — Leadership */
.leadership-row {
  display: flex;
  flex-direction: column;
  gap: var(--sp-6);
  margin-top: var(--sp-4);
}
.leadership-group__title {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0 0 var(--sp-1);
  letter-spacing: -0.005em;
}
.leadership-group__desc {
  color: var(--kst-text-muted);
  font-size: 0.9rem;
  margin: 0 0 var(--sp-4);
}
.leadership-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
}
.leader {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-2);
  transition: border-color 0.2s;
}
.leader:hover { border-color: var(--kst-primary); }
.leader__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--kst-primary), var(--kst-dark));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-display);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: var(--sp-2);
}
.leader__role {
  font-family: var(--ff-mono);
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.leader strong {
  font-size: 0.875rem;
  color: var(--kst-text);
  font-weight: 500;
  line-height: 1.35;
}

/* 06 — Accreditations */
.accreditations-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-4);
}
.accr-card {
  background: #fff;
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: background 0.2s;
}
.accr-card:hover { background: var(--kst-bg); }
.accr-card strong {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--kst-text);
  letter-spacing: -0.005em;
}
.accr-card p {
  font-size: 0.8rem;
  color: var(--kst-text-secondary);
  margin: 0;
  line-height: 1.4;
}
.accr-card .status-badge { align-self: flex-start; }
.accr-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-5);
  margin-top: var(--sp-5);
}
.accr-meta h4 {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 var(--sp-2);
}
.accr-meta p {
  font-size: 0.9rem;
  color: var(--kst-text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* 07 — Memberships */
.memberships-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-4);
}
.member-card {
  background: #fff;
  padding: var(--sp-4) var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: 2px;
  transition: background 0.2s;
}
.member-card:hover { background: var(--kst-bg); }
.member-card strong {
  font-family: var(--ff-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--kst-primary);
  letter-spacing: -0.01em;
}
.member-card span {
  font-size: 0.8125rem;
  color: var(--kst-text-secondary);
  line-height: 1.45;
}

/* 08 — Timeline */
.timeline {
  list-style: none;
  padding: 0;
  margin: var(--sp-5) 0 0;
  position: relative;
}
.timeline::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 12px;
  bottom: 12px;
  width: 1px;
  background: var(--kst-border);
}
.timeline__item {
  position: relative;
  padding-left: var(--sp-6);
  padding-bottom: var(--sp-5);
}
.timeline__item:last-child { padding-bottom: 0; }
.timeline__dot {
  position: absolute;
  left: 7px;
  top: 6px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--kst-primary);
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px var(--kst-primary);
  z-index: 1;
}
.timeline__item--future .timeline__dot { background: #fff; }
.timeline__content {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4) var(--sp-5);
}
.timeline__date {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 500;
  display: block;
  margin-bottom: var(--sp-2);
}
.timeline__content h4 {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 var(--sp-2);
  letter-spacing: -0.005em;
}
.timeline__content p {
  font-size: 0.9rem;
  color: var(--kst-text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* 09 — Impact metrics */
.metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-4);
}
.metric {
  background: #fff;
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: background 0.2s;
}
.metric:hover { background: var(--kst-bg); }
.metric strong {
  font-family: var(--ff-display);
  font-size: 3rem;
  font-weight: 600;
  line-height: 1;
  color: var(--kst-primary);
  letter-spacing: -0.03em;
}
.metric > span {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.metric p {
  font-size: 0.85rem;
  color: var(--kst-text-secondary);
  line-height: 1.5;
  margin: var(--sp-2) 0 0;
}

/* 10 — Geographic */
.geo-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: var(--sp-5);
  margin-top: var(--sp-4);
}
.geo-map {
  aspect-ratio: 4/3;
  background-size: cover;
  background-position: center;
  position: relative;
  border: 1px solid var(--kst-border);
  overflow: hidden;
}
.geo-map__pin {
  position: absolute;
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  font-weight: 600;
  background: var(--kst-primary);
  padding: 6px 12px 6px 18px;
  border-radius: 2px;
  transform: translate(-50%, -50%);
  white-space: nowrap;
}
.geo-map__pin span {
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--kst-teal);
  box-shadow: 0 0 0 4px rgba(255,255,255,0.35);
}
.geo-map__label {
  position: absolute;
  bottom: var(--sp-4);
  left: var(--sp-4);
  color: #fff;
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: rgba(15,34,54,0.75);
  padding: 6px 12px;
  backdrop-filter: blur(8px);
}
.geo-offices {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.geo-office {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4);
  position: relative;
}
.geo-office--hq {
  border-color: var(--kst-primary);
  border-width: 2px;
}
.geo-office__flag {
  font-family: var(--ff-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 600;
  display: inline-block;
  padding: 3px 8px;
  border: 1px solid var(--kst-primary);
  border-radius: 2px;
  margin-bottom: var(--sp-2);
}
.geo-office--hq .geo-office__flag {
  background: var(--kst-primary);
  color: #fff;
}
.geo-office strong {
  display: block;
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--kst-text);
  margin-bottom: 2px;
  letter-spacing: -0.005em;
}
.geo-office > span {
  font-size: 0.8125rem;
  color: var(--kst-text-muted);
  display: block;
  margin-bottom: var(--sp-2);
}
.geo-office ul {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-top: var(--sp-2);
  border-top: 1px solid var(--kst-border);
}
.geo-office ul li {
  font-size: 0.8125rem;
  color: var(--kst-text-secondary);
  padding: 3px 0;
}

/* 11 — Reports */
.reports-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-4);
}
.report-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  transition: border-color 0.25s, transform 0.25s;
}
.report-card:hover {
  border-color: var(--kst-primary);
  transform: translateY(-3px);
}
.report-card__icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kst-bg);
  color: var(--kst-primary);
  border-radius: 4px;
}
.report-card__icon svg { width: 26px; height: 26px; }
.report-card__year {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 500;
}
.report-card h4 {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.35;
  letter-spacing: -0.005em;
}
.report-card p {
  font-size: 0.85rem;
  color: var(--kst-text-secondary);
  line-height: 1.5;
  margin: 0;
  flex: 1;
}
.report-card__status {
  font-family: var(--ff-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-amber);
  font-weight: 500;
  padding-top: var(--sp-2);
  border-top: 1px solid var(--kst-border);
}

/* =========================================================
   ABOUT — mobile
   ========================================================= */
@media (max-width: 1080px) {
  .about-who__grid { grid-template-columns: 1fr; gap: var(--sp-5); }
  .vmv-grid { grid-template-columns: 1fr; }
  .gov-pillars { grid-template-columns: 1fr; }
  .leadership-grid { grid-template-columns: repeat(2, 1fr); }
  .accreditations-grid { grid-template-columns: repeat(2, 1fr); }
  .accr-meta { grid-template-columns: 1fr; gap: var(--sp-4); }
  .memberships-grid { grid-template-columns: repeat(2, 1fr); }
  .metrics-grid { grid-template-columns: repeat(2, 1fr); }
  .geo-grid { grid-template-columns: 1fr; }
  .reports-grid { grid-template-columns: repeat(2, 1fr); }
  .detail--about { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .leadership-grid { grid-template-columns: 1fr 1fr; }
  .accreditations-grid { grid-template-columns: 1fr 1fr; }
  .memberships-grid { grid-template-columns: 1fr; }
  .metrics-grid { grid-template-columns: 1fr 1fr; }
  .reports-grid { grid-template-columns: 1fr; }
  .gov-hero { padding: var(--sp-5) var(--sp-4); }
  .gov-hero__quote { font-size: 1rem; }
  .metric strong { font-size: 2.25rem; }
}
@media (max-width: 520px) {
  .leadership-grid { grid-template-columns: 1fr; }
  .accreditations-grid { grid-template-columns: 1fr; }
  .metrics-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   v2.3 — Hero overlay fine-tuning & dark-bg readability
   ========================================================= */

/* Readable text shadow on hero titles (safety net for lighter overlays) */
.hero--imaged .hero__h1,
.hero--imaged .hero__lede,
.page-hero--imaged h1,
.page-hero--imaged p {
  text-shadow: 0 2px 24px rgba(0,0,0,0.25);
}

/* ---------- Dark mega-menu feature panel: enforce light text ---------- */
.megamenu__feature,
.megamenu__feature h3,
.megamenu__feature h4,
.megamenu__feature p,
.megamenu__feature a,
.megamenu__feature strong,
.megamenu__feature small,
.megamenu__feature span {
  color: #fff;
}
.megamenu__feature .eyebrow {
  color: rgba(255,255,255,0.75);
}
.megamenu__feature p {
  color: rgba(255,255,255,0.85);
}
.megamenu__feature .mm-feature-stats span {
  color: rgba(255,255,255,0.72);
}
.megamenu__feature .mm-feature-stats strong {
  color: #fff;
}
.megamenu__feature .mm-feature-cta {
  color: #fff;
  border-bottom-color: rgba(255,255,255,0.45);
}
.megamenu__feature .mm-feature-cta:hover {
  border-bottom-color: #fff;
}

/* About feature mini-stats (Est / ISO / EU) */
.megamenu__feature .mm-feature-stats strong {
  font-size: 1.125rem;
  font-family: var(--ff-display);
  font-weight: 600;
}
.megamenu__feature .mm-feature-stats > div {
  align-items: flex-start;
}

/* Mega menu column headers inside wide menu — ensure dark text (they're on white bg) */
.megamenu__cols .mm-col__head .eyebrow { color: var(--kst-text); font-weight: 500; }
.megamenu__grid a { color: var(--kst-text); }
.megamenu__grid a:hover { color: var(--kst-primary); }
.megamenu__grid .num { color: var(--kst-text-muted); }
.megamenu__grid .lbl { color: inherit; }

/* Mega menu note (dark text on light bg) */
.mm-col__note p { color: var(--kst-text-secondary); }
.mm-col__note a { color: var(--kst-primary); }

/* Academy note override */
.mm-col__note strong { color: var(--kst-text); }

/* Ensure status tags still readable inside CoE mega column */
.mm-tag--operational { background: rgba(42,127,127,0.08); }
.mm-tag--developing { background: rgba(199,162,74,0.08); }

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v2.4 — Hero redesign + tighter spacing
   ========================================================= */

/* Dramatic hero — full-width centered content + bottom stats strip */
.hero--dramatic {
  position: relative;
  padding: 0;
  overflow: hidden;
}
.hero--dramatic .hero__image {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  z-index: 0;
  transform: scale(1.02);
  filter: saturate(1.08) contrast(1.03);
}
.hero--dramatic .hero__overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(100deg, rgba(15,34,54,0.85) 0%, rgba(15,34,54,0.48) 50%, rgba(15,34,54,0.12) 100%);
  z-index: 1;
}
.hero--dramatic .container {
  position: relative;
  z-index: 2;
  padding-top: var(--sp-8);
  padding-bottom: var(--sp-8);
  width: 100%;
}
.hero--dramatic .hero__content {
  max-width: 920px;
  color: #fff;
  min-height: 360px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero--dramatic .hero__content .eyebrow--light {
  color: rgba(255,255,255,0.85);
  font-family: var(--ff-mono);
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 500;
  padding-left: 0;
  display: inline-block;
}
.hero--dramatic .hero__content .eyebrow--light::before {
  display: none;
}
.hero--dramatic .hero__h1 {
  font-family: var(--ff-display);
  font-size: clamp(2.25rem, 5.5vw, 4.25rem);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #fff;
  margin: var(--sp-4) 0 var(--sp-4);
  text-shadow: 0 4px 32px rgba(0,0,0,0.25);
}
.hero--dramatic .hero__h1 em {
  color: rgba(255,255,255,0.8);
  font-style: italic;
  font-weight: 400;
}
.hero--dramatic .hero__lede {
  color: rgba(255,255,255,0.92);
  font-size: clamp(1.0625rem, 1.65vw, 1.375rem);
  line-height: 1.55;
  max-width: 700px;
  margin: 0 0 var(--sp-5);
  text-shadow: 0 2px 16px rgba(0,0,0,0.25);
}
.hero--dramatic .btn--light-outline {
  border: 1px solid rgba(255,255,255,0.6);
  color: #fff;
  background: rgba(15,34,54,0.2);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.hero--dramatic .btn--light-outline:hover {
  background: rgba(255,255,255,0.12);
  border-color: #fff;
}

/* Stats strip — NATURAL flow below hero content, NOT absolute.
   Sits inside the hero section so the image shows behind it,
   but cannot overlap any content. */
.hero__stats-strip {
  position: relative;
  z-index: 2;
  padding: var(--sp-5) 0 var(--sp-4);
  background: linear-gradient(180deg, transparent 0%, rgba(15,34,54,0.55) 30%, rgba(15,34,54,0.92) 100%);
  color: #fff;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.hero__stats-inner {
  display: grid;
  grid-template-columns: repeat(4, auto) 1fr;
  gap: var(--sp-6);
  align-items: center;
}
.hero__stats-inner > div:not(.hero__stats-meta) {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
}
.hero__stats-inner strong {
  font-family: var(--ff-display);
  font-size: 2.25rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  letter-spacing: -0.02em;
}
.hero__stats-inner > div > span {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.72);
  white-space: nowrap;
}
.hero__stats-meta {
  justify-self: end;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: right;
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}

/* ---------- Tighten section spacing ---------- */
.section { padding: var(--sp-7) 0; }
.home-about { padding: var(--sp-7) 0; }
.home-esg { padding: var(--sp-7) 0; }
.home-projects { padding: var(--sp-7) 0; }

/* ---------- Hero responsive ---------- */
@media (max-width: 1080px) {
  .hero--dramatic .container { padding-top: var(--sp-6); padding-bottom: var(--sp-6); }
  .hero--dramatic .hero__content { min-height: 280px; }
  .hero__stats-inner { grid-template-columns: repeat(2, 1fr); gap: var(--sp-4); }
  .hero__stats-meta {
    grid-column: span 2;
    justify-self: start;
    text-align: left;
    flex-direction: row;
    gap: var(--sp-4);
    padding-top: var(--sp-3);
    border-top: 1px solid rgba(255,255,255,0.15);
  }
}
@media (max-width: 860px) {
  .hero--dramatic .container { padding-top: var(--sp-5); padding-bottom: var(--sp-5); }
  .hero--dramatic .hero__content { min-height: 240px; }
  .hero--dramatic .hero__h1 {
    font-size: clamp(1.875rem, 7vw, 2.5rem);
    line-height: 1.1;
  }
  .hero--dramatic .hero__h1 br { display: none; }
  .hero--dramatic .hero__lede { font-size: 1rem; }
  .hero__stats-inner { grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
  .hero__stats-inner strong { font-size: 1.625rem; }
  .hero__stats-meta {
    flex-direction: column;
    grid-column: span 2;
    font-size: 0.6rem;
  }
  .hero__stats-strip { padding: var(--sp-4) 0 var(--sp-3); }
}

/* Mobile: ensure section heads aren't too cramped */
@media (max-width: 860px) {
  .section { padding: var(--sp-6) 0; }
  .home-about,
  .home-esg,
  .home-projects { padding: var(--sp-6) 0; }
}

/* =========================================================
   v2.4 — DIVISIONS LIST + DETAIL
   ========================================================= */

/* ---------- Divisions list page: intro band ---------- */
.split--intro {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: var(--sp-7);
  align-items: center;
}
.intro-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
}
.intro-facts > div {
  background: #fff;
  padding: var(--sp-4) var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.intro-facts strong {
  font-family: var(--ff-display);
  font-size: 2rem;
  font-weight: 600;
  color: var(--kst-primary);
  line-height: 1;
  letter-spacing: -0.02em;
}
.intro-facts span {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}

/* ---------- Divisions list grid — taller cards for list page ---------- */
.div-grid--tall {
  grid-template-columns: repeat(5, 1fr);
}
.div-grid--tall .div-card {
  aspect-ratio: 4/5;
}
.div-grid--tall .div-card__body p {
  /* Always visible on list page */
  max-height: 120px;
  opacity: 1;
  margin-bottom: var(--sp-3);
}

/* ---------- Matrix CTA band ---------- */
.matrix-cta {
  display: grid;
  grid-template-columns: 1.5fr auto;
  gap: var(--sp-6);
  align-items: center;
  padding: var(--sp-6);
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
  border-left: 3px solid var(--kst-primary);
}
.matrix-cta h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.matrix-cta p {
  color: var(--kst-text-secondary);
  margin: 0;
  line-height: 1.6;
}

/* =========================================================
   DIVISION DETAIL PAGES
   ========================================================= */

/* Section rhythm */
.div-section {
  padding-top: var(--sp-6);
  padding-bottom: var(--sp-6);
  border-bottom: 1px solid var(--kst-border);
}
.div-section:first-of-type { padding-top: 0; }
.div-section:last-of-type { border-bottom: 0; }
.div-section__h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.015em;
  margin: var(--sp-3) 0 var(--sp-4);
  color: var(--kst-text);
}
.div-section__lede {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--kst-text);
}

/* 01 — Mandate blockquote */
.div-mandate {
  margin: var(--sp-3) 0 0;
  padding: var(--sp-5) var(--sp-6);
  background: var(--kst-bg);
  border-left: 3px solid var(--kst-primary);
}
.div-mandate p {
  font-family: var(--ff-display);
  font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
  line-height: 1.5;
  color: var(--kst-text);
  margin: 0;
  font-style: italic;
  font-weight: 400;
}

/* 02 — Scope pill grid */
.scope-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: var(--sp-3);
}
.scope-pill {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--kst-border);
  border-radius: 20px;
  font-size: 0.875rem;
  color: var(--kst-text);
  line-height: 1.2;
  transition: border-color 0.2s, background 0.2s;
}
.scope-pill:hover {
  border-color: var(--kst-primary);
  background: var(--kst-bg);
}

/* 03 — Services numbered blocks */
.svc-blocks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-3);
  margin-top: var(--sp-3);
}
.svc-block {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4);
  display: flex;
  gap: var(--sp-3);
  align-items: flex-start;
  transition: border-color 0.25s, transform 0.25s;
}
.svc-block:hover {
  border-color: var(--kst-primary);
  transform: translateY(-2px);
}
.svc-block__num {
  font-family: var(--ff-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--kst-primary);
  min-width: 36px;
  letter-spacing: -0.01em;
  line-height: 1.1;
}
.svc-block p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--kst-text);
}

/* 04 — Projects check-blocks */
.proj-blocks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-2);
  margin-top: var(--sp-3);
}
.proj-block {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-3) var(--sp-4);
  display: flex;
  gap: var(--sp-3);
  align-items: flex-start;
}
.proj-block__check {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kst-primary);
  color: #fff;
  border-radius: 50%;
  margin-top: 2px;
}
.proj-block__check svg { width: 12px; height: 12px; }
.proj-block p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--kst-text);
}

/* 05 — Outputs document blocks */
.doc-blocks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-3);
  margin-top: var(--sp-3);
}
.doc-block {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4);
  display: flex;
  gap: var(--sp-3);
  align-items: flex-start;
  transition: border-color 0.2s;
}
.doc-block:hover { border-color: var(--kst-primary); }
.doc-block__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kst-bg);
  color: var(--kst-primary);
  border-radius: 4px;
}
.doc-block__icon svg { width: 20px; height: 20px; }
.doc-block p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--kst-text);
}

/* 06 — Competencies paragraph */
.div-competencies {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--kst-text);
  max-width: 72ch;
}

/* 07 — ESG full-bleed dark band */
.div-section--esg {
  background: linear-gradient(135deg, var(--kst-primary) 0%, var(--kst-dark) 100%);
  color: #fff;
  padding: var(--sp-6);
  margin: var(--sp-4) 0;
  border: 0;
  position: relative;
  overflow: hidden;
}
.div-section--esg::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 85% 15%, rgba(255,255,255,0.06), transparent 50%),
    radial-gradient(circle at 15% 90%, rgba(42,127,127,0.15), transparent 55%);
  pointer-events: none;
}
.div-section--esg > * { position: relative; z-index: 1; }
.div-section--esg .eyebrow--light { color: rgba(255,255,255,0.75); }
.esg-mini-pillars {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.2);
  margin-top: var(--sp-5);
}
.esg-mini-pillars > div {
  padding: var(--sp-4);
  background: rgba(15,34,54,0.35);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.esg-mini-pillars strong {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: -0.005em;
}
.esg-mini-pillars span {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.72);
}

/* 08 — Standards badge grid */
.std-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: var(--sp-3);
}
.std-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  background: var(--kst-bg);
  border: 1px solid var(--kst-border-strong);
  border-radius: 2px;
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: var(--kst-text);
  line-height: 1.2;
  transition: border-color 0.2s, color 0.2s;
}
.std-badge:hover {
  border-color: var(--kst-primary);
  color: var(--kst-primary);
}

/* 09 — CoE links grid */
.coe-links-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--kst-border);
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-3);
}
.coe-link {
  background: #fff;
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: background 0.2s, color 0.2s;
  min-height: 110px;
}
.coe-link:hover {
  background: var(--kst-primary);
  color: #fff;
}
.coe-link:hover span,
.coe-link:hover strong { color: inherit; }
.coe-link span {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 500;
  transition: color 0.2s;
}
.coe-link strong {
  font-family: var(--ff-display);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--kst-text);
  line-height: 1.3;
  letter-spacing: -0.005em;
  transition: color 0.2s;
}
.coe-link:hover span { color: rgba(255,255,255,0.85); }
.coe-link:hover strong { color: #fff; }

/* ===== Division detail — mobile ===== */
@media (max-width: 1080px) {
  .split--intro { grid-template-columns: 1fr; gap: var(--sp-5); }
  .div-grid--tall { grid-template-columns: repeat(3, 1fr); }
  .svc-blocks, .proj-blocks, .doc-blocks { grid-template-columns: 1fr; }
  .esg-mini-pillars { grid-template-columns: repeat(2, 1fr); }
  .coe-links-grid { grid-template-columns: repeat(2, 1fr); }
  .matrix-cta { grid-template-columns: 1fr; gap: var(--sp-4); }
}
@media (max-width: 860px) {
  .div-grid--tall { grid-template-columns: repeat(2, 1fr); }
  .intro-facts { grid-template-columns: 1fr 1fr; }
  .intro-facts strong { font-size: 1.5rem; }
  .esg-mini-pillars { grid-template-columns: 1fr; }
  .coe-links-grid { grid-template-columns: 1fr; }
  .div-mandate { padding: var(--sp-4); }
  .div-section--esg { padding: var(--sp-4); }
}
@media (max-width: 520px) {
  .div-grid--tall { grid-template-columns: 1fr; }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v2.4 — CENTERS OF EXCELLENCE
   ========================================================= */

/* CoE list — image-card grid (4x3 on desktop) */
.coe-image-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.coe-image-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 4/5;
  padding: var(--sp-4);
  color: #fff;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  transition: transform 0.3s;
}
.coe-image-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15,34,54,0);
  transition: background 0.3s;
  z-index: 1;
}
.coe-image-card:hover::after { background: rgba(15,34,54,0.75); }
.coe-image-card > * { position: relative; z-index: 2; }
.coe-image-card__num {
  position: absolute;
  top: var(--sp-3);
  left: var(--sp-4);
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: #fff;
  opacity: 0.9;
  font-weight: 500;
  z-index: 2;
}
.coe-image-card .status-badge {
  position: absolute;
  top: var(--sp-3);
  right: var(--sp-3);
  z-index: 2;
  background: rgba(255,255,255,0.12);
  border-color: rgba(255,255,255,0.4);
  color: #fff;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.coe-image-card__body h3 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 var(--sp-2);
  letter-spacing: -0.005em;
}
.coe-image-card__body p {
  font-size: 0.8rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.88);
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease, margin 0.3s ease;
}
.coe-image-card:hover .coe-image-card__body p {
  max-height: 140px;
  opacity: 1;
  margin-bottom: var(--sp-3);
}
.coe-image-card__arrow {
  display: inline-flex;
  width: 32px; height: 32px;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border-radius: 50%;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s, transform 0.3s;
}
.coe-image-card:hover .coe-image-card__arrow {
  opacity: 1;
  transform: translateY(0);
}
.coe-image-card__arrow svg { width: 14px; height: 14px; color: #fff; }

/* Status legend strip on list page */
.coe-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
}
.coe-legend__label {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.coe-legend__desc {
  font-size: 0.8125rem;
  color: var(--kst-text-secondary);
  margin-right: var(--sp-2);
}

/* CoE detail — status banner at top */
.coe-status-banner {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-5);
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
  border-left: 3px solid var(--kst-primary);
  margin-bottom: var(--sp-5);
  flex-wrap: wrap;
}
.coe-status-banner--operational { border-left-color: var(--kst-teal); }
.coe-status-banner--developing { border-left-color: var(--kst-amber); }
.coe-status-banner--planned { border-left-color: var(--kst-text-muted); }
.coe-status-banner__label {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.coe-status-banner__desc {
  font-size: 0.875rem;
  color: var(--kst-text-secondary);
  flex: 1;
  min-width: 200px;
}

/* CoE detail — status inline (on accreditation section) */
.coe-status-inline {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: 8px 14px;
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-3);
}
.coe-status-inline__label {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}

/* Status badge colors (ensure defined) */
.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  border: 1px solid var(--kst-border-strong);
  border-radius: 2px;
  color: var(--kst-text-muted);
  background: #fff;
  white-space: nowrap;
}
.status-badge--operational { color: var(--kst-teal); border-color: var(--kst-teal); }
.status-badge--developing { color: var(--kst-amber); border-color: var(--kst-amber); }
.status-badge--planned { color: var(--kst-text-muted); }

/* Mobile */
@media (max-width: 1080px) {
  .coe-image-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  .coe-image-grid { grid-template-columns: repeat(2, 1fr); }
  .coe-image-card { aspect-ratio: 4/5; padding: var(--sp-3); }
  .coe-image-card__body h3 { font-size: 0.95rem; }
  .coe-image-card__body p {
    max-height: 100px;
    opacity: 1;
    margin-bottom: var(--sp-2);
  }
  .coe-legend { gap: var(--sp-2); }
  .coe-legend__desc { width: 100%; }
  .coe-status-banner { padding: var(--sp-3); }
}
@media (max-width: 520px) {
  .coe-image-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   v2.5 — SERVICES
   ========================================================= */

/* Services list — image-card grid (4x2 on desktop) */
.svc-image-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.svc-image-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 3/4;
  padding: var(--sp-4);
  color: #fff;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  transition: transform 0.3s;
}
.svc-image-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15,34,54,0);
  transition: background 0.3s;
  z-index: 1;
}
.svc-image-card:hover::after { background: rgba(15,34,54,0.75); }
.svc-image-card > * { position: relative; z-index: 2; }
.svc-image-card__num {
  position: absolute;
  top: var(--sp-3);
  left: var(--sp-4);
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: #fff;
  opacity: 0.9;
  font-weight: 500;
  z-index: 2;
  text-transform: uppercase;
}
.svc-image-card__body h3 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 var(--sp-2);
  letter-spacing: -0.005em;
}
.svc-image-card__body p {
  font-size: 0.8rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.88);
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease, margin 0.3s ease;
}
.svc-image-card:hover .svc-image-card__body p {
  max-height: 120px;
  opacity: 1;
  margin-bottom: var(--sp-2);
}
.svc-image-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: var(--sp-2);
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
}
.svc-image-card:hover .svc-image-card__tags {
  max-height: 80px;
  opacity: 1;
  margin-bottom: var(--sp-2);
}
.svc-image-card__tags span {
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  padding: 2px 6px;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 2px;
}
.svc-image-card__arrow {
  display: inline-flex;
  width: 32px; height: 32px;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border-radius: 50%;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s, transform 0.3s;
}
.svc-image-card:hover .svc-image-card__arrow {
  opacity: 1;
  transform: translateY(0);
}
.svc-image-card__arrow svg { width: 14px; height: 14px; color: #fff; }

/* TIC Engine cards */
.tic-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.tic-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: border-color 0.2s, transform 0.25s;
}
.tic-card:hover {
  border-color: var(--kst-primary);
  transform: translateY(-2px);
}
.tic-card__num {
  font-family: var(--ff-display);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--kst-primary);
  line-height: 1;
  letter-spacing: -0.02em;
  margin-bottom: var(--sp-2);
}
.tic-card h4 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.005em;
}
.tic-card p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
}
.tic-card--highlight {
  background: linear-gradient(135deg, var(--kst-primary) 0%, var(--kst-dark) 100%);
  color: #fff;
  border-color: var(--kst-primary);
}
.tic-card--highlight h4 { color: #fff; }
.tic-card--highlight p { color: rgba(255,255,255,0.85); }
.tic-card--highlight .tic-card__num { color: var(--kst-teal); }

/* Mobile */
@media (max-width: 1080px) {
  .svc-image-grid { grid-template-columns: repeat(3, 1fr); }
  .tic-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .svc-image-grid { grid-template-columns: repeat(2, 1fr); }
  .svc-image-card { aspect-ratio: 4/5; padding: var(--sp-3); }
  .svc-image-card__body h3 { font-size: 0.95rem; }
  .svc-image-card__body p {
    max-height: 100px;
    opacity: 1;
    margin-bottom: var(--sp-2);
  }
  .svc-image-card__tags {
    max-height: 60px;
    opacity: 1;
  }
  .tic-grid { grid-template-columns: 1fr; }
  .tic-card { padding: var(--sp-4); }
}
@media (max-width: 520px) {
  .svc-image-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   v2.6 — MOBILE NAV ROBUSTNESS
   ========================================================= */

/* Hide drawer close button on desktop, mobile footer too */
.nav-drawer-close { display: none; }
.mainnav-mobile-footer { display: none; }

/* Block-level button utility */
.btn--block {
  display: flex;
  justify-content: center;
  width: 100%;
}

/* Mobile drawer (< 1080) */
@media (max-width: 1080px) {
  /* Close button inside drawer */
  .nav-drawer-close {
    display: inline-flex;
    position: absolute;
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    background: transparent;
    border: 1px solid var(--kst-border);
    border-radius: 50%;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    color: var(--kst-text);
    z-index: 10;
    transition: background 0.15s, border-color 0.15s;
  }
  .nav-drawer-close:hover {
    background: var(--kst-bg);
    border-color: var(--kst-text);
  }
  .nav-drawer-close svg { width: 18px; height: 18px; }

  /* Hide old burger when drawer open (close button is inside drawer) */
  body.nav-open .nav-burger { display: none; }

  /* Drawer — add extra top padding for the close button */
  .mainnav-wrap {
    padding: 72px var(--sp-4) var(--sp-4);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(420px, 100vw);
    background: #fff;
    box-shadow: -20px 0 40px rgba(15,34,54,0.2);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    z-index: 1200;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
  }
  body.nav-open .mainnav-wrap { transform: translateX(0); }

  /* Mobile footer inside drawer */
  .mainnav-mobile-footer {
    display: block;
    margin-top: auto;
    padding-top: var(--sp-5);
  }
  .mainnav-mobile-footer .btn--primary {
    margin-bottom: var(--sp-5);
  }
  .mainnav-mobile-meta {
    display: grid;
    gap: var(--sp-4);
    padding-top: var(--sp-4);
    border-top: 1px solid var(--kst-border);
  }
  .mainnav-mobile-label {
    display: block;
    font-family: var(--ff-mono);
    font-size: 0.65rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--kst-text-muted);
    font-weight: 500;
    margin-bottom: var(--sp-2);
  }
  .mainnav-mobile-loc-list {
    display: grid;
    gap: 2px;
  }
  .mainnav-mobile-loc-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    font-size: 0.875rem;
    color: var(--kst-text);
    border-radius: 3px;
    transition: background 0.15s;
    min-height: 40px;
  }
  .mainnav-mobile-loc-list a:hover {
    background: var(--kst-bg);
  }
  .mainnav-mobile-loc-list a[aria-current="true"] {
    background: var(--kst-bg);
    color: var(--kst-primary);
    font-weight: 500;
  }
  .mainnav-mobile-loc-list a.is-disabled {
    color: var(--kst-text-muted);
    cursor: not-allowed;
  }
  .mainnav-mobile-loc-list a strong {
    font-weight: 500;
  }
  .mainnav-mobile-loc-list a span {
    font-family: var(--ff-mono);
    font-size: 0.7rem;
    color: var(--kst-text-muted);
  }
  .mainnav-mobile-contact {
    display: grid;
    gap: 4px;
  }
  .mainnav-mobile-contact a {
    font-size: 0.875rem;
    color: var(--kst-text);
    padding: 4px 0;
    min-height: 30px;
  }
  .mainnav-mobile-contact a:hover { color: var(--kst-primary); }

  /* Prevent body scroll shift when drawer opens */
  body.nav-open {
    overflow: hidden;
    padding-right: var(--scrollbar-width, 0);
  }

  /* Topnav stays put when drawer opens */
  body.nav-open .topnav {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    z-index: 1180;
  }
  body.nav-open .announce { display: none; }
}

/* Very small screens — drawer goes full-width */
@media (max-width: 520px) {
  .mainnav-wrap {
    width: 100vw;
  }
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {
  .mainnav-wrap,
  .has-menu--mega .megamenu--fullbleed,
  .has-menu--dropdown .dropdown {
    transition: none !important;
  }
}

/* =========================================================
   v2.6 — INDUSTRIES
   ========================================================= */

/* Industries list — image-card grid (3x4 on desktop) */
.ind-image-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.ind-image-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 4/5;
  padding: var(--sp-4);
  color: #fff;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  transition: transform 0.3s;
}
.ind-image-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15,34,54,0);
  transition: background 0.3s;
  z-index: 1;
}
.ind-image-card:hover::after { background: rgba(15,34,54,0.7); }
.ind-image-card > * { position: relative; z-index: 2; }
.ind-image-card__num {
  position: absolute;
  top: var(--sp-3);
  left: var(--sp-4);
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: #fff;
  opacity: 0.9;
  font-weight: 500;
  text-transform: uppercase;
  z-index: 2;
}
.ind-image-card__body h3 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 var(--sp-2);
  letter-spacing: -0.005em;
}
.ind-image-card__body p {
  font-size: 0.825rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.88);
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease, margin 0.3s ease;
}
.ind-image-card:hover .ind-image-card__body p {
  max-height: 140px;
  opacity: 1;
  margin-bottom: var(--sp-2);
}
.ind-image-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
}
.ind-image-card:hover .ind-image-card__tags {
  max-height: 80px;
  opacity: 1;
  margin-bottom: var(--sp-2);
}
.ind-image-card__tags span {
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  padding: 2px 6px;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 2px;
}
.ind-image-card__arrow {
  display: inline-flex;
  width: 32px; height: 32px;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border-radius: 50%;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s, transform 0.3s;
}
.ind-image-card:hover .ind-image-card__arrow {
  opacity: 1;
  transform: translateY(0);
}
.ind-image-card__arrow svg { width: 14px; height: 14px; color: #fff; }

/* Audiences — icon cards */
.aud-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.aud-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
}
.aud-card:hover {
  border-color: var(--kst-primary);
  transform: translateY(-3px);
  box-shadow: 0 20px 40px rgba(15,34,54,0.1);
}
.aud-card__icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kst-bg);
  color: var(--kst-primary);
  border-radius: 4px;
  margin-bottom: var(--sp-2);
}
.aud-card:hover .aud-card__icon {
  background: var(--kst-primary);
  color: #fff;
}
.aud-card__icon svg { width: 28px; height: 28px; }
.aud-card h3 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.3;
  letter-spacing: -0.005em;
}
.aud-card p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.aud-card__cta {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-primary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-top: var(--sp-3);
  border-top: 1px solid var(--kst-border);
  font-weight: 500;
}
.aud-card__cta svg { width: 12px; height: 12px; }

/* Mobile */
@media (max-width: 1080px) {
  .ind-image-grid { grid-template-columns: repeat(2, 1fr); }
  .aud-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .ind-image-grid { grid-template-columns: 1fr; gap: var(--sp-4); }
  .ind-image-card { aspect-ratio: 16/11; }
  .ind-image-card__body p {
    max-height: 100px;
    opacity: 1;
    margin-bottom: var(--sp-2);
  }
  .ind-image-card__tags {
    max-height: 60px;
    opacity: 1;
    margin-bottom: var(--sp-2);
  }
  .aud-grid { grid-template-columns: 1fr; }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v2.7 — DESKTOP FORCE-HIDE for mobile-only drawer elements
   ========================================================= */
@media (min-width: 1081px) {
  .nav-drawer-close,
  .mainnav-mobile-footer,
  .mainnav-mobile-meta,
  .mainnav-mobile-locations,
  .mainnav-mobile-loc-list,
  .mainnav-mobile-contact,
  .mainnav-mobile-label {
    display: none !important;
  }
}

/* =========================================================
   v2.7 — PROJECTS page
   ========================================================= */

/* Featured projects grid — 3-col for flagship mandates */
.proj-grid--featured {
  grid-template-columns: repeat(3, 1fr);
}

/* Project card footer — accommodate 4 items */
.proj-card__footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-2);
}

/* Client types grid */
.client-types-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.client-type {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: border-color 0.25s, transform 0.25s;
  position: relative;
}
.client-type:hover {
  border-color: var(--kst-primary);
  transform: translateY(-3px);
}
.client-type__tag {
  font-family: var(--ff-display);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--kst-primary);
  line-height: 1;
  letter-spacing: -0.02em;
  margin-bottom: var(--sp-2);
}
.client-type h4 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.005em;
  line-height: 1.25;
}
.client-type p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
}

/* Filters — pretty up */
.filters--advanced {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  padding: var(--sp-5);
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
  margin-top: var(--sp-4);
}
.filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.filter-group label {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.filter-group select {
  padding: 8px 10px;
  font-family: var(--ff-sans);
  font-size: 0.875rem;
  background: #fff;
  border: 1px solid var(--kst-border);
  border-radius: 2px;
  color: var(--kst-text);
  min-height: 40px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.filter-group select:hover,
.filter-group select:focus {
  border-color: var(--kst-primary);
  outline: none;
}

/* Mobile */
@media (max-width: 1080px) {
  .proj-grid--featured { grid-template-columns: repeat(2, 1fr); }
  .client-types-grid { grid-template-columns: repeat(2, 1fr); }
  .filters--advanced { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  .proj-grid--featured { grid-template-columns: 1fr; }
  .client-types-grid { grid-template-columns: 1fr; }
  .filters--advanced { grid-template-columns: repeat(2, 1fr); padding: var(--sp-4); }
  .proj-card__footer { grid-template-columns: 1fr 1fr; font-size: 0.72rem; }
}
@media (max-width: 520px) {
  .filters--advanced { grid-template-columns: 1fr; }
}

/* Footer logo as clickable link */
.footer__brand-link {
  display: inline-block;
  transition: opacity 0.2s;
}
.footer__brand-link:hover { opacity: 0.75; }
.footer__brand-link img { height: 36px; width: auto; display: block; }

/* =========================================================
   v2.8 — KST ACADEMY
   ========================================================= */

/* 3 Academy pillars */
.acad-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.acad-pillar {
  background: #fff;
  border: 1px solid var(--kst-border);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.acad-pillar:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 40px rgba(15,34,54,0.1);
}
.acad-pillar__strip {
  background: linear-gradient(135deg, var(--kst-primary) 0%, var(--kst-dark) 100%);
  color: #fff;
  padding: var(--sp-4);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 110px;
  position: relative;
  overflow: hidden;
}
.acad-pillar--02 .acad-pillar__strip { background: linear-gradient(135deg, var(--kst-teal) 0%, var(--kst-dark) 100%); }
.acad-pillar--03 .acad-pillar__strip { background: linear-gradient(135deg, var(--kst-amber) 0%, var(--kst-dark) 100%); }
.acad-pillar__strip::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.08), transparent 50%);
}
.acad-pillar__strip svg { width: 54px; height: 54px; position: relative; z-index: 1; }
.acad-pillar__body {
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
}
.acad-pillar__num {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 500;
}
.acad-pillar__body h4 {
  font-family: var(--ff-display);
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.01em;
}
.acad-pillar__body p {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
}

/* Academy category grid (image cards, 3x4) */
.acad-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.acad-cat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 4/5;
  padding: var(--sp-4);
  color: #fff;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  transition: transform 0.3s;
}
.acad-cat-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15,34,54,0);
  transition: background 0.3s;
  z-index: 1;
}
.acad-cat-card:hover::after { background: rgba(15,34,54,0.7); }
.acad-cat-card > * { position: relative; z-index: 2; }
.acad-cat-card__num {
  position: absolute;
  top: var(--sp-3);
  left: var(--sp-4);
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: #fff;
  opacity: 0.9;
  font-weight: 500;
  text-transform: uppercase;
  z-index: 2;
}
.acad-cat-card__body h3 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 var(--sp-2);
  letter-spacing: -0.005em;
}
.acad-cat-card__body p {
  font-size: 0.825rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.88);
  margin: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s, opacity 0.3s, margin 0.3s;
}
.acad-cat-card:hover .acad-cat-card__body p {
  max-height: 140px;
  opacity: 1;
  margin-bottom: var(--sp-2);
}
.acad-cat-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s, opacity 0.3s;
}
.acad-cat-card:hover .acad-cat-card__tags {
  max-height: 80px;
  opacity: 1;
  margin-bottom: var(--sp-2);
}
.acad-cat-card__tags span {
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  padding: 2px 6px;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 2px;
}
.acad-cat-card__arrow {
  display: inline-flex;
  width: 32px; height: 32px;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border-radius: 50%;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s, transform 0.3s;
}
.acad-cat-card:hover .acad-cat-card__arrow {
  opacity: 1;
  transform: translateY(0);
}
.acad-cat-card__arrow svg { width: 14px; height: 14px; color: #fff; }

/* Academy course card */
.acad-course-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.acad-course-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
  min-height: 220px;
}
.acad-course-card:hover {
  border-color: var(--kst-primary);
  transform: translateY(-3px);
  box-shadow: 0 20px 40px rgba(15,34,54,0.1);
}
.acad-course-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
  flex-wrap: wrap;
}
.acad-course-card__dur { color: var(--kst-primary); font-weight: 600; }
.acad-course-card__dot { color: var(--kst-border-strong); }
.acad-course-card h3 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
  letter-spacing: -0.005em;
}
.acad-course-card p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.acad-course-card__cta {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-primary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-top: var(--sp-3);
  border-top: 1px solid var(--kst-border);
  font-weight: 500;
}
.acad-course-card__cta svg { width: 12px; height: 12px; }

/* Academy format cards */
.acad-formats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.acad-format {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: border-color 0.25s;
}
.acad-format:hover { border-color: var(--kst-primary); }
.acad-format__icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kst-bg);
  color: var(--kst-primary);
  border-radius: 4px;
  margin-bottom: var(--sp-2);
}
.acad-format__icon svg { width: 22px; height: 22px; }
.acad-format h4 {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.005em;
}
.acad-format p {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--kst-text-secondary);
  margin: 0;
}

/* Course meta strip at top of course detail */
.course-meta-strip {
  display: grid;
  grid-template-columns: repeat(4, auto) 1fr;
  gap: var(--sp-5);
  align-items: center;
  padding: var(--sp-4) var(--sp-5);
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
  border-left: 3px solid var(--kst-primary);
  margin-bottom: var(--sp-5);
}
.course-meta-strip__item {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.course-meta-strip__label {
  font-family: var(--ff-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.course-meta-strip__item strong {
  font-family: var(--ff-display);
  font-size: 0.9375rem;
  color: var(--kst-text);
  font-weight: 600;
}
.course-meta-strip__item strong a {
  color: var(--kst-primary);
}
.course-meta-strip__item strong a:hover {
  color: var(--kst-dark);
}
.course-meta-strip__cta { justify-self: end; }

/* Mobile */
@media (max-width: 1080px) {
  .acad-pillars { grid-template-columns: 1fr; }
  .acad-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .acad-course-grid { grid-template-columns: repeat(2, 1fr); }
  .acad-formats-grid { grid-template-columns: repeat(2, 1fr); }
  .course-meta-strip {
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-3);
  }
  .course-meta-strip__cta {
    grid-column: span 2;
    justify-self: stretch;
    padding-top: var(--sp-3);
    border-top: 1px solid var(--kst-border);
  }
  .course-meta-strip__cta .btn { width: 100%; justify-content: center; }
}
@media (max-width: 860px) {
  .acad-cat-grid { grid-template-columns: 1fr; gap: var(--sp-4); }
  .acad-cat-card { aspect-ratio: 16/11; }
  .acad-cat-card__body p {
    max-height: 100px;
    opacity: 1;
    margin-bottom: var(--sp-2);
  }
  .acad-cat-card__tags {
    max-height: 60px;
    opacity: 1;
    margin-bottom: var(--sp-2);
  }
  .acad-course-grid { grid-template-columns: 1fr; }
  .acad-formats-grid { grid-template-columns: 1fr; }
  .course-meta-strip { grid-template-columns: 1fr; padding: var(--sp-3) var(--sp-4); }
  .course-meta-strip__cta { grid-column: span 1; }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v2.9 — CANONICAL MOBILE NAV (supersedes all above)
   High-specificity rules to prevent stylesheet regressions.
   ========================================================= */

/* --- Burger button --- */
.topnav .nav-burger {
  display: none;
  width: 44px;
  height: 44px;
  min-width: 44px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 0;
  cursor: pointer;
  position: relative;
  align-items: center;
  justify-content: center;
  color: var(--kst-text);
  transition: background 0.15s, border-color 0.15s;
}
.topnav .nav-burger:hover {
  background: var(--kst-bg);
  border-color: var(--kst-border);
}
.topnav .nav-burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: currentColor;
  position: absolute;
  left: 11px;
  transition: transform 0.25s ease, opacity 0.2s ease, top 0.25s ease;
  border-radius: 1px;
}
.topnav .nav-burger span:nth-child(1) { top: 15px; }
.topnav .nav-burger span:nth-child(2) { top: 21px; }
.topnav .nav-burger span:nth-child(3) { top: 27px; }
body.nav-open .topnav .nav-burger span:nth-child(1) { top: 21px; transform: rotate(45deg); }
body.nav-open .topnav .nav-burger span:nth-child(2) { opacity: 0; }
body.nav-open .topnav .nav-burger span:nth-child(3) { top: 21px; transform: rotate(-45deg); }

/* --- MOBILE ≤ 1080 px --- */
@media (max-width: 1080px) {
  /* Show burger */
  .topnav .nav-burger { display: inline-flex !important; }

  /* Hide desktop-only nav bits */
  .nav-search,
  .nav-locations,
  .nav-cta .btn--primary {
    display: none !important;
  }

  /* Topnav compact */
  .topnav__inner {
    padding: 10px 16px;
    gap: var(--sp-2);
  }
  .brand img { height: 28px; }

  /* --- DRAWER --- */
  .topnav .mainnav-wrap {
    position: fixed !important;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(420px, 100vw) !important;
    max-width: 100vw;
    background: #fff !important;
    box-shadow: -20px 0 40px rgba(15,34,54,0.2);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    z-index: 1200;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 72px var(--sp-4) var(--sp-4) !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
  }
  body.nav-open .topnav .mainnav-wrap { transform: translateX(0); }

  /* Backdrop */
  body.nav-open::after {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(15,34,54,0.55);
    z-index: 1150;
    animation: fade-in 0.25s ease;
  }
  @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }

  body.nav-open { overflow: hidden !important; }

  /* Drawer close button — inside drawer, top right */
  .nav-drawer-close {
    display: inline-flex !important;
    position: absolute;
    top: 16px;
    right: 16px;
    width: 44px;
    height: 44px;
    background: transparent;
    border: 1px solid var(--kst-border);
    border-radius: 50%;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    color: var(--kst-text);
    z-index: 10;
    padding: 0;
  }
  .nav-drawer-close:hover {
    background: var(--kst-bg);
    border-color: var(--kst-text);
  }
  .nav-drawer-close svg { width: 18px; height: 18px; }

  /* Hide original burger once drawer is open */
  body.nav-open .topnav .nav-burger { display: none !important; }

  /* --- Main nav list --- */
  .topnav .mainnav {
    display: block !important;
    width: 100%;
    flex-direction: column;
    padding: 0;
    margin: 0;
    list-style: none;
    gap: 0;
  }
  .topnav .mainnav > li {
    display: block !important;
    border-bottom: 1px solid var(--kst-border);
    width: 100%;
    position: relative;
  }
  .topnav .mainnav > li > a,
  .topnav .mainnav > li > button {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 16px 0 !important;
    font-size: 1rem;
    font-weight: 500;
    color: var(--kst-text);
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    font-family: var(--ff-sans);
    min-height: 56px;
  }
  .topnav .mainnav > li > a .caret,
  .topnav .mainnav > li > button .caret {
    width: 14px;
    height: 14px;
    transition: transform 0.25s ease;
    color: var(--kst-text-muted);
    flex-shrink: 0;
  }
  .topnav .mainnav > li.is-open > button .caret {
    transform: rotate(180deg);
    color: var(--kst-primary);
  }
  .topnav .mainnav > li.is-open > button {
    color: var(--kst-primary);
  }

  /* --- Mega menu → accordion --- */
  .topnav .has-menu--mega .megamenu,
  .topnav .has-menu--mega .megamenu--fullbleed,
  .topnav .has-menu--dropdown .dropdown {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    box-shadow: none !important;
    border: 0 !important;
    background: var(--kst-bg) !important;
    padding: 0 !important;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    left: auto;
    right: auto;
    top: auto;
  }
  .topnav .mainnav > li.is-open > .megamenu,
  .topnav .mainnav > li.is-open > .megamenu--fullbleed,
  .topnav .mainnav > li.is-open > .dropdown {
    max-height: 3000px;
    padding: var(--sp-3) 0 var(--sp-5) !important;
  }

  /* Inner structure → single column stack */
  .topnav .megamenu__inner--fullbleed {
    display: block !important;
    grid-template-columns: 1fr !important;
    max-width: none !important;
    padding: 0 !important;
    min-height: 0 !important;
  }

  /* Feature panel — compact */
  .topnav .megamenu__feature {
    padding: var(--sp-4) var(--sp-4) !important;
    border-radius: 4px;
    margin: 0 var(--sp-3) var(--sp-4);
    background: linear-gradient(155deg, var(--kst-primary) 0%, var(--kst-dark) 100%) !important;
  }
  .topnav .megamenu__feature h3 { font-size: 1rem !important; line-height: 1.3; }
  .topnav .megamenu__feature p { font-size: 0.8125rem; }
  .topnav .megamenu__feature .mm-feature-stats {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-3);
    margin-top: var(--sp-3);
    padding-top: var(--sp-3);
  }
  .topnav .megamenu__feature .mm-feature-stats strong { font-size: 1.125rem; }
  .topnav .megamenu__feature .mm-feature-stats span { font-size: 0.65rem; }

  /* Columns — stack */
  .topnav .megamenu__cols,
  .topnav .megamenu__cols--3 {
    display: block !important;
    grid-template-columns: 1fr !important;
    padding: 0 var(--sp-3) !important;
    gap: 0 !important;
  }
  .topnav .mm-col {
    margin-bottom: var(--sp-4);
  }
  .topnav .mm-col__head {
    padding-bottom: var(--sp-2);
    margin-bottom: var(--sp-2);
  }
  .topnav .megamenu__grid a {
    padding: 10px 12px !important;
    min-height: 44px;
    font-size: 0.9rem;
    border-radius: 3px;
  }
  .topnav .megamenu__grid a:hover,
  .topnav .megamenu__grid a:active {
    background: #fff;
  }
  .topnav .mm-col__note {
    padding: var(--sp-3);
    background: #fff;
    border: 1px solid var(--kst-border);
    border-radius: 4px;
    margin: var(--sp-3) 0;
  }
  .topnav .mm-col__note p { font-size: 0.8125rem; }

  /* Dropdown (About / Locations) — same pattern */
  .topnav .dropdown__inner,
  .topnav .dropdown__inner--1col {
    grid-template-columns: 1fr !important;
    gap: var(--sp-3) !important;
    padding: 0 var(--sp-3) !important;
  }
  .topnav .dropdown__col a {
    padding: 10px 12px;
    min-height: 44px;
    font-size: 0.9rem;
  }

  /* Mobile-only drawer footer */
  .mainnav-mobile-footer {
    display: block !important;
    margin-top: auto;
    padding-top: var(--sp-5);
  }
  .mainnav-mobile-footer .btn--primary {
    margin-bottom: var(--sp-5);
  }
  .mainnav-mobile-meta {
    display: grid !important;
    gap: var(--sp-4);
    padding-top: var(--sp-4);
    border-top: 1px solid var(--kst-border);
  }
  .mainnav-mobile-label {
    display: block !important;
    font-family: var(--ff-mono);
    font-size: 0.65rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--kst-text-muted);
    font-weight: 500;
    margin-bottom: var(--sp-2);
  }
  .mainnav-mobile-loc-list {
    display: grid !important;
    gap: 2px;
  }
  .mainnav-mobile-loc-list a {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    font-size: 0.875rem;
    color: var(--kst-text);
    border-radius: 3px;
    min-height: 40px;
  }
  .mainnav-mobile-loc-list a strong { font-weight: 500; }
  .mainnav-mobile-loc-list a span {
    font-family: var(--ff-mono);
    font-size: 0.7rem;
    color: var(--kst-text-muted);
  }
  .mainnav-mobile-loc-list a.is-disabled { color: var(--kst-text-muted); }
  .mainnav-mobile-contact {
    display: grid !important;
    gap: 4px;
  }
  .mainnav-mobile-contact a {
    font-size: 0.875rem;
    color: var(--kst-text);
    padding: 4px 0;
  }
  .mainnav-mobile-contact a:hover { color: var(--kst-primary); }

  /* Topnav stays fixed when drawer open */
  body.nav-open .topnav {
    position: fixed;
    left: 0; right: 0; top: 0;
    z-index: 1180;
  }
  body.nav-open .announce { display: none; }
}

/* Smallest screens — full-width drawer */
@media (max-width: 520px) {
  .topnav .mainnav-wrap {
    width: 100vw !important;
  }
}

/* Desktop ≥ 1081 — force-hide mobile-only elements */
@media (min-width: 1081px) {
  .nav-drawer-close,
  .mainnav-mobile-footer,
  .mainnav-mobile-meta,
  .mainnav-mobile-locations,
  .mainnav-mobile-loc-list,
  .mainnav-mobile-contact,
  .mainnav-mobile-label {
    display: none !important;
  }
  .topnav .nav-burger {
    display: none !important;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .topnav .mainnav-wrap,
  .topnav .megamenu,
  .topnav .dropdown { transition: none !important; }
}

/* =========================================================
   v2.9 — INSIGHTS / EU / CAREERS / CONTACT
   ========================================================= */

/* ---- INSIGHTS cards ---- */
.ins-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.ins-grid--featured { grid-template-columns: repeat(3, 1fr); }
.ins-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--kst-border);
  overflow: hidden;
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.ins-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(15,34,54,0.14);
  border-color: var(--kst-primary);
}
.ins-card__image {
  aspect-ratio: 16/9;
  background-size: cover;
  background-position: center;
  background-color: var(--kst-bg);
}
.ins-card__body {
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
}
.ins-card__eyebrow {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 500;
}
.ins-card h3 {
  font-family: var(--ff-display);
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.3;
  letter-spacing: -0.005em;
}
.ins-card p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.ins-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: var(--sp-2);
  padding-top: var(--sp-2);
  border-top: 1px solid var(--kst-border);
}
.ins-card__tags span {
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  padding: 2px 6px;
  background: var(--kst-bg);
  border-radius: 2px;
}

/* ---- EU INSTRUMENTS cards ---- */
.eu-inst-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.eu-inst {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: border-color 0.25s, transform 0.25s;
  position: relative;
}
.eu-inst:hover { border-color: var(--kst-primary); transform: translateY(-2px); }
.eu-inst__tag {
  display: inline-block;
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  background: var(--kst-bg);
  padding: 4px 10px;
  border-radius: 2px;
  font-weight: 600;
  align-self: flex-start;
}
.eu-inst h4 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  margin: var(--sp-2) 0 0;
  letter-spacing: -0.005em;
}
.eu-inst p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
}

/* ---- IFI cards ---- */
.ifi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.ifi-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  position: relative;
  transition: border-color 0.25s, transform 0.25s;
}
.ifi-card:hover { border-color: var(--kst-teal); transform: translateY(-2px); }
.ifi-card__tag {
  font-family: var(--ff-display);
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--kst-primary);
  letter-spacing: -0.01em;
  line-height: 1;
  margin-bottom: var(--sp-2);
}
.ifi-card h4 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.005em;
}
.ifi-card p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
}

/* ---- CAREERS openings ---- */
.openings-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.opening-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
}
.opening-card:hover {
  border-color: var(--kst-primary);
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(15,34,54,0.1);
}
.opening-card__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  flex-wrap: wrap;
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.opening-card__tag {
  color: var(--kst-primary);
  background: var(--kst-bg);
  padding: 3px 8px;
  border-radius: 2px;
  font-weight: 600;
}
.opening-card h3 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.3;
  letter-spacing: -0.005em;
}
.opening-card p {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.opening-card__footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-2);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--kst-border);
  font-size: 0.8rem;
  color: var(--kst-text-muted);
}
.opening-card__footer strong {
  display: block;
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
  margin-bottom: 2px;
}

/* ---- CONTACT office cards ---- */
.office-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-4);
  margin-top: var(--sp-5);
}
.office-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.office-card--primary {
  border-left: 3px solid var(--kst-primary);
}
.office-card__tag {
  display: inline-block;
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-primary);
  background: var(--kst-bg);
  padding: 4px 10px;
  border-radius: 2px;
  font-weight: 600;
  align-self: flex-start;
}
.office-card h3 {
  font-family: var(--ff-display);
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.005em;
}
.office-card__details {
  display: grid;
  gap: var(--sp-3);
  margin-top: var(--sp-2);
}
.office-card__row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: var(--sp-3);
  align-items: start;
}
.office-card__label {
  font-family: var(--ff-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
  padding-top: 3px;
}
.office-card__row p {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--kst-text);
  margin: 0;
}

/* ---- CONTACT channels ---- */
.channel-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.channel-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  position: relative;
  transition: border-color 0.25s, transform 0.25s;
}
.channel-card:hover {
  border-color: var(--kst-primary);
  transform: translateY(-2px);
}
.channel-card--regulatory {
  border-left: 3px solid var(--kst-amber);
}
.channel-card__num {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.channel-card h4 {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.005em;
  line-height: 1.3;
}
.channel-card p {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--kst-text-secondary);
  margin: 0;
  flex: 1;
}
.channel-card__sla {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  color: var(--kst-text-muted);
  padding-top: var(--sp-2);
  border-top: 1px solid var(--kst-border);
  margin-top: auto;
  line-height: 1.5;
}
.channel-card__sla a {
  color: var(--kst-primary);
}

/* ---- CONTACT FORM ---- */
.contact-form-wrap {
  max-width: 720px;
  margin: var(--sp-5) auto 0;
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-6);
}
.contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-3);
}
.contact-form label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea {
  padding: 10px 12px;
  font-family: var(--ff-sans);
  font-size: 0.9375rem;
  text-transform: none;
  letter-spacing: normal;
  color: var(--kst-text);
  background: #fff;
  border: 1px solid var(--kst-border);
  border-radius: 2px;
  min-height: 42px;
  transition: border-color 0.15s;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--kst-primary);
  box-shadow: 0 0 0 3px rgba(30,58,95,0.1);
}
.contact-form textarea {
  resize: vertical;
  min-height: 120px;
}
.contact-form .checkbox {
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  font-family: var(--ff-sans);
  font-size: 0.875rem;
  text-transform: none;
  letter-spacing: normal;
  color: var(--kst-text-secondary);
  font-weight: 400;
  line-height: 1.55;
}
.contact-form .checkbox input {
  margin-top: 3px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  min-height: 0;
}

/* ---- Mobile tweaks ---- */
@media (max-width: 1080px) {
  .ins-grid, .ins-grid--featured { grid-template-columns: repeat(2, 1fr); }
  .eu-inst-grid, .ifi-grid { grid-template-columns: repeat(2, 1fr); }
  .openings-grid { grid-template-columns: repeat(2, 1fr); }
  .office-grid { grid-template-columns: 1fr; }
  .channel-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .ins-grid, .ins-grid--featured { grid-template-columns: 1fr; }
  .eu-inst-grid, .ifi-grid { grid-template-columns: 1fr; }
  .openings-grid { grid-template-columns: 1fr; }
  .channel-grid { grid-template-columns: 1fr; }
  .office-card__row { grid-template-columns: 1fr; gap: 4px; }
  .office-card__label { padding-top: 0; }
  .contact-form-wrap { padding: var(--sp-4); }
  .contact-form__row { grid-template-columns: 1fr; }
}

/* =========================================================
   v2.9 — LEGAL HUB
   ========================================================= */
.legal-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
  margin-top: var(--sp-5);
}
.legal-card {
  background: #fff;
  border: 1px solid var(--kst-border);
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  min-height: 160px;
  transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
  position: relative;
}
.legal-card:hover {
  border-color: var(--kst-primary);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(15,34,54,0.08);
}
.legal-card__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.legal-card__cat {
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 600;
}
.legal-card__tag {
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  color: var(--kst-text-muted);
}
.legal-card h3 {
  font-family: var(--ff-display);
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.3;
  letter-spacing: -0.005em;
  flex: 1;
}
.legal-card__arrow {
  color: var(--kst-primary);
  align-self: flex-end;
  display: inline-flex;
  width: 24px; height: 24px;
  align-items: center;
  justify-content: center;
}
.legal-card__arrow svg { width: 14px; height: 14px; }

@media (max-width: 1080px) {
  .legal-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  .legal-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .legal-grid { grid-template-columns: 1fr; }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v3.0 — OVERRIDE LAYER (final, highest specificity)
   Addresses: burger invisible, hero too tall on mobile,
   mobile mega menu filling screen
   ========================================================= */

/* ---------- 1. BURGER ALWAYS VISIBLE ≤1080 ---------- */
@media (max-width: 1080px) {
  header.topnav .nav-cta {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
  }
  header.topnav .nav-cta .nav-burger {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    background: transparent !important;
    border: 1px solid var(--kst-border) !important;
    border-radius: 4px !important;
    padding: 0 !important;
    position: relative !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    color: var(--kst-text) !important;
  }
  header.topnav .nav-cta .nav-burger span {
    display: block !important;
    position: absolute !important;
    left: 11px !important;
    width: 22px !important;
    height: 2px !important;
    background: currentColor !important;
    border-radius: 1px !important;
    transition: transform 0.25s, opacity 0.2s, top 0.25s !important;
  }
  header.topnav .nav-cta .nav-burger span:nth-child(1) { top: 15px !important; }
  header.topnav .nav-cta .nav-burger span:nth-child(2) { top: 21px !important; }
  header.topnav .nav-cta .nav-burger span:nth-child(3) { top: 27px !important; }

  /* Hide search and primary CTA button on mobile */
  header.topnav .nav-cta .nav-search,
  header.topnav .nav-cta .nav-locations,
  header.topnav .nav-cta .btn--primary,
  header.topnav .nav-cta .btn,
  header.topnav .nav-cta .nav-lang {
    display: none !important;
  }
}

/* Body open state */
body.nav-open header.topnav .nav-cta .nav-burger span:nth-child(1) {
  top: 21px !important; transform: rotate(45deg) !important;
}
body.nav-open header.topnav .nav-cta .nav-burger span:nth-child(2) { opacity: 0 !important; }
body.nav-open header.topnav .nav-cta .nav-burger span:nth-child(3) {
  top: 21px !important; transform: rotate(-45deg) !important;
}

/* ---------- 2. MOBILE HERO — fits one screen ---------- */
@media (max-width: 1080px) {
  .page-hero--dramatic,
  .hero--dramatic {
    min-height: auto !important;
    max-height: none !important;
    padding: 0 !important;
  }
  .page-hero--dramatic .container,
  .hero--dramatic .container {
    padding-top: var(--sp-6) !important;
    padding-bottom: var(--sp-4) !important;
    min-height: auto !important;
  }
  .page-hero--dramatic .hero__content,
  .hero--dramatic .hero__content {
    min-height: auto !important;
    max-width: 100% !important;
  }
  .page-hero--dramatic .hero__h1,
  .hero--dramatic .hero__h1 {
    font-size: clamp(1.75rem, 6.5vw, 2.25rem) !important;
    line-height: 1.1 !important;
    margin: var(--sp-3) 0 var(--sp-3) !important;
  }
  .page-hero--dramatic .hero__h1 br,
  .hero--dramatic .hero__h1 br { display: none !important; }
  .page-hero--dramatic .hero__lede,
  .hero--dramatic .hero__lede {
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    margin-bottom: var(--sp-3) !important;
  }
  .hero__stats-strip {
    padding: var(--sp-3) 0 var(--sp-3) !important;
  }
  .hero__stats-inner {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--sp-3) !important;
    padding: 0 var(--gutter, 20px);
  }
  .hero__stats-inner strong {
    font-size: 1.375rem !important;
  }
  .hero__stats-meta {
    grid-column: span 2 !important;
    font-size: 0.6rem !important;
    padding-top: var(--sp-2) !important;
    border-top: 1px solid rgba(255,255,255,0.15);
    flex-direction: row !important;
    gap: var(--sp-3) !important;
    flex-wrap: wrap;
  }
  .hero--dramatic .nav-cta,
  .hero--dramatic .hero__ctas {
    flex-wrap: wrap;
    gap: 8px !important;
  }
  .hero--dramatic .btn,
  .page-hero--dramatic .btn {
    padding: 10px 16px !important;
    font-size: 0.875rem !important;
  }
}

/* ---------- 3. MOBILE DRAWER — fills screen vertically ---------- */
@media (max-width: 1080px) {
  header.topnav .mainnav-wrap {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(420px, 100vw) !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    background: #fff !important;
    box-shadow: -20px 0 40px rgba(15,34,54,0.2) !important;
    transform: translateX(100%) !important;
    transition: transform 0.3s ease !important;
    z-index: 1200 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 72px 20px 20px 20px !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }
  body.nav-open header.topnav .mainnav-wrap {
    transform: translateX(0) !important;
  }
  body.nav-open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
  }
  body.nav-open::after {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    background: rgba(15,34,54,0.55) !important;
    z-index: 1150 !important;
  }

  /* Close button inside drawer */
  .nav-drawer-close {
    display: inline-flex !important;
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    width: 40px !important;
    height: 40px !important;
    background: transparent !important;
    border: 1px solid var(--kst-border) !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--kst-text) !important;
    z-index: 10 !important;
    padding: 0 !important;
  }
  .nav-drawer-close svg { width: 18px; height: 18px; }

  /* Main nav list — fills drawer */
  header.topnav .mainnav {
    display: block !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }
  header.topnav .mainnav > li {
    display: block !important;
    width: 100% !important;
    border-bottom: 1px solid var(--kst-border) !important;
    position: relative !important;
  }
  header.topnav .mainnav > li > a,
  header.topnav .mainnav > li > button {
    display: flex !important;
    width: 100% !important;
    padding: 16px 0 !important;
    background: transparent !important;
    border: 0 !important;
    text-align: left !important;
    align-items: center !important;
    justify-content: space-between !important;
    font-family: var(--ff-sans) !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    color: var(--kst-text) !important;
    cursor: pointer !important;
    min-height: 56px !important;
  }
  header.topnav .mainnav > li.is-open > button {
    color: var(--kst-primary) !important;
  }
  header.topnav .mainnav > li > button .caret,
  header.topnav .mainnav > li > a .caret {
    width: 14px;
    height: 14px;
    color: var(--kst-text-muted);
    transition: transform 0.25s ease;
    flex-shrink: 0;
  }
  header.topnav .mainnav > li.is-open > button .caret {
    transform: rotate(180deg);
    color: var(--kst-primary);
  }

  /* Mega menu → accordion */
  header.topnav .has-menu--mega .megamenu,
  header.topnav .has-menu--mega .megamenu--fullbleed,
  header.topnav .has-menu--dropdown .dropdown {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    box-shadow: none !important;
    border: 0 !important;
    background: var(--kst-bg) !important;
    padding: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.35s ease, padding 0.3s ease !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    display: block !important;
    visibility: visible !important;
  }
  header.topnav .mainnav > li.is-open > .megamenu,
  header.topnav .mainnav > li.is-open > .megamenu--fullbleed,
  header.topnav .mainnav > li.is-open > .dropdown {
    max-height: 4000px !important;
    padding: var(--sp-3) 0 var(--sp-5) !important;
  }

  header.topnav .megamenu__inner--fullbleed {
    display: block !important;
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
    padding: 0 !important;
    min-height: auto !important;
  }
  header.topnav .megamenu__feature {
    padding: var(--sp-4) !important;
    border-radius: 4px;
    margin: 0 var(--sp-3) var(--sp-4) !important;
    background: linear-gradient(155deg, var(--kst-primary) 0%, var(--kst-dark) 100%) !important;
  }
  header.topnav .megamenu__feature h3 { font-size: 1rem !important; line-height: 1.3; }
  header.topnav .megamenu__feature p { font-size: 0.8rem !important; }
  header.topnav .mm-feature-stats {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--sp-2) !important;
    margin-top: var(--sp-3) !important;
    padding-top: var(--sp-3) !important;
  }
  header.topnav .mm-feature-stats strong { font-size: 1.05rem !important; }
  header.topnav .mm-feature-stats span { font-size: 0.6rem !important; }

  header.topnav .megamenu__cols,
  header.topnav .megamenu__cols--3 {
    display: block !important;
    grid-template-columns: 1fr !important;
    padding: 0 var(--sp-3) !important;
    gap: 0 !important;
  }
  header.topnav .mm-col { margin-bottom: var(--sp-4); }
  header.topnav .mm-col__head {
    padding-bottom: var(--sp-2);
    margin-bottom: var(--sp-2);
  }
  header.topnav .megamenu__grid,
  header.topnav .mm-col__items {
    display: block !important;
  }
  header.topnav .megamenu__grid a,
  header.topnav .mm-col__items a {
    display: block !important;
    padding: 10px 12px !important;
    font-size: 0.875rem !important;
    min-height: 44px;
    border-radius: 3px;
  }
  header.topnav .mm-col__note {
    padding: var(--sp-3);
    background: #fff;
    border: 1px solid var(--kst-border);
    border-radius: 4px;
    margin: var(--sp-3) 0;
  }

  header.topnav .dropdown__inner,
  header.topnav .dropdown__inner--1col {
    display: block !important;
    grid-template-columns: 1fr !important;
    padding: 0 var(--sp-3) !important;
    gap: var(--sp-3) !important;
  }
  header.topnav .dropdown__col a {
    display: block !important;
    padding: 10px 12px !important;
    font-size: 0.875rem !important;
    min-height: 44px;
  }

  /* Hide burger once drawer open */
  body.nav-open header.topnav .nav-cta .nav-burger {
    display: none !important;
  }

  /* Topnav fixed when drawer open */
  body.nav-open header.topnav {
    position: fixed !important;
    top: 0; left: 0; right: 0;
    z-index: 1180 !important;
  }
  body.nav-open .announce { display: none !important; }

  /* Mobile drawer footer — always show when drawer rendered */
  .mainnav-mobile-footer {
    display: block !important;
    margin-top: auto !important;
    padding-top: var(--sp-5) !important;
  }
  .mainnav-mobile-footer .btn--primary {
    display: flex !important;
    justify-content: center;
    width: 100%;
    margin-bottom: var(--sp-5);
  }
  .mainnav-mobile-meta {
    display: grid !important;
    gap: var(--sp-4) !important;
    padding-top: var(--sp-4);
    border-top: 1px solid var(--kst-border);
  }
}

/* Smallest phones — full-width drawer */
@media (max-width: 520px) {
  header.topnav .mainnav-wrap {
    width: 100vw !important;
  }
}

/* Desktop ≥1081 — hide all mobile-only bits */
@media (min-width: 1081px) {
  header.topnav .nav-cta .nav-burger { display: none !important; }
  .nav-drawer-close,
  .mainnav-mobile-footer,
  .mainnav-mobile-meta,
  .mainnav-mobile-locations,
  .mainnav-mobile-loc-list,
  .mainnav-mobile-contact,
  .mainnav-mobile-label {
    display: none !important;
  }
}

/* =========================================================
   v3.0 — LEGAL PAGES POLISH
   ========================================================= */

/* Document metadata strip at top */
.policy-meta-strip {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5);
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
  border-left: 3px solid var(--kst-primary);
  margin-top: 0;
}
.policy-meta-strip__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.policy-meta-strip__label {
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.policy-meta-strip__item strong {
  font-family: var(--ff-display);
  font-size: 0.875rem;
  color: var(--kst-text);
  font-weight: 600;
  letter-spacing: -0.005em;
}

/* Sidebar meta under TOC */
.policy-side-meta {
  margin-top: var(--sp-5);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--kst-border);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.policy-side-meta__item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.policy-side-meta__item span {
  font-family: var(--ff-mono);
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  font-weight: 500;
}
.policy-side-meta__item strong {
  font-size: 0.8125rem;
  color: var(--kst-text);
  font-weight: 500;
  font-family: var(--ff-mono);
}

/* Numbered policy sections */
.policy-section {
  position: relative;
  padding-left: 56px;
  margin-bottom: var(--sp-7) !important;
  padding-top: var(--sp-2);
}
.policy-section::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 2px;
  background: var(--kst-border);
}
.policy-section__num {
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: var(--kst-primary);
  font-weight: 600;
  background: #fff;
  padding: 8px 0;
  border: 1px solid var(--kst-border);
  border-radius: 2px;
}
.policy-content .policy-section h2 {
  font-family: var(--ff-display);
  font-size: 1.5rem;
  font-weight: 600;
  margin: 0 0 var(--sp-3);
  letter-spacing: -0.01em;
  color: var(--kst-text);
  line-height: 1.25;
}
.policy-content .policy-section h3 {
  font-family: var(--ff-display);
  font-size: 1.0625rem;
  font-weight: 600;
  margin: var(--sp-4) 0 var(--sp-2);
  letter-spacing: -0.005em;
}
.policy-content .policy-section p {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--kst-text-secondary);
  margin-bottom: var(--sp-3);
}
.policy-content .policy-section ul,
.policy-content .policy-section ol {
  margin: var(--sp-3) 0;
  padding-left: var(--sp-4);
}
.policy-content .policy-section li {
  margin-bottom: var(--sp-2);
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--kst-text-secondary);
}
.policy-content .policy-section li strong {
  color: var(--kst-text);
  font-weight: 600;
}

/* Contact box at bottom of legal page */
.policy-contact-box {
  margin-top: var(--sp-7);
  padding: var(--sp-6) var(--sp-5);
  background: linear-gradient(135deg, var(--kst-primary) 0%, var(--kst-dark) 100%);
  color: #fff;
  border-radius: 4px;
}
.policy-contact-box .eyebrow {
  color: rgba(255,255,255,0.75);
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  display: inline-block;
  margin-bottom: var(--sp-2);
}
.policy-contact-box h3 {
  font-family: var(--ff-display);
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 var(--sp-2);
  color: #fff;
  letter-spacing: -0.005em;
}
.policy-contact-box p {
  font-size: 0.9375rem;
  color: rgba(255,255,255,0.85);
  margin: 0 0 var(--sp-4);
}
.policy-contact-box__cta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.policy-contact-box .btn--primary {
  background: #fff;
  color: var(--kst-primary);
  border-color: #fff;
}
.policy-contact-box .btn--primary:hover {
  background: var(--kst-bg);
}
.policy-contact-box .btn--secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,0.4);
}
.policy-contact-box .btn--secondary:hover {
  background: rgba(255,255,255,0.1);
  border-color: #fff;
}

/* Mobile */
@media (max-width: 1080px) {
  .policy-meta-strip { grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); }
}
@media (max-width: 860px) {
  .policy-meta-strip { grid-template-columns: 1fr; padding: var(--sp-3) var(--sp-4); }
  .policy-section { padding-left: 0; }
  .policy-section::before { display: none; }
  .policy-section__num { position: static; margin-bottom: var(--sp-3); display: inline-flex; }
  .policy-content .policy-section h2 { font-size: 1.25rem; }
  .policy-contact-box__cta { flex-direction: column; }
  .policy-contact-box__cta .btn { width: 100%; justify-content: center; }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }

/* =========================================================
   v3.1 — MULTI-STEP FORMS (Network + Careers)
   ========================================================= */

/* Mega menu tag chip */
.mm-tag {
  display: inline-flex;
  align-items: center;
  margin-left: auto;
  font-family: var(--ff-mono);
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text-muted);
  background: var(--kst-bg);
  padding: 2px 6px;
  border-radius: 2px;
  font-weight: 500;
}
.mm-tag--accent {
  color: #fff;
  background: var(--kst-primary);
}

/* Form wrap */
.multistep-form-wrap {
  max-width: 900px;
  margin: var(--sp-5) auto 0;
  background: #fff;
  border: 1px solid var(--kst-border);
}
.multistep-form {
  padding: 0;
}

/* Progress bar */
.ms-progress {
  background: var(--kst-bg);
  border-bottom: 1px solid var(--kst-border);
  padding: var(--sp-4) var(--sp-5) var(--sp-3);
}
.ms-progress__bar {
  width: 100%;
  height: 4px;
  background: var(--kst-border);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: var(--sp-3);
}
.ms-progress__fill {
  height: 100%;
  background: var(--kst-primary);
  transition: width 0.3s ease;
}
.ms-progress__steps {
  display: flex;
  gap: var(--sp-1);
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}
.ms-progress__step {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 4px 6px;
  font-family: var(--ff-mono);
  font-size: 0.78rem;
  color: var(--kst-text-muted);
  font-weight: 500;
  min-width: 32px;
  border-radius: 3px;
  cursor: default;
  transition: color 0.2s, background 0.2s;
}
.ms-progress__step small {
  font-size: 0.6rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 400;
}
.ms-progress__step.is-active {
  color: var(--kst-primary);
  background: rgba(30,58,95,0.08);
}
.ms-progress__step.is-done {
  color: var(--kst-text);
  cursor: pointer;
}
.ms-progress__step.is-done:hover {
  background: var(--kst-bg);
}

/* Steps */
.ms-step {
  display: none;
  padding: var(--sp-5) var(--sp-5) var(--sp-5);
  border: 0;
  margin: 0;
  min-width: 0;
}
.ms-step.is-active {
  display: block;
  animation: ms-fade-in 0.25s ease;
}
@keyframes ms-fade-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.ms-step__legend {
  width: 100%;
  margin-bottom: var(--sp-4);
  padding: 0;
  border: 0;
  float: none;
}
.ms-step__num {
  display: inline-block;
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kst-primary);
  font-weight: 600;
  margin-bottom: var(--sp-2);
}
.ms-step__legend h3 {
  font-family: var(--ff-display);
  font-size: 1.5rem;
  font-weight: 600;
  margin: 0 0 var(--sp-2);
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--kst-text);
}
.ms-step__legend p {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--kst-text-secondary);
  margin: 0;
}

/* Field grid */
.ms-grid {
  display: grid;
  gap: var(--sp-3);
}
.ms-grid--2 {
  grid-template-columns: 1fr 1fr;
}
.ms-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kst-text);
  font-weight: 500;
  position: relative;
}
.ms-field--full { grid-column: 1 / -1; }
.ms-field em {
  font-style: normal;
  color: var(--kst-amber);
  text-transform: uppercase;
  font-size: 0.62rem;
  margin-left: 6px;
  letter-spacing: 0.08em;
}
.ms-field input[type="text"],
.ms-field input[type="email"],
.ms-field input[type="tel"],
.ms-field input[type="url"],
.ms-field select,
.ms-field textarea {
  padding: 10px 12px;
  font-family: var(--ff-sans);
  font-size: 0.9375rem;
  text-transform: none;
  letter-spacing: normal;
  color: var(--kst-text);
  background: #fff;
  border: 1px solid var(--kst-border);
  border-radius: 2px;
  min-height: 42px;
  transition: border-color 0.15s, box-shadow 0.15s;
  font-weight: 400;
}
.ms-field input:focus,
.ms-field select:focus,
.ms-field textarea:focus {
  outline: none;
  border-color: var(--kst-primary);
  box-shadow: 0 0 0 3px rgba(30,58,95,0.1);
}
.ms-field textarea {
  resize: vertical;
  min-height: 90px;
}
.ms-field__hint {
  font-family: var(--ff-sans);
  font-size: 0.75rem;
  letter-spacing: normal;
  text-transform: none;
  color: var(--kst-text-muted);
  font-weight: 400;
  margin-top: 2px;
}

/* Radio tile grid (for applicant_type) */
.radio-tile-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-2);
}
.radio-tile {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3);
  background: #fff;
  border: 1px solid var(--kst-border);
  border-radius: 3px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
  font-size: 0.875rem;
  color: var(--kst-text);
  min-height: 56px;
}
.radio-tile:hover {
  border-color: var(--kst-primary);
  background: var(--kst-bg);
}
.radio-tile input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.radio-tile__check {
  width: 16px;
  height: 16px;
  border: 2px solid var(--kst-border-strong);
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
  transition: border-color 0.15s;
}
.radio-tile__check::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--kst-primary);
  transform: scale(0);
  transition: transform 0.15s;
}
.radio-tile input[type="radio"]:checked ~ .radio-tile__check {
  border-color: var(--kst-primary);
}
.radio-tile input[type="radio"]:checked ~ .radio-tile__check::after {
  transform: scale(1);
}
.radio-tile:has(input:checked) {
  border-color: var(--kst-primary);
  background: rgba(30,58,95,0.04);
  box-shadow: 0 0 0 1px var(--kst-primary);
}
.radio-tile strong {
  font-weight: 500;
}

/* Radio pills (smaller, inline) */
.radio-row {
  display: flex;
  gap: var(--sp-2);
  flex-wrap: nowrap;
  margin-top: 4px;
}
.radio-row--wrap { flex-wrap: wrap; }
.radio-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--kst-border);
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--ff-sans);
  font-size: 0.875rem;
  text-transform: none;
  letter-spacing: normal;
  color: var(--kst-text);
  font-weight: 400;
  transition: border-color 0.15s, background 0.15s;
  min-height: 36px;
}
.radio-pill:hover { border-color: var(--kst-primary); }
.radio-pill input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.radio-pill:has(input:checked) {
  background: var(--kst-primary);
  color: #fff;
  border-color: var(--kst-primary);
}

/* Check tile grid */
.check-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 4px;
}
.check-tile {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid var(--kst-border);
  border-radius: 3px;
  cursor: pointer;
  font-family: var(--ff-sans);
  font-size: 0.85rem;
  letter-spacing: normal;
  text-transform: none;
  color: var(--kst-text);
  font-weight: 400;
  line-height: 1.4;
  transition: border-color 0.15s, background 0.15s;
  min-height: 40px;
}
.check-tile--small {
  padding: 8px 10px;
  font-size: 0.825rem;
  min-height: 36px;
}
.check-tile:hover { border-color: var(--kst-primary); }
.check-tile input[type="checkbox"] {
  margin: 2px 0 0 0;
  width: 14px;
  height: 14px;
  accent-color: var(--kst-primary);
  flex-shrink: 0;
}
.check-tile:has(input:checked) {
  background: rgba(30,58,95,0.06);
  border-color: var(--kst-primary);
}

/* Upload tiles */
.upload-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-3);
}
.upload-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--sp-4);
  background: #fff;
  border: 2px dashed var(--kst-border);
  border-radius: 4px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  min-height: 130px;
  text-align: left;
}
.upload-tile:hover {
  border-color: var(--kst-primary);
  background: var(--kst-bg);
}
.upload-tile input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.upload-tile__icon {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--kst-bg);
  color: var(--kst-primary);
  border-radius: 4px;
}
.upload-tile__icon svg { width: 22px; height: 22px; }
.upload-tile strong {
  font-family: var(--ff-display);
  font-size: 0.95rem;
  font-weight: 600;
  margin: 6px 0 0;
  letter-spacing: -0.005em;
  color: var(--kst-text);
}
.upload-tile strong em {
  color: var(--kst-amber);
  font-style: normal;
  font-family: var(--ff-mono);
  font-size: 0.62rem;
  margin-left: 6px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.upload-tile span:last-child {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: var(--kst-text-muted);
  text-transform: none;
}
.upload-tile--required {
  border-color: var(--kst-primary);
  border-style: solid;
  background: rgba(30,58,95,0.03);
}
.upload-tile.is-filled {
  border-color: var(--kst-teal, #2da890);
  border-style: solid;
  background: rgba(45,168,144,0.05);
}
.upload-tile.is-filled .upload-tile__icon {
  background: var(--kst-teal, #2da890);
  color: #fff;
}

/* Consent block */
.consent-block {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding: var(--sp-4);
  background: var(--kst-bg);
  border: 1px solid var(--kst-border);
  border-radius: 3px;
}
.consent-row {
  display: flex;
  gap: var(--sp-3);
  align-items: flex-start;
  padding: var(--sp-2);
  font-family: var(--ff-sans);
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--kst-text-secondary);
  letter-spacing: normal;
  text-transform: none;
  font-weight: 400;
  cursor: pointer;
  border-radius: 2px;
  transition: background 0.15s;
}
.consent-row:hover {
  background: rgba(30,58,95,0.03);
}
.consent-row input[type="checkbox"] {
  margin-top: 3px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--kst-primary);
}
.consent-row strong {
  color: var(--kst-text);
  font-weight: 600;
}
.consent-row a { color: var(--kst-primary); }

/* Disclaimer */
.ms-disclaimer {
  margin-top: var(--sp-3);
  padding: var(--sp-3);
  background: var(--kst-bg);
  border-left: 3px solid var(--kst-amber);
  font-family: var(--ff-sans);
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--kst-text-secondary);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
}
.ms-disclaimer--small {
  font-size: 0.75rem;
  padding: var(--sp-2) var(--sp-3);
}

/* Action buttons */
.ms-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--sp-3);
  margin-top: var(--sp-5);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--kst-border);
  flex-wrap: wrap;
}
.ms-actions .btn--primary {
  margin-left: auto;
}
.ms-actions .btn--secondary + .btn--primary,
.ms-actions .ms-prev + .ms-next {
  margin-left: 0;
}

/* Form success state */
.form-success {
  display: none;
  padding: var(--sp-7) var(--sp-5);
  text-align: center;
}
.form-success__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto var(--sp-4);
  color: var(--kst-teal, #2da890);
}
.form-success__icon svg { width: 100%; height: 100%; }
.form-success h3 {
  font-family: var(--ff-display);
  font-size: 1.5rem;
  font-weight: 600;
  margin: 0 0 var(--sp-3);
  letter-spacing: -0.01em;
  color: var(--kst-text);
}
.form-success p {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--kst-text-secondary);
  max-width: 540px;
  margin: 0 auto var(--sp-3);
}
.form-success__small {
  font-size: 0.8125rem;
  color: var(--kst-text-muted);
}
.form-success__cta {
  margin-top: var(--sp-5);
  display: flex;
  justify-content: center;
  gap: var(--sp-3);
  flex-wrap: wrap;
}

/* Mobile */
@media (max-width: 1080px) {
  .radio-tile-grid { grid-template-columns: repeat(2, 1fr); }
  .check-grid { grid-template-columns: repeat(2, 1fr); }
  .upload-grid { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .ms-step { padding: var(--sp-4) var(--sp-3); }
  .ms-progress { padding: var(--sp-3); }
  .ms-progress__steps { gap: 2px; }
  .ms-progress__step {
    min-width: 28px;
    padding: 2px 4px;
    font-size: 0.7rem;
  }
  .ms-progress__step small { font-size: 0.55rem; }
  .ms-grid--2 { grid-template-columns: 1fr; }
  .radio-tile-grid { grid-template-columns: 1fr; }
  .check-grid { grid-template-columns: 1fr; }
  .ms-actions { flex-direction: column-reverse; align-items: stretch; }
  .ms-actions .btn { width: 100%; justify-content: center; margin-left: 0 !important; }
  .ms-step__legend h3 { font-size: 1.25rem; }
  .form-success__cta { flex-direction: column; align-items: stretch; }
}

/* Policy / legal content */
.policy-content section { margin-bottom: var(--sp-7); }
.policy-content h2 { font-family: var(--ff-display); font-size: 1.625rem; font-weight: 500; margin: 0 0 var(--sp-4); color: var(--kst-text); }
.policy-content h3 { font-family: var(--ff-display); font-size: 1.125rem; font-weight: 500; margin: var(--sp-4) 0 var(--sp-3); }
.policy-content p { margin-bottom: var(--sp-3); }
.policy-content ul, .policy-content ol { margin: var(--sp-3) 0 var(--sp-3) var(--sp-4); }
.policy-content li { margin-bottom: var(--sp-2); }
