/* SOMZ Consultants: section styles (Steps 03–08).
   Order follows the page: header → hero/projects panel → impact → agencies → about →
   expertise → workflow → case study → projects → leadership → contact → footer. */

/* ════════ Step 03 · Utility strip ════════ */
.utility-strip {
  display: none;
  background: var(--paper-warm);
  border-bottom: 1px solid var(--line);
  font-size: var(--fs-micro);
  color: var(--ink-3);
}
.utility-strip__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); height: 32px; }
.utility-strip a { color: inherit; text-decoration: none; }
.utility-strip a:hover { color: var(--ink); text-decoration: underline; }
.utility-strip__sep { margin-inline: var(--space-2); color: var(--line-strong); }
@media (min-width: 1024px) { .utility-strip { display: block; } }

/* ════════ Step 03 · Header ════════ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur) var(--ease);
}
.site-header.is-scrolled { border-bottom-color: var(--line); }
.site-header::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 3px;
  background: var(--brand-stripe);
}
.site-header__inner {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  max-width: 1360px;
  height: var(--header-h);
}

/* Logo lockup (assets/img/somz-logo.png, 960×282) */
.brand-logo { display: block; flex: none; border-radius: var(--radius-sm); }
.brand-logo img { width: auto; height: 38px; }

.site-nav__list { display: flex; }
.site-nav a:not(.btn) {
  position: relative;
  display: block;
  padding: var(--space-2) 10px;
  color: var(--ink-2);
  font-size: var(--fs-small);
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
}
.site-nav a:not(.btn)::after {
  content: "";
  position: absolute;
  left: 10px; right: 10px; bottom: 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur) var(--ease);
}
.site-nav a:not(.btn):hover { color: var(--ink); }
.site-nav a[aria-current] { color: var(--ink); font-weight: 600; }
.site-nav a[aria-current]::after { transform: scaleX(1); background: var(--brand-purple); }

.site-header__actions { display: flex; align-items: center; gap: var(--space-2); flex: none; margin-left: auto; }
.btn--print { width: 44px; padding: 0; }
.btn--print .btn__label {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.nav-toggle { padding: 0 12px; }
.nav-toggle__label {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

@media (min-width: 480px) {
  .site-header__inner { gap: var(--space-5); }
  .brand-logo img { height: 44px; }
  .nav-toggle__label { position: static; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; }
}

/* Mobile / tablet: collapsible full-width panel */
@media (max-width: 1023.98px) {
  .site-nav {
    position: absolute;
    top: 100%; left: 0; right: 0;
    display: none;
    max-height: calc(100vh - var(--header-h));
    overflow-y: auto;
    background: var(--paper);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }
  .site-nav.is-open { display: block; }
  .site-nav .site-nav__list { flex-direction: column; max-width: var(--container); margin-inline: auto; padding: var(--space-2) var(--gutter) var(--space-6); }
  .site-nav a:not(.btn) { padding: var(--space-4) 0; font-size: var(--fs-body); border-bottom: 1px solid var(--line); }
  .site-nav a:not(.btn)::after { left: 0; right: auto; bottom: -1px; width: 32px; }
  .site-nav__cta { margin-top: var(--space-5); }
  .site-header__cta { display: none; }
}
@media (min-width: 1024px) {
  .brand-logo img { height: 50px; }
  .nav-toggle, .site-nav__cta { display: none; }
  .site-nav { margin-left: auto; }
}
@media (min-width: 1024px) and (max-width: 1279.98px) {
  .site-header__cta { display: none; }
  .site-nav a:not(.btn) { padding-inline: 8px; }
  .site-nav a:not(.btn)::after { left: 8px; right: 8px; }
}
@media (min-width: 1600px) {
  .btn--print { width: auto; padding: 0 20px; }
  .btn--print .btn__label { position: static; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; }
}

/* ════════ Step 03 · Hero ════════ */
.hero { position: relative; overflow: hidden; padding-block: var(--space-8) 80px; }
/* Decorative 2×2 tinted squares echoing the logo */
.hero__art {
  position: absolute;
  top: 24px;
  right: max(0px, calc((100vw - var(--container)) / 2 - 8px));
  display: none;
  grid-template-columns: repeat(2, 200px);
  gap: 8px;
  pointer-events: none;
}
.hero__art span { width: 200px; height: 200px; }
.hero__art span:nth-child(1) { background: var(--green-wash); }
.hero__art span:nth-child(2) { background: var(--purple-wash); }
.hero__art span:nth-child(3) { background: var(--teal-wash); }
.hero__art span:nth-child(4) { background: var(--gray-wash); }
@media (min-width: 1024px) { .hero__art { display: grid; } }
.hero__grid { position: relative; display: grid; gap: var(--space-8); align-items: start; }
.hero h1 { max-width: 16ch; font-size: var(--fs-display); font-weight: 500; letter-spacing: -0.015em; }
.hero__lede { margin-top: var(--space-5); max-width: 52ch; font-size: var(--fs-lede); line-height: 1.55; color: var(--ink-2); }
.hero__sub { margin-top: var(--space-4); max-width: 60ch; font-size: var(--fs-small); color: var(--ink-3); }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-6); margin-top: var(--space-6); }

