:root {
  color-scheme: light;
  --bg: #f7f8fa;
  --surface: #ffffff;
  --surface-alt: #eef2f5;
  --text: #101418;
  --muted: #5d6874;
  --border: #d9e0e7;
  --accent: #101418;
  --accent-soft: #dce7ee;
  --blue: #275efe;
  --green: #106b4f;
  --shadow: 0 18px 45px rgba(16, 20, 24, 0.08);
  --radius: 8px;
  --max: 1180px;
  --layout-hero-max: 980px;
  --layout-standard-max: 1280px;
  --layout-wide-max: 1440px;
  --site-chrome-gutter: clamp(36px, 4vw, 72px);
  --site-chrome-max: var(--layout-wide-max);
  --home-header-top: clamp(54px, 3.8vw, 72px);
  --prototype-yellow: #ffd800;
  --prototype-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --prototype-sans: "Jost", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  /* Shared editorial weights are deliberately breakpoint-independent. */
  --weight-editorial-title: 430;
  --weight-editorial-overline: 600;
  --weight-breadcrumb: 500;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.55;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

.site-topbar {
  position: relative;
  z-index: 50;
  color: #111;
  background: var(--prototype-yellow);
  font-family: var(--prototype-sans);
}

.site-topbar__inner {
  display: grid;
  grid-template-columns: minmax(230px, 1fr) auto minmax(230px, 1fr);
  align-items: center;
  gap: clamp(16px, 3vw, 48px);
  width: 100%;
  min-height: var(--home-header-top);
  margin: 0 auto;
  padding: 10px clamp(22px, 2.8vw, 58px);
}

.site-topbar__reviews {
  justify-self: start;
  min-width: 0;
  font-size: var(--home-topbar-reviews-size, clamp(14px, 0.72vw, 17px));
  font-weight: var(--home-topbar-reviews-weight, 600);
  line-height: 1.2;
}

.site-topbar__locations {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  gap: clamp(24px, 4.5vw, 88px);
  max-width: 100%;
  min-width: 0;
  color: #111;
  font-size: var(--home-topbar-locations-size, clamp(16px, 0.82vw, 18px));
  font-weight: var(--home-topbar-locations-weight, 650);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
}

.site-topbar__locations::-webkit-scrollbar {
  display: none;
}

.site-topbar__search {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  justify-self: end;
  width: clamp(190px, 14vw, 340px);
  min-height: 34px;
  padding: 0 18px;
  color: #111;
  background: #fff;
  border: 1px solid rgba(17, 17, 17, 0.12);
  font-size: var(--home-topbar-search-size, clamp(16px, 0.7vw, 16px));
  font-weight: var(--home-topbar-search-weight, 560);
  white-space: nowrap;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  width: min(100% - var(--site-chrome-gutter), var(--site-chrome-max));
  max-width: none;
  margin: 0 auto;
  padding: 18px 0;
  background: rgba(247, 248, 250, 0.92);
  backdrop-filter: blur(12px);
  border-bottom: 0;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  letter-spacing: 0;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: #fff;
  background: var(--accent);
  border-radius: 6px;
  font-size: 14px;
}

.brand-copy {
  font-size: 19px;
}

.brand-logo {
  display: block;
  width: clamp(178px, 10vw, 340px);
  height: auto;
}

.site-header:not(.home-site-header) .brand-logo {
  width: clamp(132px, 9vw, 168px);
}

.home-site-header {
  position: absolute;
  top: var(--home-header-top);
  left: 50%;
  z-index: 40;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  width: min(100% - var(--site-chrome-gutter), var(--site-chrome-max));
  max-width: none;
  margin: 0;
  padding: clamp(20px, 2.2vw, 36px) 0;
  color: #fff;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
  transform: translateX(-50%);
}

.home-site-header .brand {
  justify-self: start;
}

.home-site-header .nav-links {
  justify-self: center;
  color: rgba(255, 255, 255, 0.92);
  font-family: var(--prototype-sans);
  font-size: var(--home-nav-size, clamp(16px, 0.72vw, 18px));
  font-weight: var(--home-nav-weight, 650);
  text-shadow: 0 1px 22px rgba(0, 0, 0, 0.28);
}

.home-site-header .nav-links a:hover {
  color: #fff;
}

.home-site-header .header-cta {
  justify-self: end;
  min-height: clamp(44px, 1.8vw, 52px);
  padding: 0 clamp(17px, 1.1vw, 30px);
  color: #161616;
  background: var(--prototype-yellow);
  border-color: var(--prototype-yellow);
  border-radius: 999px;
  font-size: var(--home-header-cta-size, 16px);
  font-weight: var(--home-header-cta-weight, 700);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
}

.site-header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  justify-self: end;
  gap: 12px;
}

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  flex: 0 0 auto;
  gap: 5px;
  width: 46px;
  height: 46px;
  padding: 0;
  color: #111;
  background: #fff;
  border: 1px solid rgba(17, 17, 17, 0.18);
  border-radius: 999px;
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  background: currentColor;
  border-radius: 999px;
  transition:
    opacity 160ms ease,
    transform 160ms ease;
}

.site-header[data-menu-open="true"] .nav-toggle span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.site-header[data-menu-open="true"] .nav-toggle span:nth-child(2) {
  opacity: 0;
}

.site-header[data-menu-open="true"] .nav-toggle span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.home-site-header .nav-toggle {
  color: #111;
  background: rgba(255, 255, 255, 0.94);
  border-color: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
}

.nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  font-size: 16px;
  color: var(--muted);
}

.nav-links a:hover,
.text-link:hover {
  color: var(--blue);
}

.nav-links__cta {
  display: none;
}

.header-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--accent);
  border-radius: 6px;
  font-size: 16px;
  font-weight: 700;
}

.button.primary {
  color: #fff;
  background: var(--accent);
}

.header-cta {
  color: #161616;
  background: var(--prototype-yellow);
  border-color: var(--prototype-yellow);
  border-radius: 999px;
  box-shadow: 0 12px 28px rgba(16, 20, 24, 0.12);
}

.button.secondary {
  color: var(--text);
  background: transparent;
}

.button.full {
  width: 100%;
}

.button:disabled,
.button[aria-busy="true"] {
  cursor: wait;
  opacity: 0.72;
}

main {
  min-height: 60vh;
}

.page-hero,
.content-section,
.form-section {
  max-width: var(--max);
  margin: 0 auto;
  padding: 72px 24px;
}

.page-hero.split {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  align-items: center;
  gap: 54px;
}

.page-hero.compact {
  padding-bottom: 32px;
}

.page-hero h1 {
  max-width: 840px;
  margin: 0 0 22px;
  font-size: clamp(42px, 7vw, 84px);
  line-height: 0.98;
  letter-spacing: 0;
  overflow-wrap: break-word;
}

.page-hero.compact h1,
.question-page h1 {
  font-size: clamp(36px, 5vw, 66px);
}

.page-hero p {
  max-width: 760px;
  margin: 0 0 20px;
  color: var(--muted);
  font-size: 19px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.home-hero {
  padding-top: 86px;
  padding-bottom: 42px;
}

.home-hero--prototype {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: none;
  min-height: calc(100svh - 54px);
  margin: 0;
  padding: var(--home-hero-padding, clamp(126px, 12svh, 220px) clamp(24px, 7vw, 180px) clamp(92px, 11svh, 190px));
  overflow: hidden;
  color: #fff;
  text-align: center;
  background-color: #0b0b0b;
  background-image: var(--home-hero-poster, url("/assets/design-prototypes/london-12sec_2560w-poster.jpg"));
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.home-hero--prototype::before,
.home-hero--prototype::after,
.home-hero__video {
  position: absolute;
  inset: 0;
}

.home-hero--prototype::before {
  content: "";
  z-index: 0;
  background-image: var(--home-hero-poster, url("/assets/design-prototypes/london-12sec_2560w-poster.jpg"));
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  filter: saturate(0.72) brightness(0.72) hue-rotate(8deg);
}

.home-hero--prototype::after {
  content: "";
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.03) 26%, rgba(0, 0, 0, 0.18) 56%, rgba(0, 0, 0, 0.9) 100%),
    radial-gradient(circle at 50% 42%, rgba(193, 205, 185, 0.28) 0%, rgba(87, 108, 96, 0.18) 36%, rgba(0, 0, 0, 0.46) 100%);
  pointer-events: none;
}

.home-hero__video {
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
}

.home-hero__content {
  position: relative;
  z-index: 2;
  width: min(100%, var(--home-hero-content-max, var(--layout-hero-max)));
  margin: 0 auto;
}

.home-hero--prototype .section-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 30px;
  margin: 0 0 28px;
  padding: 5px 15px;
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  backdrop-filter: blur(16px);
  font-family: var(--prototype-sans);
  font-size: var(--home-hero-kicker-size, clamp(14px, 0.58vw, 16px));
  font-weight: var(--home-hero-kicker-weight, 760);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-hero--prototype .section-label::before {
  content: "";
  width: 6px;
  height: 6px;
  background: var(--prototype-yellow);
  border-radius: 999px;
}

.home-hero h1 {
  max-width: 740px;
  font-size: clamp(42px, 5.8vw, 72px);
  overflow-wrap: normal;
  word-break: normal;
}

.home-hero--prototype h1 {
  max-width: var(--home-hero-content-max, var(--layout-hero-max));
  margin: 0 auto;
  color: #fff;
  font-family: var(--prototype-serif);
  font-size: var(--home-hero-title-size, clamp(48px, min(5vw, 7.2svh), 116px));
  font-weight: var(--home-hero-title-weight, 400);
  line-height: 0.98;
  text-shadow: 0 10px 50px rgba(0, 0, 0, 0.3);
}

.yellow-dot {
  color: var(--prototype-yellow);
}

.home-hero__support {
  margin-top: -8px;
  color: var(--text);
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.12;
  font-weight: 700;
}

.home-hero--prototype .home-hero__support {
  max-width: 640px;
  margin: 24px auto 0;
  color: #fff;
  font-family: var(--prototype-sans);
  font-size: var(--home-hero-support-size, clamp(18px, 1.25vw, 24px));
  font-weight: var(--home-hero-support-weight, 800);
  line-height: 1.22;
  text-shadow: 0 8px 28px rgba(0, 0, 0, 0.36);
}

.home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
  max-width: 720px;
  margin: 18px auto 0;
  color: rgba(255, 255, 255, 0.84);
  font-family: var(--prototype-sans);
  font-size: var(--home-hero-body-size, clamp(16px, 0.76vw, 22px));
  font-weight: var(--home-hero-body-weight, 520);
  line-height: 1.42;
  text-shadow: 0 8px 28px rgba(0, 0, 0, 0.38);
}

.home-hero--prototype .hero-actions {
  justify-content: center;
  gap: 14px;
  margin-top: clamp(24px, 1.65vw, 34px);
}

.home-hero__mrs-logo {
  height: auto;
  opacity: 0.96;
  filter: drop-shadow(0 8px 28px rgba(0, 0, 0, 0.38));
}

.home-hero--prototype .button {
  min-height: clamp(48px, 2.2vw, 66px);
  padding: clamp(14px, 0.72vw, 22px) clamp(20px, 1.15vw, 34px);
  border-radius: 999px;
  font-family: var(--prototype-sans);
  font-size: var(--home-hero-button-size, clamp(16px, 0.68vw, 18px));
  font-weight: var(--home-hero-button-weight, 700);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
}

.home-hero--prototype .button.primary {
  color: #222;
  background: #fff;
  border-color: #fff;
}

.home-hero--prototype .button.secondary {
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
  border-color: rgba(255, 255, 255, 0.38);
  backdrop-filter: blur(14px);
}

.hero-logo-marquee {
  position: absolute;
  right: 0;
  left: 0;
  bottom: var(--home-hero-logo-bottom, clamp(54px, 5vw, 96px));
  z-index: 4;
  overflow: hidden;
  padding: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
}

.hero-logo-track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: var(--home-hero-logo-gap, clamp(24px, 2.2vw, 70px));
  animation: hero-logo-scroll var(--home-hero-logo-duration, 42s) linear infinite;
  will-change: transform;
}

.hero-logo-marquee:hover .hero-logo-track {
  animation-play-state: paused;
}

.hero-logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(90px, 7vw, 240px);
  height: clamp(34px, 2.3vw, 78px);
  opacity: 0.96;
}

.hero-logo img {
  width: auto;
  max-width: clamp(110px, 8.8vw, 260px);
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 3px 14px rgba(0, 0, 0, 0.32));
}

@keyframes hero-logo-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(calc(-50% - clamp(12px, 1.1vw, 35px)), 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero__video {
    display: none;
  }

  .hero-logo-track {
    animation: none;
    transform: none;
  }
}

@media (max-height: 980px) and (min-width: 861px) {
  .home-hero--prototype {
    padding: var(--home-hero-compact-padding, clamp(112px, 11svh, 146px) clamp(24px, 7vw, 180px) clamp(78px, 8.5svh, 116px));
  }

  .home-hero--prototype .section-label {
    margin-bottom: 18px;
  }

  .home-hero--prototype h1 {
    max-width: 940px;
    font-size: var(--home-hero-compact-title-size, clamp(46px, min(4.7vw, 6.8svh), 82px));
  }

  .home-hero--prototype .home-hero__support {
    margin-top: 18px;
    font-size: var(--home-hero-compact-support-size, clamp(18px, 1.15vw, 23px));
  }

  .home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
    max-width: 680px;
    margin-top: 14px;
    font-size: var(--home-hero-compact-body-size, clamp(16px, 0.72vw, 18px));
    line-height: 1.34;
  }

  .home-hero--prototype .hero-actions {
    margin-top: 20px;
  }

  .hero-logo-marquee {
    bottom: clamp(22px, 3.2vw, 48px);
  }
}

@media (min-width: 861px) and (max-width: 1024px) {
  .site-topbar__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-height: 0;
    padding: 0;
  }

  .site-topbar__reviews {
    order: 2;
    width: 100%;
    padding: 9px 18px 8px;
    color: #fff;
    background: #080808;
    font-size: var(--home-topbar-mobile-reviews-size, clamp(15px, 2vw, 18px));
    font-weight: 700;
    line-height: 1.18;
    text-align: center;
  }

  .site-topbar__locations {
    order: 1;
    width: 100%;
    padding: 10px 18px 9px;
    gap: clamp(14px, 3vw, 38px);
    justify-content: center;
    overflow: hidden;
    font-size: var(--home-topbar-mobile-locations-size, clamp(14px, 1.55vw, 17px));
    font-weight: 750;
    letter-spacing: 0.01em;
    line-height: 1;
  }

  .site-topbar__locations span {
    flex: 0 1 auto;
    min-width: 0;
    white-space: nowrap;
  }

  .site-topbar__search {
    display: none;
  }
}

.home-page-flow {
  --home-section-gutter: clamp(24px, 4vw, 56px);
  --home-bg: #ffffff;
  --home-paper: #fbfaf7;
  --home-paper-strong: #f4f1ea;
  --home-line: #e8e2d8;
  --home-text: #101010;
  --home-muted: #5a5a54;
  --home-shadow: 0 22px 70px rgba(20, 18, 14, 0.08);
  background:
    linear-gradient(180deg, #fff 0%, #fff 55%, #faf9f5 100%);
  color: var(--home-text);
  overflow-x: clip;
}

.home-page-flow .content-section {
  --home-section-band: #fff;
  position: relative;
  isolation: isolate;
  width: min(100%, var(--layout-standard-max));
  max-width: var(--layout-standard-max);
  margin: 0 auto;
  padding-top: clamp(54px, 6vw, 92px);
  padding-right: clamp(24px, 4vw, 56px);
  padding-bottom: clamp(54px, 6vw, 92px);
  padding-left: clamp(24px, 4vw, 56px);
  background: transparent;
}

.home-page-flow .content-section::before {
  position: absolute;
  z-index: -1;
  inset-block: 0;
  inset-inline: calc(50% - 50vw);
  background: var(--home-section-band);
  content: "";
  pointer-events: none;
}

.home-page-flow .home-intro-section,
.home-page-flow .home-objectives-section,
.home-page-flow .home-services-section,
.home-page-flow .home-who-section,
.home-page-flow .location-trust-section {
  --home-section-band: #fff;
}

.home-page-flow .home-decision-section,
.home-page-flow .home-approach-section,
.home-page-flow .home-proof-section,
.home-page-flow .home-entities-section,
.home-page-flow .home-lower-grid {
  --home-section-band: var(--home-paper-strong);
}

.home-page-flow h2 {
  color: var(--home-text);
  font-family: var(--prototype-serif);
  font-weight: var(--weight-editorial-title);
  letter-spacing: 0;
}

.home-page-flow p {
  color: var(--home-muted);
  font-family: var(--prototype-sans);
}

body.editorial-theme {
  --editorial-section-gutter: clamp(24px, 4vw, 56px);
  --editorial-inner-max: calc(var(--layout-standard-max) - var(--editorial-section-gutter) - var(--editorial-section-gutter));
  --editorial-bg: #ffffff;
  --editorial-paper: #fbfaf7;
  --editorial-paper-strong: #f4f1ea;
  --editorial-line: #e8e2d8;
  --editorial-text: #101010;
  --editorial-muted: #5a5a54;
  --editorial-shadow: 0 22px 70px rgba(20, 18, 14, 0.08);
  font-family: var(--prototype-sans);
  color: var(--editorial-text);
  background:
    linear-gradient(180deg, #fff 0%, #fff 54%, #faf9f5 100%);
}

body.editorial-theme .site-header {
  width: min(100% - var(--site-chrome-gutter), var(--site-chrome-max));
  max-width: none;
  padding-right: 0;
  padding-left: 0;
  background: rgba(255, 255, 255, 0.86);
  border-bottom-color: var(--editorial-line);
}

.site-chrome--internal {
  position: relative;
  z-index: 20;
  width: 100%;
  padding-top: var(--home-header-top);
  background: #fff;
}

.site-chrome--internal-dark {
  background: #111;
}

.site-chrome--internal .site-topbar {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
}

body.editorial-theme .home-site-header--internal {
  position: relative;
  top: auto;
  color: #fff;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
}

body.editorial-theme .home-site-header--internal .nav-links,
body.editorial-theme .home-site-header--internal .nav-links a {
  font-size: var(--text-nav);
  font-weight: 500;
}

body.editorial-theme .home-site-header--internal .header-cta,
body.editorial-theme .home-site-header--internal .nav-links__cta {
  color: #161616;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.editorial-theme .home-site-header--internal-light {
  color: #111;
}

body.editorial-theme .home-site-header--internal-light .brand-logo {
  aspect-ratio: 370 / 71;
  object-fit: contain;
  object-position: left center;
}

body.editorial-theme .home-site-header--internal-light .nav-links {
  color: #4d535b;
  text-shadow: none;
}

body.editorial-theme .home-site-header--internal-light .nav-links a:hover {
  color: #111;
}

body.editorial-theme .home-site-header--internal-dark .nav-links {
  color: rgba(255, 255, 255, 0.92);
}

body.editorial-theme .home-site-header--internal-dark .nav-links a:hover {
  color: #fff;
}

body.editorial-theme .brand,
body.editorial-theme .nav-links,
body.editorial-theme .button,
body.editorial-theme .header-cta,
body.editorial-theme .text-link {
  font-family: var(--prototype-sans);
}

body.editorial-theme .brand-mark {
  color: #fff;
  background: #111;
  border-radius: 6px;
}

body.editorial-theme .brand-copy {
  color: #111;
  font-weight: 900;
}

body.editorial-theme .nav-links {
  color: #4d535b;
  font-weight: 560;
}

body.editorial-theme .button.primary {
  color: #fff;
  background: #111;
  border-color: #111;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.10);
}

body.editorial-theme .header-cta {
  color: #111;
  background: var(--prototype-yellow);
  border-color: var(--prototype-yellow);
}

body.editorial-theme .button.secondary {
  color: #111;
  background: transparent;
  border-color: #111;
}

body.editorial-theme .page-hero,
body.editorial-theme .content-section,
body.editorial-theme .form-section {
  width: min(100%, var(--layout-standard-max));
  max-width: var(--layout-standard-max);
  margin-right: auto;
  margin-left: auto;
  padding-right: var(--editorial-section-gutter);
  padding-left: var(--editorial-section-gutter);
}

body.editorial-theme .page-hero > div:first-child {
  max-width: var(--layout-hero-max);
}

body.editorial-theme .page-hero {
  padding-top: clamp(74px, 7vw, 118px);
  padding-bottom: clamp(42px, 5vw, 76px);
}

body.editorial-theme .page-hero.compact {
  padding-bottom: clamp(34px, 4vw, 58px);
}

body.editorial-theme .content-section {
  padding-top: clamp(54px, 6vw, 92px);
  padding-bottom: clamp(54px, 6vw, 92px);
}

body.editorial-theme .page-hero h1,
body.editorial-theme .content-section h2,
body.editorial-theme .listing-card h3,
body.editorial-theme .objective-card h3,
body.editorial-theme .buyer-route-card h3,
body.editorial-theme .fieldwork-options-grid h3,
body.editorial-theme .support-scope-grid h3,
body.editorial-theme .service-quality-grid h3,
body.editorial-theme .case-study-summary-card h3 {
  color: var(--editorial-text);
  font-family: var(--prototype-serif);
  font-weight: var(--weight-editorial-title);
  letter-spacing: 0;
}

body.editorial-theme .page-hero h1 {
  max-width: var(--layout-hero-max);
  margin-bottom: 24px;
  font-size: clamp(54px, 7.8vw, 104px);
  line-height: 0.96;
}

body.editorial-theme .page-hero.compact h1,
body.editorial-theme .question-page h1 {
  font-size: clamp(48px, 6.7vw, 92px);
}

body.editorial-theme .page-hero p {
  max-width: 920px;
  color: var(--editorial-muted);
  font-size: clamp(18px, 1.45vw, 23px);
  line-height: 1.42;
}

/* Standalone introductions fill their section; long FAQ answers keep their measure. */
body.editorial-theme .page-hero.compact:not(.question-page) > div:first-child,
body.editorial-theme .page-hero.compact:not(.question-page) > div:first-child > p {
  max-width: none;
}

body.editorial-theme .section-label,
body.editorial-theme .home-overline {
  color: #656b75;
  font-family: var(--prototype-sans);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.editorial-theme .content-section h2 {
  max-width: 920px;
  font-size: clamp(38px, 5vw, 64px);
  line-height: 1.02;
}

body.editorial-theme .content-section p {
  color: var(--editorial-muted);
  font-family: var(--prototype-sans);
  font-size: 18px;
  line-height: 1.48;
}

body.editorial-theme .section-heading-row {
  margin-bottom: clamp(24px, 3vw, 40px);
}

body.editorial-theme .section-heading-row > * {
  min-width: 0;
}

body.editorial-theme .proof-strip,
body.editorial-theme .objective-grid,
body.editorial-theme .fieldwork-options-grid,
body.editorial-theme .card-grid,
body.editorial-theme .support-scope-grid,
body.editorial-theme .service-quality-grid,
body.editorial-theme .case-study-summary-grid {
  gap: 1px;
  overflow: hidden;
  background: var(--editorial-line);
  border: 1px solid var(--editorial-line);
  border-radius: 0;
  box-shadow: 0 16px 55px rgba(25, 25, 20, 0.05);
}

body.editorial-theme .proof-strip div,
body.editorial-theme .objective-card,
body.editorial-theme .fieldwork-options-grid article,
body.editorial-theme .listing-card,
body.editorial-theme .support-scope-grid article,
body.editorial-theme .service-quality-grid article,
body.editorial-theme .case-study-summary-card {
  background: #fff;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.editorial-theme .proof-strip strong {
  color: #111;
  font-family: var(--prototype-serif);
  font-weight: 480;
}

body.editorial-theme .proof-strip span,
body.editorial-theme .listing-card p,
body.editorial-theme .objective-card p,
body.editorial-theme .fieldwork-options-grid p,
body.editorial-theme .support-scope-grid p,
body.editorial-theme .case-study-summary-card p {
  color: var(--editorial-muted);
  font-family: var(--prototype-sans);
}

body.editorial-theme .choice-grid {
  gap: 18px;
}

body.editorial-theme .buyer-route-card,
body.editorial-theme .choice-card,
body.editorial-theme .objective-detail-grid article,
body.editorial-theme .service-geo-question-section .check-list {
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(248, 246, 241, 0.92));
  border: 1px solid rgba(232, 226, 216, 0.92);
  border-radius: 0;
  box-shadow: var(--editorial-shadow);
}

body.editorial-theme .objectives-route-section .choice-grid .buyer-route-card:last-child {
  color: #111;
  background: var(--prototype-yellow);
  border-color: #111;
  box-shadow: none;
}

body.editorial-theme .objectives-route-section .choice-grid .buyer-route-card:last-child p,
body.editorial-theme .objectives-route-section .choice-grid .buyer-route-card:last-child .check-list li,
body.editorial-theme .objectives-route-section .choice-grid .buyer-route-card:last-child .section-label {
  color: rgba(17, 17, 17, 0.78);
}

body.editorial-theme .bofu-route-panel,
body.editorial-theme .service-bofu-panel,
body.editorial-theme .support-hub-intro,
body.editorial-theme .buyer-track-panel,
body.editorial-theme .objective-answer-panel,
body.editorial-theme .brief-confidence {
  background: var(--editorial-paper);
  border-color: var(--editorial-line);
}

body.editorial-theme .content-section.bofu-route-panel,
body.editorial-theme .content-section.service-bofu-panel,
body.editorial-theme .content-section.support-hub-intro,
body.editorial-theme .content-section.buyer-track-panel,
body.editorial-theme .content-section.objective-answer-panel,
body.editorial-theme .content-section.brief-confidence,
body.editorial-theme .content-section.final-cta {
  padding: clamp(34px, 4.2vw, 64px) var(--editorial-section-gutter);
  border: 1px solid var(--editorial-line);
}

body.editorial-theme .bofu-scope-section {
  max-width: var(--layout-standard-max);
  margin-right: auto;
  margin-left: auto;
  padding-right: var(--editorial-section-gutter);
  padding-left: var(--editorial-section-gutter);
  color: #fff;
  background: #111;
}

body.editorial-theme .bofu-scope-section .section-label {
  color: var(--prototype-yellow);
}

body.editorial-theme .bofu-scope-section h2,
body.editorial-theme .bofu-scope-section .section-heading-row p,
body.editorial-theme .bofu-scope-section .text-link {
  color: #fff;
}

body.editorial-theme .bofu-scope-section .fieldwork-options-grid {
  background: rgba(255, 255, 255, 0.24);
  border-color: rgba(255, 255, 255, 0.24);
  box-shadow: none;
}

body.editorial-theme .bofu-scope-section .fieldwork-options-grid article {
  color: #fff;
  background: #151515;
}

body.editorial-theme .bofu-scope-section .fieldwork-options-grid h3,
body.editorial-theme .bofu-scope-section .fieldwork-options-grid a,
body.editorial-theme .bofu-scope-section .fieldwork-options-grid .text-link {
  color: #fff;
}

body.editorial-theme .bofu-scope-section .fieldwork-options-grid p {
  color: rgba(255, 255, 255, 0.78);
}

body.editorial-theme .final-cta {
  color: #fff;
  background: #111;
  border-color: #111;
  border-radius: 0;
}

body.editorial-theme .content-section.final-cta {
  border-color: #111;
}

/* Keep the bordered objective question panel aligned with the card and copy columns. */
body.editorial-theme .content-section.objective-answer-panel {
  width: min(calc(100% - (2 * var(--editorial-section-gutter))), var(--layout-standard-max));
  max-width: var(--layout-standard-max);
}

/* Closing page content meets the footer without exposing the page canvas. */
body.editorial-theme main > :last-child {
  margin-bottom: 0;
}

body.editorial-theme .final-cta h2,
body.editorial-theme .final-cta p,
body.editorial-theme .final-cta .section-label {
  color: #fff;
}

body.editorial-theme .final-cta .button.primary {
  color: #111;
  background: var(--prototype-yellow);
  border-color: var(--prototype-yellow);
}

body.editorial-theme .final-cta .button.secondary {
  color: #fff;
  background: transparent;
  border-color: rgba(255, 255, 255, 0.72);
}

body.editorial-theme .final-cta .button.secondary:hover,
body.editorial-theme .final-cta .button.secondary:focus-visible {
  color: #111;
  background: #fff;
  border-color: #fff;
}

body.editorial-theme .image-frame,
body.editorial-theme .visual-placeholder {
  border-radius: 0;
  box-shadow: var(--editorial-shadow);
}

.home-overline {
  margin: 0 0 12px;
  color: #1d1d1b;
  font-family: var(--prototype-sans);
  font-size: 14px;
  font-weight: 850;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.home-section-heading.centre,
.home-intro-section {
  text-align: center;
}

.home-intro-section {
  padding-top: clamp(66px, 7vw, 112px);
}

.home-intro-section h2 {
  max-width: 920px;
  margin: 0 auto 16px;
  font-size: clamp(42px, 5vw, 64px);
  line-height: 1.02;
}

.home-intro-section > p:not(.home-overline) {
  max-width: 840px;
  margin: 0 auto;
  font-size: clamp(16px, 0.9vw, 18px);
  line-height: 1.5;
}

.home-intro-section .proof-strip {
  margin-top: clamp(38px, 4vw, 62px);
  text-align: left;
}

.home-page-flow .proof-strip {
  background: var(--home-line);
  border-color: var(--home-line);
  border-radius: 0;
  box-shadow: 0 16px 55px rgba(25, 25, 20, 0.05);
}

.home-page-flow .proof-strip div {
  display: grid;
  grid-template-rows: minmax(1.2em, auto) minmax(1em, auto) 1fr;
  align-content: start;
  background: #fff;
}

.home-page-flow .proof-strip strong {
  color: var(--home-text);
  font-family: var(--prototype-sans);
  font-weight: 480;
}

.home-page-flow .proof-strip span {
  color: var(--home-muted);
  font-family: var(--prototype-sans);
}

.home-page-flow .proof-strip .proof-strip__title {
  color: var(--home-text);
  font-weight: 600;
}

.home-decision-section {
  padding-top: clamp(34px, 4vw, 62px);
}

.home-section-heading.centre h2 {
  max-width: 900px;
  margin: 0 auto 30px;
  font-size: clamp(38px, 3.6vw, 56px);
  line-height: 1.02;
}

.home-route-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 56px);
  align-items: stretch;
}

.home-route-card {
  position: relative;
  display: grid;
  align-content: start;
  min-width: 0;
  min-height: 420px;
  padding: clamp(30px, 4vw, 54px);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(248, 246, 241, 0.92));
  border: 1px solid rgba(232, 226, 216, 0.92);
  box-shadow: var(--home-shadow);
  scroll-margin-top: 110px;
}

/* Fieldwork is the delivery counterpart to research and carries MRFGR's yellow/black route treatment. */
.home-route-card#fieldwork-support {
  background: var(--prototype-yellow);
  border-color: rgba(17, 17, 17, 0.82);
  box-shadow: 0 24px 54px rgba(255, 216, 0, 0.2);
}

.home-route-card h3 {
  max-width: 520px;
  margin: 22px 0 26px;
  color: var(--home-text);
  font-family: var(--prototype-serif);
  font-size: clamp(30px, 3vw, 38px);
  font-weight: 440;
  line-height: 1.03;
}

.home-route-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  color: #101010;
  background: var(--prototype-yellow);
  border-radius: 999px;
  box-shadow: 0 12px 32px rgba(255, 216, 0, 0.34);
}

.home-route-icon svg {
  width: 31px;
  height: 31px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.home-route-card#fieldwork-support .home-route-icon {
  color: var(--prototype-yellow);
  background: #111;
  box-shadow: 0 12px 32px rgba(17, 17, 17, 0.2);
}

.home-route-or {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  color: #fff;
  background: #101010;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.2);
  font-family: var(--prototype-sans);
  font-size: var(--text-label, 22px);
  font-weight: 820;
  transform: translate(-50%, -50%);
}

.home-check-list {
  display: grid;
  gap: 14px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}

.home-check-list li {
  position: relative;
  min-width: 0;
  padding-left: 34px;
  color: #282824;
  font-family: var(--prototype-sans);
  font-size: 16px;
  font-weight: 560;
  line-height: 1.35;
}

.home-check-list li::before {
  content: "";
  position: absolute;
  top: 0.05em;
  left: 0;
  width: 21px;
  height: 21px;
  background: #111;
  border-radius: 999px;
}

.home-check-list li::after {
  content: "";
  position: absolute;
  top: 0.42em;
  left: 6px;
  width: 8px;
  height: 4px;
  border-bottom: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: rotate(-45deg);
}

.home-arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  margin-top: auto;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: 16px;
  font-weight: 850;
}

.home-arrow-link::after {
  content: "->";
  transition: transform 180ms ease;
}

.home-arrow-link:hover::after {
  transform: translateX(4px);
}

.home-page-flow .section-heading-row {
  margin-bottom: clamp(24px, 3vw, 40px);
}

.home-page-flow .section-heading-row h2 {
  max-width: 860px;
  font-size: clamp(34px, 3.6vw, 56px);
}

.home-page-flow .section-heading-row p {
  max-width: 720px;
  font-size: clamp(16px, 0.9vw, 18px);
}

.home-objective-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}

.home-objective-route-panel {
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--home-line);
}

.home-objective-route-panel--fieldwork {
  color: #fff;
  background: #151515;
  border-color: #111;
}

.home-objective-route-copy {
  display: grid;
  grid-template-rows: auto auto auto auto;
  align-content: start;
  min-height: 420px;
  padding: clamp(26px, 3.4vw, 42px);
  border-bottom: 1px solid var(--home-line);
}

.home-objective-route-panel--fieldwork .home-objective-route-copy {
  background: var(--prototype-yellow);
  border-bottom-color: #111;
}

.home-objective-client {
  min-height: 40px;
  margin: 0 0 20px;
  color: #656b75;
  font-family: var(--prototype-sans);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

.home-objective-route-panel--fieldwork .home-objective-client {
  color: #111;
}

.home-objective-route-copy h3 {
  min-height: 2em;
  margin: 0 0 18px;
  color: #111;
  font-family: var(--prototype-serif);
  font-size: clamp(32px, 3vw, 38px);
  font-weight: var(--weight-editorial-title);
  line-height: 0.98;
}

.home-objective-route-panel--fieldwork .home-objective-route-copy h3 {
  color: #111;
}

.home-objective-route-copy > p:not(.home-objective-client) {
  max-width: 620px;
  min-height: 88px;
  margin: 0 0 26px;
  color: var(--home-muted);
  font-size: clamp(16px, 0.9vw, 18px);
  line-height: 1.42;
}

.home-objective-route-panel--fieldwork .home-objective-route-copy > p:not(.home-objective-client) {
  color: rgba(17, 17, 17, 0.78);
}

.home-objective-route-panel--fieldwork .home-arrow-link {
  color: #111;
}

.home-objective-route-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(0, 1fr);
  row-gap: 1px;
  column-gap: 0;
  align-content: stretch;
  background: #b7b0a5;
}

.home-objective-route-panel--fieldwork .home-objective-route-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, minmax(0, 1fr));
  background: rgba(255, 255, 255, 0.38);
}

.home-objective-route-item {
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: var(--home-paper);
}

.home-objective-route-panel--fieldwork .home-objective-route-item {
  min-height: 0;
  background: #151515;
}

.home-objective-route-image-link {
  display: block;
  overflow: hidden;
}

.home-objective-route-image-link:focus-visible {
  position: relative;
  z-index: 1;
  outline: 3px solid var(--prototype-yellow);
  outline-offset: -3px;
}

.home-objective-route-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transition: transform 260ms ease;
}

.home-objective-route-panel--fieldwork .home-objective-route-image {
  border-right-color: #fff;
  border-bottom-color: #151515;
}

.home-objective-route-item:hover .home-objective-route-image,
.home-objective-route-item:focus-within .home-objective-route-image {
  transform: scale(1.025);
}

.home-objective-route-item-content {
  display: flex;
  flex-direction: column;
  min-height: 340px;
  padding: clamp(20px, 1.65vw, 28px);
  border-right: 1px solid #b7b0a5;
}

.home-objective-route-panel--fieldwork .home-objective-route-item-content {
  border-right-color: rgba(255, 255, 255, 0.38);
}

.home-objective-route-item:nth-child(2n) .home-objective-route-image,
.home-objective-route-item:nth-child(2n) .home-objective-route-item-content {
  border-right: 0;
}

.home-objective-route-item h4 {
  margin: 0 0 14px;
  color: #111;
  font-family: var(--prototype-serif);
  font-size: clamp(24px, 1.7vw, 28px);
  font-weight: var(--weight-editorial-title);
  line-height: 1.04;
}

.home-objective-route-panel--fieldwork .home-objective-route-item h4 {
  color: #fff;
}

.home-objective-route-item p {
  margin: 0 0 22px;
  color: var(--home-muted);
  font-size: 16px;
  line-height: 1.5;
}

.home-objective-route-panel--fieldwork .home-objective-route-item p {
  color: rgba(255, 255, 255, 0.78);
}

.home-objective-route-link {
  width: fit-content;
  margin-top: auto;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: 16px;
  font-weight: 850;
  line-height: 1.2;
}

.home-objective-route-link::after {
  content: "->";
  margin-left: 8px;
  transition: transform 180ms ease;
}

.home-objective-route-link:hover::after {
  display: inline-block;
  transform: translateX(4px);
}

.home-objective-route-panel--fieldwork .home-objective-route-link {
  color: #fff;
}

@media (prefers-reduced-motion: reduce) {
  .home-objective-route-image {
    transition: none;
  }

  .home-objective-route-item:hover .home-objective-route-image,
  .home-objective-route-item:focus-within .home-objective-route-image {
    transform: none;
  }
}

@media (max-width: 1399px) and (min-width: 861px) {
  .home-objective-route-item-content {
    min-height: 300px;
  }
}

@media (max-width: 1199px) and (min-width: 861px) {
  .home-objective-split {
    grid-template-columns: 1fr;
  }
}

.home-approach-section .approach-steps {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: 0;
  counter-reset: home-step;
}

.home-approach-section .approach-steps li {
  position: relative;
  min-height: 210px;
  padding: 70px 28px 0 0;
  background: transparent;
  counter-increment: home-step;
}

.home-approach-section .approach-steps li::before {
  content: counter(home-step, decimal-leading-zero);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: #fff;
  background: #101010;
  border-radius: 999px;
  font-family: var(--prototype-sans);
  font-size: 14px;
  font-weight: 850;
}

.home-approach-section .approach-steps li::after {
  content: "";
  position: absolute;
  top: 21px;
  right: 22px;
  left: 54px;
  height: 1px;
  background: #111;
  opacity: 0.35;
}

.home-approach-section .approach-steps li:last-child::after {
  display: none;
}

.home-approach-section .approach-steps strong {
  margin-bottom: 10px;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.home-approach-section .approach-steps span {
  color: var(--home-muted);
  font-family: var(--prototype-sans);
  font-size: 16px;
}

.home-service-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 1px;
  overflow: hidden;
  background: var(--home-line);
  border: 1px solid var(--home-line);
}

.home-service-strip article {
  display: grid;
  align-content: start;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  background: var(--home-paper);
}

.home-service-strip .home-card-media {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.home-service-strip .home-card-media img {
  display: block;
  min-width: 0;
}

.home-card-media {
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: #dedbd4;
}

.home-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 450ms ease;
}

.home-service-strip article:hover .home-card-media img,
.home-proof-grid article:hover .home-card-media img,
.home-buyer-grid article:hover .home-card-media img {
  transform: scale(1.025);
}

.home-service-card-content {
  min-width: 0;
  min-height: 245px;
  padding: 24px 22px;
}

.home-service-strip article span,
.home-card-index {
  color: #6d675d;
  font-family: var(--prototype-sans);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-service-strip h3 {
  margin: 20px 0 14px;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: clamp(24px, 1.45vw, 28px);
  font-weight: 500;
  line-height: 1.18;
}

.home-service-strip p {
  margin: 0;
  font-size: 16px;
  line-height: 1.45;
}

.home-service-all {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  color: #111;
  background: #fff;
  font-family: var(--prototype-sans);
  font-weight: 850;
}

.home-service-all::after {
  content: "->";
  margin-left: 9px;
}

.home-proof-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.home-proof-grid article {
  display: grid;
  grid-template-rows: auto 1fr;
  align-content: start;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--home-line);
  box-shadow: 0 18px 48px rgba(20, 18, 14, 0.05);
}

.home-proof-grid .home-card-media {
  width: 100%;
  min-width: 0;
}

.home-proof-grid .home-card-media img {
  display: block;
  min-width: 0;
}

.home-proof-card-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 315px;
  padding: clamp(24px, 3vw, 34px);
}

.home-proof-grid h3 {
  margin: 24px 0 18px;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: clamp(24px, 1.45vw, 30px);
  font-weight: 500;
  line-height: 1.18;
}

.home-proof-grid p {
  margin: 0 0 22px;
  font-size: 16px;
  line-height: 1.5;
}

.home-proof-card-content .home-arrow-link {
  margin-top: auto;
}

.home-page-flow .home-dark-cta {
  /* Canonical "black bar brief" treatment used for equivalent CTAs. */
  --home-section-band: #000;
  background: #000;
}

.home-dark-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.75fr) auto;
  align-items: center;
  gap: clamp(24px, 4vw, 62px);
  padding: clamp(34px, 4vw, 52px) var(--home-section-gutter);
  color: #fff;
  border: 0;
  box-shadow: none;
}

.home-dark-cta::before {
  border-block: 0;
  box-shadow: none;
}

.home-dark-cta h2 {
  max-width: 620px;
  margin: 0 0 10px;
  color: #fff;
  font-size: clamp(34px, 4vw, 58px);
  line-height: 1.02;
}

.home-dark-cta p {
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 17px;
}

.home-dark-cta ul {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-dark-cta li {
  position: relative;
  min-width: 0;
  padding-left: 36px;
  color: rgba(255, 255, 255, 0.88);
  font-family: var(--prototype-sans);
  font-weight: 750;
}

.home-dark-cta li::before {
  content: "";
  position: absolute;
  left: 0;
  top: -2px;
  width: 24px;
  height: 24px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
}

.home-dark-cta li::after {
  content: "";
  position: absolute;
  top: 6px;
  left: 8px;
  width: 8px;
  height: 4px;
  border-bottom: 2px solid var(--prototype-yellow);
  border-left: 2px solid var(--prototype-yellow);
  transform: rotate(-45deg);
}

.home-dark-cta .button.primary {
  min-width: 168px;
  color: #111;
  background: var(--prototype-yellow);
  border-color: var(--prototype-yellow);
  border-radius: 3px;
}

.home-who-section .card-grid,
.home-buyer-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home-who-section .listing-card,
.home-buyer-grid article,
.home-page-flow .location-trust-grid article {
  background: var(--home-paper);
  border-color: var(--home-line);
  border-radius: 0;
  box-shadow: none;
}

.home-buyer-grid {
  display: grid;
  gap: 14px;
}

.home-buyer-grid article {
  display: grid;
  align-content: start;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--home-line);
}

.home-buyer-grid .home-card-media {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.home-buyer-grid .home-card-media img {
  display: block;
  min-width: 0;
}

.home-buyer-card-content {
  display: grid;
  align-content: start;
  min-width: 0;
  min-height: 280px;
  padding: clamp(24px, 3vw, 34px);
}

.home-buyer-grid h3 {
  margin: 0 0 18px;
  color: #111;
  font-family: var(--prototype-serif);
  font-size: clamp(25px, 2vw, 36px);
  font-weight: var(--weight-editorial-title);
  line-height: 1.04;
}

.home-buyer-grid p {
  margin: 0 0 22px;
  font-size: 16px;
}

.home-page-flow .location-trust-section {
  padding-top: clamp(32px, 4vw, 58px);
}

.home-page-flow .location-trust-grid article {
  color: #fff;
  background: #111;
  border-color: #111;
}

.home-page-flow .location-trust-grid article p {
  color: rgba(255, 255, 255, 0.72);
}

.home-lower-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) minmax(320px, 1fr);
  gap: 28px;
  align-items: stretch;
}

.home-lower-grid article {
  min-width: 0;
  padding: clamp(28px, 3vw, 42px);
  background: #fff;
  border: 1px solid var(--home-line);
}

.home-lower-grid h2 {
  margin: 0 0 18px;
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.06;
}

.home-insight-list {
  display: grid;
  gap: 18px;
  margin: 26px 0;
}

.home-insight-list a {
  display: grid;
  gap: 8px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--home-line);
}

.home-insight-list strong {
  color: #111;
  font-family: var(--prototype-serif);
  font-size: 24px;
  font-weight: 440;
  line-height: 1.1;
}

.home-insight-list span,
.home-rating em,
.home-phone-note {
  color: var(--home-muted);
  font-family: var(--prototype-sans);
  font-style: normal;
}

.home-rating {
  display: grid;
  gap: 8px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--home-line);
}

.home-rating strong {
  font-family: var(--prototype-sans);
  font-weight: 850;
}

.home-stars {
  display: flex;
  align-items: center;
  gap: clamp(5px, 0.4vw, 8px);
  width: fit-content;
}

.home-stars img {
  display: block;
  width: clamp(28px, 1.7vw, 44px);
  height: auto;
  filter: drop-shadow(0 1px 0 rgb(17 17 17 / 22%));
}

.home-brief-panel {
  background: var(--home-paper) !important;
}

.home-brief-options {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}

.home-brief-options a {
  position: relative;
  display: block;
  min-height: 56px;
  padding: 14px 42px 14px 16px;
  color: #111;
  background: #fff;
  border: 1px solid var(--home-line);
  font-family: var(--prototype-sans);
  font-weight: 760;
  line-height: 1.25;
}

.home-brief-options a::after {
  content: "->";
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
}

.home-phone-note {
  margin: 22px 0 0;
  font-size: 15px;
}

.home-proof-section {
  padding-top: 0;
  padding-bottom: 28px;
}

.proof-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.proof-strip div {
  min-width: 0;
  min-height: 118px;
  padding: 22px;
  background: var(--surface);
}

.proof-strip strong {
  display: block;
  margin-bottom: 8px;
  color: var(--accent);
  font-size: clamp(26px, 4vw, 42px);
  line-height: 1;
}

.proof-strip .proof-strip__title {
  margin-bottom: 18px;
  color: var(--text);
  font-weight: 600;
  line-height: 1.2;
}

.proof-strip span {
  display: block;
  color: var(--muted);
  font-size: 14px;
  font-weight: 200;
}

.choice-grid,
.split-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

.choice-card,
.objective-card {
  min-width: 0;
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.choice-card h3,
.objective-card h3 {
  margin: 0 0 12px;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.08;
}

.choice-card p,
.objective-card p {
  margin-top: 0;
}

.compact-link-list {
  display: grid;
  gap: 10px;
  margin: 22px 0;
  padding: 0;
  list-style: none;
}

.compact-link-list li {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 14px 0;
  border-top: 1px solid var(--border);
}

.compact-link-list a {
  color: var(--text);
  font-weight: 800;
  line-height: 1.2;
}

.compact-link-list a:hover {
  color: var(--blue);
}

.compact-link-list span {
  color: var(--muted);
  font-size: 14px;
}

.objective-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

#research-insight-objectives,
#fieldwork-support-options {
  scroll-margin-top: 112px;
}

.objective-card {
  min-height: 250px;
  padding: 22px;
}

.objective-card h3 {
  font-size: 24px;
}

.objective-detail-hero h1 {
  max-width: 760px;
}

.objective-answer-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(320px, 1.12fr);
  gap: 28px;
  align-items: center;
  margin-top: 12px;
  padding: 42px clamp(24px, 4vw, 48px);
  background: var(--accent-soft);
  border: 1px solid var(--border);
}

.objective-answer-panel h2 {
  margin-bottom: 0;
}

.objective-answer-panel p:last-child {
  margin-bottom: 0;
  color: var(--text);
  font-size: 19px;
  font-weight: 500;
}

.objective-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.objective-detail-grid article {
  min-width: 0;
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.objective-detail-grid h2 {
  margin-bottom: 22px;
  font-size: clamp(34px, 3vw, 40px);
}

.check-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.check-list li {
  position: relative;
  min-width: 0;
  padding-left: 28px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.45;
}

.check-list li::before {
  content: "";
  position: absolute;
  top: 0.58em;
  left: 0;
  width: 9px;
  height: 9px;
  background: var(--accent);
  border-radius: 50%;
}

.objective-proof .listing-card {
  min-height: 240px;
}

.objective-faqs .faq-list {
  max-width: 980px;
}

.objective-next-steps {
  align-items: stretch;
}

.objective-next-steps h3 {
  margin: 0 0 14px;
  font-size: 24px;
  line-height: 1.16;
}

.case-study-objective-map article {
  scroll-margin-top: 96px;
}

.case-study-objective-map {
  display: grid;
  gap: 1px;
  overflow: hidden;
  background: var(--editorial-line);
  border: 1px solid var(--editorial-line);
  box-shadow: 0 16px 55px rgba(25, 25, 20, 0.05);
}

.case-study-objective-map article {
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
  min-width: 0;
  background: #fff;
}

.case-study-objective-map__intro {
  min-width: 0;
  padding: clamp(24px, 3vw, 38px);
}

.case-study-objective-map__intro > span,
.case-study-card-objectives > span {
  display: block;
  margin-bottom: 12px;
  color: var(--editorial-muted);
  font-family: var(--prototype-sans);
  font-size: var(--text-micro);
  font-weight: var(--weight-editorial-overline);
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.case-study-objective-map h3 {
  margin: 0 0 14px;
  font-size: var(--text-card-title);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-small);
}

.case-study-objective-map__intro p {
  margin: 0;
  font-size: var(--text-body);
  line-height: var(--line-body);
}

.case-study-objective-map__links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
  background: var(--editorial-line);
  border-left: 1px solid var(--editorial-line);
  gap: 1px;
}

.case-study-objective-map__links a {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: clamp(22px, 2.5vw, 34px);
  background: var(--editorial-paper-strong);
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
  font-weight: 700;
  line-height: var(--line-body);
}

.case-study-card-objectives {
  margin: 0 0 26px;
  padding-top: 20px;
  border-top: 1px solid var(--editorial-line);
}

.case-study-card-objectives > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.case-study-card-objectives a {
  padding: 7px 10px;
  color: #111;
  background: var(--editorial-paper);
  border: 1px solid var(--editorial-line);
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  font-weight: 700;
  line-height: 1.2;
}

.case-study-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.case-study-summary-card {
  min-width: 0;
  min-height: 280px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.case-study-summary-card h3 {
  margin: 0 0 14px;
  font-size: 24px;
  line-height: 1.12;
}

.case-study-summary-card p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

.case-study-objective-links {
  align-items: stretch;
  padding-top: 24px;
  padding-bottom: 24px;
}

.brief-router .choice-card {
  display: grid;
  align-content: start;
  gap: 18px;
}

.brief-router .choice-card p,
.brief-router .check-list {
  margin: 0;
}

.brief-confidence {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
  gap: 28px;
  align-items: center;
  padding: 42px clamp(24px, 4vw, 48px);
  background: var(--accent-soft);
  border: 1px solid var(--border);
}

.brief-process-list {
  display: grid;
  gap: 1px;
  margin: 0;
  padding: 1px;
  background: var(--editorial-line);
  list-style: none;
}

.brief-process-list li {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: clamp(18px, 2vw, 26px);
  background: #fff;
}

.brief-process-list strong {
  color: #111;
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  font-weight: 800;
  line-height: 1.2;
}

.brief-process-list span {
  color: var(--editorial-muted);
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
  line-height: var(--line-body);
}

.brief-form-section {
  scroll-margin-top: 96px;
}

.location-trust-section {
  padding-top: 42px;
  padding-bottom: 42px;
}

.location-trust-grid {
  display: grid;
  grid-template-columns: 1.2fr repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
}

.location-trust-grid article {
  min-width: 0;
  min-height: 205px;
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.location-trust-grid .primary-location {
  background: var(--accent-soft);
}

.location-trust-grid h3 {
  margin: 0 0 14px;
  font-size: 24px;
  line-height: 1.14;
}

.location-trust-grid p,
.location-trust-note p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

.location-trust-note {
  max-width: 840px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.buyer-track-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.86fr);
  gap: 28px;
  align-items: stretch;
  margin-top: 18px;
  padding: 42px clamp(24px, 4vw, 48px);
  background: var(--accent-soft);
  border: 1px solid var(--border);
}

.buyer-route-card {
  min-width: 0;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.buyer-route-card h3 {
  margin: 0 0 18px;
  font-size: 24px;
  line-height: 1.14;
}

.buyer-track-panel p:last-child,
.buyer-route-card .check-list {
  margin-bottom: 0;
}

.buyer-service-section .listing-card,
.buyer-proof-section .listing-card {
  min-height: 235px;
}

.buyer-objective-section {
  align-items: stretch;
}

.buyer-cross-link {
  scroll-margin-top: 96px;
}

.support-hub-intro {
  align-items: stretch;
  margin-top: 18px;
  padding: 42px clamp(24px, 4vw, 48px);
  background: var(--accent-soft);
  border: 1px solid var(--border);
}

.support-scope-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.support-scope-grid article {
  min-width: 0;
  min-height: 250px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.support-scope-grid h3 {
  margin: 0 0 14px;
  font-size: 24px;
  line-height: 1.14;
}

.support-scope-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

.support-priority-services .listing-card,
.support-proof-section .listing-card {
  min-height: 235px;
}

.support-objective-section {
  align-items: stretch;
}

.bofu-route-panel,
.service-bofu-panel {
  align-items: stretch;
  margin-top: 18px;
  padding: 42px clamp(24px, 4vw, 48px);
  background: var(--accent-soft);
  border: 1px solid var(--border);
}

.bofu-scope-grid,
.fieldwork-options-grid,
.service-quality-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.fieldwork-options-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-quality-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bofu-scope-grid article,
.fieldwork-options-grid article,
.service-quality-grid article {
  min-width: 0;
  min-height: 220px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.service-quality-grid article {
  display: grid;
  align-content: center;
  min-height: 165px;
}

.bofu-scope-grid h3,
.fieldwork-options-grid h3,
.service-quality-grid h3 {
  margin: 0 0 14px;
  font-size: 24px;
  line-height: 1.14;
}

.service-quality-grid h3 {
  margin-bottom: 0;
  font-size: 24px;
}

.bofu-scope-grid p,
.fieldwork-options-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

.fieldwork-options-grid .text-link {
  display: inline-flex;
  margin-top: 18px;
}

.bofu-proof-section .listing-card,
.service-bofu-related-services .listing-card,
.service-bofu-proof .listing-card {
  min-height: 235px;
}

.bofu-objective-section,
.service-bofu-objectives,
.service-geo-question-section {
  align-items: stretch;
}

.service-geo-question-section .check-list {
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.form-intro {
  max-width: 760px;
  margin: 0 auto 18px;
}

.form-intro h2 {
  margin: 0 0 10px;
  font-size: clamp(34px, 4vw, 44px);
  line-height: 1.08;
}

.form-intro p {
  margin: 0 0 14px;
  color: var(--muted);
  font-size: 17px;
}

.approach-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  margin: 28px 0 0;
  padding: 0;
  overflow: hidden;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  list-style: none;
}

.approach-steps li {
  min-width: 0;
  min-height: 210px;
  padding: 22px;
  background: var(--surface);
}

.approach-steps strong {
  display: block;
  margin-bottom: 14px;
  font-size: 20px;
  line-height: 1.12;
}

.approach-steps span {
  color: var(--muted);
  font-size: 16px;
}

.split-section {
  align-items: center;
}

.split-section > div {
  min-width: 0;
}

.split-section .card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.final-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  margin-top: 40px;
  padding: 42px clamp(24px, 4vw, 48px);
  background: var(--accent-soft);
  border: 1px solid var(--border);
}

.final-cta h2 {
  margin-bottom: 10px;
}

.final-cta p {
  margin-bottom: 0;
}

.faq-next-step .hero-actions {
  justify-content: flex-end;
  margin-top: 0;
}

.image-frame,
.visual-placeholder {
  min-height: 360px;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--surface-alt);
  box-shadow: var(--shadow);
}

.image-frame img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

/* The copy sets a split hero's height. An image's intrinsic portrait ratio
 * must not enlarge the grid row and add empty space around the introduction. */
.page-hero.split > :is(.image-frame, .visual-placeholder) {
  position: relative;
  align-self: stretch;
  min-width: 0;
  min-height: 0;
}

.page-hero.split > .image-frame img {
  position: absolute;
  inset: 0;
  display: block;
  min-height: 0;
}

.visual-placeholder {
  display: grid;
  place-items: center;
}

.visual-placeholder span {
  display: grid;
  place-items: center;
  width: 132px;
  height: 132px;
  color: #fff;
  background: var(--accent);
  border-radius: 8px;
  font-size: 32px;
  font-weight: 800;
}

.content-section {
  padding-top: 40px;
  padding-bottom: 40px;
}

.content-section h2 {
  margin: 0 0 18px;
  font-size: clamp(34px, 4vw, 46px);
  line-height: 1.08;
}

.content-section p {
  max-width: 850px;
  color: var(--muted);
  font-size: 17px;
}

.section-label {
  margin-bottom: 12px;
  color: var(--green);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.page-hero .section-label,
.content-section .section-label,
.form-section .section-label {
  font-size: 14px;
  line-height: 1.2;
}

body.editorial-theme .page-hero p.section-label,
body.editorial-theme .content-section p.section-label,
body.editorial-theme .form-section p.section-label,
.home-page-flow .content-section p.home-overline,
.home-page-flow .content-section p.home-objective-client,
.home-page-flow .content-section p.section-label,
.home-page-flow .location-trust-section p.section-label {
  font-size: 14px;
  line-height: 1.2;
}

.home-page-flow .content-section p.home-objective-client {
  font-size: 16px;
}

.home-page-flow .home-intro-section > .home-overline,
.home-page-flow .home-section-heading.centre > .home-overline {
  margin-right: auto;
  margin-left: auto;
}

.home-page-flow .home-intro-section h2 {
  margin: 0 auto 16px;
}

.home-page-flow .home-section-heading.centre h2 {
  margin: 0 auto 30px;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 380px));
  gap: 14px;
  justify-content: center;
}

.category-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 24px 28px;
}

.category-nav a {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 58px;
  padding: 14px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 16px;
  font-weight: 800;
}

.category-nav span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.category-nav a:hover {
  border-color: #aeb8c5;
}

.category-nav strong {
  display: grid;
  place-items: center;
  min-width: 30px;
  height: 30px;
  color: #fff;
  background: var(--accent);
  border-radius: 6px;
  font-size: 13px;
}

.service-category-section {
  scroll-margin-top: 96px;
}

.section-heading-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 24px;
  margin-bottom: 18px;
}

.section-heading-row h2 {
  margin-bottom: 10px;
}

.section-heading-row p {
  margin: 0;
}

.listing-card {
  min-width: 0;
  min-height: 210px;
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.listing-card h3 {
  margin: 0 0 12px;
  font-size: 24px;
  line-height: 1.18;
}

.listing-card p {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 16px;
}

.text-link {
  color: var(--accent);
  font-weight: 800;
  font-size: 16px;
}

.calculator-section {
  padding-top: 28px;
}

.calculator-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1.08fr);
  gap: 18px;
  align-items: stretch;
}