.credentials,
.facts-strip {
  display: flex;
  flex-wrap: wrap;
  row-gap: var(--space-2);
  font: 600 var(--fs-micro)/1.4 var(--font-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.credentials { margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.credentials li,
.facts-strip li { padding-inline: var(--space-4); border-left: 1px solid var(--line-strong); }
.credentials li:first-child,
.facts-strip li:first-child { padding-left: 0; border-left: 0; }

@media (max-width: 639.98px) {
  .credentials, .facts-strip { flex-direction: column; }
  .credentials li, .facts-strip li { padding-left: 0; border-left: 0; }
}

@media (min-width: 1024px) {
  .hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-8); }
}

/* ════════ Home · Ongoing / Completed projects panel ════════ */
.home-projects {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  box-shadow: 0 1px 2px rgba(20, 30, 40, .04), 0 12px 32px -16px rgba(20, 30, 40, .14);
}
.hp__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--paper-cool);
  border-bottom: 1px solid var(--line);
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}
.hp__title {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font: 600 var(--fs-micro)/1.3 var(--font-sans);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--ink);
}
.live-dot { position: relative; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--brand-green); }
.live-dot::after {
  content: "";
  position: absolute;
  inset: -4px;
  border: 1px solid var(--brand-green);
  border-radius: 50%;
  opacity: 0;
  animation: live-pulse 2.4s var(--ease) infinite;
}
@keyframes live-pulse {
  0% { transform: scale(.5); opacity: .7; }
  100% { transform: scale(1.5); opacity: 0; }
}
.hp__tabs { display: flex; padding-inline: var(--space-4); border-bottom: 1px solid var(--line); }
.hp__tab {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: 48px;
  padding: 0 var(--space-4);
  font: 600 var(--fs-small)/1 var(--font-sans);
  color: var(--ink-3);
  background: none;
  border: 0;
  cursor: pointer;
}
.hp__tab:first-child { padding-left: 0; }
.hp__tab::after { content: ""; position: absolute; left: var(--space-4); right: var(--space-4); bottom: -1px; height: 2px; background: transparent; }
.hp__tab:first-child::after { left: 0; }
.hp__tab[aria-selected="true"] { color: var(--ink); }
.hp__tab[aria-selected="true"]::after { background: var(--brand-purple); }
.hp__tab:hover { color: var(--ink); }
.hp__tab:focus-visible { outline-offset: -4px; }

.hp__panel { display: flex; flex-direction: column; min-height: 0; }
.hp__panel[hidden] { display: none; }
.hp__viewport {
  max-height: 360px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--line-strong) transparent;
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 28px), transparent 100%);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 28px), transparent 100%);
}
.hp__viewport:focus-visible { outline-offset: -2px; }
@media (min-width: 1024px) { .hp__viewport { max-height: 400px; } }
.hp__list { padding-bottom: var(--space-4); }

.hp__item { padding: var(--space-4); border-bottom: 1px solid var(--line); }
.hp__item:last-child { border-bottom: 0; }
.hp__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-1) var(--space-3);
  margin-bottom: var(--space-1);
  font: 600 var(--fs-micro)/1.4 var(--font-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hp__sector { color: var(--accent); }
.hp__country { color: var(--ink-3); }
.hp__name { font: 600 1.0625rem/1.35 var(--font-serif); color: var(--ink); letter-spacing: -0.005em; }
.hp__scope, .hp__study {
  display: -webkit-box;
  overflow: hidden;
  font-size: var(--fs-small);
  line-height: 1.55;
  color: var(--ink-2);
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}
.hp__scope { margin-top: var(--space-1); }
.hp__study { -webkit-line-clamp: 3; line-clamp: 3; color: var(--ink); }
.hp__item .progress { margin-top: var(--space-3); }
.hp__empty { padding: var(--space-6) var(--space-4); font-size: var(--fs-small); color: var(--ink-3); }

.hp__cats { display: flex; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); }
.hp__cats a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 0 var(--space-3);
  font-size: var(--fs-micro);
  font-weight: 600;
  color: var(--ink-2);
  text-decoration: none;
  background: var(--gray-wash);
  border-radius: var(--radius-pill);
}
.hp__cats a:hover { color: var(--ink); background: var(--teal-wash); }
.hp__cat-count { color: var(--accent); }

.hp__more {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 48px;
  margin-top: auto;
  padding: 0 var(--space-4);
  font-size: var(--fs-small);
  font-weight: 600;
  text-decoration: none;
  border-top: 1px solid var(--line);
}
.hp__more .icon { width: 16px; height: 16px; }

@media (prefers-reduced-motion: reduce) {
  .live-dot::after { animation: none; }
}

/* ════════ Step 04 · Impact counter strip ════════ */
.impact { padding-block: var(--space-7); border-block: 1px solid var(--line); }
.impact__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.impact__item { align-items: center; padding: var(--space-5) var(--space-3); text-align: center; }
.impact__item:nth-child(even) { border-left: 1px solid var(--line); }
.impact__item:nth-child(n + 3) { border-top: 1px solid var(--line); }
.impact__item .stat__value { font-size: clamp(2.25rem, 1.8rem + 2vw, 3.5rem); line-height: 1; white-space: nowrap; }
.impact__item .stat__label { color: var(--ink-2); }
.impact__item .stat__note { max-width: 28ch; font-size: var(--fs-small); color: var(--ink-3); }
@media (min-width: 1024px) {
  .impact__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .impact__item { padding-block: var(--space-3); }
  .impact__item:nth-child(n) { border-top: 0; border-left: 1px solid var(--line); }
  .impact__item:first-child { border-left: 0; }
}

/* ════════ Step 04 · Government agency ribbon ════════ */
.agencies { padding-block: 40px; overflow: hidden; }
@supports (overflow: clip) {
  .agencies { overflow: visible; overflow-x: clip; }
}
.agencies__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.agencies__label { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--space-4); }
.agencies__label .eyebrow { flex-basis: 100%; margin-bottom: var(--space-1); }
.agencies__sub { font-size: var(--fs-small); color: var(--ink-3); }
.ribbon-toggle { margin-left: auto; }
.agencies__note { margin-top: var(--space-5); font-size: var(--fs-micro); color: var(--ink-3); max-width: none; }