.sample-calculator,
.sample-results {
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.sample-calculator {
  display: grid;
  gap: 18px;
}

.sample-calculator h2 {
  margin: 0;
  font-size: 34px;
}

.sample-calculator label {
  display: grid;
  gap: 7px;
  color: var(--text);
  font-size: 16px;
  font-weight: 800;
}

.sample-calculator input,
.sample-calculator select {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  color: var(--text);
  background: #fff;
  border: 1px solid #aeb8c5;
  border-radius: 4px;
  font: inherit;
  font-weight: 500;
}

.field-help {
  color: var(--muted);
  font-size: 16px;
  font-weight: 500;
}

.sample-results {
  display: grid;
  align-content: start;
  gap: 22px;
}

.result-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.result-box {
  min-height: 150px;
  padding: 20px;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.result-label {
  display: block;
  max-width: 220px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 800;
}

.result-value {
  display: block;
  margin-top: 14px;
  font-size: clamp(38px, 6vw, 64px);
  line-height: 0.95;
}

.sample-summary {
  max-width: 720px;
  margin: 0;
  color: var(--text);
  font-size: 18px;
  font-weight: 650;
}

.faq-list {
  display: grid;
  gap: 10px;
}

details {
  padding: 18px 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

summary {
  cursor: pointer;
  font-weight: 800;
}

.form-section {
  padding-top: 24px;
}

.enquiry-form {
  display: grid;
  gap: 18px;
  max-width: 760px;
  margin: 0 auto 64px;
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.enquiry-form label,
.search-box {
  display: grid;
  gap: 8px;
  font-size: 16px;
  font-weight: 700;
}

.enquiry-form input,
.enquiry-form select,
.enquiry-form textarea,
.search-box input {
  width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  color: var(--text);
  background: #fff;
  border: 1px solid #aeb8c5;
  border-radius: 4px;
  font: inherit;
  font-weight: 400;
}

.enquiry-form textarea {
  resize: vertical;
}

.search-status {
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 15px;
  font-weight: 700;
}

.form-note,
.form-status {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

.search-results {
  display: grid;
  gap: 12px;
  margin-top: 20px;
}

.empty-state {
  margin: 0;
  padding: 22px;
  color: var(--muted);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.site-footer {
  width: 100%;
  margin: 0;
  color: #f7f4ee;
  background: #000000;
  border-top: 0;
  font-family: var(--prototype-sans);
  font-size: var(--text-body, 16px);
}

.site-footer__inner {
  display: grid;
  grid-template-columns: minmax(250px, 0.85fr) minmax(0, 2fr);
  gap: clamp(48px, 7vw, 112px);
  width: min(calc(100% - 48px), var(--layout-wide-max));
  margin: 0 auto;
  padding: clamp(64px, 6vw, 96px) 0 clamp(52px, 5vw, 80px);
  background: #000000;
}

@media (min-width: 1800px) {
  .site-footer__inner,
  .site-footer__legal {
    width: min(78vw, 3000px);
  }
}

.site-footer__brand {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  min-width: 0;
}

.site-footer__logo-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 26px;
}

.site-footer__logo {
  width: clamp(138px, 10vw, 180px);
  height: auto;
}

.site-footer__brand p {
  max-width: 35ch;
  margin: 0 0 24px;
  color: #d2d0ca;
  line-height: 1.55;
}

.site-footer__brief-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 28px;
  padding-bottom: 4px;
  border-bottom: 2px solid currentColor;
  font-size: var(--text-button, 16px);
  font-weight: 700;
  line-height: 1.2;
}

.site-footer__socials {
  display: flex;
  align-items: center;
  gap: 10px;
}

.site-footer__socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(42px, 2vw, 56px);
  height: clamp(42px, 2vw, 56px);
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: var(--text-body, 16px);
  font-weight: 700;
  line-height: 1;
  text-transform: lowercase;
}

.site-footer__navigation {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(30px, 4vw, 68px);
}

.site-footer__column {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 13px;
  min-width: 0;
}

@media (min-width: 861px) {
  .site-footer__navigation > .site-footer__column:nth-child(2) {
    justify-self: center;
  }

  .site-footer__navigation > .site-footer__column:last-child {
    justify-self: end;
  }
}

.site-footer__column h2 {
  margin: 0 0 8px;
  color: #ffffff;
  font-family: var(--prototype-sans);
  font-size: var(--text-body, 16px);
  font-weight: 700;
  line-height: 1.25;
}

.site-footer__column a,
.footer-link-button,
.site-footer__legal a {
  color: #d2d0ca;
  font-size: var(--text-body, 16px);
  font-weight: 400;
  line-height: 1.35;
}

.site-footer__column a,
.footer-link-button {
  text-align: left;
}

.footer-link-button {
  padding: 0;
  background: transparent;
  border: 0;
  font: inherit;
  cursor: pointer;
}

.site-footer a:hover,
.footer-link-button:hover {
  color: var(--prototype-yellow);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 4px;
}

.site-footer__socials a:hover {
  color: #111111;
  background: var(--prototype-yellow);
  text-decoration: none;
}

.site-footer a:focus-visible,
.footer-link-button:focus-visible {
  outline: 3px solid var(--prototype-yellow);
  outline-offset: 4px;
}

.site-footer__legal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  width: min(calc(100% - 48px), var(--layout-wide-max));
  margin: 0 auto;
  padding: 24px 0 30px;
  color: #b9b7b1;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.site-footer__legal p {
  margin: 0;
}

.site-footer__legal nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 14px 28px;
}

.cookie-consent-overlay {
  --consent-ink: #173e34;
  --consent-line: #ccd4cc;
  width: min(760px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  color: var(--consent-ink);
  background: #fff;
  border: 1px solid var(--consent-line);
  border-radius: 12px;
  overflow: auto;
  overscroll-behavior: contain;
  box-shadow: 0 24px 80px #102b3450;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--text-body);
  line-height: 1.58;
}

.cookie-consent-overlay::backdrop { background: #10271fd1; }
body:has(.cookie-consent-overlay[open]) { overflow: hidden; }

.cookie-consent-overlay[hidden] {
  display: none;
}

.cookie-consent {
  min-width: 0;
}

.cookie-consent__view {
  padding: 28px;
}

.cookie-consent__brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}

.cookie-consent__brand strong {
  font-size: var(--text-card-title);
  font-weight: 800;
  letter-spacing: -.04em;
}

.cookie-consent h2 {
  margin: 0 0 18px;
  color: inherit;
  font: inherit;
  font-weight: 700;
  font-size: var(--text-heading-small);
  letter-spacing: -.025em;
  line-height: 1.2;
}

.cookie-consent p {
  max-width: 68ch;
  margin: 0 0 16px;
  color: inherit;
  font-size: var(--text-body, 16px);
}

.cookie-consent__status {
  font-weight: 700;
}

.cookie-consent__status:empty { display: none; }
.cookie-consent p.cookie-consent__essential { color: #4d5e54; padding-bottom: 20px; border-bottom: 1px solid #dce2db; }
.cookie-consent a { text-decoration: underline; text-underline-offset: 3px; }
.cookie-consent :focus-visible { outline: 3px solid #176c99; outline-offset: 4px; }
.cookie-consent h2:focus { outline: none; }
.cookie-consent__text-button {
  min-height: 48px;
  padding: 8px 4px;
  font: inherit;
  color: inherit;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.cookie-consent__brand .cookie-consent__text-button { margin-left: auto; }
.cookie-consent__inline-reject { padding: 0; vertical-align: baseline; }
.cookie-consent__back { margin-bottom: 16px; }

.cookie-consent__tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 22px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.cookie-consent__tabs button {
  min-height: 54px;
  color: inherit;
  background: transparent;
  border: 0;
  border-bottom: 3px solid transparent;
  font: inherit;
  font-size: var(--text-button, 16px);
  cursor: pointer;
}

.cookie-consent__tabs button[aria-selected="true"] {
  border-bottom-color: var(--consent-ink);
  font-weight: 700;
}

.cookie-consent__tab-panel {
  display: grid;
  gap: 10px;
}

.cookie-consent__tab-panel[hidden] {
  display: none;
}

.cookie-consent__category,
.cookie-consent__service {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

label.cookie-consent__category {
  cursor: pointer;
}

.cookie-consent__service {
  display: block;
}

.cookie-consent__category input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.cookie-consent__category strong,
.cookie-consent__service strong {
  display: block;
  font-size: var(--text-body, 16px);
}

.cookie-consent__category strong span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  margin-left: 6px;
  padding: 0 7px;
  color: var(--text);
  background: var(--surface-alt);
  border-radius: 999px;
  font-size: var(--text-micro, 16px);
  font-weight: 800;
}

.cookie-consent__category p,
.cookie-consent__service p,
.cookie-consent__tab-panel > p {
  margin-top: 6px;
  line-height: 1.45;
}

.cookie-consent__switch {
  position: relative;
  flex: 0 0 auto;
  width: 56px;
  height: 32px;
  background: #cfd4da;
  border-radius: 999px;
  transition: background 0.18s ease;
}

.cookie-consent__switch::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 24px;
  height: 24px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(16, 20, 24, 0.24);
  transition: transform 0.18s ease;
}

.cookie-consent__switch.is-locked,
.cookie-consent__category input:checked + .cookie-consent__switch {
  background: var(--consent-ink);
}

.cookie-consent__switch.is-locked::after,
.cookie-consent__category input:checked + .cookie-consent__switch::after {
  transform: translateX(24px);
}

.cookie-consent__category input:focus-visible + .cookie-consent__switch {
  outline: 3px solid #176c99;
  outline-offset: 3px;
}

.cookie-consent__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 24px;
}

.cookie-consent__actions--overview {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cookie-consent__button {
  min-height: 48px;
  padding: 12px 14px;
  font: inherit;
  font-size: var(--text-button);
  font-weight: 650;
  line-height: 1.3;
  color: var(--consent-ink);
  background: #fff;
  border: 1.5px solid var(--consent-ink);
  border-radius: 6px;
  cursor: pointer;
}
.cookie-consent__button:hover { background: #edf2ea; }
.cookie-consent__button.is-primary { color: #fff; background: var(--consent-ink); }
.cookie-consent__button.is-primary:hover { background: #285446; }
@media (min-width: 2400px) {
  .cookie-consent-overlay { width: min(1100px, calc(100% - 48px)); }
}

.admin-page {
  background: #f4f6f8;
}

.admin-shell {
  width: min(1480px, 100%);
  margin: 0 auto;
  padding: 28px 24px 56px;
}

.admin-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  align-items: end;
  gap: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--border);
}

.admin-kicker {
  margin: 0 0 8px;
  color: var(--green);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.admin-header h1 {
  margin: 0;
  font-size: clamp(34px, 5vw, 62px);
  line-height: 1.02;
  letter-spacing: 0;
}

.admin-auth,
.admin-controls,
.admin-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.admin-auth label,
.admin-controls label,
.admin-actions label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.admin-auth input,
.admin-controls select,
.admin-actions input,
.admin-actions select {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  color: var(--text);
  background: #fff;
  border: 1px solid #b8c2cc;
  border-radius: 4px;
  font: inherit;
  font-size: 14px;
  text-transform: none;
}

.admin-controls {
  grid-template-columns: repeat(3, minmax(150px, 1fr)) auto;
  margin: 18px 0 12px;
}

.admin-status {
  min-height: 24px;
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
}

.admin-status[data-tone="success"] {
  color: var(--green);
}

.admin-status[data-tone="error"] {
  color: #9f1d1d;
}

.admin-list {
  display: grid;
  gap: 12px;
}

.admin-item {
  min-width: 0;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.admin-item__summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 280px);
  gap: 18px;
}

.admin-item__summary h2 {
  margin: 8px 0 8px;
  font-size: 22px;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.admin-item__summary p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.admin-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.admin-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  color: #1d2833;
  background: #edf1f5;
  border: 1px solid #d8e0e8;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.admin-pill[data-status="qualified"],
.admin-pill[data-status="converted"] {
  color: #063f2d;
  background: #dff4ea;
  border-color: #b9e1cd;
}

.admin-pill[data-status="rejected"] {
  color: #7c1111;
  background: #f8e4e4;
  border-color: #edc5c5;
}

.admin-pill[data-status="test"] {
  color: #4e3b00;
  background: #fff4cc;
  border-color: #ecd88f;
}

.admin-item__ids {
  display: grid;
  align-content: start;
  gap: 6px;
  color: var(--muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.admin-data-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 16px 0 0;
}

.admin-data-grid div {
  min-width: 0;
  padding: 10px;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 4px;
}

.admin-data-grid dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.admin-data-grid dd {
  margin: 4px 0 0;
  font-size: 14px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.admin-tracking {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.admin-tracking span {
  min-width: 0;
  padding: 10px;
  color: var(--muted);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 4px;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.admin-tracking strong {
  display: block;
  margin-bottom: 4px;
  color: var(--text);
  font-size: 11px;
  text-transform: uppercase;
}

.admin-actions {
  grid-template-columns: minmax(130px, 0.8fr) minmax(180px, 1fr) minmax(220px, 1.5fr) auto;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.admin-action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-action-buttons .button {
  white-space: normal;
}

.admin-inline-warning,
.admin-action-status {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.admin-inline-warning {
  color: #7a4b00;
}

.admin-action-status:empty {
  display: none;
}

.admin-action-status[data-tone="success"] {
  color: var(--green);
}

.admin-action-status[data-tone="error"] {
  color: #9f1d1d;
}

.admin-raw {
  margin-top: 12px;
  padding: 0;
  background: transparent;
  border: 0;
}

.admin-raw summary {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  color: var(--muted);
  font-size: 13px;
}

.admin-raw pre {
  max-height: 340px;
  overflow: auto;
  margin: 8px 0 0;
  padding: 14px;
  color: #16202a;
  background: #f7f8fa;
  border: 1px solid var(--border);
  border-radius: 4px;
  font-size: 12px;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (min-width: 1800px) {
  .home-page-flow .content-section p,
  .home-page-flow .home-check-list li,
  .home-page-flow .home-objective-route-copy > p:not(.home-objective-client),
  .home-page-flow .home-objective-route-item p,
  .home-page-flow .home-objective-route-link,
  .home-page-flow .home-arrow-link,
  .home-page-flow .text-link,
  .home-page-flow .home-approach-section .approach-steps li,
  .home-page-flow .home-approach-section .approach-steps span,
  .home-page-flow .home-service-strip p,
  .home-page-flow .home-service-all,
  .home-page-flow .home-proof-grid p,
  .home-page-flow .home-dark-cta li,
  .home-page-flow .home-buyer-grid p,
  .home-page-flow .home-insight-list a,
  .home-page-flow .home-insight-list span,
  .home-page-flow .home-rating em,
  .home-page-flow .home-phone-note,
  .home-page-flow .home-brief-options a,
  .home-page-flow .proof-strip span {
    font-size: clamp(16px, 0.9vw, 18px);
    line-height: 1.45;
  }

  body.editorial-theme .page-hero p,
  body.editorial-theme .content-section p,
  body.editorial-theme .content-section li,
  body.editorial-theme .form-section p,
  body.editorial-theme .proof-strip span,
  body.editorial-theme .listing-card p,
  body.editorial-theme .objective-card p,
  body.editorial-theme .buyer-route-card p,
  body.editorial-theme .fieldwork-options-grid p,
  body.editorial-theme .support-scope-grid p,
  body.editorial-theme .service-quality-grid p,
  body.editorial-theme .case-study-summary-card p,
  body.editorial-theme .check-list li,
  body.editorial-theme .compact-link-list span,
  body.editorial-theme .text-link {
    font-size: clamp(18px, 1.05vw, 22px);
    line-height: 1.45;
  }

  .home-page-flow .home-overline,
  .home-page-flow .content-section p.home-overline,
  .home-page-flow .home-objective-client,
  .home-page-flow .content-section p.home-objective-client,
  .home-page-flow .content-section p.section-label,
  .home-page-flow .location-trust-section p.section-label,
  body.editorial-theme .section-label,
  body.editorial-theme .home-overline,
  body.editorial-theme .page-hero .section-label,
  body.editorial-theme .page-hero p.section-label,
  body.editorial-theme .content-section .section-label,
  body.editorial-theme .content-section p.section-label,
  body.editorial-theme .form-section .section-label,
  body.editorial-theme .form-section p.section-label {
    font-size: clamp(14px, 0.9vw, 18px);
    line-height: 1.2;
  }

  .home-page-flow .home-approach-section .approach-steps strong,
  .home-page-flow .home-service-strip h3,
  .home-page-flow .location-trust-grid h3,
  body.editorial-theme .listing-card h3,
  body.editorial-theme .objective-card h3,
  body.editorial-theme .buyer-route-card h3,
  body.editorial-theme .fieldwork-options-grid h3,
  body.editorial-theme .support-scope-grid h3,
  body.editorial-theme .service-quality-grid h3,
  body.editorial-theme .case-study-summary-card h3 {
    font-size: clamp(24px, 1.1vw, 28px);
    line-height: 1.18;
  }

  .home-page-flow .button,
  body.editorial-theme main .button {
    min-height: 54px;
    padding-right: 24px;
    padding-left: 24px;
    font-size: 18px;
    line-height: 1.2;
  }
}

body.agentc-system-prototype {
  --agds-ink: #080808;
  --agds-white: #ffffff;
  --agds-muted: #525252;
  --agds-soft: #f5f3ee;
  --agds-rule: #dedbd3;
  --agds-yellow: #ffd400;
  --agds-radius: 8px;
  --agds-max: 1500px;
  --agds-gutter: clamp(20px, 4vw, 72px);
  --agds-section-y: clamp(5rem, 10vw, 11rem);
  --agds-body-size: clamp(1.05rem, 0.95rem + 0.18vw, 1.125rem);
  --agds-nav-size: clamp(1rem, 0.9rem + 0.15vw, 1.125rem);
  --agds-button-size: clamp(1rem, 0.95rem + 0.12vw, 1.125rem);
  --agds-kicker-size: clamp(0.85rem, 0.8rem + 0.14vw, 1rem);
  --agds-hero-title-size: clamp(4.2rem, 6.4vw, 9.4rem);
  --agds-hero-title-tablet-size: clamp(4rem, 9vw, 6.2rem);
  --agds-hero-title-mobile-size: clamp(3.3rem, 16vw, 5.2rem);
  --agds-intro-size: clamp(1.2rem, 0.92rem + 0.8vw, 1.85rem);
  --agds-large-body-size: clamp(1.05rem, 0.96rem + 0.32vw, 1.25rem);
  --agds-section-heading-size: clamp(3rem, 5.8vw, 6.9rem);
  --agds-section-heading-tablet-size: clamp(3rem, 8vw, 5.4rem);
  --agds-section-heading-mobile-size: clamp(2.55rem, 12vw, 4.2rem);
  --agds-path-heading-size: clamp(2.2rem, 3.2vw, 4.4rem);
  --agds-path-heading-mobile-size: clamp(2rem, 10vw, 3.2rem);
  --agds-card-heading-size: clamp(1.35rem, 1.1rem + 0.7vw, 2rem);
  --agds-card-body-size: clamp(1rem, 0.95rem + 0.18vw, 1.125rem);
  --agds-hero-min-height: min(980px, calc(100svh - 98px));
  --agds-hero-padding-y: clamp(4.5rem, 7vw, 9rem);
  --agds-logo-scroll-duration: 42s;
  color: var(--agds-ink);
  background: var(--agds-white);
  font-family: "Outfit", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--agds-body-size);
  line-height: 1.55;
}

body.agentc-system-prototype > .site-topbar,
body.agentc-system-prototype > .site-header,
body.agentc-system-prototype > .site-footer,
body.agentc-system-prototype > .cookie-consent-overlay {
  display: none !important;
}

body.agentc-system-prototype main {
  min-width: 0;
  overflow-x: clip;
}

.agds-page {
  width: 100%;
  min-width: 0;
  overflow-x: clip;
  background: var(--agds-white);
  font-size: var(--agds-body-size);
}

.agds-inner {
  width: min(100%, var(--agds-max));
  margin: 0 auto;
}

.agds-header {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr);
  align-items: center;
  gap: clamp(20px, 3vw, 52px);
  width: 100%;
  min-width: 0;
  padding: clamp(22px, 2.6vw, 44px) var(--agds-gutter);
  background: var(--agds-soft);
  border-bottom: 1px solid var(--agds-rule);
}

.agds-brand {
  justify-self: start;
  width: clamp(164px, 14vw, 244px);
}

.agds-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 2.4vw, 44px);
  min-width: 0;
  color: var(--agds-ink);
  font-family: "Outfit", Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: var(--agds-nav-size);
  font-weight: 600;
  line-height: 1;
}

.agds-nav a {
  padding: 10px 0;
}

.agds-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  border: 1px solid var(--agds-ink);
  border-radius: 999px;
  font-family: "Outfit", Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: var(--agds-button-size);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.agds-header > .agds-button {
  justify-self: end;
}

.agds-button--yellow {
  color: var(--agds-ink);
  background: var(--agds-yellow);
  border-color: var(--agds-yellow);
}

.agds-button--dark {
  color: var(--agds-white);
  background: var(--agds-ink);
  border-color: var(--agds-ink);
}

.agds-button--light {
  color: var(--agds-ink);
  background: transparent;
  border-color: var(--agds-rule);
}

.agds-hero {
  display: flex;
  align-items: center;
  min-height: var(--agds-hero-min-height);
  padding: var(--agds-hero-padding-y) var(--agds-gutter);
  background:
    linear-gradient(90deg, rgba(245, 243, 238, 0.96), rgba(245, 243, 238, 0.8) 48%, rgba(245, 243, 238, 0.95)),
    url("/assets/design-prototypes/london-12sec_2560w-poster.jpg") center / cover no-repeat;
  border-bottom: 1px solid var(--agds-rule);
}

.agds-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.66fr);
  gap: clamp(40px, 5.8vw, 112px);
  align-items: center;
}

.agds-hero__copy,
.agds-hero__aside,
.agds-split,
.agds-path-grid,
.agds-objective-grid,
.agds-process-grid,
.agds-service-list,
.agds-proof-grid,
.agds-contact__inner {
  min-width: 0;
}

.agds-kicker {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 1.4rem;
  color: var(--agds-ink);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: var(--agds-kicker-size);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
}

.agds-kicker::before {
  display: block;
  width: 28px;
  height: 2px;
  background: var(--agds-yellow);
  content: "";
}

.agds-hero h1,
.agds-section h2,
.agds-contact h2 {
  margin: 0;
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 0.96;
}

.agds-hero h1 {
  max-width: 960px;
  font-size: var(--agds-hero-title-size);
}

.agds-hero h1 span {
  color: var(--agds-yellow);
}

.agds-intro {
  max-width: 880px;
  margin: 0;
  color: var(--agds-ink);
  font-size: var(--agds-intro-size);
  font-weight: 500;
  line-height: 1.25;
}

.agds-body-large {
  max-width: 780px;
  margin: 1.4rem 0 0;
  color: var(--agds-muted);
  font-size: var(--agds-large-body-size);
  line-height: 1.55;
}

.agds-hero__aside {
  padding-top: clamp(28px, 3vw, 48px);
  border-top: 1px solid var(--agds-ink);
}

.agds-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: clamp(1.8rem, 3vw, 3rem);
}

.agds-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: clamp(1.8rem, 3vw, 2.6rem);
}

.agds-hero__trust span,
.agds-path__label {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 12px;
  border: 1px solid rgba(8, 8, 8, 0.22);
  border-radius: 999px;
  color: var(--agds-ink);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.agds-logo-rail {
  width: 100%;
  max-width: 100%;
  padding: 28px 0;
  overflow: clip;
  color: var(--agds-white);
  background: var(--agds-ink);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.agds-logo-rail__inner {
  display: flex;
  align-items: center;
  gap: clamp(38px, 5vw, 96px);
  width: max-content;
  min-width: 100%;
  padding: 0 var(--agds-gutter);
  animation: agds-logo-scroll var(--agds-logo-scroll-duration) linear infinite;
}

.agds-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: clamp(92px, 8vw, 176px);
  height: clamp(40px, 4vw, 74px);
}

.agds-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

@keyframes agds-logo-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

.agds-section {
  width: 100%;
  padding: var(--agds-section-y) var(--agds-gutter);
  background: var(--agds-white);
  border-bottom: 1px solid var(--agds-rule);
}

.agds-section--soft {
  background: var(--agds-soft);
}

.agds-split {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(340px, 0.8fr);
  gap: clamp(44px, 6vw, 112px);
  align-items: start;
}

.agds-split--intro {
  margin-bottom: clamp(3rem, 6vw, 6rem);
}

.agds-section h2,
.agds-contact h2 {
  max-width: 900px;
  font-size: var(--agds-section-heading-size);
}

.agds-measure-heading {
  max-width: 1160px;
  margin-bottom: clamp(3rem, 6vw, 6rem) !important;
}

.agds-path-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--agds-rule);
  border-left: 1px solid var(--agds-rule);
}

.agds-path {
  padding: clamp(2rem, 4vw, 4.8rem);
  border-right: 1px solid var(--agds-rule);
  border-bottom: 1px solid var(--agds-rule);
}

.agds-path h3,
.agds-objective-grid h3,
.agds-process-grid h3,
.agds-service-list h3,
.agds-proof-grid h3 {
  margin: 0;
  color: var(--agds-ink);
  font-family: "Outfit", Inter, ui-sans-serif, system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.08;
}

.agds-path h3 {
  max-width: 620px;
  margin-top: clamp(2rem, 3vw, 3rem);
  font-size: var(--agds-path-heading-size);
}

.agds-path p:not(.agds-path__label) {
  max-width: 680px;
  margin: 1.4rem 0 0;
  color: var(--agds-muted);
  font-size: var(--agds-large-body-size);
}

.agds-path ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: clamp(1.8rem, 3vw, 2.8rem) 0;
  padding: 0;
  list-style: none;
}

.agds-path li {
  padding: 7px 11px;
  border: 1px solid var(--agds-rule);
  border-radius: 999px;
  color: var(--agds-muted);
  font-size: 0.95rem;
}

.agds-path > a,
.agds-service-list article > a,
.agds-proof-grid article > a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--agds-ink);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--agds-yellow);
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
}

.agds-objective-grid,
.agds-process-grid,
.agds-proof-grid {
  display: grid;
  border-top: 1px solid var(--agds-rule);
  border-left: 1px solid var(--agds-rule);
}

.agds-objective-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(3rem, 6vw, 6rem);
}

.agds-process-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.agds-proof-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(3rem, 6vw, 6rem);
}

.agds-objective-grid article,
.agds-process-grid article,
.agds-proof-grid article {
  min-width: 0;
  padding: clamp(1.6rem, 2.5vw, 3rem);
  border-right: 1px solid var(--agds-rule);
  border-bottom: 1px solid var(--agds-rule);
}

.agds-objective-grid span,
.agds-process-grid span,
.agds-proof-grid span,
.agds-service-list span {
  display: block;
  margin-bottom: clamp(1.4rem, 2vw, 2rem);
  color: var(--agds-muted);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.86rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.agds-objective-grid h3,
.agds-process-grid h3,
.agds-proof-grid h3,
.agds-service-list h3 {
  font-size: var(--agds-card-heading-size);
}

.agds-objective-grid p,
.agds-process-grid p,
.agds-service-list p,
.agds-proof-grid p {
  max-width: 62ch;
  margin: 1rem 0 0;
  color: var(--agds-muted);
  font-size: var(--agds-card-body-size);
}

.agds-service-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(3rem, 6vw, 6rem);
  border-top: 1px solid var(--agds-rule);
  border-left: 1px solid var(--agds-rule);
}

.agds-service-list article {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  min-height: 300px;
  padding: clamp(1.6rem, 2.5vw, 3rem);
  border-right: 1px solid var(--agds-rule);
  border-bottom: 1px solid var(--agds-rule);
}

.agds-service-list article > a,
.agds-proof-grid article > a {
  margin-top: auto;
  align-self: flex-start;
}

.agds-contact {
  color: var(--agds-white);
  background: var(--agds-ink);
  border-bottom: 0;
}

.agds-contact .agds-kicker,
.agds-contact .agds-intro {
  color: var(--agds-white);
}

.agds-contact .agds-kicker::before {
  background: var(--agds-yellow);
}

.agds-contact__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(340px, 0.75fr);
  gap: clamp(44px, 6vw, 112px);
  align-items: center;
}

@media (prefers-reduced-motion: reduce) {
  .agds-logo-rail__inner {
    animation: none;
  }
}

@media (max-width: 1050px) {
  .agds-header {
    grid-template-columns: 1fr auto;
  }

  .agds-nav {
    grid-column: 1 / -1;
    order: 3;
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .agds-nav::-webkit-scrollbar {
    display: none;
  }

  .agds-hero__inner,
  .agds-split,
  .agds-contact__inner {
    grid-template-columns: 1fr;
  }

  .agds-hero {
    min-height: auto;
  }

  .agds-hero h1 {
    font-size: var(--agds-hero-title-tablet-size);
  }

  .agds-section h2,
  .agds-contact h2 {
    font-size: var(--agds-section-heading-tablet-size);
  }

  .agds-objective-grid,
  .agds-process-grid,
  .agds-proof-grid,
  .agds-service-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body.agentc-system-prototype {
    font-size: 1rem;
  }

  .agds-header {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
  }

  .agds-brand {
    width: 160px;
  }

  .agds-header > .agds-button {
    min-height: 44px;
    padding: 0 16px;
  }

  .agds-nav {
    flex-basis: 100%;
    gap: 20px;
    font-size: 1rem;
  }

  .agds-hero,
  .agds-section {
    padding-right: var(--agds-gutter);
    padding-left: var(--agds-gutter);
  }

  .agds-hero h1 {
    font-size: var(--agds-hero-title-mobile-size);
  }

  .agds-section h2,
  .agds-contact h2 {
    font-size: var(--agds-section-heading-mobile-size);
  }

  .agds-path-grid,
  .agds-objective-grid,
  .agds-process-grid,
  .agds-proof-grid,
  .agds-service-list {
    grid-template-columns: 1fr;
  }

  .agds-path h3 {
    font-size: var(--agds-path-heading-mobile-size);
  }

  .agds-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .agds-actions .agds-button {
    width: 100%;
  }

  .agds-logo-rail {
    padding: 22px 0;
  }

  .agds-logo {
    width: 112px;
    height: 52px;
  }
}

@media (min-width: 2400px) {
  .home-objective-route-list,
  .home-objective-route-panel--fieldwork .home-objective-route-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }

  .home-objective-route-item:nth-child(n) .home-objective-route-image {
    border-right: 1px solid #fff;
  }

  .home-objective-route-item:nth-child(n) .home-objective-route-item-content {
    border-right: 1px solid #b7b0a5;
  }

  .home-objective-route-panel--fieldwork .home-objective-route-item:nth-child(n) .home-objective-route-item-content {
    border-right-color: rgba(255, 255, 255, 0.38);
  }

  .home-objective-route-item:nth-child(3n) .home-objective-route-image,
  .home-objective-route-item:nth-child(3n) .home-objective-route-item-content {
    border-right: 0;
  }

  :root {
    --site-chrome-gutter: clamp(96px, 6vw, 220px);
    --site-chrome-max: 3000px;
    --home-header-top: clamp(72px, 3.5vw, 112px);
  }

  .site-topbar__inner {
    min-height: var(--home-header-top);
    padding: 14px clamp(56px, 3vw, 112px);
  }

  .site-topbar__reviews,
  .site-topbar__locations {
    font-size: clamp(20px, 0.65vw, 26px);
  }

  .site-topbar__reviews {
    font-size: var(--home-topbar-highres-reviews-size, var(--home-topbar-reviews-size, clamp(20px, 0.65vw, 26px)));
  }

  .site-topbar__locations {
    font-size: var(--home-topbar-highres-locations-size, var(--home-topbar-locations-size, clamp(20px, 0.65vw, 26px)));
  }

  .site-topbar__search {
    width: clamp(340px, 16vw, 620px);
    min-height: 52px;
    font-size: var(--home-topbar-highres-search-size, var(--home-topbar-search-size, clamp(20px, 0.58vw, 24px)));
  }

  .home-site-header {
    top: var(--home-header-top);
    width: min(100% - var(--site-chrome-gutter), var(--site-chrome-max));
    padding: clamp(34px, 1.6vw, 56px) 0;
  }

  .home-site-header .brand-logo {
    width: clamp(280px, 10vw, 420px);
  }

  .home-site-header .nav-links {
    gap: clamp(34px, 1.7vw, 72px);
    font-size: var(--home-nav-highres-size, var(--home-nav-size, clamp(20px, 0.62vw, 25px)));
  }

  .home-site-header .header-cta {
    min-height: clamp(58px, 1.7vw, 72px);
    padding: 0 clamp(30px, 1.2vw, 48px);
    font-size: var(--home-header-cta-highres-size, var(--home-header-cta-size, clamp(20px, 0.62vw, 24px)));
  }

  .home-hero__content {
    width: min(100%, var(--home-hero-highres-content-max, 1380px));
  }

  .home-hero--prototype .section-label {
    min-height: 42px;
    padding: 8px 22px;
    font-size: var(--home-hero-highres-kicker-size, clamp(18px, 0.55vw, 22px));
  }

  .home-hero--prototype h1 {
    max-width: var(--home-hero-highres-content-max, 1380px);
    font-size: var(--home-hero-highres-title-size, clamp(118px, 4vw, 168px));
  }

  .home-hero--prototype .home-hero__support {
    max-width: 880px;
    font-size: var(--home-hero-highres-support-size, clamp(30px, 0.95vw, 38px));
  }

  .home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
    max-width: 1040px;
    font-size: var(--home-hero-highres-body-size, clamp(24px, 0.7vw, 30px));
  }

  .home-hero--prototype .button {
    min-height: 72px;
    padding-right: 40px;
    padding-left: 40px;
    font-size: var(--home-hero-highres-button-size, 24px);
  }

  .home-page-flow {
    --home-section-gutter: clamp(44px, 1.5vw, 64px);
  }

  .home-page-flow .content-section {
    width: min(78vw, 3000px);
    max-width: 3000px;
    padding-top: clamp(112px, 4.6vw, 180px);
    padding-right: var(--home-section-gutter);
    padding-bottom: clamp(112px, 4.6vw, 180px);
    padding-left: var(--home-section-gutter);
  }

  .home-page-flow .home-intro-section > h2,
  .home-page-flow .home-section-heading.centre > h2,
  .home-page-flow .section-heading-row h2,
  .home-dark-cta h2,
  .home-lower-grid h2 {
    max-width: 1500px;
    font-size: clamp(72px, 2.35vw, 96px);
    line-height: 1;
  }

  .home-page-flow .home-intro-section > p:not(.home-overline),
  .home-page-flow .section-heading-row p {
    max-width: 1500px;
    font-size: clamp(24px, 0.68vw, 28px);
    line-height: 1.45;
  }

  .home-page-flow .content-section p,
  .home-page-flow .home-check-list li,
  .home-page-flow .home-objective-route-copy > p:not(.home-objective-client),
  .home-page-flow .home-objective-route-item p,
  .home-page-flow .home-objective-route-link,
  .home-page-flow .home-arrow-link,
  .home-page-flow .text-link,
  .home-page-flow .home-approach-section .approach-steps span,
  .home-page-flow .home-service-strip p,
  .home-page-flow .home-service-all,
  .home-page-flow .home-proof-grid p,
  .home-page-flow .home-dark-cta p,
  .home-page-flow .home-dark-cta li,
  .home-page-flow .home-buyer-grid p,
  .home-page-flow .home-insight-list a,
  .home-page-flow .home-insight-list span,
  .home-page-flow .home-rating em,
  .home-page-flow .home-phone-note,
  .home-page-flow .home-brief-options a,
  .home-page-flow .proof-strip span {
    font-size: clamp(22px, 0.65vw, 28px);
    line-height: 1.45;
  }

  .home-page-flow .home-overline,
  .home-page-flow .content-section p.home-overline,
  .home-page-flow .home-objective-client,
  .home-page-flow .content-section p.home-objective-client,
  .home-page-flow .content-section p.section-label,
  .home-page-flow .location-trust-section p.section-label {
    font-size: clamp(18px, 0.58vw, 24px);
    line-height: 1.2;
  }

  .home-route-grid {
    gap: clamp(72px, 2.8vw, 112px);
  }

  .home-route-card {
    min-height: 620px;
    padding: clamp(64px, 2.6vw, 96px);
  }

  .home-route-card h3,
  .home-objective-route-copy h3 {
    max-width: 860px;
    font-size: clamp(52px, 1.65vw, 72px);
  }

  .home-route-icon {
    width: 82px;
    height: 82px;
  }

  .home-route-icon svg {
    width: 44px;
    height: 44px;
  }

  .home-check-list {
    gap: 22px;
  }

  .home-check-list li {
    padding-left: 48px;
  }

  .home-check-list li::before {
    width: 30px;
    height: 30px;
  }

  .home-check-list li::after {
    top: 0.46em;
    left: 9px;
    width: 11px;
    height: 6px;
  }

  .home-objective-route-copy {
    min-height: 620px;
    padding: clamp(58px, 2.4vw, 88px);
  }

  .home-objective-route-copy > p:not(.home-objective-client) {
    max-width: 920px;
    min-height: 140px;
  }

  .home-objective-route-item {
    min-height: 0;
    padding: 0;
  }

  .home-objective-route-panel--fieldwork .home-objective-route-item {
    min-height: 0;
  }

  .home-objective-route-item-content {
    min-height: 420px;
    padding: clamp(38px, 1.55vw, 58px);
  }

  .home-page-flow .home-objective-route-item h4,
  .home-page-flow .home-service-strip h3,
  .home-page-flow .home-proof-grid h3,
  .home-page-flow .home-buyer-grid h3,
  .home-page-flow .location-trust-grid h3,
  .home-page-flow .home-insight-list strong {
    font-size: clamp(34px, 1.12vw, 48px);
    line-height: 1.12;
  }

  .home-approach-section .approach-steps li {
    min-height: 320px;
    padding: 96px 42px 0 0;
  }

  .home-approach-section .approach-steps li::before {
    width: 64px;
    height: 64px;
    font-size: 20px;
  }

  .home-approach-section .approach-steps li::after {
    top: 32px;
    right: 36px;
    left: 78px;
  }

  .home-approach-section .approach-steps strong {
    font-size: clamp(24px, 0.8vw, 32px);
  }

  .home-service-card-content {
    min-height: 360px;
    padding: clamp(38px, 1.5vw, 58px);
  }

  .home-service-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .home-service-all {
    min-height: 82px;
  }

  .home-proof-grid {
    gap: 34px;
  }

  .home-proof-card-content,
  .home-buyer-card-content,
  .home-lower-grid article {
    min-height: 470px;
    padding: clamp(44px, 1.8vw, 68px);
  }

  .home-dark-cta {
    gap: clamp(64px, 2.6vw, 112px);
    padding: clamp(76px, 2.8vw, 112px) var(--home-section-gutter);
  }

  .home-dark-cta .button.primary {
    min-width: 260px;
  }

  .home-lower-grid {
    gap: 48px;
  }

  .home-brief-options {
    gap: 18px;
  }

  .home-brief-options a {
    min-height: 82px;
    padding: 22px 64px 22px 24px;
  }

  .proof-strip div {
    min-height: 180px;
    padding: 34px;
  }

  .home-page-flow .proof-strip strong {
    font-size: clamp(54px, 1.9vw, 78px);
    line-height: 1;
  }
}