/* Two identical lists side by side; the track slides left by exactly one list. */
.ribbon {
  min-width: 0;
  overflow: hidden;
  padding-block: var(--space-2);
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
}
.ribbon:focus-visible { outline-offset: 2px; }
.ribbon__track { display: flex; width: max-content; animation: marquee var(--ribbon-duration, 54s) linear infinite; }
.ribbon:hover .ribbon__track,
.ribbon:focus-within .ribbon__track,
.ribbon.is-paused .ribbon__track { animation-play-state: paused; }
.ribbon__list { display: flex; flex: none; align-items: stretch; gap: var(--space-4); padding-right: var(--space-4); }
.ribbon__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 264px;
  min-height: 84px;
  padding: var(--space-3) var(--space-4);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  transition: border-color 200ms var(--ease), transform 200ms var(--ease), box-shadow 200ms var(--ease);
}
.ribbon__item:hover { border-color: var(--brand-teal); transform: translateY(-2px); box-shadow: 0 8px 20px -12px rgba(0, 109, 108, .35); }
.ribbon__logo { flex: none; width: auto; max-width: 72px; max-height: 52px; object-fit: contain; }
.ribbon__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ribbon__abbr { font: 600 1.0625rem/1.25 var(--font-serif); color: var(--ink); }
.ribbon__name {
  display: -webkit-box;
  overflow: hidden;
  font-size: var(--fs-micro);
  line-height: 1.4;
  color: var(--ink-3);
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}
@keyframes marquee { to { transform: translateX(-50%); } }

@media (min-width: 1200px) {
  .agencies__label { padding-bottom: var(--space-4); border-bottom: 1px solid var(--line); }
  .agencies__label .eyebrow { flex-basis: auto; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ribbon { -webkit-mask-image: none; mask-image: none; }
  .ribbon__track { display: block; width: auto; animation: none; }
  .ribbon__list { flex-wrap: wrap; padding-right: 0; }
  .ribbon__list[aria-hidden="true"], .ribbon-toggle { display: none; }
  .ribbon__item:hover { transform: none; }
}

/* ════════ Step 04 · About ════════ */
.section-head--bare { margin-bottom: var(--space-6); }
.section-head--bare .eyebrow { margin-bottom: 0; }
.about__grid { display: grid; gap: var(--space-7); }
.about__name { margin-top: var(--space-5); font: 600 1.25rem/1.3 var(--font-serif); color: var(--ink); }
.about__role { margin-top: var(--space-2); max-width: 34ch; font-size: var(--fs-small); color: var(--ink-3); }
.about__person .eyebrow { margin-bottom: 0; }
.about__title { margin-bottom: var(--space-6); font-size: var(--fs-h2); }

.quote { position: relative; }
.quote__mark {
  display: block;
  height: .5em;
  font: 500 4.5rem/1 var(--font-serif);
  color: var(--line-strong);
}
.quote__lede { font: 400 var(--fs-lede)/1.6 var(--font-serif); color: var(--ink); }
.quote p + p { margin-top: var(--space-5); }
.quote__footer { margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: var(--fs-small); color: var(--ink-3); }
.quote__footer cite { font-style: normal; font-weight: 600; color: var(--ink); }

.exec-summary { margin-top: var(--space-9); padding-top: var(--space-6); border-top: 1px solid var(--line); }
.exec-summary h3 { margin-bottom: var(--space-5); font-size: var(--fs-h3); }
.exec-summary__cols p { max-width: 68ch; }
.exec-summary__cols p + p { margin-top: var(--space-4); }

.mv-grid { margin-top: var(--space-8); }
.mv-card { border-top: 3px solid var(--brand-green); }
.mv-card + .mv-card { border-top-color: var(--brand-purple); }
.mv-card .eyebrow { margin-bottom: var(--space-4); }
.mv-card__text { font: 400 1.125rem/1.6 var(--font-serif); color: var(--ink); }

@media (min-width: 768px) {
  .exec-summary__cols { columns: 2; column-gap: var(--space-7); }
  .exec-summary__cols p { break-inside: avoid; }
}
@media (min-width: 1024px) {
  .about__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-8); }
  .quote__mark { position: absolute; left: -.55em; top: -.05em; height: auto; }
}

/* ════════ Step 04 · Core expertise ════════ */
.expertise { border-bottom: 1px solid var(--line); }
.expertise__item {
  position: relative;
  display: grid;
  gap: var(--space-4) var(--space-7);
  padding-block: var(--space-6) var(--space-7);
  border-top: 1px solid var(--line-strong);
}
.expertise__item::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: -1px;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 300ms var(--ease);
}
.expertise__item:hover::before { transform: scaleX(1); }
.expertise__num { font: 500 1rem/1 var(--font-serif); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.expertise__title { margin: var(--space-3) 0 var(--space-4); max-width: 20ch; font-size: var(--fs-h3); font-weight: 500; }
.expertise__link { margin-top: var(--space-4); }
@media (min-width: 1024px) {
  .expertise__item { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
  .expertise__body { padding-top: 28px; }
}

/* ════════ Step 05 · PPR 2025 workflow ════════ */
.wf-stepper { position: relative; margin-bottom: var(--space-6); }
.wf-track { position: absolute; top: 19px; left: 10%; right: 10%; height: 2px; background: var(--line); }
.wf-track__fill {
  position: absolute;
  inset: 0;
  background: var(--brand-green);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 400ms var(--ease);
}
.wf-tablist { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.wf-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: 0 var(--space-2) var(--space-2);
  border: 0;
  background: none;
  color: var(--ink-3);
  font-size: var(--fs-small);
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
}
.wf-tab:focus-visible { outline: none; }
.wf-tab:focus-visible .wf-node { outline: 2px solid var(--focus); outline-offset: 3px; }
.wf-tab__label { max-width: 14ch; transition: color var(--dur) var(--ease); }
.wf-tab:hover .wf-tab__label { color: var(--ink); }

.wf-node {
  display: grid;
  place-items: center;
  flex: none;
  width: 40px; height: 40px;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink-3);
  font: 600 var(--fs-small)/1 var(--font-sans);
  font-variant-numeric: tabular-nums;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.wf-node .icon { display: none; width: 18px; height: 18px; stroke-width: 2; }
.wf-tab:hover .wf-node { border-color: var(--ink); }
.wf-tab.is-complete .wf-node { background: var(--brand-green); border-color: var(--brand-green); color: #fff; }
.wf-tab.is-complete .wf-node__num { display: none; }
.wf-tab.is-complete .wf-node .icon { display: block; }
.wf-tab.is-active .wf-node { background: var(--brand-purple); border-color: var(--brand-purple); color: #fff; box-shadow: 0 0 0 4px var(--purple-wash); }
.wf-tab.is-active .wf-tab__label { color: var(--ink); font-weight: 600; }

.wf-panel { padding: var(--space-7) var(--space-7) var(--space-6); }
.wf-panel__content { min-height: 168px; transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); }
.wf-panel__content.is-leaving { opacity: 0; transform: translateY(8px); }
.wf-panel__title { margin-bottom: var(--space-4); font-size: var(--fs-h3); font-weight: 600; }
.wf-panel__body { max-width: 62ch; font-size: var(--fs-lede); line-height: 1.6; }
.wf-panel__nav {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: 1px solid var(--line);
}

/* Vertical accordion timeline (mobile) — also the print / static list */
.wf-acc { position: relative; }
.wf-acc::before { content: ""; position: absolute; left: 19px; top: 20px; bottom: 20px; width: 2px; background: var(--line); }
.wf-acc__item { position: relative; padding-bottom: var(--space-4); }
.wf-acc__heading { font-size: inherit; }
.wf-acc__btn {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  width: 100%;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--ink);
  font: 600 1.125rem/1.3 var(--font-serif);
  text-align: left;
}
.wf-acc__btn[aria-expanded="true"] .wf-node { background: var(--brand-purple); border-color: var(--brand-purple); color: #fff; }
.wf-acc__chev { margin-left: auto; color: var(--ink-3); transition: transform var(--dur) var(--ease); }
.wf-acc__btn[aria-expanded="true"] .wf-acc__chev { transform: rotate(180deg); }
.wf-acc__body { padding: var(--space-3) 0 var(--space-3) 56px; }

@media (max-width: 899.98px) {
  .wf-stepper, .wf-panel { display: none; }
}
@media (min-width: 900px) {
  .wf-acc { display: none; }
}
.workflow--static .wf-stepper,
.workflow--static .wf-panel { display: none !important; }
.workflow--static .wf-acc { display: block !important; }
.workflow--static .wf-acc__body[hidden] { display: block !important; }
.workflow--static .wf-acc__chev { display: none; }

.facts-strip { margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--line); }

/* ════════ Step 05 · Flagship case study ════════ */
.cs-head__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-4); }
.cs-head__top .eyebrow { margin: 0; }
.cs-head__intro { max-width: 64ch; }
.cs-head { margin-bottom: var(--space-7); }

.cs-stats {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.cs-stat { position: relative; padding: var(--space-5); background: var(--paper); }
.cs-stat .stat__value { font-size: clamp(1.875rem, 1.2rem + 1.2vw, 2.25rem); white-space: nowrap; }
.cs-stat .stat__note { font-size: var(--fs-small); }
.cs-stat--signal::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 2px; background: var(--signal); }
@media (min-width: 768px) {
  .cs-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.cs-main { display: grid; gap: var(--space-7); margin-top: var(--space-8); }
.cs-narrative p + p { margin-top: var(--space-6); }
.cs-pull { padding-left: var(--space-5); border-left: 2px solid var(--accent); font: 400 1.25rem/1.55 var(--font-serif); color: var(--ink); }
.cs-subhead {
  font: 600 var(--fs-micro)/1.4 var(--font-sans);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--ink);
}
.cs-record .cs-subhead { padding-bottom: var(--space-3); border-bottom: 1px solid var(--ink); }
.record { display: grid; grid-template-columns: minmax(92px, auto) minmax(0, 1fr); }
.record dt, .record dd { padding-block: var(--space-3); border-bottom: 1px solid var(--line); }
.record dt {
  padding-right: var(--space-4);
  padding-top: calc(var(--space-3) + 2px);
  font: 600 var(--fs-micro)/1.4 var(--font-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.record dd { font-size: var(--fs-small); font-weight: 500; color: var(--ink); overflow-wrap: anywhere; }
.noa { display: flex; align-items: flex-start; gap: var(--space-2); }
.noa__ref { font-variant-numeric: tabular-nums lining-nums; letter-spacing: .02em; overflow-wrap: anywhere; }
.noa__copy { margin-top: -6px; }
.cs-record .copy-status { margin-top: var(--space-2); }
@media (min-width: 1024px) {
  .cs-main { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-8); }
}

.cs-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4) var(--space-6);
  margin-top: var(--space-7);
  padding-top: var(--space-6);
  border-top: 1px solid var(--line-strong);
}

/* ════════ Step 06 · Projects: tabs ════════ */
.tabs { display: flex; flex-wrap: wrap; column-gap: var(--space-6); margin-bottom: var(--space-7); border-bottom: 1px solid var(--line); }
.tab {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: -1px;
  padding: var(--space-4) 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--ink-3);
  font: 500 clamp(1.0625rem, 1rem + .4vw, 1.25rem)/1.2 var(--font-serif);
  white-space: nowrap;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.tab:hover { color: var(--ink); }