@media (min-width: 3200px) {
  .home-service-strip {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
}

@media (min-width: 861px) and (max-width: 1199px) {
  .home-service-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .home-service-strip article:last-of-type {
    grid-column: span 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1fr);
    align-content: stretch;
  }

  .home-service-strip article:last-of-type .home-card-media {
    width: 100%;
    min-width: 0;
    height: 100%;
    aspect-ratio: auto;
  }

  .home-service-strip article:last-of-type .home-service-card-content {
    min-width: 0;
    height: 100%;
  }

  .home-proof-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .home-buyer-grid,
  .home-who-section .card-grid,
  .support-scope-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-page-flow .proof-strip {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .home-page-flow .proof-strip > div {
    grid-column: span 2;
  }

  .home-page-flow .proof-strip > div:nth-last-child(-n + 2) {
    grid-column: span 3;
  }
}

@media (max-width: 860px) {
  :root {
    --home-header-top: 76px;
  }

  .home-page-flow {
    --home-section-gutter: 18px;
  }

  body.editorial-theme {
    --editorial-section-gutter: 18px;
  }

  .site-topbar__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    min-height: 0;
    padding: 0;
  }

  .site-topbar__reviews {
    order: 2;
    width: 100%;
    padding: 9px 14px 8px;
    color: #fff;
    background: #080808;
    font-size: var(--home-topbar-mobile-reviews-size, clamp(15px, 3.8vw, 18px));
    font-weight: var(--home-topbar-reviews-weight, 700);
    line-height: 1.18;
    text-align: center;
  }

  .site-topbar__locations {
    order: 1;
    width: 100%;
    max-width: 100%;
    justify-content: space-between;
    gap: clamp(6px, 2.1vw, 14px);
    overflow: hidden;
    padding: 10px 12px 9px;
    font-size: var(--home-topbar-mobile-locations-size, clamp(14px, 3.05vw, 17px));
    font-weight: var(--home-topbar-locations-weight, 750);
    letter-spacing: 0.01em;
    line-height: 1;
  }

  .site-topbar__locations span {
    flex: 0 1 auto;
    min-width: 0;
    white-space: nowrap;
  }

  .site-topbar__search {
    display: none;
    font-size: var(--home-topbar-mobile-search-size, var(--home-topbar-search-size, 16px));
  }

  .site-header {
    width: auto;
    max-width: none;
    margin: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px 16px;
    padding: 14px 18px;
  }

  .site-header__actions {
    grid-column: 2;
    grid-row: 1;
    min-width: 46px;
    gap: 0;
  }

  .site-header .nav-toggle {
    display: inline-flex;
    width: 46px;
    min-width: 46px;
    max-width: 46px;
    height: 46px;
    min-height: 46px;
  }

  .nav-links {
    grid-column: 1 / -1;
    display: none;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: visible;
    width: 100%;
    min-width: 0;
    gap: 0;
    margin-top: 2px;
    padding: 8px;
    color: #111;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(17, 17, 17, 0.12);
    border-radius: 8px;
    box-shadow: 0 18px 44px rgba(16, 20, 24, 0.14);
    font-size: 16px;
  }

  .site-header[data-menu-open="true"] .nav-links {
    display: flex;
  }

  .nav-links a {
    flex: 0 0 auto;
    width: 100%;
    padding: 12px 10px;
    border-radius: 6px;
  }

  .nav-links a:hover {
    color: #111;
    background: rgba(255, 212, 0, 0.18);
  }

  .site-header .header-cta,
  .site-header.home-site-header .header-cta {
    display: none;
  }

  .nav-links .nav-links__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-top: 8px;
    color: #161616;
    background: var(--prototype-yellow);
    border-radius: 999px;
    font-size: var(--home-header-cta-size, 16px);
    font-weight: var(--home-header-cta-weight, 800);
  }

  .site-header.home-site-header {
    top: 76px;
    left: 14px;
    right: 14px;
    width: auto;
    padding: 14px 0;
    transform: none;
  }

  .home-site-header .brand-logo {
    width: clamp(166px, 45vw, 204px);
  }

  .home-site-header .nav-links {
    color: #fff;
    background: rgba(8, 8, 8, 0.72);
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 18px 54px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(14px);
  }

  .home-site-header .nav-links a:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
  }

  .page-hero.split {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .page-hero.split > :is(.image-frame, .visual-placeholder) {
    aspect-ratio: 3 / 2;
  }

  .page-hero,
  .content-section,
  .form-section {
    padding-left: 18px;
    padding-right: 18px;
  }

  .page-hero h1 {
    font-size: clamp(48px, 10vw, 54px);
  }

  body.editorial-theme .site-header {
    width: auto;
    max-width: none;
    margin: 0 18px;
    padding: 14px 0;
  }

  body.editorial-theme .site-header.home-site-header--internal {
    position: relative;
    top: auto;
    left: 14px;
    right: auto;
    width: calc(100% - 28px);
    margin: 0;
    padding: 14px 0;
    transform: none;
  }

  body.editorial-theme .home-site-header--internal-light .nav-links {
    color: #111;
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(17, 17, 17, 0.16);
    box-shadow: 0 18px 54px rgba(0, 0, 0, 0.18);
    backdrop-filter: blur(14px);
  }

  body.editorial-theme .home-site-header--internal-light .nav-links a:hover {
    color: #111;
    background: rgba(255, 216, 0, 0.18);
  }

  body.editorial-theme .page-hero,
  body.editorial-theme .content-section,
  body.editorial-theme .form-section {
    max-width: none;
    padding-right: 18px;
    padding-left: 18px;
  }

  body.editorial-theme .page-hero {
    padding-top: 54px;
    padding-bottom: 36px;
  }

  body.editorial-theme .content-section {
    padding-top: 48px;
    padding-bottom: 48px;
  }

  body.editorial-theme .page-hero h1,
  body.editorial-theme .page-hero.compact h1,
  body.editorial-theme .question-page h1 {
    font-size: clamp(48px, 11vw, 58px);
    line-height: 1;
  }

  body.editorial-theme .content-section h2 {
    font-size: clamp(34px, 10vw, 48px);
    overflow-wrap: anywhere;
  }

  body.editorial-theme .page-hero p,
  body.editorial-theme .content-section p {
    font-size: 16px;
  }

  body.editorial-theme .bofu-scope-section {
    max-width: none;
    padding-right: 18px;
    padding-left: 18px;
  }

  .home-hero {
    padding-top: 54px;
  }

  .home-hero--prototype {
    justify-content: center;
    min-height: calc(100svh - 76px);
    padding: var(--home-hero-mobile-padding, clamp(112px, 14svh, 134px) 18px clamp(118px, 16svh, 150px));
    background-image: var(--home-hero-poster, url("/assets/design-prototypes/london-12sec_2560w-poster.jpg"));
  }

  .home-hero h1 {
    font-size: clamp(31px, 8.6vw, 36px);
    overflow-wrap: break-word;
  }

  .home-hero--prototype h1 {
    max-width: calc(100vw - 28px);
    font-size: var(--home-hero-mobile-title-size, clamp(42px, 10.8vw, 52px));
    line-height: 0.98;
  }

  .home-hero__support {
    font-size: 20px;
  }

  .home-hero--prototype .section-label {
    min-height: 28px;
    margin-bottom: 16px;
    padding: 5px 13px;
    font-size: var(--home-hero-kicker-size, clamp(12px, 3.05vw, 14px));
  }

  .home-hero--prototype .home-hero__support {
    max-width: 320px;
    margin-top: 18px;
    font-size: var(--home-hero-mobile-support-size, clamp(17px, 4.4vw, 19px));
  }

  .home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
    max-width: 330px;
    font-size: var(--home-hero-mobile-body-size, 16px);
    line-height: 1.36;
  }

  .home-hero--prototype .hero-actions {
    flex-wrap: nowrap;
    width: min(100%, 340px);
    gap: 10px;
    margin-top: 20px;
    margin-right: auto;
    margin-left: auto;
  }

  .home-hero--prototype .button {
    flex: 1 1 0;
    width: auto;
    min-height: 58px;
    padding: 8px 14px 9px;
    font-size: var(--home-hero-mobile-button-size, var(--home-hero-button-size, 16px));
    line-height: 1.16;
  }

  .hero-logo-marquee {
    bottom: var(--home-hero-mobile-logo-bottom, max(36px, calc(env(safe-area-inset-bottom, 0px) + 28px)));
  }

  .hero-logo-track {
    gap: var(--home-hero-mobile-logo-gap, 22px);
    animation-duration: var(--home-hero-mobile-logo-duration, 34s);
  }

  .hero-logo {
    min-width: 88px;
    height: 34px;
  }

  .home-page-flow .content-section {
    padding-top: 48px;
    padding-right: 18px;
    padding-bottom: 48px;
    padding-left: 18px;
  }

  #research-insight-objectives,
  #fieldwork-support-options {
    scroll-margin-top: 142px;
  }

  .home-intro-section h2,
  .home-section-heading.centre h2,
  .home-page-flow .section-heading-row h2,
  .home-dark-cta h2 {
    font-size: clamp(34px, 10vw, 46px);
  }

  .home-intro-section > p:not(.home-overline),
  .home-page-flow .section-heading-row p {
    font-size: 16px;
  }

  .home-route-grid,
  .home-objective-split,
  .home-objective-route-list,
  .home-objective-route-panel--fieldwork .home-objective-route-list,
  .home-approach-section .approach-steps,
  .home-dark-cta,
  .home-buyer-grid,
  .home-lower-grid {
    grid-template-columns: 1fr;
  }

  .home-objective-route-item:nth-child(n) .home-objective-route-image,
  .home-objective-route-item:nth-child(n) .home-objective-route-item-content {
    border-right: 0;
  }

  .home-service-strip,
  .home-proof-grid,
  .home-who-section .card-grid,
  .card-grid {
    grid-template-columns: minmax(0, 1fr);
    justify-content: stretch;
  }

  .home-route-card {
    min-height: 0;
    padding: 28px 22px;
  }

  .home-route-card h3 {
    margin-top: 18px;
    font-size: clamp(30px, 9vw, 38px);
  }

  .home-route-or {
    position: relative;
    top: auto;
    left: auto;
    width: 50px;
    height: 50px;
    margin: -6px auto;
    font-size: 18px;
    transform: none;
  }

  .home-check-list li {
    font-size: 16px;
  }

  .home-objective-route-copy {
    min-height: 0;
    padding: 28px 22px;
  }

  .home-objective-client,
  .home-objective-route-copy h3,
  .home-objective-route-copy > p:not(.home-objective-client) {
    min-height: 0;
  }

  .home-objective-route-copy h3 {
    font-size: clamp(32px, 10vw, 38px);
  }

  .home-objective-route-copy > p:not(.home-objective-client),
  .home-objective-route-item p {
    font-size: 16px;
  }

  .home-objective-route-item,
  .home-objective-route-panel--fieldwork .home-objective-route-item,
  .home-service-strip article,
  .home-proof-grid article,
  .home-buyer-grid article {
    min-height: 0;
  }

  .home-objective-route-item {
    padding: 0;
  }

  .home-objective-route-item-content {
    min-height: 0;
    padding: 24px 22px;
  }

  .home-approach-section .approach-steps li {
    min-height: 0;
    padding: 0 0 26px 62px;
  }

  .home-approach-section .approach-steps li::before {
    width: 42px;
    height: 42px;
  }

  .home-approach-section .approach-steps li::after {
    top: 50px;
    right: auto;
    bottom: 10px;
    left: 21px;
    width: 1px;
    height: auto;
  }

  .home-service-all {
    min-height: 54px;
  }

  .home-dark-cta {
    padding: 28px 22px;
  }

  .home-lower-grid article {
    padding: 24px 20px;
  }

  .proof-strip,
  .choice-grid,
  .objective-grid,
  .objective-answer-panel,
  .objective-detail-grid,
  .case-study-summary-grid,
  .brief-confidence,
  .location-trust-grid,
  .buyer-track-panel,
  .support-scope-grid,
  .bofu-scope-grid,
  .fieldwork-options-grid,
  .service-quality-grid,
  .approach-steps,
  .split-section,
  .final-cta {
    grid-template-columns: 1fr;
  }

  .objective-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 380px));
    justify-content: center;
  }

  .proof-strip div,
  .approach-steps li {
    min-height: 0;
  }

  .home-page-flow .proof-strip > div {
    text-align: center;
  }

  .choice-card,
  .objective-card,
  .objective-detail-grid article,
  .case-study-summary-card,
    .buyer-route-card,
    .location-trust-grid article,
    .support-scope-grid article,
    .bofu-scope-grid article,
    .fieldwork-options-grid article,
    .service-quality-grid article {
    padding: 22px 18px;
  }

  .objective-card,
    .location-trust-grid article,
    .support-scope-grid article,
    .bofu-scope-grid article,
    .fieldwork-options-grid article,
    .service-quality-grid article {
    min-height: 0;
  }

  .split-section .card-grid {
    grid-template-columns: 1fr;
  }

  .final-cta {
    align-items: stretch;
    margin-left: 0;
    margin-right: 0;
  }

  .faq-next-step .hero-actions {
    justify-content: flex-start;
  }

  .enquiry-form {
    padding: 24px 18px;
  }

  .category-nav {
    grid-template-columns: 1fr;
    padding-left: 18px;
    padding-right: 18px;
  }

  .section-heading-row {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 8px;
  }

  .calculator-grid,
  .result-grid {
    grid-template-columns: 1fr;
  }

  .site-footer__inner {
    grid-template-columns: 1fr;
    gap: 46px;
    width: min(calc(100% - 36px), var(--layout-wide-max));
  }

  .site-footer__brand p {
    max-width: 48ch;
  }

  .site-footer__legal {
    width: min(calc(100% - 36px), var(--layout-wide-max));
  }

  .cookie-consent__view {
    padding: 20px 16px;
  }

  .cookie-consent__tabs button {
    min-height: 48px;
  }

  .cookie-consent__category {
    grid-template-columns: minmax(0, 1fr);
  }

  .cookie-consent__actions {
    grid-template-columns: 1fr;
  }

  .admin-shell {
    padding: 20px 14px 40px;
  }

  .admin-header,
  .admin-auth,
  .admin-controls,
  .admin-item__summary,
  .admin-actions {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .admin-data-grid,
  .admin-tracking {
    grid-template-columns: 1fr;
  }

  .admin-action-buttons .button {
    flex: 1 1 140px;
  }
}

@media (min-width: 560px) and (max-width: 860px) {
  .home-service-strip,
  .home-proof-grid,
  .home-page-flow .home-buyer-grid,
  .home-who-section .card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .home-objective-route-list,
  .home-objective-route-panel--fieldwork .home-objective-route-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }

  .home-objective-route-item:nth-child(odd) .home-objective-route-image {
    border-right: 1px solid #fff;
  }

  .home-objective-route-item:nth-child(odd) .home-objective-route-item-content {
    border-right: 1px solid #b7b0a5;
  }

  .home-objective-route-panel--fieldwork .home-objective-route-item:nth-child(odd) .home-objective-route-item-content {
    border-right-color: rgba(255, 255, 255, 0.38);
  }

  .home-objective-route-item-content {
    min-height: 300px;
  }
}

@media (max-width: 640px) {
  .site-footer__inner {
    padding-top: 52px;
    padding-bottom: 42px;
  }

  .site-footer__navigation {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px 26px;
  }

  .site-footer__column:last-child {
    grid-column: 1 / -1;
  }

  .site-footer__legal {
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }

  .site-footer__legal nav {
    justify-content: flex-start;
    gap: 12px 22px;
  }

  .home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
    display: none;
  }

  .hero-logo-marquee {
    bottom: max(36px, calc(env(safe-area-inset-bottom, 0px) + 28px));
  }
}