.tab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--brand-purple); }
.tab__count {
  padding: 3px 8px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-pill);
  color: var(--ink-2);
  font: 600 var(--fs-micro)/1.2 var(--font-sans);
  font-variant-numeric: tabular-nums;
}
.tab[aria-selected="true"] .tab__count,
.hp__tab[aria-selected="true"] .tab__count { background: var(--brand-purple); border-color: var(--brand-purple); color: #fff; }
.tab-print-heading { display: none; }
.tabpanel:focus-visible { outline-offset: 8px; }

/* Ongoing mandates */
.mandate-summary { margin-bottom: var(--space-5); font-size: var(--fs-small); color: var(--ink-3); max-width: none; }
.mandate-feature { border-left: 2px solid var(--signal); }
.mandate-feature__top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); }
.mandate-feature__name { margin: var(--space-5) 0 var(--space-3); font-size: var(--fs-h3); font-weight: 600; }
.mandate-feature__scope { max-width: 80ch; }
.mandate-feature__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3) var(--space-6);
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--line);
}
.figures { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); color: var(--ink); font-weight: 600; font-size: var(--fs-small); font-variant-numeric: tabular-nums; }
.figures li + li::before { content: "·"; margin-right: var(--space-3); color: var(--ink-3); }

.mandate-grid { display: grid; gap: var(--space-5); margin-top: var(--space-5); }
.mandate-grid > li { display: flex; }
.mandate { display: flex; flex-direction: column; width: 100%; }
.mandate__top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-5); }
.mandate__sector { margin: 0; }
.mandate__status { display: inline-flex; align-items: center; gap: 6px; flex: none; font-size: var(--fs-micro); font-weight: 600; color: var(--ink-2); }
.mandate__status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--brand-green); }
.mandate .progress { margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--line); }
.mandate-feature .progress { margin-top: var(--space-5); max-width: 520px; }
.mandate-grid > li:nth-child(4n + 1) .mandate { border-top: 3px solid var(--brand-green); }
.mandate-grid > li:nth-child(4n + 2) .mandate { border-top: 3px solid var(--brand-purple); }
.mandate-grid > li:nth-child(4n + 3) .mandate { border-top: 3px solid var(--brand-teal); }
.mandate-grid > li:nth-child(4n + 4) .mandate { border-top: 3px solid var(--brand-gray); }
.mandate__partner { font: 600 1.25rem/1.3 var(--font-serif); }
.mandate__sub { margin-top: 2px; font-size: var(--fs-small); color: var(--ink-3); }
.mandate__scope { margin: var(--space-4) 0 var(--space-5); font-size: var(--fs-small); }
.mandate__foot { margin-top: auto; padding-top: var(--space-4); border-top: 1px solid var(--line); }
.mandate__type { margin-top: var(--space-3); }
@media (min-width: 768px) { .mandate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .mandate-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); } }

/* Completed studies */
.completed-intro { margin-bottom: var(--space-5); }
.study-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-4);
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.pills { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.search { position: relative; flex: 1 1 260px; max-width: 380px; }
.search__icon { position: absolute; left: 12px; top: 50%; color: var(--ink-3); transform: translateY(-50%); pointer-events: none; }
.search__input {
  width: 100%;
  height: 44px;
  padding: 0 44px 0 42px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--ink);
  font-size: var(--fs-small);
  -webkit-appearance: none;
  appearance: none;
}
.search__input::placeholder { color: var(--ink-3); }
.search__input:hover { border-color: var(--ink-3); }
.search__input:focus { border-color: var(--ink); }
.search__input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
.search__clear { position: absolute; right: 6px; top: 50%; border-color: transparent; transform: translateY(-50%); }
.study-count { margin: var(--space-4) 0 var(--space-2); font-size: var(--fs-small); color: var(--ink-3); }

.study-group { margin-top: var(--space-6); }
.study-group__head { display: flex; align-items: baseline; gap: var(--space-3); padding-bottom: var(--space-3); border-bottom: 1px solid var(--ink); }
.study-group__title { font: 500 1.25rem/1.3 var(--font-serif); }
.study-group__count { font-size: var(--fs-small); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.study-groups.is-flat .study-group { margin-top: 0; }
.study-groups.is-flat .study-group__head { display: none; }

.study-row {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: var(--space-4);
  padding: var(--space-4) var(--space-3);
  border-bottom: 1px solid var(--line);
  transition: background-color var(--dur) var(--ease);
  animation: fade-in 150ms var(--ease);
}
.study-row:hover { background: var(--paper-warm); }
.study-row__ref { padding-top: 1px; color: var(--ink-3); font-size: var(--fs-small); font-weight: 600; font-variant-numeric: tabular-nums; }
.study-row__title { max-width: 90ch; color: var(--ink); font-weight: 500; }
.study-row .badges { margin-top: var(--space-2); }
.study-row__cat { display: none; padding-top: 3px; text-align: right; }
mark { padding: 0 1px; border-radius: 2px; background: var(--accent-wash); color: inherit; }
.study-empty { padding: var(--space-7) 0; }
.study-empty p { margin-bottom: var(--space-4); color: var(--ink); font: 500 1.125rem/1.4 var(--font-serif); }
@keyframes fade-in { from { opacity: 0; } }

@media (min-width: 1024px) {
  .study-toolbar { position: sticky; top: var(--header-h); z-index: 5; }
  .study-row { grid-template-columns: 48px minmax(0, 1fr) 190px; }
  .study-row__cat { display: block; }
}

/* ════════ Step 07 · Leadership ════════ */
.leader-feature { display: grid; gap: var(--space-5); padding: var(--space-6); border-left: 3px solid var(--brand-purple); }
.leader-grid > li:nth-child(4n + 1) .monogram { background: var(--green-wash); }
.leader-grid > li:nth-child(4n + 2) .monogram { background: var(--purple-wash); }
.leader-grid > li:nth-child(4n + 3) .monogram { background: var(--teal-wash); }
.leader-grid > li:nth-child(4n + 4) .monogram { background: var(--gray-wash); }
.leader-feature .monogram { background: var(--purple-wash); }
.leader-feature .eyebrow { margin-bottom: var(--space-2); }
.leader-feature__name { font-size: var(--fs-h3); font-weight: 500; }
.leader-feature__bio { margin-top: var(--space-5); max-width: 64ch; font-size: var(--fs-lede); line-height: 1.6; }
.leader-feature .badges { margin-top: var(--space-5); }
@media (min-width: 768px) {
  .leader-feature { grid-template-columns: 96px minmax(0, 1fr); gap: var(--space-6); padding: var(--space-7); }
}

.leader-grid { margin-top: var(--space-5); }
.leader-grid > li { display: flex; }
.leader { display: flex; flex-direction: column; align-items: flex-start; width: 100%; }
.leader .monogram { margin-bottom: var(--space-5); }
.leader__role { margin-bottom: var(--space-2); }
.leader__name { font: 600 1.25rem/1.3 var(--font-serif); }
.leader__creds { margin-top: var(--space-1); font-size: var(--fs-small); color: var(--ink-3); }
.leader-feature__body .leader__creds { margin-top: var(--space-2); }
.leader__country { margin-top: var(--space-2); }
.leader__bio { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: var(--fs-small); align-self: stretch; }

/* ════════ Step 07 · Key professionals ════════ */
.pros { margin-top: var(--space-9); padding-top: var(--space-6); border-top: 1px solid var(--line); }
.pros__title { font-size: var(--fs-h3); }
.pros__intro { margin-top: var(--space-3); }
.pros__note { margin-top: var(--space-5); font-size: var(--fs-small); color: var(--ink-3); }

.pro-table { width: 100%; margin-top: var(--space-6); border-collapse: collapse; font-size: var(--fs-small); }
.pro-table thead th {
  padding: 0 var(--space-5) var(--space-3) 0;
  border-bottom: 2px solid var(--ink);
  color: var(--ink-3);
  font: 600 var(--fs-micro)/1.4 var(--font-sans);
  letter-spacing: var(--tracking-caps);
  text-align: left;
  text-transform: uppercase;
}
.pro-table thead th:nth-child(1) { width: 34%; }
.pro-table thead th:nth-child(2) { width: 26%; }
.pro-table thead th:nth-child(3) { width: 40%; }
.pro-table tbody th,
.pro-table td {
  padding: 20px var(--space-5) 20px 0;
  border-bottom: 1px solid var(--line);
  font-weight: 400;
  text-align: left;
  vertical-align: top;
}
.pro__name { display: block; color: var(--ink); font-size: var(--fs-body); font-weight: 600; }
.pro__desig { display: block; margin-top: 2px; color: var(--ink-3); }
.pro__chips { display: none; }

@media screen and (min-width: 1200px) {
  .pro__exp {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
  }
  .pro__chips { display: flex; }
}
@media screen and (max-width: 899.98px) {
  .pro-table, .pro-table tbody, .pro-table tr, .pro-table th, .pro-table td { display: block; width: auto; }
  .pro-table thead {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%);
  }
  .pro-table tbody tr {
    margin-bottom: var(--space-4);
    padding: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--paper);
  }
  .pro-table tbody th, .pro-table td { padding: 0; border: 0; }
  .pro-table td { margin-top: var(--space-4); }
  .pro-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: var(--space-1);
    color: var(--ink-3);
    font: 600 var(--fs-micro)/1.4 var(--font-sans);
    letter-spacing: .08em;
    text-transform: uppercase;
  }
}

/* ════════ Step 08 · Inquiry desk ════════ */
.contact__grid { display: grid; gap: var(--space-7); align-items: start; }
@media (min-width: 1024px) {
  .contact__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-8); }
}