@media (max-width: 430px) {
  .site-topbar .site-topbar__locations {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    justify-content: stretch;
    gap: 7px 2px;
    padding: 9px 6px 8px;
    overflow: hidden;
    /* Two balanced rows keep every location visible without sacrificing legibility. */
    font-size: 16px;
    letter-spacing: 0;
    line-height: 1;
  }

  .site-topbar__locations span {
    grid-column: span 2;
    min-width: 0;
    text-align: center;
  }

  .site-topbar__locations span:nth-child(4) {
    grid-column: 2 / span 2;
  }

  .site-footer__navigation {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .site-footer__column:last-child {
    grid-column: auto;
  }
}

.home-page-flow section.home-intro-section.content-section > .home-overline,
.home-page-flow section.home-decision-section.content-section > .home-section-heading.centre > .home-overline {
  width: min(100%, 850px);
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.home-page-flow section.home-intro-section.content-section > h2 {
  width: min(100%, 920px);
  margin: 0 auto 16px;
  text-align: center;
}

.home-page-flow section.home-decision-section.content-section > .home-section-heading.centre > h2 {
  width: min(100%, 900px);
  margin: 0 auto 30px;
  text-align: center;
}

/* Responsive typography system
   Component selectors below deliberately follow the legacy typography rules so
   semantic roles remain the final authority while the migration CSS is retired. */
:root {
  --type-min-readable: 16px;
  --type-body-offset: 0px;
  --type-heading-offset: 0px;
  --type-highres-body-offset: 0px;
  --type-highres-heading-offset: 0px;
  --type-hero-offset: 0px;
  --type-micro-base: 16px;
  --type-small-base: 16px;
  --type-body-base: 16px;
  --type-body-large-base: 18px;
  --type-lead-base: 20px;
  --type-label-base: 16px;
  --type-overline-base: clamp(18px, 1.65vw, 24px);
  --type-nav-base: 16px;
  --type-button-base: 16px;
  --type-card-title-base: clamp(24px, 6.4vw, 30px);
  --type-heading-small-base: clamp(28px, 7.4vw, 36px);
  --type-heading-medium-base: clamp(34px, 8.5vw, 44px);
  --type-heading-large-base: clamp(40px, 9.5vw, 54px);
  --type-stat-base: clamp(38px, 9vw, 48px);
  --type-display-base: clamp(42px, 10.5vw, 64px);
  --type-hero-base: clamp(48px, 11vw, 72px);
  --line-body: 1.58;
  --line-lead: 1.45;
  --line-heading-small: 1.16;
  --line-heading-large: 1.04;
  --line-hero: 0.98;
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) {
  --text-micro: max(var(--type-min-readable), calc(var(--type-micro-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-small: max(var(--type-min-readable), calc(var(--type-small-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-body: max(var(--type-min-readable), calc(var(--type-body-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-body-large: max(var(--type-min-readable), calc(var(--type-body-large-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-lead: max(var(--type-min-readable), calc(var(--type-lead-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-label: max(var(--type-min-readable), calc(var(--type-label-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-overline: max(var(--type-min-readable), calc(var(--type-overline-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-nav: max(var(--type-min-readable), calc(var(--type-nav-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-button: max(var(--type-min-readable), calc(var(--type-button-base) + var(--type-body-offset) + var(--type-highres-body-offset)));
  --text-card-title: max(24px, calc(var(--type-card-title-base) + var(--type-heading-offset) + var(--type-highres-heading-offset)));
  --text-heading-small: max(28px, calc(var(--type-heading-small-base) + var(--type-heading-offset) + var(--type-highres-heading-offset)));
  --text-heading-medium: max(34px, calc(var(--type-heading-medium-base) + var(--type-heading-offset) + var(--type-highres-heading-offset)));
  --text-heading-large: max(40px, calc(var(--type-heading-large-base) + var(--type-heading-offset) + var(--type-highres-heading-offset)));
  --text-stat: max(38px, calc(var(--type-stat-base) + var(--type-heading-offset) + var(--type-highres-heading-offset)));
  --text-display: max(42px, calc(var(--type-display-base) + var(--type-heading-offset) + var(--type-highres-heading-offset)));
  --text-hero: max(48px, calc(var(--type-hero-base) + var(--type-hero-offset) + var(--type-highres-heading-offset)));
  font-size: var(--text-body);
  line-height: var(--line-body);
}

body[data-type-body="small"] {
  --type-body-offset: -1px;
}

body[data-type-body="large"] {
  --type-body-offset: 2px;
}

body[data-type-heading="compact"] {
  --type-heading-offset: -4px;
}

body[data-type-heading="dramatic"] {
  --type-heading-offset: 6px;
}

body[data-type-hero="subtle"] {
  --type-hero-offset: -16px;
}

body[data-type-hero="strong"] {
  --type-hero-offset: -8px;
}

body[data-type-density="compact"] {
  --line-body: 1.45;
  --line-lead: 1.36;
  --line-heading-small: 1.12;
  --line-heading-large: 1;
}

body[data-type-density="comfortable"] {
  --line-body: 1.52;
  --line-lead: 1.42;
  --line-heading-small: 1.14;
  --line-heading-large: 1.02;
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) p,
body:where(:not(.admin-page):not(.agentc-system-prototype)) li,
body:where(:not(.admin-page):not(.agentc-system-prototype)) dd,
body:where(:not(.admin-page):not(.agentc-system-prototype)) input,
body:where(:not(.admin-page):not(.agentc-system-prototype)) select,
body:where(:not(.admin-page):not(.agentc-system-prototype)) textarea {
  font-size: var(--text-body);
  line-height: var(--line-body);
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) .nav-links,
body:where(:not(.admin-page):not(.agentc-system-prototype)) .nav-links a {
  font-size: var(--text-nav);
  line-height: 1.2;
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) .button,
body:where(:not(.admin-page):not(.agentc-system-prototype)) button,
body:where(:not(.admin-page):not(.agentc-system-prototype)) .header-cta,
body:where(:not(.admin-page):not(.agentc-system-prototype)) .text-link {
  font-size: var(--text-button);
  line-height: 1.2;
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) label {
  font-size: var(--text-body);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .page-hero p:not(.section-label),
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .content-section p:not(.section-label),
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .content-section li,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .form-section p:not(.section-label),
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .field-help,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .search-status,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .form-note,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .form-status {
  font-size: var(--text-body);
  line-height: var(--line-body);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .section-label,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .page-hero p.section-label,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .content-section p.section-label,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .form-section p.section-label,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .result-label {
  font-size: var(--text-label);
  line-height: 1.2;
}

/* Split-page hero overlines use the larger, calmer editorial treatment. */
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .page-hero.split p.section-label {
  font-size: var(--text-overline);
  font-weight: var(--weight-editorial-overline);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .enquiry-form label,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .sample-calculator label,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .search-box {
  font-size: var(--text-body);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) main .button,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) main .text-link {
  font-size: var(--text-button);
  line-height: 1.2;
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) h1 {
  font-size: var(--text-display);
  line-height: var(--line-heading-large);
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) h2 {
  font-size: var(--text-heading-large);
  line-height: var(--line-heading-large);
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) h3 {
  font-size: var(--text-heading-small);
  line-height: var(--line-heading-small);
}

body:where(:not(.admin-page):not(.agentc-system-prototype)) h4 {
  font-size: var(--text-card-title);
  line-height: var(--line-heading-small);
}

.site-topbar__reviews {
  font-size: var(--text-small);
  font-weight: 500;
}

.site-topbar__locations,
.site-topbar__search {
  font-size: var(--text-label);
  font-weight: 500;
}

.home-site-header .nav-links,
.home-site-header .nav-links a {
  font-size: var(--text-nav);
  font-weight: 500;
}

.home-site-header .nav-links__cta,
.home-site-header .header-cta {
  font-size: var(--text-button);
  font-weight: 700;
}

.home-hero.home-hero--prototype .section-label {
  font-size: var(--text-label);
  font-weight: var(--weight-editorial-overline);
  line-height: 1.2;
}

.home-hero.home-hero--prototype h1 {
  font-size: var(--text-hero);
  font-weight: 400;
  line-height: var(--line-hero);
}

.home-hero.home-hero--prototype .home-hero__support {
  font-size: var(--text-lead);
  font-weight: 600;
  line-height: var(--line-lead);
}

.home-hero.home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
  max-width: 68ch;
  font-size: var(--text-body-large);
  font-weight: 400;
  line-height: var(--line-body);
}

.home-hero.home-hero--prototype .button {
  font-size: var(--text-button);
  font-weight: 700;
}

.home-page-flow .home-overline,
.home-page-flow .content-section p.home-overline,
.home-page-flow .content-section p.section-label,
.home-page-flow .location-trust-section p.section-label,
.home-page-flow .home-objective-client,
.home-page-flow .content-section p.home-objective-client {
  font-size: var(--text-label);
  font-weight: var(--weight-editorial-overline);
  line-height: 1.2;
}

.home-page-flow .home-overline,
.home-page-flow .content-section p.home-overline {
  font-size: var(--text-overline);
  font-weight: var(--weight-editorial-overline);
}

.home-page-flow .home-objective-route-copy {
  display: flex;
  flex-direction: column;
  row-gap: clamp(10px, 1vw, 18px);
  min-height: clamp(300px, calc(7.9vw + 156px), 460px);
}

.home-page-flow .home-objective-client,
.home-page-flow .home-objective-route-copy h3,
.home-page-flow .home-objective-route-copy > p:not(.home-objective-client) {
  min-height: 0;
  margin-bottom: 0;
}

.home-page-flow .home-objective-route-copy .home-arrow-link {
  margin-top: auto;
}

.home-page-flow .home-objective-route-link {
  display: block;
  min-block-size: 2.4em;
}

.home-page-flow .home-route-card {
  grid-template-rows: auto auto 1fr auto;
}

.home-page-flow .home-route-card > .home-arrow-link {
  align-self: start;
  min-block-size: 2.4em;
}

.home-page-flow .home-objective-route-list,
.home-page-flow .home-objective-route-panel--fieldwork .home-objective-route-list {
  row-gap: 1px;
  column-gap: 0;
}

.home-page-flow .home-dark-cta p {
  color: rgba(255, 255, 255, 0.88);
}

.home-page-flow .home-intro-section > h2 {
  font-size: var(--text-heading-large);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-large);
}

.home-page-flow .home-section-heading.centre > h2,
.home-page-flow .home-approach-section > h2,
.home-page-flow .section-heading-row h2 {
  font-size: var(--text-heading-medium);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-large);
}

.home-page-flow .home-intro-section > p:not(.home-overline),
.home-page-flow .section-heading-row p {
  max-width: 68ch;
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--line-body);
}

.home-page-flow .home-section-heading.centre,
.home-page-flow .home-intro-section {
  text-align: center;
}

.home-page-flow .home-section-heading.centre > .home-overline,
.home-page-flow .home-section-heading.centre > h2,
.home-page-flow .home-intro-section > .home-overline,
.home-page-flow .home-intro-section > h2,
.home-page-flow .home-intro-section > p:not(.home-overline),
.home-page-flow .home-approach-section > .home-overline,
.home-page-flow .home-approach-section > h2 {
  width: min(100%, 980px);
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.home-page-flow .proof-strip strong {
  font-size: var(--text-stat);
  font-weight: 480;
}

.home-page-flow .proof-strip span,
.home-page-flow .home-service-strip article span,
.home-page-flow .home-card-index {
  font-size: var(--text-micro);
}

.home-page-flow .home-route-card h3,
.home-page-flow .home-objective-route-copy h3,
.home-page-flow .home-dark-cta h2,
.home-page-flow .home-lower-grid h2 {
  font-size: var(--text-heading-medium);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-large);
}

.home-page-flow .home-objective-route-item h4,
.home-page-flow .home-service-strip h3,
.home-page-flow .home-proof-grid h3,
.home-page-flow .home-buyer-grid h3,
.home-page-flow .location-trust-grid h3,
.home-page-flow .home-insight-list strong {
  font-size: var(--text-card-title);
  line-height: var(--line-heading-small);
}

.home-page-flow .home-check-list li,
.home-page-flow .home-objective-route-copy > p:not(.home-objective-client),
.home-page-flow .home-objective-route-item p,
.home-page-flow .home-service-strip p,
.home-page-flow .home-proof-grid p,
.home-page-flow .home-buyer-grid p,
.home-page-flow .location-trust-grid p,
.home-page-flow .location-trust-note p,
.home-page-flow .home-insight-list span,
.home-page-flow .home-approach-section .approach-steps span,
.home-page-flow .home-dark-cta p,
.home-page-flow .home-dark-cta li,
.home-page-flow .home-lower-grid p,
.home-page-flow .home-rating strong,
.home-page-flow .home-rating em {
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--line-body);
}

.home-page-flow .home-approach-section .approach-steps strong {
  font-size: var(--text-label);
  font-weight: 800;
}

.home-page-flow .home-arrow-link,
.home-page-flow .text-link,
.home-page-flow .home-objective-route-link,
.home-page-flow .home-service-all,
.home-page-flow .home-dark-cta .button.primary,
.home-page-flow .home-brief-options a {
  font-size: var(--text-button);
  font-weight: 700;
}

.home-page-flow .home-lower-grid .home-phone-note {
  font-size: var(--text-small);
}

.typography-showcase {
  width: min(calc(100% - 48px), var(--layout-standard-max));
  margin: 0 auto;
  padding: clamp(64px, 8vw, 140px) 0;
}

.typography-showcase__header {
  max-width: 78ch;
  margin-bottom: clamp(48px, 6vw, 96px);
}

.typography-showcase__header h1 {
  max-width: 14ch;
  margin: 12px 0 24px;
  font-family: var(--prototype-serif);
}

.typography-showcase__status {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 36px 0 0;
  background: #ddd8ce;
  border: 1px solid #ddd8ce;
}

.typography-showcase__status div {
  padding: 18px;
  background: #fff;
}

.typography-showcase__status dt {
  font-size: var(--text-micro);
  font-weight: 800;
  text-transform: uppercase;
}

.typography-showcase__status dd {
  margin: 6px 0 0;
  font-size: var(--text-small);
}

.typography-showcase__list {
  display: grid;
  gap: 1px;
  background: #ddd8ce;
  border: 1px solid #ddd8ce;
}

.typography-showcase__item {
  min-width: 0;
  padding: clamp(24px, 3vw, 44px);
  background: #fff;
}

.typography-showcase__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
  color: #666;
  font-size: var(--text-micro);
}

.typography-showcase__meta code {
  font: inherit;
  font-weight: 800;
}

.type-token {
  max-width: 68ch;
  margin: 0;
}

.type-token--micro { font-size: var(--text-micro); }
.type-token--small { font-size: var(--text-small); }
.type-token--body { font-size: var(--text-body); }
.type-token--body-large { font-size: var(--text-body-large); }
.type-token--lead { font-size: var(--text-lead); line-height: var(--line-lead); }
.type-token--label { font-size: var(--text-label); font-weight: 800; letter-spacing: 0.12em; }
.type-token--overline { font-size: var(--text-overline); font-weight: 600; letter-spacing: 0.12em; }
.type-token--nav { font-size: var(--text-nav); }
.type-token--button { font-size: var(--text-button); font-weight: 700; }
.type-token--card-title { font-size: var(--text-card-title); font-family: var(--prototype-serif); }
.type-token--heading-small { font-size: var(--text-heading-small); font-family: var(--prototype-serif); }
.type-token--heading-medium { font-size: var(--text-heading-medium); font-family: var(--prototype-serif); }
.type-token--heading-large { font-size: var(--text-heading-large); font-family: var(--prototype-serif); }
.type-token--stat { font-size: var(--text-stat); font-family: var(--prototype-serif); }
.type-token--display { font-size: var(--text-display); font-family: var(--prototype-serif); }
.type-token--hero { font-size: var(--text-hero); font-family: var(--prototype-serif); line-height: var(--line-hero); }

@media (min-width: 1280px) {
  :root {
    --type-micro-base: 16px;
    --type-small-base: 16px;
    --type-body-base: 16px;
    --type-body-large-base: 18px;
    --type-lead-base: 22px;
    --type-label-base: 16px;
    --type-nav-base: 17px;
    --type-button-base: 16px;
    --type-card-title-base: clamp(28px, calc(18px + 0.78125vw), 30px);
    --type-heading-small-base: 34px;
    --type-heading-medium-base: 44px;
    --type-heading-large-base: 56px;
    --type-stat-base: 48px;
    --type-display-base: 64px;
    --type-hero-base: clamp(48px, min(5vw, 7.2svh), 116px);
  }
}

@media (min-width: 1536px) {
  :root {
    --type-micro-base: 16px;
    --type-small-base: 16px;
    --type-body-base: 16px;
    --type-body-large-base: 18px;
    --type-lead-base: 22px;
    --type-label-base: 16px;
    --type-nav-base: clamp(17px, calc(13px + 0.260417vw), 18px);
    --type-button-base: 16px;
    --type-card-title-base: clamp(30px, calc(22px + 0.520833vw), 32px);
    --type-heading-small-base: clamp(34px, calc(26px + 0.520833vw), 36px);
    --type-heading-medium-base: clamp(44px, calc(36px + 0.520833vw), 46px);
    --type-heading-large-base: clamp(56px, calc(48px + 0.520833vw), 58px);
    --type-stat-base: clamp(48px, calc(32px + 1.041667vw), 52px);
    --type-display-base: clamp(64px, calc(48px + 1.041667vw), 68px);
  }
}

@media (min-width: 1800px) {
  :root {
    --type-micro-base: clamp(16px, calc(8.941px + 0.392157vw), 24px);
    --type-small-base: clamp(16px, calc(8.941px + 0.392157vw), 24px);
    --type-body-base: clamp(16px, calc(8.941px + 0.392157vw), 24px);
    --type-body-large-base: clamp(18px, calc(9.176px + 0.490196vw), 28px);
    --type-lead-base: clamp(22px, calc(14.941px + 0.392157vw), 30px);
    --type-label-base: clamp(16px, calc(8.941px + 0.392157vw), 24px);
    --type-nav-base: clamp(18px, calc(9.176px + 0.490196vw), 28px);
    --type-button-base: clamp(16px, calc(8.941px + 0.392157vw), 24px);
    --type-card-title-base: clamp(30px, calc(17.647px + 0.686275vw), 44px);
    --type-heading-small-base: clamp(36px, calc(25.412px + 0.588235vw), 48px);
    --type-heading-medium-base: clamp(46px, calc(30.118px + 0.882353vw), 64px);
    --type-heading-large-base: clamp(58px, calc(42.118px + 0.882353vw), 76px);
    --type-stat-base: clamp(52px, calc(34.353px + 0.980392vw), 72px);
    --type-display-base: clamp(68px, calc(48.588px + 1.078431vw), 90px);
  }
}

@media (min-width: 2400px) {
  :root {
    --type-hero-base: clamp(118px, 4vw, 168px);
  }
}

@media (min-width: 3200px) {
  body[data-type-highres="standard"] {
    --type-highres-body-offset: -2px;
    --type-highres-heading-offset: -6px;
  }

  body[data-type-highres="spacious"] {
    --type-highres-body-offset: 2px;
    --type-highres-heading-offset: 8px;
  }
}

@media (min-width: 3840px) {
  :root {
    --type-min-readable: 24px;
    --type-micro-base: 24px;
    --type-small-base: 24px;
    --type-body-base: clamp(24px, calc(12px + 0.3125vw), 28px);
    --type-body-large-base: clamp(28px, calc(16px + 0.3125vw), 32px);
    --type-lead-base: clamp(30px, calc(12px + 0.46875vw), 36px);
    --type-label-base: 24px;
    --type-nav-base: clamp(28px, calc(22px + 0.15625vw), 30px);
    --type-button-base: clamp(24px, calc(18px + 0.15625vw), 26px);
    --type-card-title-base: clamp(44px, calc(32px + 0.3125vw), 48px);
    --type-heading-small-base: clamp(48px, calc(30px + 0.46875vw), 54px);
    --type-heading-medium-base: clamp(64px, calc(40px + 0.625vw), 72px);
    --type-heading-large-base: clamp(76px, calc(46px + 0.78125vw), 86px);
    --type-stat-base: clamp(72px, calc(48px + 0.625vw), 80px);
    --type-display-base: clamp(90px, calc(48px + 1.09375vw), 104px);
    --type-hero-base: clamp(154px, calc(112px + 1.09375vw), 168px);
  }
}

@media (min-width: 5120px) {
  :root {
    --type-min-readable: 24px;
    --type-micro-base: clamp(24px, calc(20px + 0.078125vw), 26px);
    --type-small-base: clamp(26px, calc(22px + 0.078125vw), 28px);
    --type-body-base: clamp(28px, calc(20px + 0.15625vw), 32px);
    --type-body-large-base: clamp(32px, calc(24px + 0.15625vw), 36px);
    --type-lead-base: clamp(36px, calc(28px + 0.15625vw), 40px);
    --type-label-base: clamp(24px, calc(20px + 0.078125vw), 26px);
    --type-nav-base: clamp(30px, calc(26px + 0.078125vw), 32px);
    --type-button-base: clamp(26px, calc(22px + 0.078125vw), 28px);
    --type-card-title-base: clamp(48px, calc(40px + 0.15625vw), 52px);
    --type-heading-small-base: clamp(54px, calc(46px + 0.15625vw), 58px);
    --type-heading-medium-base: clamp(72px, calc(60px + 0.234375vw), 78px);
    --type-heading-large-base: clamp(86px, calc(70px + 0.3125vw), 94px);
    --type-stat-base: clamp(80px, calc(64px + 0.3125vw), 88px);
    --type-display-base: clamp(104px, calc(84px + 0.390625vw), 114px);
    --type-hero-base: clamp(168px, calc(152px + 0.3125vw), 176px);
  }
}

@media (max-width: 767px) {
  .home-page-flow .home-objective-route-copy {
    min-height: 0;
  }

  .home-page-flow .home-objective-route-link,
  .home-page-flow .home-route-card > .home-arrow-link {
    min-block-size: 0;
  }

  .typography-showcase {
    width: min(calc(100% - 32px), var(--layout-standard-max));
  }

  .typography-showcase__status {
    grid-template-columns: 1fr;
  }
}

/*
 * The homepage hero is a fixed viewport composition. Keep the accreditation row in
 * the visual band between the CTAs and the client rail, rather than letting it
 * extend the hero beyond the visible browser window on wide, short displays.
 */
.home-hero--prototype {
  --home-hero-viewport-offset: 54px;
  height: calc(100svh - var(--home-hero-viewport-offset));
  min-height: 0;
}

.home-hero__accreditations {
  position: absolute;
  top: var(--home-hero-mrs-top, 76%);
  left: 50%;
  z-index: 3;
  --partner-width: var(--home-hero-mrs-width, clamp(110px, min(7vw, 16svh), 252px));
  display: flex;
  align-items: center;
  gap: clamp(24px, 2vw, 64px);
  width: max-content;
  height: auto;
  margin: 0;
  /* Match visible artwork heights and retain the original MRS midpoint. */
  transform: translate(-50%, calc(var(--partner-width) * -0.01));
}

.home-hero__accreditations .home-hero__mrs-logo {
  width: var(--partner-width);
  margin: 0;
  flex: none;
}

.home-hero__cyber-essentials {
  display: block;
  flex: none;
  /* The square PNG includes clear space; 57% matches the wider MRS artwork. */
  width: max(44px, calc(var(--partner-width) * 0.57));
  border-radius: 4px;
}

.home-hero__cyber-essentials img {
  display: block;
  width: 100%;
  height: auto;
}

.home-hero__cyber-essentials:focus-visible {
  outline: 2px solid #ffd900;
  outline-offset: 6px;
}

@media (max-height: 980px) and (min-width: 861px) {
  .home-hero__accreditations {
    --partner-width: var(--home-hero-compact-mrs-width, clamp(110px, min(7vw, 16svh), 194px));
    margin: 0;
  }
}

@media (min-width: 2400px) and (max-height: 1399px) {
  body:where(:not(.admin-page):not(.agentc-system-prototype)) {
    --type-hero-base: clamp(62px, min(3.4vw, 7.6svh), 104px);
  }

  .home-hero--prototype {
    --home-hero-viewport-offset: 80px;
    padding: clamp(52px, 7svh, 100px) clamp(48px, 6vw, 180px) clamp(86px, 12svh, 132px);
  }

  .home-hero__content {
    width: min(100%, 1200px);
  }

  .home-hero.home-hero--prototype h1 {
    max-width: 1200px;
    font-size: var(--text-hero);
  }

  .home-hero.home-hero--prototype .section-label {
    min-height: 32px;
    margin-bottom: 16px;
    padding: 6px 16px;
    font-size: clamp(16px, 0.7vw, 20px);
  }

  .home-hero.home-hero--prototype .home-hero__support {
    max-width: 760px;
    margin-top: 16px;
    font-size: clamp(18px, 0.9vw, 24px);
  }

  .home-hero.home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
    max-width: 760px;
    margin-top: 12px;
    font-size: clamp(16px, 0.68vw, 20px);
    line-height: 1.35;
  }

  .home-hero.home-hero--prototype .hero-actions {
    margin-top: 18px;
  }

  .home-hero.home-hero--prototype .button {
    min-height: 56px;
    padding: 12px 28px;
    font-size: clamp(16px, 0.62vw, 20px);
  }

  .hero-logo-marquee {
    bottom: clamp(28px, 3.2svh, 48px);
  }
}

@media (min-width: 2400px) {
  .home-hero--prototype {
    --home-hero-viewport-offset: 80px;
  }
}

@media (max-height: 780px) and (min-width: 861px) {
  body:where(:not(.admin-page):not(.agentc-system-prototype)) {
    --type-hero-base: clamp(38px, 3.2vw, 49px);
  }

  .home-hero--prototype {
    padding: clamp(28px, 5svh, 42px) clamp(24px, 5vw, 112px) clamp(70px, 12svh, 88px);
  }

  .home-hero.home-hero--prototype .section-label {
    min-height: 28px;
    margin-bottom: 10px;
    padding: 4px 13px;
  }

  .home-hero.home-hero--prototype h1 {
    max-width: 1040px;
    font-size: var(--text-hero);
    white-space: nowrap;
  }

  .home-hero.home-hero--prototype .home-hero__support {
    margin-top: 10px;
  }

  .home-hero.home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
    display: block;
    max-width: min(100%, 820px);
    margin-top: 10px;
    font-size: var(--text-body-large);
    line-height: 1.35;
  }

  .home-hero.home-hero--prototype .hero-actions {
    margin-top: 12px;
  }

  .home-hero__accreditations {
    top: calc(75% + 0.75svh);
    bottom: auto;
    --partner-width: clamp(110px, min(7vw, 16svh), 150px);
  }

  .hero-logo-marquee {
    bottom: 20px;
  }
}

/*
 * Short laptop viewports need vertical distribution as well as width-based
 * scaling. Progressively lift the message, keep the client rail close to the
 * lower edge, and preserve a clear band for the accreditation row.
 * The curve resolves back to the approved 1800 x 1169 composition.
 */
@media (min-width: 861px) and (min-height: 781px) and (max-height: 1168px) {
  .home-hero__content {
    transform: translateY(clamp(-54px, calc(19svh - 222px), 0px));
  }

  .hero-logo-marquee {
    bottom: clamp(
      18px,
      calc(28svh - 240px),
      var(--home-hero-logo-bottom, clamp(54px, 5vw, 96px))
    );
  }
}

@media (min-width: 861px) and (max-width: 1200px) and (min-height: 781px) and (max-height: 1168px) {
  .home-hero__accreditations {
    transform: translate(-50%, calc(-22px - var(--partner-width) * 0.01));
  }
}

@media (max-width: 860px) {
  .home-hero--prototype {
    --home-hero-viewport-offset: 71px;
    flex-direction: column;
    height: auto;
    min-height: calc(100svh - var(--home-hero-viewport-offset));
  }

  .home-hero__accreditations {
    --partner-width: var(--home-hero-mobile-mrs-width, 110px);
    position: relative;
    top: auto;
    left: auto;
    margin: clamp(22px, 4svh, 34px) auto 0;
    transform: none;
  }
}

@media (max-width: 860px) and (max-height: 600px) {
  body:where(:not(.admin-page):not(.agentc-system-prototype)) {
    --type-hero-base: 42px;
  }

  .home-hero--prototype {
    flex-direction: column;
    height: auto;
    min-height: calc(100svh - var(--home-hero-viewport-offset));
    padding: 100px 14px 100px;
  }

  .home-hero.home-hero--prototype .section-label {
    min-height: 24px;
    margin-bottom: 8px;
    padding: 3px 10px;
  }

  .home-hero.home-hero--prototype h1 {
    font-size: var(--text-hero);
  }

  .home-hero.home-hero--prototype .home-hero__support,
  .home-hero.home-hero--prototype .home-hero__content > p:not(.section-label):not(.home-hero__support) {
    display: none;
  }

  .home-hero.home-hero--prototype .hero-actions {
    margin-top: 14px;
  }

  .home-hero.home-hero--prototype .button {
    min-height: 50px;
    padding: 7px 10px 8px;
  }

  .home-hero__accreditations {
    --partner-width: 86px;
    position: relative;
    top: auto;
    left: auto;
    margin: 20px auto 0;
    transform: none;
  }

  .hero-logo-marquee {
    bottom: 20px;
  }
}
/* Keep the footer navigation dark while giving the legal row a full-width brand finish. */
.site-footer__legal-band {
  width: 100%;
  background: #ffd900;
  border-top: 1px solid rgba(17, 17, 17, 0.2);
}

.site-footer .site-footer__legal {
  background: transparent;
  border-top: 0;
  color: #111;
}

.site-footer .site-footer__legal a {
  color: #111;
}

/*
 * Keep the image-led homepage sections aligned with the wider mobile rhythm
 * used by Research Objectives and Who We Help. Their desktop editorial
 * containers remain unchanged; only the mobile inner shells break out to the
 * standard 16px viewport gutter.
 */
@media (max-width: 767px) {
  .home-services-section > :where(.section-heading-row, .home-service-strip),
  .home-proof-section > :where(.section-heading-row, .home-proof-grid) {
    width: calc(100% + 4px);
    max-width: none;
    margin-inline: -2px;
  }
}

/* Phones retain the established London still; larger screens use the video. */
.home-hero__mobile-image {
  display: none;
}

@media (max-width: 767px) {
  .home-hero__video {
    display: none;
  }

  .home-hero__mobile-image {
    position: absolute;
    z-index: 0;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}

/*
 * Reuse the approved homepage section-introduction hierarchy on equivalent
 * main-navigation overview sections. Keep hero and card typography independent:
 * this mapping is only for the familiar overline + heading + supporting-copy
 * pattern used by section introductions and closing CTA panels.
 */
body.main-nav-overview-route main > .content-section > .section-heading-row,
body.main-nav-overview-route main > .content-section.split-section > :first-child,
body.main-nav-overview-route main > .content-section.final-cta > :first-child {
  --overview-section-heading-width: 860px;
  --overview-section-copy-width: 68ch;
}

body.main-nav-overview-route main > .content-section > .section-heading-row {
  margin-bottom: clamp(24px, 3vw, 40px);
}

body.main-nav-overview-route main > .content-section > .section-heading-row .section-label,
body.main-nav-overview-route main > .content-section.split-section > :first-child > .section-label,
body.main-nav-overview-route main > .content-section.final-cta > :first-child > .section-label {
  margin: 0;
  font-size: var(--text-overline);
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1.2;
}

body.main-nav-overview-route main > .content-section > .section-heading-row h2,
body.main-nav-overview-route main > .content-section.split-section > :first-child > h2,
body.main-nav-overview-route main > .content-section.final-cta > :first-child > h2 {
  max-width: var(--overview-section-heading-width);
  margin: 0 0 10px;
  font-size: var(--text-heading-medium);
  font-weight: var(--weight-editorial-title);
  letter-spacing: 0;
  line-height: var(--line-heading-large);
}

body.main-nav-overview-route main > .content-section > .section-heading-row p:not(.section-label),
body.main-nav-overview-route main > .content-section.split-section > :first-child > p:not(.section-label),
body.main-nav-overview-route main > .content-section.final-cta > :first-child > p:not(.section-label) {
  max-width: var(--overview-section-copy-width);
  margin: 0;
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--line-body);
}

/*
 * Public routes share the homepage's editorial design language while retaining
 * their migrated page structures. These mappings sit after the legacy rules so
 * semantic typography and square editorial components remain authoritative.
 */
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) main :where(h1, h2, h3, h4) {
  color: var(--editorial-text);
  font-family: var(--prototype-serif);
  font-weight: var(--weight-editorial-title);
  letter-spacing: 0;
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .page-hero h1 {
  font-size: var(--text-display);
  line-height: var(--line-heading-large);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .page-hero.compact h1,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .question-page h1 {
  font-size: var(--text-heading-large);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .content-section h2,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .form-section h2 {
  font-size: var(--text-heading-medium);
  line-height: var(--line-heading-large);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .buyer-route-card h3 {
  font-size: var(--text-heading-medium);
  line-height: var(--line-heading-large);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .listing-card h3,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .objective-card h3,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .fieldwork-options-grid article h3,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .support-scope-grid article h3,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .service-quality-grid article h3,
body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .case-study-summary-card h3 {
  font-size: var(--text-card-title);
  line-height: var(--line-heading-small);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .category-nav {
  width: min(100%, var(--layout-standard-max));
  max-width: var(--layout-standard-max);
  gap: 1px;
  padding-right: var(--editorial-section-gutter);
  padding-left: var(--editorial-section-gutter);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .category-nav a {
  background: #fff;
  border-color: var(--editorial-line);
  border-radius: 0;
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .category-nav strong {
  min-width: max(30px, 1.75em);
  height: auto;
  min-height: max(30px, 1.75em);
  padding: 4px 8px;
  color: #fff;
  background: #111;
  border-radius: 0;
  font-size: var(--text-micro);
  line-height: 1;
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .proof-strip span {
  font-size: var(--text-micro);
  line-height: var(--line-body);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .compact-link-list span {
  font-size: var(--text-body);
  line-height: var(--line-body);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .faq-list {
  gap: 1px;
  overflow: hidden;
  background: var(--editorial-line);
  border: 1px solid var(--editorial-line);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) .faq-list details {
  background: #fff;
  border: 0;
  border-radius: 0;
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) :where(
  .enquiry-form,
  .sample-calculator,
  .sample-results,
  .result-box
) {
  background: #fff;
  border-color: var(--editorial-line);
  border-radius: 0;
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) :where(
  .enquiry-form,
  .sample-calculator,
  .sample-results
) {
  box-shadow: var(--editorial-shadow);
}

body.editorial-theme:where(:not(.admin-page):not(.agentc-system-prototype)) :where(
  .enquiry-form input,
  .enquiry-form select,
  .enquiry-form textarea,
  .sample-calculator input,
  .sample-calculator select,
  .search-box input
) {
  border-color: #b9b3aa;
  border-radius: 0;
}

/* Main navigation destinations use the selected split-editorial splash system. */
body.editorial-theme .home-site-header--internal-light .nav-links a[aria-current="page"] {
  color: #111;
  box-shadow: inset 0 -2px 0 var(--prototype-yellow);
}

.main-nav-page-intro {
  --main-nav-chrome-height: clamp(141px, calc(62.5px + 6.9vw), 188px);
  width: min(100%, var(--layout-wide-max));
  margin: 0 auto;
  background: #fbfaf7;
}

/* A compact, visible trail complements the existing BreadcrumbList schema.
   Main-navigation and Contact splashes place the same trail within their
   editorial copy column, so their full-bleed compositions do not gain a band. */
body.editorial-theme main > .page-breadcrumb {
  /* Match the editorial split-hero edge rather than the wider content grid. */
  width: min(calc(100% - 40px), var(--max));
  margin: 0 auto;
  padding: clamp(18px, 2.2vw, 32px) 0 0;
}

.page-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  color: #626872;
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  font-weight: var(--weight-breadcrumb);
  line-height: 1.25;
  list-style: none;
}

.page-breadcrumb__list li {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.page-breadcrumb__list li + li::before {
  width: 12px;
  margin-right: 8px;
  color: var(--prototype-yellow);
  content: "/";
  font-weight: 800;
  text-align: center;
}

.page-breadcrumb__list a,
.page-breadcrumb__list [aria-current="page"] {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}

.page-breadcrumb__list a {
  color: #4e535a;
  text-decoration-color: rgba(17, 17, 17, 0.28);
}

.page-breadcrumb__list a:hover,
.page-breadcrumb__list a:focus-visible {
  color: #111;
  text-decoration-color: var(--prototype-yellow);
}

.page-breadcrumb__list [aria-current="page"] {
  overflow: hidden;
  max-width: min(46ch, 52vw);
  color: #111;
  font-weight: var(--weight-breadcrumb);
  text-decoration-color: var(--prototype-yellow);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.main-nav-splash__copy > .page-breadcrumb,
.contact-brief-hero__copy > .page-breadcrumb {
  width: auto;
  margin: 0 0 clamp(24px, 3vw, 42px);
  padding: 0;
}

.main-nav-splash__copy > .page-breadcrumb .page-breadcrumb__list,
.contact-brief-hero__copy > .page-breadcrumb .page-breadcrumb__list {
  color: #666c74;
}

/* Keep the shared splash and numbered directory flush with neighbouring bands. */
body.main-nav-overview-route main > .main-nav-page-intro + .content-section {
  border-top: 0;
}

.main-nav-splash {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: 100vw;
  min-height: max(620px, calc(100svh - var(--main-nav-chrome-height)));
  margin-left: calc(50% - 50vw);
}

.main-nav-splash__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: clamp(40px, 3.8vw, 60px) clamp(34px, 5vw, 78px);
  background: #fbfaf7;
}

body.editorial-theme .main-nav-splash__copy .section-label {
  margin: 0 0 clamp(18px, 2vw, 30px);
  color: #4f5358;
  font-size: clamp(16px, 0.985vw, 24px);
  font-weight: var(--weight-editorial-overline);
  letter-spacing: 0.18em;
}

body.editorial-theme .main-nav-splash__copy h1 {
  max-width: 13.5ch;
  margin: 0;
  color: #111;
  font-family: var(--prototype-serif);
  font-size: var(--text-display);
  font-weight: var(--weight-editorial-title);
  letter-spacing: 0;
  line-height: 0.96;
  text-wrap: balance;
}

@media (min-width: 1280px) and (max-width: 1799px) {
  body.editorial-theme .main-nav-splash--objectives .main-nav-splash__copy h1 {
    font-size: calc(var(--text-display) + 10px);
  }
}

.main-nav-splash__rule {
  width: clamp(74px, 7vw, 116px);
  height: 4px;
  margin: clamp(24px, 3vw, 40px) 0 24px;
  background: var(--prototype-yellow);
}

body.editorial-theme .main-nav-splash__copy > p:not(.section-label) {
  max-width: 56ch;
  margin: 0;
  color: #4e5257;
  font-family: var(--prototype-sans);
  font-size: var(--text-body-large);
  line-height: var(--line-body);
}

.main-nav-splash__copy .hero-actions {
  margin-top: clamp(26px, 3vw, 40px);
}

body.editorial-theme .main-nav-splash__copy .button {
  min-height: 48px;
  padding: 14px 24px;
  border-radius: 0;
  box-shadow: none;
}

.main-nav-splash__media {
  position: relative;
  min-width: 0;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
  background: #111;
}

.main-nav-splash__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.main-nav-splash--objectives .main-nav-splash__media img {
  object-position: 58% center;
}

.case-study-splash-rotator {
  --case-study-rotator-rail-height: clamp(160px, 11vw, 184px);
}

.case-study-splash-rotator__link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  color: #fff;
  text-decoration: none;
}

.case-study-splash-rotator__link img {
  transition: opacity 180ms ease;
}

.case-study-splash-rotator__link.is-changing img,
.case-study-splash-rotator__link.is-changing .case-study-splash-rotator__caption {
  opacity: 0;
}

.case-study-splash-rotator__caption {
  position: absolute;
  right: 0;
  bottom: var(--case-study-rotator-rail-height);
  left: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(20px, 3vw, 46px);
  align-items: end;
  min-height: clamp(220px, 16vw, 254px);
  padding: clamp(22px, 1.7vw, 32px) clamp(24px, 2vw, 36px);
  background: rgba(17, 17, 17, 0.92);
  border-bottom: 4px solid var(--prototype-yellow);
  color: #fff;
  transition: opacity 180ms ease;
}

.case-study-splash-rotator__caption-main {
  --case-study-caption-divider-gap: clamp(20px, 1.8vw, 32px);
  display: grid;
  width: min(100%, 752px);
  grid-template-columns: minmax(0, 360px) minmax(220px, 360px);
  gap: var(--case-study-caption-divider-gap);
  align-items: end;
}

.case-study-splash-rotator__headline {
  display: grid;
  gap: clamp(12px, 1.4vw, 20px);
  justify-items: end;
  text-align: right;
}

.case-study-splash-rotator__meta {
  color: var(--prototype-yellow);
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  font-weight: 650;
  line-height: var(--line-ui);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.case-study-splash-rotator__count {
  color: var(--prototype-yellow);
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  font-weight: 800;
  line-height: var(--line-ui);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.editorial-theme .case-study-splash-rotator__caption strong {
  max-width: 21ch;
  color: #fff;
  font-family: var(--prototype-serif);
  font-size: var(--text-card-title);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading);
}

.case-study-splash-rotator__context {
  display: block;
  min-width: 0;
  padding-left: var(--case-study-caption-divider-gap);
  border-left: 2px solid var(--prototype-yellow);
  color: #fff;
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
  font-weight: 550;
  line-height: var(--line-body);
}

.case-study-splash-rotator__action {
  width: max-content;
  padding-bottom: 4px;
  border-bottom: 2px solid var(--prototype-yellow);
  color: #fff;
  font-family: var(--prototype-sans);
  font-size: var(--text-button);
  font-weight: 700;
  line-height: var(--line-ui);
}

.case-study-splash-rotator__rail {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: var(--case-study-rotator-rail-height);
  padding: clamp(16px, 1.4vw, 24px) clamp(18px, 2.2vw, 36px);
  background: #111;
}

.case-study-splash-rotator__previews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 1.2vw, 20px);
  min-width: 0;
}

.case-study-splash-rotator__preview {
  display: grid;
  grid-template-columns: minmax(72px, 0.95fr) minmax(0, 1.05fr);
  gap: 10px;
  min-width: 0;
  color: #fff;
  text-decoration: none;
}

.case-study-splash-rotator__preview img {
  width: 100%;
  height: 100%;
  min-height: 76px;
  object-fit: cover;
  opacity: 0.58;
}

.case-study-splash-rotator__preview.is-active img {
  opacity: 1;
  outline: 3px solid var(--prototype-yellow);
  outline-offset: -3px;
}

.case-study-splash-rotator__preview-copy {
  display: grid;
  align-content: end;
  gap: 5px;
  min-width: 0;
  padding-bottom: 1px;
}

.case-study-splash-rotator__preview-copy > span {
  color: var(--prototype-yellow);
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: var(--line-ui);
}

.case-study-splash-rotator__preview-copy strong {
  display: -webkit-box;
  overflow: hidden;
  color: #fff;
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  font-weight: 700;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.case-study-splash-rotator__controls {
  display: flex;
  align-self: end;
  margin-left: clamp(12px, 1.8vw, 28px);
  border: 1px solid rgba(255, 255, 255, 0.72);
  background: #111;
}

.case-study-splash-rotator__controls button {
  min-height: 48px;
  padding: 12px 16px;
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 0;
  background: #111;
  color: #fff;
  font-family: var(--prototype-sans);
  font-size: var(--text-button);
  font-weight: 650;
  line-height: var(--line-ui);
  cursor: pointer;
}

.case-study-splash-rotator__control-label--short {
  display: none;
}

.case-study-splash-rotator__controls button:last-child {
  border-right: 0;
}

.case-study-splash-rotator__controls button:hover,
.case-study-splash-rotator__controls button:focus-visible,
.case-study-splash-rotator__controls button[aria-pressed="true"] {
  background: var(--prototype-yellow);
  color: #111;
}

.case-study-splash-rotator__link:focus-visible {
  outline: 4px solid var(--prototype-yellow);
  outline-offset: -4px;
}

.case-study-splash-rotator__preview:focus-visible {
  outline: 3px solid var(--prototype-yellow);
  outline-offset: 4px;
}

@media (max-width: 1180px) {
  .case-study-splash-rotator__caption {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
  }

  .case-study-splash-rotator__caption-main {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .case-study-splash-rotator__context {
    max-width: 58ch;
  }

  .case-study-splash-rotator__preview {
    grid-template-columns: minmax(64px, 1fr);
  }

  .case-study-splash-rotator__preview-copy {
    display: none;
  }
}

.main-nav-route-directory {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: var(--editorial-paper);
  border-top: 1px solid var(--editorial-line);
}

.main-nav-splash--case-studies .main-nav-route-directory {
  background: var(--editorial-paper-strong);
}

.main-nav-route-directory__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  gap: clamp(30px, 5vw, 72px);
  align-items: end;
  width: min(calc(100% - 48px), var(--layout-standard-max));
  margin: 0 auto;
  padding: clamp(44px, 5vw, 76px) 0;
}

body.editorial-theme .main-nav-route-directory__intro .section-label {
  margin: 0 0 10px;
  font-size: clamp(16px, 0.985vw, 24px);
  font-weight: var(--weight-editorial-overline);
  letter-spacing: 0.14em;
}

body.editorial-theme .main-nav-route-directory__intro h2 {
  max-width: 20ch;
  margin: 0;
  font-family: var(--prototype-serif);
  font-size: var(--text-heading-medium);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-large);
}

.main-nav-route-directory__guidance {
  padding: clamp(18px, 2vw, 26px);
  background: #fff;
  border: 2px solid var(--prototype-yellow);
}

.main-nav-route-directory__guidance strong {
  display: block;
  margin: 0 0 6px;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  font-weight: 750;
  line-height: var(--line-ui);
}

body.editorial-theme .main-nav-route-directory__guidance p {
  max-width: 48ch;
  margin: 0;
  color: #555a60;
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
  line-height: var(--line-body);
}

.main-nav-route-index {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  margin-left: 0;
  background: var(--editorial-line);
  border-top: 1px solid var(--editorial-line);
}

.main-nav-route-index--count-6 {
  grid-template-rows: repeat(3, minmax(0, auto));
  grid-auto-flow: column;
}

.main-nav-route-index--count-8 {
  grid-template-rows: repeat(4, minmax(0, auto));
  grid-auto-flow: column;
}

.main-nav-route-index--count-2 {
  grid-template-rows: minmax(0, auto);
  grid-auto-flow: column;
}

.main-nav-route-index--count-5 .main-nav-route-index__item:last-child {
  grid-column: 1 / -1;
}

.main-nav-route-index--count-7 .main-nav-route-index__item:last-child {
  grid-column: 1 / -1;
}

.main-nav-route-index__item {
  display: grid;
  grid-template-columns: clamp(62px, 5vw, 84px) minmax(160px, 0.85fr) minmax(0, 1.15fr);
  align-items: stretch;
  min-width: 0;
  min-height: clamp(94px, 6.8vw, 104px);
  background: #fff;
  border-right: 1px solid var(--editorial-line);
  border-bottom: 1px solid var(--editorial-line);
  transition: color 180ms ease, background-color 180ms ease;
}

.main-nav-route-index__number {
  display: grid;
  place-items: center;
  padding: 16px 10px;
  color: #111;
  background: var(--prototype-yellow);
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  font-weight: 800;
}

.main-nav-route-index__item strong,
.main-nav-route-index__description {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: clamp(14px, 1.5vw, 22px);
}

.main-nav-route-index__item strong {
  color: #111;
  font-family: var(--prototype-serif);
  font-size: var(--text-body-large);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.main-nav-route-index__description {
  display: grid;
  gap: 6px;
  align-content: center;
  color: #555a60;
  border-left: 1px solid var(--editorial-line);
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  line-height: var(--line-body);
}

.main-nav-route-index__description-copy {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.main-nav-route-index__action {
  width: max-content;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  font-weight: 750;
  line-height: var(--line-ui);
  text-decoration: underline;
  text-decoration-color: var(--prototype-yellow);
  text-decoration-thickness: 3px;
  text-underline-offset: 4px;
}

.main-nav-route-index__item:hover,
.main-nav-route-index__item:focus-visible {
  color: #111;
  background: #fbfaf7;
  outline: 3px solid #111;
  outline-offset: -3px;
}

.main-nav-splash--contact .main-nav-route-index__item {
  min-height: clamp(116px, 9vw, 138px);
}

.research-route-finder {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: clamp(48px, 5vw, 80px) clamp(24px, 5vw, 78px);
  color: #fff;
  background: #111;
}

.research-route-finder__inner {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 2fr);
  gap: clamp(36px, 4vw, 72px);
  align-items: start;
  width: min(100%, var(--layout-standard-max));
  margin: 0 auto;
}

.research-route-finder__intro {
  padding-top: 6px;
}

body.editorial-theme .research-route-finder__intro .section-label {
  margin: 0 0 18px;
  color: var(--prototype-yellow);
  font-size: clamp(16px, 0.985vw, 24px);
  font-weight: var(--weight-editorial-overline);
}

body.editorial-theme .research-route-finder__intro h2 {
  margin: 0 0 22px;
  color: #fff;
  font-size: var(--text-heading-medium);
  line-height: var(--line-heading-medium);
}

body.editorial-theme .research-route-finder__intro > p:not(.section-label) {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: var(--text-body);
  line-height: var(--line-body);
}

.research-route-finder__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.28);
}

.research-route-finder__item {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: 12px;
  min-width: 0;
  min-height: clamp(170px, 14vw, 210px);
  padding: clamp(22px, 2.2vw, 32px);
  color: #111;
  background: #fff;
  transition: color 180ms ease, background-color 180ms ease;
}

.research-route-finder__number {
  color: #686d72;
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  font-weight: 800;
  letter-spacing: 0.08em;
}

.research-route-finder__item strong {
  color: inherit;
  font-family: var(--prototype-serif);
  font-size: var(--text-card-title);
  font-weight: 500;
  line-height: var(--line-heading-small);
}

.research-route-finder__item > span:last-child {
  align-self: end;
  color: #555a60;
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  line-height: var(--line-body);
}

.research-route-finder__item--dark {
  color: #fff;
  background: #111;
}

.research-route-finder__item--dark .research-route-finder__number,
.research-route-finder__item--dark > span:last-child {
  color: rgba(255, 255, 255, 0.78);
}

.research-route-finder__item--yellow {
  background: var(--prototype-yellow);
}

.research-route-finder__item--yellow .research-route-finder__number,
.research-route-finder__item--yellow > span:last-child {
  color: rgba(17, 17, 17, 0.72);
}

.research-route-finder__item:hover,
.research-route-finder__item:focus-visible {
  color: #111;
  background: var(--prototype-yellow);
  outline: 3px solid var(--prototype-yellow);
  outline-offset: -3px;
}

.research-route-finder__item:hover .research-route-finder__number,
.research-route-finder__item:hover > span:last-child,
.research-route-finder__item:focus-visible .research-route-finder__number,
.research-route-finder__item:focus-visible > span:last-child {
  color: rgba(17, 17, 17, 0.72);
}

/*
 * Interior editorial pages use the same full-width white/off-grey rhythm as
 * the homepage. Feature sections retain their own black or yellow treatment.
 */
body.editorial-theme:not(.main-nav-overview-route) main > .content-section {
  position: relative;
  isolation: isolate;
}

body.editorial-theme:not(.main-nav-overview-route) main > .content-section::before {
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  background: #fff;
  content: "";
  transform: translateX(-50%);
}

body.editorial-theme:not(.main-nav-overview-route) main > .content-section:nth-of-type(even)::before {
  background: var(--editorial-paper-strong);
}

/* Service grids retain their fine dividers without inheriting a dark page band. */
body.editorial-theme:not(.main-nav-overview-route) main > .content-section.objective-related-services::before {
  background: #fff;
}

/* Objective service cards use their fine internal dividers only. The shared
 * grid shadow created a beige halo around these template sections. */
body.editorial-theme .objective-related-services .card-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
  justify-content: stretch;
  box-shadow: none;
}

/* Migrated detail-page prose fills the controlled editorial container at every
 * viewport, as requested for these text sections. Image-led list features keep
 * their separate layout. */
body.editorial-theme .migrated-content-section__frame {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 1px;
  width: 100%;
  overflow: hidden;
  background: var(--editorial-line);
  border: 1px solid var(--editorial-line);
  box-shadow: 0 16px 55px rgba(25, 25, 20, 0.05);
}

body.editorial-theme .migrated-content-section__media {
  min-width: 0;
  min-height: clamp(420px, 34vw, 560px);
  margin: 0;
  overflow: hidden;
  background: #111;
}

body.editorial-theme .migrated-content-section__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.editorial-theme .migrated-content-section__copy {
  min-width: 0;
  padding: clamp(30px, 4vw, 58px);
  background: #fff;
}

body.editorial-theme .migrated-content-section__copy h2 {
  max-width: none;
  margin-top: 0;
}

body.editorial-theme .migrated-content-section__copy .migrated-content-section__intro {
  max-width: none;
  margin: 0 0 clamp(22px, 2.5vw, 34px);
  font-weight: 600;
}

body.editorial-theme .migrated-content-section__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--editorial-line);
  border: 1px solid var(--editorial-line);
  counter-reset: migrated-content-item;
  list-style: none;
}

body.editorial-theme .migrated-content-section__list li {
  position: relative;
  min-width: 0;
  min-height: clamp(88px, 7vw, 112px);
  padding: clamp(18px, 2vw, 26px) clamp(18px, 2.3vw, 30px) clamp(18px, 2vw, 26px) clamp(58px, 5vw, 70px);
  color: var(--editorial-text);
  background: #fff;
  counter-increment: migrated-content-item;
  font-weight: 600;
}

body.editorial-theme .migrated-content-section__list li::before {
  position: absolute;
  top: clamp(18px, 2vw, 26px);
  left: clamp(18px, 2.3vw, 30px);
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  color: #111;
  background: var(--prototype-yellow);
  content: counter(migrated-content-item, decimal-leading-zero);
  font-size: var(--text-small);
  font-weight: 800;
  line-height: 1;
}

body.editorial-theme .migrated-content-section__list li:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

body.editorial-theme .migrated-content-section--prose > h2 {
  max-width: none;
}

body.editorial-theme .migrated-content-section__prose {
  display: flow-root;
  width: 100%;
  max-width: none;
}

body.editorial-theme .migrated-content-section__prose > :where(p, h3) {
  max-width: none;
}

body.editorial-theme .migrated-content-section__prose > p {
  margin-top: 0;
  margin-bottom: 1.35em;
}

body.editorial-theme .migrated-content-section__prose > h3 {
  margin: 0 0 0.45em;
  font-size: var(--text-card-title);
  line-height: var(--line-heading-small);
}

body.editorial-theme .migrated-content-section__prose > :where(ul, ol) {
  margin: 0 0 1.35em;
  padding-inline-start: 1.4em;
}

body.editorial-theme .migrated-content-section__prose li {
  break-inside: avoid;
  margin-bottom: 0.55em;
}

body.editorial-theme .migrated-content-section__prose li > p {
  margin: 0;
}

/* Section padding alone sets the space around the complete text group. */
body.editorial-theme .migrated-content-section__prose > :last-child,
body.editorial-theme .migrated-content-section__prose li:last-child,
body.editorial-theme .migrated-content-section--prose:has(> .migrated-content-section__prose:empty) > h2 {
  margin-bottom: 0;
}

body.editorial-theme .service-page-hero > :where(div, figure) {
  min-width: 0;
}

body.editorial-theme .service-page-hero h1 {
  overflow-wrap: anywhere;
}

/* Service photographs retain a useful crop even with a short introduction.
 * This exception does not change other split-page or homepage layouts. */
body.editorial-theme .service-page-hero > .image-frame {
  align-self: center;
  aspect-ratio: 3 / 2;
}

body.editorial-theme .screening-assurance-section {
  display: grid;
  gap: clamp(32px, 4vw, 56px);
}

body.editorial-theme .screening-assurance__header {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.92fr);
  gap: clamp(38px, 6vw, 92px);
  align-items: end;
}

body.editorial-theme .screening-assurance__intro {
  min-width: 0;
}

body.editorial-theme .screening-assurance__intro .section-label {
  margin: 0 0 14px;
}

body.editorial-theme .screening-assurance__intro h2 {
  max-width: none;
  margin: 0;
  font-size: var(--text-heading-large);
  line-height: var(--line-heading-large);
}

body.editorial-theme .screening-assurance__lead {
  max-width: 72ch;
  margin: clamp(22px, 2.5vw, 34px) 0 0;
  font-size: var(--text-body-large);
  line-height: var(--line-body);
}

body.editorial-theme .screening-assurance__proof {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
  color: #fff;
  background: #111;
}

body.editorial-theme .screening-assurance__proof > div {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  min-height: 150px;
  padding: clamp(22px, 2.6vw, 34px);
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

body.editorial-theme .screening-assurance__proof > div:first-child {
  border-left: 0;
}

body.editorial-theme .screening-assurance__proof strong {
  color: var(--prototype-yellow);
  font-family: var(--prototype-serif);
  font-size: var(--text-card-title);
  font-weight: var(--weight-editorial-title);
  line-height: 1;
}

body.editorial-theme .screening-assurance__proof span {
  margin-top: auto;
  font-size: var(--text-body);
  line-height: 1.35;
}

body.editorial-theme .screening-assurance__commitment {
  max-width: 78ch;
  margin: 0;
  padding-left: clamp(22px, 2.2vw, 32px);
  border-left: 6px solid var(--prototype-yellow);
  font-size: var(--text-lead);
  line-height: var(--line-lead);
}

body.editorial-theme .screening-assurance__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  align-items: start;
  overflow: hidden;
  background: var(--editorial-line);
  border: 1px solid var(--editorial-line);
}

body.editorial-theme .screening-assurance__card {
  min-width: 0;
  background: #fff;
}

body.editorial-theme .screening-assurance__card summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(18px, 2.4vw, 30px);
  align-items: start;
  min-height: clamp(190px, 16vw, 232px);
  padding: clamp(24px, 3.2vw, 42px);
  cursor: pointer;
  list-style: none;
}

body.editorial-theme .screening-assurance__card summary::-webkit-details-marker {
  display: none;
}

body.editorial-theme .screening-assurance__card summary:focus-visible {
  outline: 3px solid #111;
  outline-offset: -6px;
}

body.editorial-theme .screening-assurance__number {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: #111;
  background: var(--prototype-yellow);
  font-size: var(--text-small);
  font-weight: 800;
  line-height: 1;
}

body.editorial-theme .screening-assurance__summary-copy {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

body.editorial-theme .screening-assurance__summary-copy > strong {
  font-family: var(--prototype-serif);
  font-size: var(--text-card-title);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-small);
}

body.editorial-theme .screening-assurance__summary-copy > span {
  max-width: 48ch;
  color: var(--editorial-muted);
  font-size: var(--text-body);
  line-height: var(--line-body);
}

body.editorial-theme .screening-assurance__toggle {
  position: relative;
  width: 34px;
  height: 34px;
  margin-top: 4px;
  border: 1px solid #111;
  border-radius: 50%;
}

body.editorial-theme .screening-assurance__toggle::before,
body.editorial-theme .screening-assurance__toggle::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  background: #111;
  content: "";
  transform: translate(-50%, -50%);
  transition: transform 180ms ease;
}

body.editorial-theme .screening-assurance__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

body.editorial-theme .screening-assurance__card[open] .screening-assurance__toggle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

body.editorial-theme .screening-assurance__card[open] summary {
  background: #fffdf2;
}

body.editorial-theme .screening-assurance__card-body {
  padding: 0 clamp(24px, 3.2vw, 42px) clamp(28px, 3.5vw, 46px) calc(clamp(24px, 3.2vw, 42px) + 42px + clamp(18px, 2.4vw, 30px));
  border-top: 1px solid var(--editorial-line);
}

body.editorial-theme .screening-assurance__card-body > :first-child {
  margin-top: clamp(24px, 3vw, 38px);
}

body.editorial-theme .screening-assurance__card-body > :last-child {
  margin-bottom: 0;
}

body.editorial-theme .screening-assurance__card-body ol {
  display: grid;
  gap: 14px;
  margin: 24px 0 0;
  padding: 0;
  counter-reset: screening-step;
  list-style: none;
}

body.editorial-theme .screening-assurance__card-body li {
  position: relative;
  padding-left: 42px;
  counter-increment: screening-step;
}

body.editorial-theme .screening-assurance__card-body li::before {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  background: var(--prototype-yellow);
  content: counter(screening-step);
  font-size: var(--text-small);
  font-weight: 800;
  line-height: 1;
}

@media (max-width: 1023px) {
  body.editorial-theme .migrated-content-section__frame {
    grid-template-columns: minmax(0, 1fr);
  }

  body.editorial-theme .migrated-content-section__media {
    min-height: 0;
    aspect-ratio: 16 / 8;
  }

  body.editorial-theme .screening-assurance__header {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  body.editorial-theme .screening-assurance__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  body.editorial-theme .migrated-content-section__media {
    aspect-ratio: 4 / 3;
  }

  body.editorial-theme .migrated-content-section__copy {
    padding: 28px 20px;
  }

  body.editorial-theme .migrated-content-section__list {
    grid-template-columns: minmax(0, 1fr);
  }

  body.editorial-theme .migrated-content-section__list li:last-child:nth-child(odd) {
    grid-column: auto;
  }

  body.editorial-theme .screening-assurance-section {
    gap: 28px;
  }

  body.editorial-theme .screening-assurance__proof,
  body.editorial-theme .screening-assurance__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.editorial-theme .screening-assurance__proof > div {
    min-height: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    border-left: 0;
  }

  body.editorial-theme .screening-assurance__proof > div:first-child {
    border-top: 0;
  }

  body.editorial-theme .screening-assurance__commitment {
    padding-left: 18px;
  }

  body.editorial-theme .screening-assurance__card summary {
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 0;
    padding: 24px 18px;
  }

  body.editorial-theme .screening-assurance__number {
    width: 36px;
    height: 36px;
  }

  body.editorial-theme .screening-assurance__toggle {
    width: 32px;
    height: 32px;
  }

  body.editorial-theme .screening-assurance__card-body {
    padding: 0 18px 28px;
  }
}

body.editorial-theme:not(.main-nav-overview-route) main > .content-section.bofu-scope-section::before {
  background: #111;
}

/*
 * Noindex comparison route: invert the respondent-recruitment detail page's
 * band sequence without changing the production route or shared page pattern.
 */
body.respondent-recruitment-grey-splash-prototype main > .page-breadcrumb {
  padding-top: clamp(52px, 5vw, 76px);
  padding-bottom: clamp(18px, 1.6vw, 24px);
}

/* The comparison route presents compact research types as seven full-width
 * numbered rows. This removes the uneven two-column box heights while keeping
 * the established image-and-copy frame. */
body.respondent-recruitment-grey-splash-prototype .migrated-content-section--list-feature .migrated-content-section__list {
  grid-template-columns: minmax(0, 1fr);
}

body.respondent-recruitment-grey-splash-prototype .migrated-content-section--list-feature .migrated-content-section__list li {
  display: flex;
  min-height: clamp(72px, 5.5vw, 88px);
  align-items: center;
  padding-top: 18px;
  padding-bottom: 18px;
}

body.respondent-recruitment-grey-splash-prototype .migrated-content-section--list-feature .migrated-content-section__list li::before {
  top: 50%;
  transform: translateY(-50%);
}

body.respondent-recruitment-grey-splash-prototype .migrated-content-section--list-feature .migrated-content-section__list li:last-child:nth-child(odd) {
  grid-column: auto;
}

/* On the grey-splash comparison route the screening accordions form a single
 * column beside an image that changes with the open assurance promise. The
 * visual occupies the full neighbouring column, so expanded copy never leaves
 * an exposed patch of the section band. */
body.respondent-recruitment-grey-splash-prototype .screening-assurance__experience {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
  gap: 1px;
  align-items: stretch;
  overflow: hidden;
  background: var(--editorial-line);
  border: 1px solid var(--editorial-line);
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__experience > .screening-assurance__grid {
  grid-template-columns: minmax(0, 1fr);
  align-self: stretch;
  border: 0;
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__experience .screening-assurance__card summary {
  min-height: clamp(150px, 12vw, 184px);
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual {
  position: relative;
  min-width: 0;
  min-height: 100%;
  overflow: hidden;
  background: #111;
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual-item {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual-item figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 16px;
  align-items: center;
  padding: clamp(24px, 3vw, 38px);
  color: #fff;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.92) 34%);
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual-item figcaption > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  color: #111;
  background: var(--prototype-yellow);
  font-weight: 800;
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual-item figcaption > strong {
  font-family: var(--prototype-serif);
  font-size: var(--text-card-title);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-small);
}

body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual-item figcaption > p {
  grid-column: 1 / -1;
  max-width: 48ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
}

@media (max-width: 1023px) {
  body.respondent-recruitment-grey-splash-prototype .screening-assurance__experience {
    grid-template-columns: minmax(0, 1fr);
  }

  body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual {
    min-height: clamp(420px, 68vw, 660px);
  }
}

@media (max-width: 767px) {
  body.respondent-recruitment-grey-splash-prototype .screening-assurance__experience .screening-assurance__card summary {
    min-height: 0;
  }

  body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual {
    min-height: 380px;
  }

  body.respondent-recruitment-grey-splash-prototype .screening-assurance__visual-item figcaption {
    padding: 24px 20px;
  }
}

body.respondent-recruitment-grey-splash-prototype main > .page-hero {
  position: relative;
  isolation: isolate;
}

body.respondent-recruitment-grey-splash-prototype main > .page-hero::before {
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  background: var(--editorial-paper-strong);
  content: "";
  transform: translateX(-50%);
}

body.editorial-theme.respondent-recruitment-grey-splash-prototype main > .content-section:nth-of-type(even)::before {
  background: #fff;
}

body.editorial-theme.respondent-recruitment-grey-splash-prototype main > .content-section:nth-of-type(odd)::before {
  background: var(--editorial-paper-strong);
}

/*
 * Main navigation overview pages continue the homepage's alternating editorial
 * bands and image-led card language without changing their content structure.
 */
body.main-nav-overview-route main > .content-section {
  position: relative;
  isolation: isolate;
}

body.main-nav-overview-route main > .content-section::before {
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  content: "";
  transform: translateX(-50%);
  background: #fff;
}

body.main-nav-overview-route main > .content-section:nth-of-type(even)::before {
  background: var(--editorial-paper-strong);
}

body.main-nav-overview-route .objective-grid,
body.main-nav-overview-route .fieldwork-options-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
}

body.main-nav-overview-route .route-image-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  padding: 0;
  overflow: hidden;
}

body.main-nav-overview-route .route-image-card__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-bottom: 1px solid #fff;
  transition: transform 260ms ease;
}

body.main-nav-overview-route .route-image-card:hover .route-image-card__image,
body.main-nav-overview-route .route-image-card:focus-within .route-image-card__image {
  transform: scale(1.025);
}

body.main-nav-overview-route .route-image-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: clamp(280px, 19vw, 330px);
  padding: clamp(24px, 2.1vw, 34px);
}

body.main-nav-overview-route .route-image-card h3 {
  margin: 0 0 18px;
  font-weight: var(--weight-editorial-title);
}

body.main-nav-overview-route .route-image-card p {
  margin: 0 0 28px;
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--line-body);
}

body.main-nav-overview-route .route-image-card .text-link {
  align-self: flex-start;
  margin-top: auto;
  font-size: var(--text-button);
  font-weight: 800;
  line-height: 1.2;
}

/*
 * The Fieldwork overview retains the shared splash and directory language,
 * while giving each lower section an explicit band so legacy component
 * backgrounds cannot obscure text or leave empty grid gutters.
 */
body.fieldwork-overview-route .bofu-route-panel {
  margin-top: 0;
  background: transparent;
  border: 0;
}

body.main-nav-overview-route.fieldwork-overview-route main > .content-section.bofu-route-panel::before {
  background: #fff;
}

body.fieldwork-overview-route .bofu-route-panel .buyer-route-card {
  box-shadow: none;
}

body.fieldwork-overview-route .bofu-scope-section {
  color: #fff;
  background: transparent;
}

body.main-nav-overview-route.fieldwork-overview-route main > .content-section.bofu-scope-section::before {
  background: #111;
}

body.fieldwork-overview-route .bofu-scope-section .section-heading-row {
  margin-bottom: clamp(32px, 4vw, 52px);
}

body.main-nav-overview-route.fieldwork-overview-route main > .content-section.bofu-proof-section::before {
  background: #fff;
}

body.main-nav-overview-route.fieldwork-overview-route main > .content-section.bofu-objective-section::before {
  background: var(--editorial-paper-strong);
}

/* Contact page: approved split editorial brief and enquiry form. */
body.editorial-theme .contact-brief-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: #fff;
}

body.editorial-theme .contact-brief-hero__intro,
body.editorial-theme .contact-brief-hero__form {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: clamp(700px, calc(100vh - 188px), 940px);
  padding: clamp(40px, 3.8vw, 60px) clamp(34px, 5vw, 78px);
}

body.editorial-theme .contact-brief-hero__intro {
  justify-content: flex-start;
  background: var(--editorial-paper);
}

body.editorial-theme .contact-brief-hero__form {
  justify-content: flex-end;
  background: var(--prototype-yellow);
}

body.editorial-theme .contact-brief-hero__copy {
  width: min(100%, 760px);
}

body.editorial-theme .contact-brief-hero .section-label {
  margin: 0 0 clamp(20px, 2vw, 34px);
  font-size: var(--text-overline);
  font-weight: var(--weight-editorial-overline);
}

body.editorial-theme .contact-brief-hero h1 {
  max-width: 17ch;
  margin: 0;
  color: #111;
  font-family: var(--prototype-serif);
  font-size: var(--text-display);
  font-weight: var(--weight-editorial-title);
  letter-spacing: 0;
  line-height: var(--line-heading-large);
}

body.editorial-theme .contact-brief-hero__lead {
  max-width: 57ch;
  margin: clamp(32px, 3vw, 50px) 0 0;
  padding-top: clamp(22px, 2vw, 30px);
  color: var(--editorial-muted);
  border-top: 4px solid var(--prototype-yellow);
  font-family: var(--prototype-sans);
  font-size: var(--text-body-large);
  line-height: var(--line-body);
}

body.editorial-theme .contact-brief-proof {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: clamp(30px, 3vw, 48px) 0 0;
  padding: clamp(20px, 2vw, 28px) 0;
  border-top: 1px solid var(--editorial-line);
  border-bottom: 1px solid var(--editorial-line);
}

body.editorial-theme .contact-brief-proof div {
  min-width: 0;
  padding: 0 clamp(14px, 1.4vw, 24px);
  border-left: 1px solid var(--editorial-line);
}

body.editorial-theme .contact-brief-proof div:first-child {
  padding-left: 0;
  border-left: 0;
}

body.editorial-theme .contact-brief-proof dt,
body.editorial-theme .contact-brief-proof dd {
  margin: 0;
  font-family: var(--prototype-sans);
}

body.editorial-theme .contact-brief-proof dt {
  color: #656b75;
  font-size: var(--text-small);
  font-weight: 700;
  line-height: 1.2;
}

body.editorial-theme .contact-brief-proof dd {
  margin-top: 6px;
  color: #111;
  font-size: var(--text-body);
  font-weight: 500;
  line-height: 1.35;
}

body.editorial-theme .contact-client-logos {
  --contact-logo-gap: clamp(28px, 3vw, 56px);
  --contact-logo-gap-half: clamp(14px, 1.5vw, 28px);
  width: 100%;
  overflow: hidden;
  align-items: center;
  margin-top: clamp(28px, 3vw, 44px);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
}

body.editorial-theme .contact-client-logos__track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: var(--contact-logo-gap);
  animation: contact-client-logo-scroll 28s linear infinite;
  will-change: transform;
}

body.editorial-theme .contact-client-logos:hover .contact-client-logos__track {
  animation-play-state: paused;
}

body.editorial-theme .contact-client-logos__item {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: clamp(86px, 8vw, 132px);
  height: 44px;
}

body.editorial-theme .contact-client-logos img {
  width: auto;
  max-width: 100%;
  max-height: 38px;
  filter: invert(1);
  opacity: 0.78;
}

@keyframes contact-client-logo-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(calc(-50% - var(--contact-logo-gap-half)), 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.editorial-theme .contact-client-logos__track {
    animation: none;
    transform: none;
  }
}

body.editorial-theme .contact-brief-form {
  gap: 14px;
  width: min(100%, var(--layout-standard-max));
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.editorial-theme .contact-brief-form h2 {
  margin: 0 0 clamp(26px, 3vw, 42px);
  color: #111;
  font-family: var(--prototype-serif);
  font-size: var(--text-heading-large);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-large);
}

body.editorial-theme .contact-brief-form label {
  gap: 9px;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
  font-weight: 700;
  line-height: 1.25;
}

body.editorial-theme .contact-brief-form :where(input, select, textarea) {
  min-height: 56px;
  padding: 14px 16px;
  color: #111;
  background: #fff;
  border: 1px solid rgba(17, 17, 17, 0.42);
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
}

body.editorial-theme .contact-brief-form select {
  appearance: none;
  padding-right: 52px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 20px center;
  background-size: 14px 9px;
}

body.editorial-theme .contact-brief-form textarea {
  min-height: 148px;
}

body.editorial-theme .contact-email-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

body.editorial-theme .contact-brief-form .form-note,
body.editorial-theme .contact-brief-form__reassurance,
body.editorial-theme .contact-brief-form .form-status {
  color: rgba(17, 17, 17, 0.78);
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  line-height: 1.4;
}

body.editorial-theme .contact-brief-form .form-note--email {
  margin-top: -8px;
}

body.editorial-theme .contact-brief-form .button.primary {
  width: 100%;
  min-height: 58px;
  margin-top: 4px;
  color: #fff;
  background: #111;
  border-color: #111;
  border-radius: 0;
  box-shadow: none;
}

body.editorial-theme .contact-brief-form__reassurance {
  margin: -6px 0 0;
}

body.editorial-theme .contact-alternatives {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.6fr);
  align-items: center;
  gap: clamp(30px, 5vw, 92px);
  width: min(100%, 3000px);
  margin: 0 auto;
  padding: clamp(34px, 4vw, 62px) clamp(28px, 5vw, 104px);
  background: #fff;
  border-top: 1px solid var(--editorial-line);
  border-bottom: 1px solid var(--editorial-line);
}

body.editorial-theme .contact-alternatives h2 {
  margin: 0;
  color: #111;
  font-family: var(--prototype-serif);
  font-size: var(--text-heading-small);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-small);
}

body.editorial-theme .contact-alternatives__links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--editorial-line);
}

body.editorial-theme .contact-alternatives__links a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 14px 18px;
  color: #111;
  background: #fff;
  font-family: var(--prototype-sans);
  font-size: var(--text-button);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: underline;
  text-decoration-color: var(--prototype-yellow);
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}

body.editorial-theme .contact-alternatives__links a:hover,
body.editorial-theme .contact-alternatives__links a:focus-visible {
  background: var(--editorial-paper);
}

@media (max-width: 1024px) {
  body.editorial-theme .contact-brief-hero {
    grid-template-columns: 1fr;
  }

  body.editorial-theme .contact-brief-hero__intro,
  body.editorial-theme .contact-brief-hero__form {
    justify-content: center;
    min-height: 0;
    padding: clamp(54px, 8vw, 90px) clamp(22px, 6vw, 64px);
  }

  body.editorial-theme .contact-brief-hero__copy,
  body.editorial-theme .contact-brief-form {
    width: min(100%, 760px);
  }

  body.editorial-theme .contact-alternatives {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  body.editorial-theme .contact-email-fields,
  body.editorial-theme .contact-alternatives__links {
    grid-template-columns: 1fr;
  }

  body.editorial-theme .contact-brief-proof {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  body.editorial-theme .contact-brief-proof div,
  body.editorial-theme .contact-brief-proof div:first-child {
    padding: 0;
    border: 0;
  }

  body.editorial-theme .contact-client-logos {
    display: none;
  }

  body.editorial-theme .contact-brief-proof {
    display: none;
  }

  body.editorial-theme .contact-alternatives {
    padding-right: 22px;
    padding-left: 22px;
  }
}

body.main-nav-overview-route .objectives-route-section .choice-grid {
  gap: clamp(18px, 2vw, 28px);
}

body.main-nav-overview-route .objectives-route-section .buyer-route-card {
  display: flex;
  flex-direction: column;
  min-height: clamp(430px, 34vw, 520px);
  padding: clamp(28px, 3vw, 44px);
}

body.main-nav-overview-route .objectives-route-section .buyer-route-card .section-label {
  font-size: var(--text-label);
  font-weight: 800;
}

body.main-nav-overview-route .objectives-route-section .buyer-route-card > p:not(.section-label),
body.main-nav-overview-route .objectives-route-section .buyer-route-card .check-list li {
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--line-body);
}

body.main-nav-overview-route .objectives-route-section .buyer-route-card .check-list {
  margin-bottom: clamp(26px, 3vw, 42px);
}

body.main-nav-overview-route .objectives-route-section .buyer-route-card > .text-link {
  align-self: flex-start;
  margin-top: auto;
  padding-top: clamp(18px, 2vw, 28px);
  font-size: var(--text-button);
  font-weight: 800;
}

body.main-nav-overview-route #client-types::before {
  background: var(--editorial-paper-strong);
}

body.main-nav-overview-route .service-category-section .section-heading-row,
body.main-nav-overview-route #client-types .section-heading-row {
  margin-bottom: clamp(32px, 4vw, 52px);
}

body.main-nav-overview-route .service-category-section .section-label {
  margin-bottom: 14px;
}

body.main-nav-overview-route .directory-image-grid {
  --directory-divider: #d3cec6;
  --directory-card-span: 4;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1px;
  align-items: stretch;
  overflow: hidden;
  background: var(--directory-divider);
  border: 1px solid var(--directory-divider);
  box-shadow: 0 16px 55px rgba(25, 25, 20, 0.05);
}

body.main-nav-overview-route .directory-image-grid > .directory-image-card {
  grid-column: span var(--directory-card-span);
}

body.blog-directory-route .blog-directory-grid .directory-image-card__content {
  min-height: clamp(300px, 24vw, 410px);
}

.main-nav-splash--blog .main-nav-splash__copy h1 {
  max-width: 12ch;
}

.blog-directory-section {
  scroll-margin-top: 32px;
}

.blog-directory-section .section-heading-row > div {
  max-width: 780px;
}

.blog-directory-cta {
  margin-top: clamp(40px, 4.5vw, 80px);
}

body.main-nav-overview-route.blog-directory-route main > .content-section.blog-directory-cta::before {
  background: #111;
}

body.blog-article-route main > .content-section > :where(h2, p, ul, ol) {
  max-width: min(100%, clamp(900px, 70vw, 1120px));
}

body.main-nav-overview-route .sector-directory-grid .directory-image-card__content {
  min-height: clamp(300px, 22vw, 390px);
}

.main-nav-splash--research-sectors .main-nav-splash__copy h1 {
  max-width: 13ch;
}

.research-sector-directory-section {
  scroll-margin-top: 32px;
}

.research-sector-directory-section .section-heading-row > div {
  max-width: 780px;
}

.research-sector-cross-link {
  margin-top: clamp(40px, 4.5vw, 80px);
}

body.main-nav-overview-route .research-hub-intro .text-link {
  display: inline-flex;
  margin-top: clamp(22px, 2.5vw, 34px);
}

body.main-nav-overview-route .research-hub-intro .buyer-route-card {
  box-shadow: none;
}

body.main-nav-overview-route .research-hub-category .section-heading-row,
body.main-nav-overview-route .research-hub-proof .section-heading-row,
body.main-nav-overview-route .research-hub-faqs .section-heading-row {
  margin-bottom: clamp(32px, 4vw, 52px);
}

.research-hub-category__count {
  align-self: end;
  padding-bottom: 4px;
  color: #555a60;
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  font-weight: 700;
  line-height: 1.25;
}

body.main-nav-overview-route .case-study-library-section {
  padding-bottom: 0;
}

/* Every editorial closing CTA uses one canonical black-bar treatment. Keep
 * this rule after route-specific band alternation so no page can accidentally
 * expose a white or paper-coloured CTA background. */
body.editorial-theme main#top > section.content-section.final-cta {
  background: #000;
  border: 0;
  box-shadow: none;
}

body.editorial-theme main#top > section.content-section.final-cta::before {
  background: #000;
  border-block: 0;
  box-shadow: none;
}

/* Research-objective detail pages close on the page's alternating editorial
 * band rather than introducing the generic black CTA treatment. The content
 * remains a section, with no separate panel colour or border. */
body.research-objective-detail-route main#top > section.content-section.objective-detail-final-cta {
  color: var(--editorial-text);
  background: transparent;
  border: 0;
  box-shadow: none;
  margin-top: 0;
  margin-bottom: 0;
}

body.research-objective-detail-route main#top > section.content-section.objective-detail-final-cta::before {
  background: #fff;
  border-block: 0;
  box-shadow: none;
}

body.research-objective-detail-route main#top > section.content-section.objective-detail-final-cta:nth-of-type(even)::before {
  background: var(--editorial-paper-strong);
}

body.research-objective-detail-route .objective-detail-final-cta h2,
body.research-objective-detail-route .objective-detail-final-cta p,
body.research-objective-detail-route .objective-detail-final-cta .section-label {
  color: var(--editorial-text);
}

/* The objective template uses the shared editorial overline role throughout.
 * It reaches 24px at the annotated desktop width, stays bounded on smaller
 * screens and keeps the approved 600 weight at every breakpoint. */
body.research-objective-detail-route main#top .section-label {
  font-size: var(--text-overline);
  font-weight: var(--weight-editorial-overline);
}

/* Canonical "black bar brief" spacing. Keep the solid-black bar visually
 * separate from the content before it and the section or footer after it. */
body.editorial-theme :is(.home-dark-cta, .final-cta, .bofu-final-cta) {
  margin-top: clamp(40px, 4.5vw, 80px);
  margin-bottom: clamp(40px, 4.5vw, 80px);
}

/* Prose bands already supply equal breathing room; an adjacent CTA's outer
 * margin would add blank space to only one side of the text section. */
body.editorial-theme :is(.home-dark-cta, .final-cta, .bofu-final-cta):has(+ .migrated-content-section--prose) {
  margin-bottom: 0;
}

body.editorial-theme .migrated-content-section--prose + :is(.home-dark-cta, .final-cta, .bofu-final-cta) {
  margin-top: 0;
}

body.main-nav-overview-route .directory-image-card,
body.editorial-theme .service-detail-image-grid .directory-image-card,
body.editorial-theme .faq-related-service-grid .directory-image-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 100%;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.main-nav-overview-route .directory-image-card__media,
body.editorial-theme .service-detail-image-grid .directory-image-card__media,
body.editorial-theme .faq-related-service-grid .directory-image-card__media {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #111;
}

body.main-nav-overview-route .directory-image-card__media img,
body.editorial-theme .service-detail-image-grid .directory-image-card__media img,
body.editorial-theme .faq-related-service-grid .directory-image-card__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform 260ms ease;
}

body.main-nav-overview-route .directory-image-card:hover .directory-image-card__media img,
body.main-nav-overview-route .directory-image-card:focus-within .directory-image-card__media img,
body.editorial-theme .service-detail-image-grid .directory-image-card:hover .directory-image-card__media img,
body.editorial-theme .service-detail-image-grid .directory-image-card:focus-within .directory-image-card__media img,
body.editorial-theme .faq-related-service-grid .directory-image-card:hover .directory-image-card__media img,
body.editorial-theme .faq-related-service-grid .directory-image-card:focus-within .directory-image-card__media img {
  transform: scale(1.025);
}

body.main-nav-overview-route .directory-image-card__content,
body.editorial-theme .service-detail-image-grid .directory-image-card__content,
body.editorial-theme .faq-related-service-grid .directory-image-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: clamp(300px, 21vw, 360px);
  padding: clamp(24px, 2.1vw, 34px);
  background: #fff;
  border-top: 1px solid var(--directory-divider);
}

body.main-nav-overview-route .who-help-directory-grid .directory-image-card__content {
  min-height: clamp(330px, 25vw, 420px);
}

body.main-nav-overview-route .directory-image-card h3,
body.editorial-theme .service-detail-image-grid .directory-image-card h3,
body.editorial-theme .faq-related-service-grid .directory-image-card h3 {
  margin: 0 0 18px;
  font-size: var(--text-card-title);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-small);
}

body.main-nav-overview-route .directory-image-card p,
body.editorial-theme .service-detail-image-grid .directory-image-card p,
body.editorial-theme .faq-related-service-grid .directory-image-card p {
  margin: 0 0 28px;
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--line-body);
}

body.main-nav-overview-route .directory-image-card .text-link,
body.editorial-theme .service-detail-image-grid .directory-image-card .text-link,
body.editorial-theme .faq-related-service-grid .directory-image-card .text-link {
  align-self: flex-start;
  margin-top: auto;
  font-size: var(--text-button);
  font-weight: 800;
  line-height: 1.2;
}

body.main-nav-overview-route .directory-image-card :is(h3, h3 a, p, .text-link),
body.editorial-theme :is(.service-detail-image-grid, .faq-related-service-grid) .directory-image-card :is(h3, h3 a, p, .text-link) {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* Detail templates use the same image-led card language as the main route
 * directories. Count-specific columns keep every row fully occupied so the
 * divider colour never appears as an empty card or creeps into the sides. */
body.editorial-theme .service-detail-image-grid,
body.editorial-theme .faq-related-service-grid {
  --directory-divider: #d3cec6;
  --directory-card-span: 3;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1px;
  align-items: stretch;
  overflow: hidden;
  background: var(--directory-divider);
  border: 1px solid var(--directory-divider);
  box-shadow: 0 16px 55px rgba(25, 25, 20, 0.05);
}

body.editorial-theme :is(.service-detail-image-grid, .faq-related-service-grid) > .directory-image-card {
  grid-column: span var(--directory-card-span);
}

body.editorial-theme .service-detail-image-grid .directory-image-card {
  background: #fff;
}

body.editorial-theme .service-detail-image-grid .directory-image-card__content {
  min-height: clamp(280px, 20vw, 340px);
}

body.editorial-theme .faq-related-services .section-heading-row {
  margin-bottom: clamp(24px, 3vw, 40px);
}

body.editorial-theme .faq-related-service-grid .directory-image-card {
  background: #fff;
}

/* Text-only listing grids follow the same complete-row rule without changing
 * the image-led card family. The generated count and remainder classes make
 * the behaviour deterministic instead of relying on auto-fit at each route. */
body.editorial-theme .card-grid[class*="card-grid--count-"] {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  justify-content: stretch;
}

body.editorial-theme .card-grid[class*="card-grid--count-"] > .listing-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  grid-column: span 4;
}

@media (min-width: 1280px) {
  body.editorial-theme .card-grid.card-grid--count-1 > .listing-card {
    grid-column: span 12;
  }

  body.editorial-theme .card-grid.grid-remainder-3-1:not(.card-grid--count-1) > .listing-card:nth-last-child(-n + 4) {
    grid-column: span 3;
  }

  body.editorial-theme .card-grid.grid-remainder-3-2 > .listing-card:nth-last-child(-n + 2) {
    grid-column: span 6;
  }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  body.editorial-theme .card-grid.grid-remainder-3-1 > .listing-card:last-child {
    grid-column: span 12;
  }

  body.editorial-theme .card-grid.grid-remainder-3-2 > .listing-card:nth-last-child(-n + 2) {
    grid-column: span 6;
  }
}

body.editorial-theme .card-grid[class*="card-grid--count-"] .listing-card > p {
  max-width: 72ch;
}

body.editorial-theme .card-grid[class*="card-grid--count-"] :is(h3, h3 a, p, .text-link) {
  min-width: 0;
  overflow-wrap: anywhere;
}

body.editorial-theme :is(
  .choice-grid,
  .objective-grid,
  .fieldwork-options-grid,
  .support-scope-grid,
  .service-quality-grid,
  .case-study-summary-grid
) :is(h3, h3 a, p, .text-link) {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (min-width: 768px) and (max-width: 1023px) {
  body.editorial-theme .card-grid[class*="card-grid--count-"] > .listing-card {
    grid-column: span 6;
  }

  body.editorial-theme .card-grid.grid-remainder-2-1 > .listing-card:last-child {
    grid-column: span 12;
  }
}

@media (max-width: 767px) {
  body.editorial-theme .card-grid[class*="card-grid--count-"] {
    grid-template-columns: minmax(0, 1fr);
  }

  body.editorial-theme .card-grid[class*="card-grid--count-"] > .listing-card,
  body.editorial-theme .card-grid.grid-remainder-2-1 > .listing-card:last-child {
    grid-column: auto;
  }
}

/*
 * Image-led directories share one 12-track contract. The generator declares
 * each family's desktop and compact column count, while remainder classes
 * expand only the final row. This keeps the two, three and four-card visual
 * families distinct without leaving divider-coloured cells at any breakpoint.
 */
@media (min-width: 1280px) {
  body .directory-image-grid.directory-grid--desktop-4 { --directory-card-span: 3; }
  body .directory-image-grid.directory-grid--desktop-3 { --directory-card-span: 4; }
  body .directory-image-grid.directory-grid--desktop-2 { --directory-card-span: 6; }

  .directory-image-grid.directory-grid--desktop-4.grid-remainder-4-2 > .directory-image-card:nth-last-child(-n + 2),
  .directory-image-grid.directory-grid--desktop-3.grid-remainder-3-2 > .directory-image-card:nth-last-child(-n + 2) {
    grid-column: span 6;
  }

  .directory-image-grid.directory-grid--desktop-4.grid-remainder-4-3 > .directory-image-card:nth-last-child(-n + 3) {
    grid-column: span 4;
  }

  :is(
    .directory-grid--desktop-4.grid-remainder-4-1,
    .directory-grid--desktop-3.grid-remainder-3-1,
    .directory-grid--desktop-2.grid-remainder-2-1
  ) > .directory-image-card:last-child {
    display: grid;
    grid-column: span 12;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  :is(
    .directory-grid--desktop-4.grid-remainder-4-1,
    .directory-grid--desktop-3.grid-remainder-3-1,
    .directory-grid--desktop-2.grid-remainder-2-1
  ) > .directory-image-card:last-child .directory-image-card__media img {
    height: 100%;
    aspect-ratio: auto;
  }

  :is(
    .directory-grid--desktop-4.grid-remainder-4-1,
    .directory-grid--desktop-3.grid-remainder-3-1,
    .directory-grid--desktop-2.grid-remainder-2-1
  ) > .directory-image-card:last-child .directory-image-card__content {
    border-top: 0;
    border-left: 1px solid var(--directory-divider);
  }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  body .directory-image-grid.directory-grid--compact-3 { --directory-card-span: 4; }
  body .directory-image-grid.directory-grid--compact-2 { --directory-card-span: 6; }

  .directory-image-grid.directory-grid--compact-3.grid-remainder-3-2 > .directory-image-card:nth-last-child(-n + 2) {
    grid-column: span 6;
  }

  :is(
    .directory-grid--compact-3.grid-remainder-3-1,
    .directory-grid--compact-2.grid-remainder-2-1
  ) > .directory-image-card:last-child {
    display: grid;
    grid-column: span 12;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  :is(
    .directory-grid--compact-3.grid-remainder-3-1,
    .directory-grid--compact-2.grid-remainder-2-1
  ) > .directory-image-card:last-child .directory-image-card__media img {
    height: 100%;
    aspect-ratio: auto;
  }

  :is(
    .directory-grid--compact-3.grid-remainder-3-1,
    .directory-grid--compact-2.grid-remainder-2-1
  ) > .directory-image-card:last-child .directory-image-card__content {
    border-top: 0;
    border-left: 1px solid var(--directory-divider);
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  body .directory-image-grid:is(.directory-grid--compact-2, .directory-grid--compact-3) {
    --directory-card-span: 6;
  }

  .directory-image-grid.grid-remainder-2-1 > .directory-image-card:last-child {
    display: grid;
    grid-column: span 12;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .directory-image-grid.grid-remainder-2-1 > .directory-image-card:last-child .directory-image-card__media img {
    height: 100%;
    aspect-ratio: auto;
  }

  .directory-image-grid.grid-remainder-2-1 > .directory-image-card:last-child .directory-image-card__content {
    border-top: 0;
    border-left: 1px solid var(--directory-divider);
  }
}

/*
 * Who We Help keeps organisation types and sectors as two persistent editorial
 * columns. Each coloured route header owns the directory directly beneath it.
 */
.main-nav-splash--who-we-help .main-nav-splash__copy h1 {
  max-width: 13ch;
}

body.editorial-theme .main-nav-splash--who-we-help .main-nav-splash__copy .button.secondary {
  background: var(--prototype-yellow);
  border-color: var(--prototype-yellow);
}

.who-help-directory {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  width: min(calc(100% - 48px), var(--layout-wide-max));
  margin: clamp(54px, 6vw, 92px) auto clamp(72px, 8vw, 132px);
  overflow: hidden;
  background: var(--editorial-line);
  border: 1px solid var(--editorial-line);
}

@media (min-width: 1024px) {
  /* The splash and section colours can span the screen; the content follows
     the same inner edges as ordinary editorial sections. */
  .main-nav-route-directory__intro,
  .main-nav-route-index,
  .who-help-directory {
    width: min(
      calc(100% - var(--editorial-section-gutter) - var(--editorial-section-gutter)),
      var(--editorial-inner-max)
    );
    margin-right: auto;
    margin-left: auto;
  }

  .research-route-finder {
    padding-right: var(--editorial-section-gutter);
    padding-left: var(--editorial-section-gutter);
  }

  .research-route-finder__inner {
    width: min(100%, var(--editorial-inner-max));
  }
}

.who-help-directory__group {
  display: flex;
  flex-direction: column;
  min-width: 0;
  scroll-margin-top: 32px;
  background: #fff;
}

.who-help-directory__group + .who-help-directory__group {
  border-left: 1px solid var(--editorial-line);
}

.who-help-directory__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: clamp(260px, 18vw, 400px);
  padding: clamp(34px, 4vw, 58px);
}

.who-help-directory__group--organisation .who-help-directory__header {
  color: #fff;
  background: #111;
}

.who-help-directory__group--sector .who-help-directory__header {
  color: #111;
  background: var(--prototype-yellow);
}

body.editorial-theme .who-help-directory__header h2 {
  max-width: 14ch;
  margin: 0;
  color: inherit;
  font-family: var(--prototype-serif);
  font-size: var(--text-heading-medium);
  font-weight: var(--weight-editorial-title);
  letter-spacing: 0;
  line-height: var(--line-heading-large);
  text-wrap: balance;
}

.who-help-directory__rule {
  width: clamp(48px, 5vw, 78px);
  height: 3px;
  margin: clamp(18px, 2vw, 26px) 0;
  background: var(--prototype-yellow);
}

.who-help-directory__group--sector .who-help-directory__rule {
  background: #111;
}

body.editorial-theme .who-help-directory__header p {
  max-width: 50ch;
  margin: 0 0 clamp(26px, 3vw, 38px);
  color: inherit;
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--line-body);
}

body.editorial-theme .who-help-directory__header .button {
  align-self: flex-start;
  margin-top: auto;
  border-radius: 0;
  box-shadow: none;
}

body.editorial-theme .who-help-directory__group--organisation .who-help-directory__header .button.secondary {
  color: #111;
  background: #fff;
  border-color: #fff;
}

body.editorial-theme .who-help-directory__group--sector .who-help-directory__header .button.primary {
  color: #fff;
  background: #111;
  border-color: #111;
}

.who-help-directory__list {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  scroll-margin-top: 32px;
  background: #fff;
}

.who-help-directory-card {
  display: grid;
  grid-template-columns: minmax(170px, 42%) minmax(0, 1fr);
  min-height: clamp(210px, 15vw, 300px);
  overflow: hidden;
  background: #fff;
  border-bottom: 1px solid var(--editorial-line);
}

.who-help-directory-card:last-child {
  flex: 1;
  border-bottom: 0;
}

.who-help-directory-card__media {
  min-width: 0;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
  background: #111;
}

.who-help-directory-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 260ms ease;
}

.who-help-directory-card:hover .who-help-directory-card__media img,
.who-help-directory-card:focus-within .who-help-directory-card__media img {
  transform: scale(1.025);
}

.who-help-directory-card__content {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(22px, 2.4vw, 34px);
  border-left: 1px solid var(--editorial-line);
}

body.editorial-theme .who-help-directory-card h3 {
  margin: 0 0 clamp(12px, 1.5vw, 18px);
  color: #111;
  font-family: var(--prototype-serif);
  font-size: var(--text-card-title);
  font-weight: var(--weight-editorial-title);
  letter-spacing: 0;
  line-height: var(--line-heading-small);
  text-wrap: balance;
}

.who-help-directory-card h3 a {
  color: inherit;
}

body.editorial-theme .who-help-directory-card p {
  margin: 0 0 clamp(18px, 2vw, 26px);
  color: var(--editorial-muted);
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--line-body);
}

body.editorial-theme .who-help-directory-card .text-link {
  align-self: flex-start;
  margin-top: auto;
  font-size: var(--text-button);
  font-weight: 800;
  line-height: 1.2;
}

.who-help-directory-card:focus-within {
  outline: 3px solid #111;
  outline-offset: -3px;
}

/*
 * Keep the two desktop directories reading as one paired editorial grid.
 * The copy lengths differ between organisation types and sectors, so relying
 * on intrinsic heights lets the coloured headers and subsequent card rows
 * drift out of alignment. These bounded row heights accommodate the longest
 * current content at every supported desktop scale while preserving natural
 * stacking below the tablet breakpoint.
 */
@media (min-width: 1024px) {
  .who-help-directory__header {
    height: clamp(440px, calc(400px + 3vw), 530px);
    min-height: 0;
  }

  .who-help-directory-card {
    height: clamp(360px, 12vw, 530px);
    min-height: 0;
  }
}

@media (max-width: 1023px) {
  .who-help-directory__header {
    min-height: clamp(300px, 44vw, 410px);
    padding: clamp(28px, 4vw, 40px);
  }

  .who-help-directory-card {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .who-help-directory-card__media {
    min-height: 0;
  }

  .who-help-directory-card__media img {
    height: auto;
    aspect-ratio: 3 / 2;
  }

  .who-help-directory-card__content {
    min-height: 250px;
    border-top: 1px solid var(--editorial-line);
    border-left: 0;
  }
}

@media (max-width: 767px) {
  .who-help-directory {
    grid-template-columns: 1fr;
    width: min(calc(100% - 32px), var(--layout-wide-max));
    margin-bottom: 80px;
  }

  .who-help-directory__group + .who-help-directory__group {
    border-top: 1px solid var(--editorial-line);
    border-left: 0;
  }

  .who-help-directory-card:last-child {
    flex: none;
  }

  .who-help-directory__header {
    min-height: 0;
    padding: 34px 22px 38px;
  }

  body.editorial-theme .who-help-directory__header h2 {
    font-size: var(--text-heading-small);
  }

  .who-help-directory__header .button {
    width: 100%;
  }

  .who-help-directory-card__content {
    min-height: 240px;
    padding: 24px 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .who-help-directory-card__media img {
    transition: none;
  }

  .who-help-directory-card:hover .who-help-directory-card__media img,
  .who-help-directory-card:focus-within .who-help-directory-card__media img {
    transform: none;
  }
}

/* The FAQ library is a navigable knowledge centre, not a wall of repeated cards. */
body.faq-directory-route .faq-directory-hero {
  padding-bottom: clamp(64px, 7vw, 112px);
}

body.faq-directory-route .faq-directory-controls {
  position: relative;
  z-index: 0;
  max-width: var(--layout-standard-max);
  color: #fff;
}

body.faq-directory-route .faq-directory-controls::before {
  position: absolute;
  z-index: -1;
  inset: 0 calc(50% - 50vw);
  content: "";
  background: #111;
}

body.faq-directory-route .faq-directory-controls__intro {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(360px, 1.12fr);
  align-items: end;
  gap: clamp(32px, 5vw, 80px);
}

body.faq-directory-route .faq-directory-controls h2,
body.faq-directory-route .faq-directory-controls p {
  color: #fff;
}

body.faq-directory-route .faq-directory-controls .section-label {
  color: var(--prototype-yellow);
}

.faq-directory-search {
  display: grid;
  gap: 10px;
  color: #fff;
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  font-weight: 800;
  line-height: 1.2;
}

.faq-directory-search input {
  width: 100%;
  min-height: 64px;
  padding: 16px 18px;
  color: #111;
  background: #fff;
  border: 3px solid #fff;
  border-radius: 0;
  font: inherit;
  font-size: var(--text-body);
  font-weight: 500;
}

.faq-directory-search input:focus-visible {
  border-color: var(--prototype-yellow);
  outline: 3px solid #111;
  outline-offset: 2px;
}

body.faq-directory-route .faq-directory-status {
  margin: clamp(28px, 4vw, 44px) 0 18px;
  color: rgba(255, 255, 255, 0.76);
  font-size: var(--text-body);
}

.faq-directory-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: rgba(255, 255, 255, 0.32);
  border: 1px solid rgba(255, 255, 255, 0.32);
}

.faq-directory-nav a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 74px;
  padding: 18px 20px;
  color: #fff;
  background: #171717;
  font-family: var(--prototype-sans);
  font-size: var(--text-body);
  font-weight: 750;
  line-height: 1.25;
}

.faq-directory-nav a:hover,
.faq-directory-nav a:focus-visible {
  color: #111;
  background: var(--prototype-yellow);
}

.faq-directory-nav strong {
  min-width: 2.6em;
  padding: 7px 9px;
  color: #111;
  background: var(--prototype-yellow);
  font-size: var(--text-micro);
  line-height: 1;
  text-align: center;
}

.faq-directory-nav a:hover strong,
.faq-directory-nav a:focus-visible strong {
  background: #fff;
}

.faq-directory-groups {
  overflow: clip;
}

body.faq-directory-route .faq-directory-group {
  position: relative;
  z-index: 0;
  scroll-margin-top: 72px;
}

body.faq-directory-route .faq-directory-group::before {
  position: absolute;
  z-index: -1;
  inset: 0 calc(50% - 50vw);
  content: "";
  background: #fff;
}

body.faq-directory-route .faq-directory-group:nth-child(even)::before {
  background: var(--editorial-paper-strong);
}

.faq-directory-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 1px;
  background: var(--editorial-line);
  list-style: none;
}

.faq-directory-list li {
  display: grid;
  align-content: space-between;
  gap: 18px;
  min-width: 0;
  min-height: 150px;
  padding: clamp(22px, 2.6vw, 34px);
  background: #fff;
}

.faq-directory-list li[hidden],
body.faq-directory-route .faq-directory-group[hidden] {
  display: none;
}

.faq-directory-list a {
  color: var(--editorial-text);
  font-family: var(--prototype-serif);
  font-size: var(--text-card-title);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-small);
  text-wrap: balance;
}

.faq-directory-list a:hover,
.faq-directory-list a:focus-visible {
  text-decoration-thickness: 2px;
  text-underline-offset: 0.18em;
}

.faq-directory-list span {
  color: var(--editorial-muted);
  font-family: var(--prototype-sans);
  font-size: var(--text-small);
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.editorial-theme .faq-directory-more {
  margin-top: 1px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}

.faq-directory-more > summary {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: center;
  padding: 16px 20px;
  color: #111;
  background: var(--prototype-yellow);
  border: 1px solid #111;
  font-family: var(--prototype-sans);
  font-size: var(--text-button);
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
}

.faq-directory-more[open] > summary {
  margin-bottom: 1px;
}

body.faq-directory-route .faq-directory-cta {
  margin-top: 0;
}

body.editorial-theme .faq-discovery-section {
  margin-top: 0;
}

@media (min-width: 2400px) {
  .main-nav-page-intro {
    --main-nav-chrome-height: clamp(221px, calc(93px + 5.33vw), 305px);
  }

}

@media (max-width: 1023px) {
  .main-nav-page-intro {
    --main-nav-chrome-height: 150px;
  }

  .main-nav-splash {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .main-nav-splash__copy {
    min-height: clamp(500px, 68vw, 650px);
  }

  .main-nav-splash__media {
    min-height: clamp(330px, 52vw, 520px);
  }

  .main-nav-route-index__item {
    grid-template-columns: clamp(60px, 8vw, 84px) minmax(0, 1fr);
  }

  .main-nav-route-index__description {
    grid-column: 2;
    padding-top: 0;
    border-left: 0;
  }

  .main-nav-route-directory__intro {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .main-nav-route-directory__guidance {
    max-width: 680px;
  }

  .research-route-finder__inner {
    grid-template-columns: 1fr;
  }

  .research-route-finder__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.main-nav-overview-route .objective-grid,
  body.main-nav-overview-route .fieldwork-options-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .case-study-objective-map article {
    grid-template-columns: 1fr;
  }

  .case-study-objective-map__links {
    border-top: 1px solid var(--editorial-line);
    border-left: 0;
  }

  body.faq-directory-route .faq-directory-controls__intro {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .faq-directory-search {
    min-width: 0;
  }

  .faq-directory-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.editorial-theme main > .page-breadcrumb {
    width: min(calc(100% - 40px), var(--layout-standard-max));
    padding-top: 18px;
  }

  body.respondent-recruitment-grey-splash-prototype main > .page-breadcrumb {
    padding-top: 32px;
    padding-bottom: 18px;
  }

  .page-breadcrumb__list {
    gap: 6px;
  }

  .page-breadcrumb__list li + li::before {
    width: 10px;
    margin-right: 6px;
  }

  .page-breadcrumb__list [aria-current="page"] {
    max-width: 34vw;
  }

  .main-nav-splash__copy > .page-breadcrumb,
  .contact-brief-hero__copy > .page-breadcrumb {
    margin-bottom: 22px;
  }

  .main-nav-splash__copy {
    min-height: 0;
    padding: 54px 20px 46px;
  }

  body.editorial-theme .main-nav-splash__copy h1 {
    max-width: 12ch;
    font-size: var(--text-heading-large);
    line-height: 0.98;
  }

  .main-nav-splash__rule {
    width: 72px;
    height: 3px;
    margin: 24px 0 20px;
  }

  .main-nav-splash__copy .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.editorial-theme .main-nav-splash__copy .button {
    width: 100%;
  }

  .main-nav-splash__media {
    min-height: 280px;
  }

  .main-nav-splash--case-studies .main-nav-splash__media {
    min-height: 520px;
  }

  .case-study-splash-rotator {
    --case-study-rotator-rail-height: 132px;
  }

  .case-study-splash-rotator__caption {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    min-height: 266px;
    padding: 20px;
  }

  .case-study-splash-rotator__caption-main {
    gap: 14px;
  }

  .case-study-splash-rotator__meta {
    font-size: var(--text-small);
  }

  body.editorial-theme .case-study-splash-rotator__caption strong {
    max-width: 19ch;
    font-size: var(--text-heading-small);
  }

  .case-study-splash-rotator__context {
    max-width: 46ch;
    padding-top: 12px;
    padding-left: 0;
    border-top: 2px solid var(--prototype-yellow);
    border-left: 0;
  }

  .case-study-splash-rotator__count {
    position: absolute;
    right: 20px;
    bottom: 20px;
  }

  .case-study-splash-rotator__rail {
    min-height: var(--case-study-rotator-rail-height);
    padding: 14px 16px;
  }

  .case-study-splash-rotator__previews {
    gap: 8px;
  }

  .case-study-splash-rotator__preview {
    grid-template-columns: 1fr;
  }

  .case-study-splash-rotator__preview img {
    min-height: 72px;
  }

  .case-study-splash-rotator__controls {
    align-self: stretch;
    margin-left: 10px;
  }

  .case-study-splash-rotator__controls button {
    min-width: 48px;
    padding: 8px;
  }

  .case-study-splash-rotator__control-label--long {
    display: none;
  }

  .case-study-splash-rotator__control-label--short {
    display: inline;
  }

  .main-nav-route-index {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-flow: row;
  }

  .main-nav-route-directory__intro {
    width: calc(100% - 40px);
    gap: 24px;
    padding: 40px 0;
  }

  .main-nav-route-directory__guidance {
    padding: 18px;
  }

  .main-nav-route-index__item {
    grid-template-columns: 58px minmax(0, 1fr);
    min-height: 104px;
    border-right: 0;
  }

  .main-nav-route-index__item strong {
    padding: 18px 18px 8px;
  }

  .main-nav-route-index__description {
    padding: 0 18px 18px;
  }

  .main-nav-route-index__description-copy {
    -webkit-line-clamp: 2;
  }

  .main-nav-route-index--count-5 .main-nav-route-index__item:last-child {
    grid-column: auto;
  }

  .main-nav-route-index--count-7 .main-nav-route-index__item:last-child {
    grid-column: auto;
  }

  .research-route-finder {
    padding: 48px 20px;
  }

  .research-route-finder__grid {
    grid-template-columns: 1fr;
  }

  .research-route-finder__item {
    min-height: 0;
    padding: 24px 20px;
  }

  body.main-nav-overview-route .objective-grid,
  body.main-nav-overview-route .fieldwork-options-grid {
    grid-template-columns: 1fr;
  }

  body.main-nav-overview-route .route-image-card__content {
    min-height: 260px;
    padding: 24px 20px;
  }

  body.main-nav-overview-route .objectives-route-section .buyer-route-card {
    min-height: 0;
    padding: 28px 22px;
  }

  body.main-nav-overview-route .service-directory-grid,
  body.blog-directory-route .blog-directory-grid,
  body.main-nav-overview-route .sector-directory-grid,
  body.main-nav-overview-route .who-help-directory-grid,
  body.main-nav-overview-route .case-study-library-grid,
  body.main-nav-overview-route .research-hub-service-grid,
  body.main-nav-overview-route .research-hub-proof-grid,
  body.fieldwork-overview-route .fieldwork-directory-grid {
    grid-template-columns: 1fr;
    --directory-card-span: 1;
  }

  body.main-nav-overview-route .directory-image-grid > .directory-image-card {
    display: flex;
    grid-column: auto;
  }

  body.editorial-theme .service-detail-image-grid,
  body.editorial-theme .faq-related-service-grid {
    grid-template-columns: minmax(0, 1fr);
    --directory-card-span: 1;
  }

  body.editorial-theme :is(.service-detail-image-grid, .faq-related-service-grid) > .directory-image-card {
    display: flex;
    grid-column: auto;
  }

  .case-study-objective-map__links {
    grid-template-columns: 1fr;
  }

  body.main-nav-overview-route .directory-image-card__content,
  body.main-nav-overview-route .who-help-directory-grid .directory-image-card__content,
  body.editorial-theme .service-detail-image-grid .directory-image-card__content,
  body.editorial-theme .faq-related-service-grid .directory-image-card__content {
    min-height: 280px;
    padding: 24px 20px;
  }

  body.main-nav-overview-route .sector-directory-grid .directory-image-card__content {
    min-height: 240px;
  }

  .faq-directory-nav,
  .faq-directory-list {
    grid-template-columns: 1fr;
  }

  .faq-directory-nav a {
    min-height: 64px;
    padding: 16px;
  }

  .faq-directory-list li {
    min-height: 0;
    padding: 22px 18px;
  }

  .faq-directory-search input {
    min-width: 0;
    min-height: 58px;
    padding: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .case-study-splash-rotator__link img,
  .case-study-splash-rotator__caption {
    transition: none;
  }

  .main-nav-route-index__item {
    transition: none;
  }

  body.main-nav-overview-route .route-image-card__image {
    transition: none;
  }

  body.main-nav-overview-route .route-image-card:hover .route-image-card__image,
  body.main-nav-overview-route .route-image-card:focus-within .route-image-card__image {
    transform: none;
  }

  body.main-nav-overview-route .directory-image-card__media img,
  body.editorial-theme .service-detail-image-grid .directory-image-card__media img,
  body.editorial-theme .faq-related-service-grid .directory-image-card__media img {
    transition: none;
  }

  body.main-nav-overview-route .directory-image-card:hover .directory-image-card__media img,
  body.main-nav-overview-route .directory-image-card:focus-within .directory-image-card__media img,
  body.editorial-theme .service-detail-image-grid .directory-image-card:hover .directory-image-card__media img,
  body.editorial-theme .service-detail-image-grid .directory-image-card:focus-within .directory-image-card__media img,
  body.editorial-theme .faq-related-service-grid .directory-image-card:hover .directory-image-card__media img,
  body.editorial-theme .faq-related-service-grid .directory-image-card:focus-within .directory-image-card__media img {
    transform: none;
  }
}

/* Mobile and tablet navigation mirrors the live MRFGR yellow menu treatment. */
.mobile-nav-drawer {
  display: none;
}

body.mobile-nav-open {
  overflow: hidden;
}

@media (max-width: 1024px) {
  .site-header .nav-links,
  .site-header[data-menu-open="true"] .nav-links {
    display: none;
  }

  .site-header .header-cta,
  .site-header.home-site-header .header-cta {
    display: none;
  }

  .site-header .nav-toggle {
    display: inline-flex;
  }

  .mobile-nav-drawer:not([hidden]) {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: block;
    width: 100%;
    height: 100dvh;
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    color: #111;
    background: var(--prototype-yellow);
    font-family: var(--prototype-sans);
    transform: translateX(100%);
    transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .mobile-nav-drawer[data-open="true"] {
    transform: translateX(0);
  }

  .mobile-nav-drawer__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    grid-template-rows: auto auto 1fr;
    gap: clamp(28px, 4.5vw, 52px) clamp(36px, 6vw, 72px);
    width: min(100%, 1024px);
    min-height: 100%;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 44px) clamp(24px, 5vw, 56px) max(34px, env(safe-area-inset-bottom));
  }

  .mobile-nav-drawer__masthead,
  .mobile-nav-drawer__search {
    grid-column: 1 / -1;
  }

  .mobile-nav-drawer__masthead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
  }

  .mobile-nav-drawer__brand {
    display: inline-flex;
    width: clamp(164px, 24vw, 226px);
  }

  .mobile-nav-drawer__brand img {
    width: 100%;
    height: auto;
  }

  .mobile-nav-drawer__close {
    position: relative;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    padding: 0;
    color: #111;
    background: transparent;
    border: 1px solid rgba(17, 17, 17, 0.55);
    border-radius: 50%;
    cursor: pointer;
  }

  .mobile-nav-drawer__close span {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 22px;
    height: 2px;
    background: currentColor;
    border-radius: 999px;
  }

  .mobile-nav-drawer__close span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .mobile-nav-drawer__close span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .mobile-nav-drawer__search {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 58px;
    min-height: 58px;
    background: #fff;
    border: 1px solid #111;
  }

  .mobile-nav-drawer__search-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .mobile-nav-drawer__search input,
  .mobile-nav-drawer__search button {
    min-width: 0;
    min-height: 56px;
    color: #111;
    background: #fff;
    border: 0;
    border-radius: 0;
    font: inherit;
    font-size: var(--text-body, 16px);
  }

  .mobile-nav-drawer__search input {
    width: 100%;
    padding: 14px 18px;
  }

  .mobile-nav-drawer__search button {
    display: grid;
    place-items: center;
    border-left: 1px solid #111;
    font-weight: 800;
    cursor: pointer;
  }

  .mobile-nav-drawer__navigation,
  .mobile-nav-drawer__offices {
    align-self: start;
    min-width: 0;
  }

  .mobile-nav-drawer__overline {
    margin: 0 0 12px;
    font-size: var(--text-overline, 16px);
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .mobile-nav-drawer__links {
    border-top: 1px solid rgba(17, 17, 17, 0.42);
  }

  .mobile-nav-drawer__links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 58px;
    padding: 13px 2px;
    border-bottom: 1px solid rgba(17, 17, 17, 0.42);
    font-family: var(--prototype-serif);
    font-size: clamp(24px, 3.2vw, 34px);
    font-weight: 500;
    line-height: 1.08;
  }

  .mobile-nav-drawer__links a > span {
    flex: 0 0 auto;
    font-family: var(--prototype-sans);
    font-size: var(--text-body-large, 18px);
    font-weight: 700;
  }

  .mobile-nav-drawer__links a[aria-current="page"] {
    padding-left: 14px;
    box-shadow: inset 4px 0 0 #111;
  }

  .mobile-nav-drawer__links .mobile-nav-drawer__cta {
    min-height: 62px;
    margin-top: 18px;
    padding: 14px 18px;
    color: #fff;
    background: #111;
    border: 1px solid #111;
    font-family: var(--prototype-sans);
    font-size: var(--text-button, 16px);
    font-weight: 800;
    line-height: 1.2;
  }

  .mobile-nav-drawer__office-grid {
    display: grid;
    grid-template-columns: 1fr;
    border-top: 1px solid rgba(17, 17, 17, 0.42);
  }

  .mobile-nav-drawer__office {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 13px 2px;
    border-bottom: 1px solid rgba(17, 17, 17, 0.42);
    font-size: var(--text-body, 16px);
    line-height: 1.25;
  }

  .mobile-nav-drawer__office span {
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  .mobile-nav-drawer__office strong {
    font-size: var(--text-body-large, 18px);
    font-weight: 500;
  }

  .mobile-nav-drawer a:hover,
  .mobile-nav-drawer a:focus-visible,
  .mobile-nav-drawer button:focus-visible,
  .mobile-nav-drawer input:focus-visible {
    outline: 3px solid #111;
    outline-offset: 3px;
  }

  .mobile-nav-drawer__cta:hover,
  .mobile-nav-drawer__cta:focus-visible {
    color: #fff;
  }
}

@media (max-width: 640px) {
  .mobile-nav-drawer__inner {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 26px;
    padding: 20px 18px max(30px, env(safe-area-inset-bottom));
  }

  .mobile-nav-drawer__masthead,
  .mobile-nav-drawer__search {
    grid-column: 1;
  }

  .mobile-nav-drawer__brand {
    width: clamp(152px, 46vw, 188px);
  }

  .mobile-nav-drawer__links a {
    min-height: 54px;
    font-size: clamp(22px, 6.7vw, 28px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-nav-drawer:not([hidden]) {
    transition: none;
  }
}

/* Case studies retain the immersive photograph and yellow story panel. */
.case-study-hero {
  position: relative;
  isolation: isolate;
  padding: clamp(40px, 5vw, 90px) var(--editorial-section-gutter);
  background: #252522;
  color: #111;
}
.case-study-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgb(0 0 0 / 18%);
  content: "";
}
.case-study-hero__image {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.case-study-hero__panel {
  max-width: var(--layout-standard-max);
  margin-inline: auto;
  padding: clamp(24px, 4vw, 56px);
  background: rgb(255 217 0 / 96%);
}
body.editorial-theme .case-study-hero .section-label {
  color: #111;
  text-align: center;
}
.case-study-hero h1 {
  max-width: var(--layout-hero-max);
  margin: 18px auto 24px;
  font-family: var(--prototype-serif);
  font-size: var(--text-display);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-large);
  letter-spacing: 0;
  text-align: center;
}
.case-study-hero p,
.case-study-hero summary {
  font-size: var(--text-body);
  line-height: var(--line-body);
}
.case-study-hero__introduction {
  max-width: none;
  margin: 0;
  text-align: center;
}
.case-study-hero p.case-study-hero__subtitle {
  margin: 0 0 24px;
  font-size: var(--text-heading-small);
  line-height: var(--line-heading-small);
  text-align: center;
}
.case-study-hero__introduction p {
  max-width: none;
  margin: 0;
}
.case-study-hero__introduction p + p {
  margin-top: 1em;
}
.case-study-story-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 40px);
  margin-top: clamp(32px, 4vw, 54px);
}
.case-study-story {
  min-width: 0;
  border-top: 1px solid rgb(17 17 17 / 45%);
  padding-top: 22px;
}
.case-study-story h2 {
  margin: 0 0 18px;
  font-family: var(--prototype-serif);
  font-size: var(--text-heading-small);
  font-weight: var(--weight-editorial-title);
  line-height: var(--line-heading-small);
  text-transform: capitalize;
}
.case-study-story p {
  margin: 0 0 20px;
}
.case-study-story details,
.case-study-quote-more {
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}
.case-study-story summary,
.case-study-quote-more summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  gap: 16px;
  cursor: pointer;
  font-size: var(--text-button);
  font-weight: 700;
  line-height: 1.3;
  list-style: none;
}
.case-study-story summary::-webkit-details-marker,
.case-study-quote-more summary::-webkit-details-marker {
  display: none;
}
.case-study-story summary:hover,
.case-study-quote-more summary:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.case-study-story summary:focus-visible,
.case-study-quote-more summary:focus-visible {
  outline: 3px solid #111;
  outline-offset: 5px;
}
.case-study-read-less,
details[open] > summary > .case-study-read-more {
  display: none;
}
details[open] > summary > .case-study-read-less {
  display: inline;
}
.case-study-disclosure-icon::before {
  content: "+";
  font-size: var(--text-body-large);
}
details[open] .case-study-disclosure-icon::before {
  content: "−";
}
.case-study-story__full {
  margin-top: 16px;
}
.case-study-story__full > :last-child {
  margin-bottom: 0;
}
.case-study-hero__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 32px;
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid rgb(17 17 17 / 30%);
}
.case-study-byline {
  margin: 0;
}
.case-study-hero__caption {
  max-width: var(--layout-standard-max);
  width: fit-content;
  margin: 24px auto 0;
  padding: 10px 16px;
  background: #111;
  color: white;
}
body.editorial-theme .case-study-facts {
  padding-block: clamp(40px, 5vw, 72px);
}
body.editorial-theme .case-study-facts h2.section-label {
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  line-height: 1.2;
}
.case-study-facts dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  margin: 30px 0 0;
}
.case-study-facts dl > div {
  border-left: 3px solid #ffd900;
  padding-left: 18px;
}
.case-study-facts dt {
  margin-bottom: 10px;
  font-size: var(--text-body);
  line-height: var(--line-body);
  color: var(--editorial-muted);
}
.case-study-facts dd {
  margin: 0;
  font-size: var(--text-body-large);
  line-height: 1.35;
  font-weight: 700;
}
.case-study-detail__grid {
  display: grid;
  gap: 0;
  margin-top: 36px;
}
.case-study-detail__group {
  margin-top: 36px;
}
.case-study-detail__group + .case-study-detail__group {
  margin-top: clamp(48px, 5vw, 80px);
}
.case-study-detail__group-heading {
  padding: clamp(24px, 4vw, 48px);
  background: #111;
  color: #fff;
  border-top: 4px solid #ffd900;
}
body.editorial-theme .case-study-detail__group-heading h2 {
  margin: 16px 0 20px;
  color: #fff;
}
body.editorial-theme .case-study-detail__group-heading .section-label {
  color: #ffd900;
}
body.editorial-theme .case-study-detail__group-heading > p:last-child {
  max-width: 68ch;
  margin-bottom: 0;
  color: #fff;
}
.case-study-detail__group > .case-study-detail__grid {
  margin-top: 0;
}
.case-study-detail__group .case-study-detail__chapter:first-child {
  border-top: 0;
}
.case-study-detail__chapter {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr);
  gap: clamp(32px, 5vw, 80px);
  padding-block: clamp(36px, 4vw, 64px);
  border-top: 1px solid #d9d9d5;
}
.case-study-detail__chapter:first-child {
  border-top: 3px solid #111;
}
body.editorial-theme .case-study-detail__chapter :is(h2, h3) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  margin: 0;
  font-size: var(--text-heading-small);
  line-height: 1.2;
  text-wrap: pretty;
}
.case-study-detail__number {
  display: grid;
  place-items: center;
  min-width: 1.65em;
  min-height: 1.65em;
  padding: 0.12em;
  background: #ffd900;
  color: #111;
  font-family: var(--prototype-sans);
  font-size: var(--text-stat);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.05em;
}
.case-study-detail__copy {
  min-width: 0;
  padding-top: 8px;
}
.case-study-detail__copy > :first-child {
  margin-top: 0;
}
.case-study-detail__copy p {
  max-width: 68ch;
  margin: 0 0 1em;
}
.case-study-detail__copy > :last-child {
  margin-bottom: 0;
}
.case-study-service-card h3 {
  margin: 0 0 18px;
  font-size: var(--text-card-title);
  line-height: 1.2;
  font-weight: 700;
}
@media (max-width: 860px) {
  .case-study-detail__chapter {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.editorial-theme .case-study-detail__chapter :is(h2, h3) {
    gap: 18px;
  }
  .case-study-detail__number {
    font-size: var(--text-heading-small);
  }
  .case-study-detail__copy {
    padding-top: 0;
  }
}
.case-study-testimonial {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: clamp(28px, 5vw, 64px);
  background: var(--editorial-surface, #f4f0e8);
}
.case-study-testimonial figure,
.case-study-testimonial blockquote {
  margin: 0;
}
.case-study-quote-mark {
  display: block;
  margin-bottom: 12px;
  color: #111;
  font-family: var(--prototype-serif);
  font-size: var(--text-display);
  line-height: .6;
}
.case-study-quote-mark--closing {
  margin: 24px 0 0;
  text-align: right;
}
.case-study-testimonial__quotes > figure + figure {
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid #d6d2c9;
}
.case-study-testimonial__quotes > figure[hidden],
.testimonial-controls[hidden] {
  display: none;
}
[data-testimonial-carousel][aria-roledescription="carousel"] .case-study-testimonial__quotes > figure {
  margin: 0;
  padding: 0;
  border: 0;
}
.testimonial-controls {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 28px;
}
.testimonial-controls p {
  margin: 0;
  color: #111;
  font-variant-numeric: tabular-nums;
}
.testimonial-controls button {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid #111;
  border-radius: 50%;
  background: #fff;
  color: #111;
  font: inherit;
  font-size: var(--text-button);
  line-height: 1;
  cursor: pointer;
}
.testimonial-controls button:hover {
  background: #ffd900;
}
.testimonial-controls button:focus-visible {
  outline: 3px solid #111;
  outline-offset: 4px;
}
.case-study-testimonial figcaption {
  margin-top: 24px;
  font-size: var(--text-body);
  line-height: var(--line-body);
  font-weight: 700;
}
.case-study-testimonial figcaption span {
  display: block;
  font-weight: 400;
}
.case-study-quote-more p:first-of-type {
  margin-top: 20px;
}
.case-study-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.case-study-service-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #faf9f6;
  border: 1px solid #e5e1d8;
}
.case-study-service-card > img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.case-study-service-card > div {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 22px;
}
.case-study-service-card h3 {
  overflow-wrap: anywhere;
}
.service-case-study-more {
  margin-top: 28px;
}
body.editorial-theme .case-study-service-card p.section-label {
  font-size: var(--text-label);
  letter-spacing: .04em;
}
.case-study-service-card .text-link {
  margin-top: auto;
}
.case-study-faqs .faq-list {
  margin-top: 32px;
}
body.editorial-theme .case-study-related .directory-image-grid {
  max-width: 760px;
}
@media (max-width: 1100px) {
  .case-study-service-grid {
    grid-template-columns: repeat(2, minmax(0, 380px));
  }
  .case-study-facts dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 860px) {
  .case-study-hero {
    padding: 120px 18px 32px;
  }
  .case-study-story-grid,
  .case-study-detail__grid,
  .case-study-testimonial {
    grid-template-columns: 1fr;
  }
  .case-study-hero__panel {
    padding: 26px;
  }
}
@media (max-width: 767px) {
  .case-study-hero {
    padding: 0;
    background: #ffd900;
  }
  .case-study-hero::before {
    display: none;
  }
  .case-study-hero__image {
    position: static;
    z-index: auto;
    display: block;
    height: auto;
    aspect-ratio: 3 / 2;
  }
  .case-study-hero__panel {
    width: 100%;
    margin: 0;
    background: #ffd900;
  }
  .case-study-hero__caption {
    max-width: none;
    width: auto;
    margin: 0;
  }
}
@media (max-width: 540px) {
  .case-study-hero {
    padding-inline: 0;
  }
  .case-study-hero__panel {
    padding-inline: 20px;
  }
  .case-study-hero h1 {
    font-size: var(--text-heading-large);
  }
  .case-study-service-grid,
  .case-study-facts dl {
    grid-template-columns: minmax(0, 1fr);
  }
  .case-study-service-card {
    width: 100%;
    max-width: 380px;
  }
}
@media (max-width: 767px) {
  body.editorial-theme .case-study-related .directory-image-grid {
    max-width: 380px;
  }
}
@media (max-width: 559px) {
  /* Separate cards when their grids become a single mobile column. */
  .home-page-flow .home-objective-route-list,
  .home-page-flow .home-objective-route-panel--fieldwork .home-objective-route-list,
  .home-service-strip,
  .home-page-flow .proof-strip,
  body.editorial-theme .objective-grid,
  body.editorial-theme .card-grid,
  body.editorial-theme .fieldwork-options-grid,
  body.editorial-theme .support-scope-grid,
  body.editorial-theme .service-quality-grid,
  body.editorial-theme .case-study-summary-grid,
  body.editorial-theme .case-study-objective-map,
  body.main-nav-overview-route .directory-image-grid,
  body.editorial-theme .service-detail-image-grid,
  body.editorial-theme .faq-related-service-grid {
    row-gap: 12px;
    /* Wide gaps need a white canvas rather than the desktop divider colour. */
    background: #fff;
  }
}
@media print {
  .case-study-hero {
    padding: 0;
    background: white;
  }
  .case-study-hero__image,
  .case-study-hero__caption {
    display: none;
  }
  .case-study-hero__panel {
    background: white;
  }
  .case-study-story-grid {
    display: block;
  }
}

/* Service detail pages explain the selected service before suggesting other
 * routes. Keep the original copy intact inside a readable editorial column. */
body.service-detail-route .service-page-index {
  padding-block: clamp(24px, 3vw, 40px);
  border-block: 1px solid var(--editorial-line);
}
body.service-detail-route .service-page-index .section-label {
  margin: 0 0 14px;
}
body.service-detail-route .service-page-index ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.service-detail-route .service-page-index a {
  display: inline-block;
  padding-block: 8px;
  color: var(--editorial-text);
  font-size: var(--text-body);
  line-height: var(--line-body);
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
  text-decoration-color: var(--prototype-yellow);
}
body.service-detail-route :where([id^="service-"]) {
  scroll-margin-top: clamp(100px, 10vw, 180px);
}
body.service-detail-route .service-intro-continuation {
  padding-block: clamp(32px, 4vw, 56px);
}
body.service-detail-route .service-intro-continuation .migrated-content-section__prose {
  max-width: 75ch;
}
body.service-detail-route .service-journey-overview {
  display: block;
  border: 0;
  background: transparent;
}
body.service-detail-route .service-journey-overview__intro {
  max-width: 54ch;
  margin-bottom: clamp(24px, 3vw, 40px);
}
body.service-detail-route .service-journey-overview__items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 40px);
  counter-reset: service-plan;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.service-detail-route .service-journey-overview__items li {
  min-width: 0;
  padding-top: 20px;
  border-top: 3px solid var(--prototype-yellow);
  counter-increment: service-plan;
}
body.service-detail-route .service-journey-overview__items li::before {
  display: block;
  margin-bottom: 16px;
  content: counter(service-plan, decimal-leading-zero);
  color: var(--editorial-muted);
  font-family: var(--prototype-sans);
  font-size: var(--text-label);
  line-height: 1.3;
}
body.service-detail-route .service-journey-overview__items h3 {
  margin: 0 0 14px;
  font-size: var(--text-card-title);
  line-height: var(--line-heading-small);
}
body.service-detail-route .service-journey-overview__items p {
  margin: 0;
  font-size: var(--text-body);
  line-height: var(--line-body);
}
body.service-detail-route .service-journey-overview__brief {
  max-width: 75ch;
  margin: clamp(28px, 3vw, 44px) 0 0;
  padding-left: 20px;
  border-left: 3px solid var(--prototype-yellow);
  font-size: var(--text-body);
  line-height: var(--line-body);
}
body.service-detail-route .service-detail-section {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.6fr);
  gap: clamp(24px, 5vw, 72px);
  align-items: start;
}
body.service-detail-route .service-detail-section__heading,
body.service-detail-route .service-detail-section .migrated-content-section__prose {
  min-width: 0;
}
body.service-detail-route .service-section-number {
  display: block;
  width: fit-content;
  margin-bottom: 18px;
  padding-bottom: 8px;
  border-bottom: 3px solid var(--prototype-yellow);
  font-size: var(--text-label);
  line-height: 1.3;
}
body.service-detail-route .service-detail-section__heading h2 {
  margin: 0;
  font-size: var(--text-heading-small);
  line-height: var(--line-heading-small);
}
body.service-detail-route .service-detail-section .migrated-content-section__prose {
  max-width: 75ch;
}
body.service-detail-route .service-detail-section:not(:has(.service-detail-section__heading)) {
  display: block;
}
body.service-detail-route .service-bofu-related-services .directory-image-card__body p {
  max-width: 65ch;
}
body.service-detail-route .service-bofu-objectives {
  padding-block: clamp(32px, 4vw, 56px);
}
@media (max-width: 767px) {
  body.service-detail-route .service-journey-overview__items,
  body.service-detail-route .service-detail-section {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  body.service-detail-route .service-page-index ul {
    gap: 4px 20px;
  }
  body.service-detail-route .service-page-index a {
    display: block;
    padding-block: 10px;
  }
}


/* Paid pages retain the editorial tokens and bounded section widths. */
.paid-landing-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  margin-top: 28px;
}
.paid-landing-route .paid-landing-section {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: clamp(24px, 4vw, 64px);
}
.paid-landing-route .paid-landing-section :where(p, li) {
  max-width: 70ch;
}
.paid-landing-route .paid-landing-section h2 {
  font-size: var(--text-heading-small);
  line-height: 1.2;
}
.paid-landing-route .paid-landing-list {
  display: grid;
  gap: 24px;
  padding-left: 1.25em;
}
.paid-landing-route .paid-landing-list h3 {
  margin: 0 0 8px;
  font-size: var(--text-card-title);
  line-height: 1.25;
}
.paid-landing-route .paid-landing-list p {
  margin: 0;
}
.paid-landing-logos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  margin-top: 32px;
}
.paid-landing-logos span {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 20px;
  background: #111;
}
.paid-landing-logos img {
  width: 100%;
  max-width: 200px;
  height: 70px;
  object-fit: contain;
}
.paid-landing-more-feedback {
  margin-top: 32px;
}
.paid-landing-more-feedback summary {
  cursor: pointer;
  font-size: var(--text-body);
}
.paid-landing-more-feedback figure {
  margin-top: 32px;
}
.paid-landing-route #project-enquiry {
  scroll-margin-top: 100px;
}
@media (max-width: 760px) {
  .paid-landing-route .paid-landing-section {
    grid-template-columns: minmax(0, 1fr);
  }
  .paid-landing-logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .paid-landing-actions .button {
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }
}