.hq__name { font: 600 1.375rem/1.3 var(--font-serif); color: var(--ink); }
.hq__sub { margin-top: var(--space-1); }
.hq__sub, .hq__checklist-title { font: 600 var(--fs-micro)/1.4 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.hq__list { margin-top: var(--space-5); }
.hq__row { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: var(--space-3); padding-block: var(--space-3); font-size: var(--fs-small); }
.hq__row > .icon { margin-top: 2px; color: var(--ink-3); }
.hq__row a { color: var(--ink); text-decoration-color: var(--line-strong); }
.hq__row a:hover { color: var(--accent); text-decoration-color: currentColor; }
.hq__maps { display: inline-flex; align-items: center; gap: 4px; margin-top: var(--space-2); font-weight: 600; }
.hq__maps .icon { width: 14px; height: 14px; }
.hq__row a.hq__maps { color: var(--accent); }
.hq__email { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.hq__email .copy-status { flex-basis: 100%; min-height: 0; }
.hq__checklist ul, .footer-nav ul { list-style: none; padding: 0; }
.hq__checklist { margin-top: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.hq__checklist-title { margin-bottom: var(--space-3); color: var(--ink); }
.hq__checklist li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: var(--space-3); padding-block: 6px; font-size: var(--fs-small); }
.hq__checklist .icon { width: 18px; height: 18px; margin-top: 1px; color: var(--accent); }
.hq__print { margin-top: var(--space-6); }
.hq--wide { max-width: 760px; }

.form-note { margin-bottom: var(--space-5); font-size: var(--fs-small); color: var(--ink-3); }
.req { color: var(--error); }
.form-grid { display: grid; gap: var(--space-5); }
@media (min-width: 768px) {
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field--full { grid-column: 1 / -1; }
}
.field label { display: block; margin-bottom: var(--space-2); color: var(--ink); font-size: var(--fs-small); font-weight: 600; }
.input {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--ink);
  font-size: var(--fs-body);
  line-height: 1.4;
  transition: border-color var(--dur) var(--ease);
}
.input:hover { border-color: var(--ink-3); }
.input:focus { border-color: var(--ink); }
.input:focus-visible { outline-offset: 1px; }
select.input {
  padding-right: 40px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364707C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 18px;
}
select.input:invalid { color: var(--ink-3); }
select.input option { color: var(--ink); }
textarea.input { min-height: 160px; line-height: 1.55; resize: vertical; }
.input[aria-invalid="true"] { border-color: var(--error); }
.field__meta { display: flex; justify-content: space-between; gap: var(--space-3); }
.field__hint { margin-top: 6px; font-size: var(--fs-micro); color: var(--ink-3); }
.field__count { font-variant-numeric: tabular-nums; }
.field__error { margin-top: 6px; color: var(--error); font-size: var(--fs-small); font-weight: 500; }
.check { display: flex; align-items: flex-start; gap: var(--space-3); }
.check input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--accent); }
.check label { margin: 0; color: var(--ink-2); font-weight: 500; }
.check input[aria-invalid="true"] { outline: 2px solid var(--error); outline-offset: 2px; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.form-errors {
  margin-bottom: var(--space-6);
  padding: var(--space-5);
  border: 1px solid var(--error);
  border-left-width: 4px;
  border-radius: var(--radius-sm);
  background: var(--error-wash);
}
.form-errors:focus { outline: none; }
.form-errors:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.form-errors__title { margin-bottom: var(--space-3); color: var(--error); font: 600 1rem/1.4 var(--font-sans); letter-spacing: 0; }
.form-errors__list { padding-left: var(--space-5); font-size: var(--fs-small); }
.form-errors__list a { color: var(--error); font-weight: 500; }

.form-status { margin-top: var(--space-5); font-size: var(--fs-small); color: var(--error); }
.form-status:empty { display: none; }
.form-submit { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-5); margin-top: var(--space-6); }
.form-submit__note { font-size: var(--fs-micro); color: var(--ink-3); }
@media (max-width: 767.98px) {
  .form-submit .btn { width: 100%; }
}

.form-done { border-top: 3px solid var(--accent); }
.form-done:focus { outline: none; }
.form-done__title { font-size: var(--fs-h3); }
.form-done__text { margin-top: var(--space-3); overflow-wrap: anywhere; }
.form-done__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-6); margin-top: var(--space-6); }
.form-done .copy-status { margin-top: var(--space-3); }

.noscript-note {
  margin-top: var(--space-5);
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
  background: var(--paper-cool);
  font-size: var(--fs-small);
}

/* ════════ Footer (light, with the logo stripe) ════════ */
.site-footer {
  position: relative;
  padding: var(--space-8) 0 var(--space-6);
  background: var(--paper-warm);
  border-top: 1px solid var(--line);
  color: var(--ink-2);
  font-size: var(--fs-small);
}
.site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 4px; background: var(--brand-stripe); }
.site-footer a { color: var(--ink); text-decoration-color: var(--line-strong); }
.site-footer a:hover { color: var(--accent); text-decoration-color: currentColor; }
.site-footer__grid { display: grid; gap: var(--space-7); }
.footer-brand__logo { width: 200px; height: auto; }
.footer-brand__tag { margin-top: var(--space-4); max-width: 38ch; }
.footer-brand .btn { margin-top: var(--space-5); }
.footer-heading {
  margin-bottom: var(--space-4);
  color: var(--ink);
  font: 600 var(--fs-micro)/1.4 var(--font-sans);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.footer-nav li + li { margin-top: var(--space-2); }
.footer-nav a { text-decoration: none; }
.footer-nav a:hover { text-decoration: underline; }
.footer-office p + p { margin-top: var(--space-2); }
.site-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-3) var(--space-6);
  margin-top: var(--space-8);
  padding-top: var(--space-5);
  border-top: 1px solid var(--line-strong);
  font-size: var(--fs-micro);
  color: var(--ink-3);
}
.back-to-top { display: inline-flex; align-items: center; gap: 4px; }
.back-to-top .icon { width: 14px; height: 14px; }
.site-footer__credit { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: var(--fs-micro); color: var(--ink-3); }
.site-footer__credit p { max-width: none; }
@media (min-width: 768px) {
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .site-footer__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr) minmax(0, 1.2fr); gap: var(--space-8); }
}

/* ════════ Inner-page hero (each page tinted with one logo colour) ════════ */
.page-hero { position: relative; overflow: hidden; padding-block: var(--space-7) var(--space-8); background: var(--gray-wash); border-bottom: 1px solid var(--line); }
.page-hero--green  { background: var(--green-wash); }
.page-hero--purple { background: var(--purple-wash); }
.page-hero--teal   { background: var(--teal-wash); }
.page-hero__inner { position: relative; }
.page-hero h1 { max-width: 22ch; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.page-hero .lede { margin-top: var(--space-5); max-width: 62ch; }
.page-hero__mark {
  position: absolute;
  right: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));
  top: 50%;
  display: none;
  width: 140px; height: auto;
  transform: translateY(-50%);
  opacity: .9;
}
@media (min-width: 1024px) { .page-hero__mark { display: block; } }
.breadcrumb { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-5); font-size: var(--fs-small); color: var(--ink-3); }
.breadcrumb li + li::before { content: "/"; margin-right: var(--space-2); color: var(--line-strong); }
.breadcrumb a { color: var(--ink-2); text-decoration: none; }
.breadcrumb a:hover { color: var(--accent); text-decoration: underline; }
.breadcrumb [aria-current] { color: var(--ink); font-weight: 600; }

/* ════════ Home: expertise tiles ════════ */
.tiles { display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); } }
.tiles > li { display: flex; }
.tile {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: var(--space-6);
  border: 1px solid var(--line);
  border-top: 4px solid var(--brand-green);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: inherit;
  text-decoration: none;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.tiles > li:nth-child(4n + 2) .tile { border-top-color: var(--brand-purple); }
.tiles > li:nth-child(4n + 3) .tile { border-top-color: var(--brand-teal); }
.tiles > li:nth-child(4n + 4) .tile { border-top-color: var(--brand-gray); }
.tile:hover { color: inherit; box-shadow: var(--shadow-lift); transform: translateY(-2px); }
.tile__num { font: 500 .9375rem/1 var(--font-serif); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.tile__title { margin: var(--space-3) 0 var(--space-4); font: 600 1.25rem/1.3 var(--font-serif); color: var(--ink); }
.tile .badges { margin-bottom: var(--space-5); }
.tile__more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; font-size: var(--fs-small); font-weight: 600; color: var(--accent); }
.tile__more .icon { width: 16px; height: 16px; }
.tile--cta { border-top-color: var(--brand-purple); background: var(--purple-wash); justify-content: center; }
.tile--cta .tile__title { margin-top: 0; }

/* ════════ Home: case-study teaser ════════ */
.teaser { display: grid; gap: var(--space-6); align-items: center; padding: var(--space-6); border: 1px solid var(--line); border-left: 4px solid var(--brand-purple); border-radius: var(--radius-sm); background: var(--paper); }
.teaser h2 { font-size: var(--fs-h2); max-width: 20ch; }
.teaser .lede { margin-top: var(--space-4); }
.teaser .btn { margin-top: var(--space-5); }
.teaser__stats { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.teaser__stats .stat { padding: 20px; background: var(--paper); }
.teaser__stats .stat__value { font-size: clamp(1.5rem, 1rem + 1vw, 2rem); white-space: nowrap; }
.teaser__stats .stat:first-child { box-shadow: inset 0 3px 0 var(--brand-purple); }
@media (min-width: 640px) { .teaser__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .teaser { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-8); padding: var(--space-7); }
}

/* ════════ CTA band ════════ */
.cta-band { padding-block: var(--space-8); background: var(--teal-wash); border-block: 1px solid var(--line); }
.cta-band__inner { display: grid; gap: var(--space-5); align-items: center; }
.cta-band h2 { font-size: var(--fs-h2); max-width: 22ch; }
.cta-band p { margin-top: var(--space-3); }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-4); }
@media (min-width: 1024px) {
  .cta-band__inner { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-8); }
}

/* ════════ Next-page link at the foot of inner pages ════════ */
.next-page { border-top: 1px solid var(--line); }
.next-page a {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2) var(--space-5);
  padding-block: var(--space-7);
  color: var(--ink);
  text-decoration: none;
}
.next-page .caps { color: var(--ink-3); }
.next-page__title { display: inline-flex; align-items: center; gap: var(--space-3); font: 500 var(--fs-h3)/1.3 var(--font-serif); }
.next-page a:hover .next-page__title { color: var(--accent); }

/* ════════ Step 09 · Print button split menu + print-only blocks ════════ */
.split { position: relative; display: inline-flex; }
.split > .btn:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.print-caret { width: 36px; margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.print-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 60;
  min-width: 290px;
  padding: var(--space-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--paper);
  box-shadow: var(--shadow-lift);
}
.print-menu__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  min-height: 40px;
  padding: var(--space-2) var(--space-3);
  border: 0;
  background: none;
  color: var(--ink);
  font-size: var(--fs-small);
  font-weight: 500;
  text-align: left;
  text-decoration: none;
}
.print-menu__item:hover { background: var(--paper-warm); color: var(--ink); }

.print-cover { display: none; }

/* ════════ Visual page editor (?edit=1, admins only) ════════ */
.is-editing [data-edit] { outline: 1px dashed rgba(126, 0, 126, .45); outline-offset: 3px; cursor: text; border-radius: 2px; }
.is-editing [data-edit]:hover { outline-color: var(--brand-purple); background: rgba(126, 0, 126, .04); }
.is-editing [data-edit]:focus { outline: 2px solid var(--brand-purple); background: var(--purple-wash); }
.is-editing [data-edit]:empty { display: block; min-height: 1.4em; min-width: 4em; }
.is-editing body { padding-bottom: 96px; }
.edit-chip {
  display: inline-flex;
  margin-bottom: var(--space-3);
  padding: 4px 10px;
  font-size: var(--fs-micro);
  font-weight: 700;
  color: #fff;
  background: var(--brand-purple);
  border-radius: var(--radius-pill);
  text-decoration: none;
}
.edit-chip:hover { color: #fff; background: var(--primary-hover); }
.edit-bar {
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 100;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-4);
  padding: var(--space-3) var(--space-4);
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line-strong);
  border-top: 3px solid var(--brand-purple);
  border-radius: var(--radius-md);
  box-shadow: 0 16px 40px -16px rgba(20, 30, 40, .45);
}
.edit-bar__text { flex: 1 1 280px; max-width: none; font-size: var(--fs-small); }
.edit-bar__count { font-weight: 700; color: var(--purple-ink); }
.edit-bar__status { font-size: var(--fs-small); font-weight: 600; color: var(--green-ink); }
.edit-bar__status:empty { display: none; }
.edit-bar__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.edit-bar .btn--sm { min-height: 36px; padding: 0 12px; font-size: var(--fs-small); }
@media (max-width: 639.98px) {
  .edit-bar { left: 8px; right: 8px; bottom: 8px; padding: var(--space-2) var(--space-3); }
  .edit-bar__text { flex-basis: 100%; font-size: var(--fs-micro); }
}
@media print { .edit-bar, .edit-chip { display: none !important; } }
