@font-face {
  font-family: Montserrat;
  src: url(Montserrat-Regular.ttf);
}
@font-face {
  font-family: Montserrat;
  src: url(Montserrat-SemiBold.ttf);
  font-weight: 600;
}
@font-face {
  font-family: Montserrat;
  src: url(Montserrat-Bold.ttf);
  font-weight: 700;
}
:root {
  --navy: #07131f;
  --navy2: #0c1d2b;
  --ink: #13202a;
  --copper: #b77948;
  --paper: #f3f1ec;
  --white: #fff;
  --line: #d7d3cb;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Montserrat, Arial, sans-serif;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  display: block;
  width: 100%;
}
button {
  font: inherit;
}
.site-header {
  height: 88px;
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  display: flex;
  align-items: center;
  padding: 0 4vw;
  color: #fff;
  border-bottom: 1px solid #ffffff2a;
  transition: 0.25s;
}
.site-header.scrolled {
  background: #07131ff2;
}
.brand {
  width: 245px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  flex: 0 0 auto;
}
.brand .brand-mark {
  width: 48px;
  height: 48px;
  color: currentColor;
  flex: 0 0 48px;
}
.brand-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
}
.brand-name {
  color: #fff;
  font-size: 22px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: 0.025em;
  white-space: nowrap;
}
.brand-name small {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
  vertical-align: baseline;
}
.brand-statement {
  margin-top: 7px;
  padding-top: 5px;
  border-top: 1px solid #b77a3d;
  color: #d7dbe0;
  font-size: 8px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.16em;
  white-space: nowrap;
}
nav {
  display: flex;
  gap: 28px;
  margin-left: auto;
  align-items: center;
}
nav > a,
.nav-group > a {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: none;
  border: 0;
  color: inherit;
  cursor: pointer;
}
.nav-laboratory { color: #d5a071; }
.nav-laboratory::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-top: 5px;
  background: #b97743;
  transform: scaleX(.28);
  transform-origin: left;
  transition: transform .2s ease;
}
.nav-laboratory:hover::after,
.nav-laboratory.active::after { transform: scaleX(1); }
.nav-group {
  position: relative;
  align-self: stretch;
  display: flex;
  align-items: center;
}
.dropdown {
  display: block;
  position: absolute;
  top: 100%;
  left: -18px;
  width: 255px;
  background: #fff;
  color: var(--ink);
  padding: 13px;
  box-shadow: 0 18px 45px #02080d35;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-7px);
  transition:
    opacity 0.18s ease,
    transform 0.18s ease,
    visibility 0.18s;
}
.dropdown a {
  display: block;
  padding: 10px;
  font-size: 12px;
}
.nav-group:hover .dropdown,
.nav-group:focus-within .dropdown,
.nav-group.dropdown-open .dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-left: 26px;
}
.language {
  background: none;
  border: 0;
  color: #fff;
  font-size: 12px;
}
.language span {
  opacity: 0.5;
}
.mobile-language { display: none; }

/* Editorial hierarchy: suppress decorative numbering; retain genuine process sequences. */
.index > span,
.service-mosaic > a > span,
.service-list > a > span,
.industry-list > button > span,
.why-grid > article > b,
.sector-catalog > article > span,
.experience-list > article > b,
.geo-methods > article > span,
.eng-decision-grid > article > span,
.lab-test-groups > article > span {
  display: none;
}
.header-cta,
.button {
  padding: 15px 20px;
  border: 1px solid #ffffff55;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.header-cta {
  background: var(--copper);
  border-color: var(--copper);
}
.menu {
  display: none;
}
.page {
  display: none;
}
.page.active {
  display: block;
}
.hero,
.page-hero,
.service-hero,
.contact-page {
  height: min(820px, 100vh);
  min-height: 680px;
  position: relative;
  color: white;
  overflow: hidden;
}
.hero > img,
.page-hero > img,
.service-hero > img,
.contact-page > img {
  height: 100%;
  object-fit: cover;
}
.hero-wash,
.page-hero:after,
.service-hero:after,
.contact-page:after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(
    90deg,
    #06121fe8 0%,
    #07131fa8 43%,
    #07131f25 72%
  );
}
.hero-copy,
.page-hero > div,
.service-hero > div,
.contact-panel {
  position: absolute;
  z-index: 2;
  left: 7vw;
  top: 51%;
  transform: translateY(-45%);
  max-width: 720px;
}
.eyebrow,
.kicker,
.index {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
}
.eyebrow i {
  display: inline-block;
  width: 32px;
  height: 1px;
  background: var(--copper);
  vertical-align: middle;
  margin-right: 12px;
}
.hero h1,
.page-hero h1,
.service-hero h1,
.contact-page h1 {
  font-size: clamp(54px, 7vw, 104px);
  line-height: 0.92;
  letter-spacing: -0.055em;
  margin: 24px 0 26px;
}
.hero-copy > p:last-of-type,
.page-hero > div > p:last-child,
.service-hero > div > p:last-child,
.contact-panel > p {
  max-width: 640px;
  font-size: 17px;
  line-height: 1.75;
  color: #dce2e5;
}
.buttons {
  display: flex;
  gap: 12px;
  margin-top: 32px;
}
.button.solid {
  background: var(--copper);
  border-color: var(--copper);
}
.hero-facts {
  position: absolute;
  z-index: 3;
  bottom: 38px;
  right: 5vw;
  display: flex;
  gap: 45px;
}
.hero-facts div {
  display: grid;
  gap: 6px;
}
.hero-facts strong {
  font-size: 13px;
}
.hero-facts span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #bbc4ca;
}
.ground-line {
  position: absolute;
  z-index: 3;
  left: 2vw;
  bottom: 36px;
  display: flex;
  align-items: center;
  gap: 10px;
  transform: rotate(-90deg);
  transform-origin: left;
}
.ground-line i {
  width: 80px;
  height: 1px;
  background: #fff8;
}
.ground-line span {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.section {
  padding: 120px 7vw;
}
.intro-grid {
  display: grid;
  grid-template-columns: 180px 1.2fr 1fr;
  gap: 5vw;
}
.index span {
  display: none;
}
.index {
  position: relative;
  padding-left: 44px;
  color: #59636a;
}
.index::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 28px;
  height: 1px;
  background: var(--copper);
}
.kicker {
  color: var(--copper);
  margin: 0 0 18px;
}
.section h2,
.split-story h2,
.technical-feature h2,
.cta h2 {
  font-size: clamp(38px, 4.6vw, 70px);
  line-height: 1.04;
  letter-spacing: -0.045em;
  margin: 0 0 28px;
}
.lead {
  font-size: 18px;
  line-height: 1.8;
  color: #59636a;
}
.process {
  grid-column: 2/4;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  margin-top: 55px;
}
.process article {
  padding: 30px 25px 20px;
  border-right: 1px solid var(--line);
}
.process b,
.service-cards > a > span {
  color: var(--copper);
  font-size: 11px;
}
.process h3 {
  font-size: 21px;
}
.process p,
.heading p,
.service-cards p,
.project span {
  font-size: 13px;
  line-height: 1.7;
  color: #667078;
}
.dark {
  background: var(--navy);
  color: #fff;
}
.heading {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 5vw;
  margin-bottom: 55px;
}
.light {
  color: #fff;
}
.service-cards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: #ffffff25;
}
.service-cards a {
  position: relative;
  min-height: 455px;
  padding: 250px 22px 24px;
  background: var(--navy2);
  overflow: hidden;
}
.service-cards img {
  position: absolute;
  inset: 0;
  height: 220px;
  object-fit: cover;
  filter: saturate(0.75);
}
.service-cards h3 {
  font-size: 20px;
}
.service-cards b {
  font-size: 11px;
  color: var(--copper);
}
.project-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}
.project {
  height: 430px;
  position: relative;
  background: var(--navy);
  color: #fff;
  overflow: hidden;
}
.project img {
  height: 100%;
  object-fit: cover;
  opacity: 0.58;
}
.project > div {
  position: absolute;
  z-index: 2;
  inset: auto 28px 28px;
}
.project p {
  color: #d49361;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.project h3 {
  font-size: 25px;
  margin: 10px 0;
}
.project strong {
  font-size: 52px;
  display: block;
  margin: 10px 0;
}
.project.copper {
  background: var(--copper);
}
.project.copper p {
  color: white;
}
.project.navy {
  background: var(--navy);
}
.full-link,
.text-button {
  display: inline-block;
  margin-top: 30px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border-bottom: 1px solid;
  padding-bottom: 8px;
}
.split-story,
.technical-feature {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  background: var(--navy);
  color: white;
}
.split-story > img,
.technical-feature > img {
  height: 720px;
  object-fit: cover;
}
.split-story > div,
.technical-feature > div {
  padding: 100px 8vw 80px 6vw;
  align-self: center;
}
.quality-mark,
.iso-box {
  border-top: 1px solid #ffffff33;
  border-bottom: 1px solid #ffffff33;
  padding: 28px 0;
  margin: 32px 0;
  display: flex;
  gap: 30px;
  align-items: center;
}
.quality-mark strong,
.iso-box strong {
  font-size: 28px;
  color: var(--copper);
}
.quality-mark span,
.iso-box span {
  font-size: 12px;
  line-height: 1.6;
}
.cta {
  position: relative;
  padding: 120px 7vw;
  color: #fff;
  background: var(--navy);
  overflow: hidden;
}
.cta > img {
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  opacity: 0.2;
}
.cta > div {
  position: relative;
  z-index: 2;
}
.page-hero.compact {
  height: 700px;
}
.service-body {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 10vw;
}
.capabilities {
  border-top: 1px solid var(--line);
  padding-top: 20px;
}
.capabilities li,
.checks li {
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  line-height: 1.5;
}
.image-band {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  height: 420px;
}
.image-band img {
  height: 100%;
  object-fit: cover;
}
.technical-feature {
  margin-top: 0;
}
.service-list a {
  display: grid;
  grid-template-columns: 70px 1fr 1fr 30px;
  gap: 20px;
  align-items: center;
  border-top: 1px solid var(--line);
  padding: 27px 0;
}
.service-list span {
  color: var(--copper);
}
.service-list h3 {
  font-size: 24px;
}
.service-list p {
  font-size: 13px;
  color: #687178;
}
.service-list .featured-lab-service {
  margin: 10px 0;
  padding: 34px 28px;
  border-top: 0;
  background: #0a1b27;
  color: #fff;
}
.service-list .featured-lab-service h3 { color: #fff; }
.service-list .featured-lab-service p { color: #b9c3c8; }
.service-list .featured-lab-service span,
.service-list .featured-lab-service b { color: #d19a69; }
.service-overview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: clamp(55px, 7vw, 95px); background: var(--line); border: 1px solid var(--line); }
.service-overview-grid > a { min-width: 0; min-height: 510px; display: grid; grid-template-rows: 230px 1fr; color: var(--navy); background: #f8f6f1; text-decoration: none; overflow: hidden; transition: background .25s ease, color .25s ease; }
.service-overview-grid img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8); transition: transform .5s ease, filter .3s ease; }
.service-overview-grid > a:hover img { transform: scale(1.025); filter: saturate(1); }
.service-overview-grid > a > div { display: flex; flex-direction: column; min-width: 0; padding: 34px; }
.service-overview-grid h3 { min-height: 58px; margin: 0 0 20px; font-size: clamp(21px, 2vw, 30px); line-height: 1.08; letter-spacing: -.025em; }
.service-overview-grid p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.service-overview-grid b { margin-top: auto; padding-top: 28px; color: var(--copper); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.service-overview-grid .featured-lab-service { background: #0a1b27; color: #fff; }
.service-overview-grid .featured-lab-service h3 { color: #fff; }
.service-overview-grid .featured-lab-service p { color: #bac5ca; }

/* Engineering geology & hydrogeology */
.geology-hero img { object-position: center 58%; }
.geology-intro { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(50px, 8vw, 135px); align-items: end; background: #f3f0e9; }
.geology-intro h2 { max-width: 780px; margin-bottom: 0; }
.geology-intro .lead { max-width: 760px; margin: 0 0 8px; }
.geology-disciplines { display: grid; grid-template-columns: 1fr 1fr; background: #0a1b27; color: #fff; }
.geology-disciplines article { min-height: 670px; padding: clamp(55px, 8vw, 120px); border-right: 1px solid #ffffff1f; }
.geology-disciplines article:last-child { background: #102937; border-right: 0; }
.geology-disciplines h2 { max-width: 650px; color: #fff; font-size: clamp(38px, 4.6vw, 68px); }
.geology-disciplines article > p:not(.kicker) { max-width: 640px; color: #bac5ca; line-height: 1.8; }
.geology-disciplines ul { max-width: 650px; margin: 38px 0 0; padding: 0; list-style: none; }
.geology-disciplines li { padding: 15px 0; border-top: 1px solid #ffffff20; color: #e1e6e8; font-size: 12px; line-height: 1.5; }
.geology-story { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 700px; background: #f3f0e9; }
.geology-story img { width: 100%; height: 100%; object-fit: cover; }
.geology-story > div { align-self: center; padding: clamp(55px, 8vw, 120px); }
.geology-story h2 { font-size: clamp(40px, 5vw, 72px); }
.geology-story p:not(.kicker) { max-width: 650px; color: var(--muted); line-height: 1.8; }
.geology-outputs { background: #f8f6f1; }
.geology-outputs .section-heading { max-width: 900px; }
.geology-output-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(50px, 7vw, 90px); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.geology-output-grid article { min-height: 350px; display: flex; flex-direction: column; padding: clamp(28px, 3.5vw, 48px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.geology-output-grid h3 { margin: auto 0 24px; font-size: clamp(22px, 2.3vw, 34px); }
.geology-output-grid p { color: var(--muted); font-size: 12px; line-height: 1.7; }
.geology-enquiry { background: #0a1b27; }

/* Editorial industries */
.industry-opening { display: grid; grid-template-columns: .45fr 1.05fr .85fr; gap: clamp(36px, 6vw, 95px); align-items: end; background: #f3f0e9; }
.industry-opening h2 { margin: 0; }
.industry-opening .lead { margin: 0 0 8px; }
.industry-chapters { background: #f3f0e9; }
.industry-chapter { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 720px; border-top: 1px solid var(--line); }
.industry-chapter:nth-child(even) { grid-template-columns: .95fr 1.05fr; }
.industry-chapter:nth-child(even) img { order: 2; }
.industry-chapter img { width: 100%; height: 100%; min-height: 720px; object-fit: cover; }
.industry-chapter > div { align-self: center; padding: clamp(55px, 7vw, 110px); }
.industry-chapter h2 { font-size: clamp(39px, 4.7vw, 70px); }
.industry-chapter > div > p:not(.kicker):not(.sector-proof) { max-width: 650px; color: var(--muted); line-height: 1.8; }
.industry-chapter ul { max-width: 650px; margin: 34px 0; padding: 0; list-style: none; }
.industry-chapter li { padding: 13px 0; border-top: 1px solid var(--line); color: #34434c; font-size: 12px; }
.industry-chapter .sector-proof { margin: 30px 0 18px; color: var(--copper); font-size: 10px; line-height: 1.7; letter-spacing: .07em; text-transform: uppercase; }

/* Editorial project portfolio */
.project-opening { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(50px, 8vw, 135px); align-items: end; background: #f3f0e9; }
.project-opening h2 { margin-bottom: 0; }
.project-opening .lead { margin: 0 0 8px; }
.project-feature-row { display: grid; grid-template-columns: 1.2fr .9fr .9fr; min-height: 620px; background: #07131f; }
.project-feature-row article { position: relative; min-height: 620px; overflow: hidden; }
.project-feature-row article + article { border-left: 1px solid #ffffff22; }
.project-feature-row article:after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, #06121ee8 100%); }
.project-feature-row img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.project-feature-row article:hover img { transform: scale(1.025); }
.project-feature-row article > div { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: clamp(30px, 4vw, 60px); color: #fff; }
.project-feature-row p { margin: 0 0 12px; color: var(--copper); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.project-feature-row h3 { margin: 0 0 18px; color: #fff; font-size: clamp(27px, 3vw, 45px); line-height: 1.08; }
.project-feature-row span { color: #c7d0d4; font-size: 11px; line-height: 1.65; }
.project-register { background: #f3f0e9; }
.project-sector { display: grid; grid-template-columns: .75fr 1.25fr; border-top: 1px solid var(--line); }
.project-sector:nth-child(even) { grid-template-columns: 1.25fr .75fr; }
.project-sector:nth-child(even) img { order: 2; }
.project-sector img { width: 100%; height: 100%; min-height: 760px; object-fit: cover; }
.project-sector > div { padding: clamp(60px, 8vw, 120px); }
.project-sector h2 { max-width: 850px; font-size: clamp(40px, 5vw, 72px); }
.named-projects { margin: clamp(45px, 6vw, 80px) 0 0; padding: 0; list-style: none; border-bottom: 1px solid var(--line); }
.named-projects li { display: grid; grid-template-columns: .9fr 1.1fr; gap: 28px; padding: 20px 0; border-top: 1px solid var(--line); }
.named-projects b { font-size: 13px; line-height: 1.45; }
.named-projects span { color: var(--muted); font-size: 11px; line-height: 1.6; }
.project-trust { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(50px, 8vw, 120px); background: #f8f6f1; }
.project-trust h2 { font-size: clamp(40px, 4.8vw, 70px); }
.project-trust .name-wall { align-self: start; margin-top: 0; }
.project-trust > small { grid-column: 2; color: var(--muted); line-height: 1.6; }
.experience-list article {
  display: grid;
  grid-template-columns: 70px 1.1fr 1fr;
  gap: 30px;
  padding: 35px 0;
  border-top: 1px solid var(--line);
}
.experience-list > article > b {
  color: var(--copper);
}
.experience-list p {
  font-size: 10px;
  color: var(--copper);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.experience-list h3 {
  font-size: 28px;
  margin: 8px 0;
}
.experience-list li {
  font-size: 13px;
  margin-bottom: 8px;
}
.sectors {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
}
.sectors div {
  border: 1px solid #ffffff25;
  padding: 28px;
}
.sectors span {
  color: var(--copper);
  font-size: 11px;
}
.contact-details {
  display: grid;
  gap: 20px;
  margin-top: 45px;
}
.contact-details a,
.contact-details div {
  display: grid;
  gap: 8px;
  border-top: 1px solid #ffffff35;
  padding-top: 18px;
}
.contact-details span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: #bdc6cc;
}
.contact-details strong {
  font-size: 17px;
}
img[src*="project-zatriq-wind-park"] {
  object-position: center 54%;
}
.office-location {
  display: grid;
  grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
  min-height: 650px;
  background: #f3f0e9;
}
.office-location-copy {
  padding: clamp(70px, 8vw, 125px) 7vw;
  align-self: center;
}
.office-location-copy h2 {
  margin: 22px 0 28px;
  font-size: clamp(42px, 5vw, 74px);
  line-height: 0.98;
  letter-spacing: -0.045em;
}
.office-location-copy > p:last-of-type {
  margin-bottom: 34px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
}
.office-location-copy .button {
  display: inline-flex;
}
.office-map {
  min-height: 650px;
  background: #d9d6cf;
}
.office-map iframe {
  width: 100%;
  height: 100%;
  min-height: 650px;
  border: 0;
  filter: saturate(.75) contrast(1.04);
}
footer {
  background: #050d14;
  color: #fff;
  padding: 55px 7vw;
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) repeat(4, 1fr);
  gap: 40px;
}
.footer-brand {
  width: min(100%, 300px);
  display: flex;
  align-items: center;
  align-self: start;
  gap: 14px;
  color: #fff;
  text-decoration: none;
}
.footer-brand-mark {
  width: 60px;
  height: 60px;
  flex: 0 0 60px;
}
.footer-brand-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.footer-brand-name {
  color: #fff;
  font-size: 27px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: .025em;
  white-space: nowrap;
}
.footer-brand-name small {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
}
.footer-brand-statement {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px solid var(--copper);
  color: #d7dbe0;
  font-size: 9px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .16em;
  white-space: nowrap;
}
footer > div > span {
  font-size: 10px;
  color: var(--copper);
  text-transform: uppercase;
  letter-spacing: 0.13em;
}
footer p {
  font-size: 12px;
  line-height: 1.7;
  color: #bdc5ca;
}
.history .timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.timeline div {
  padding: 30px;
  border-left: 1px solid #ffffff22;
}
.timeline b,
.timeline span {
  display: block;
}
.timeline b {
  color: var(--copper);
  margin-bottom: 12px;
}
.timeline span {
  font-size: 12px;
  line-height: 1.6;
}
.reverse {
  direction: rtl;
}
.reverse > * {
  direction: ltr;
}
.checks {
  padding: 0;
  list-style: none;
}
@media (max-width: 950px) {
  .lab-journey { grid-template-columns: 1fr; }
  .lab-enquiry { align-items: flex-start; flex-direction: column; }
  .site-header {
    height: 72px;
  }
  .brand {
    width: auto;
    gap: 9px;
  }
  .brand .brand-mark {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }
  .brand-name {
    font-size: 18px;
  }
  .brand-statement {
    margin-top: 5px;
    padding-top: 4px;
    font-size: 6.5px;
    letter-spacing: 0.12em;
  }
  .header-actions {
    display: none;
  }
  .menu {
    display: block;
    margin-left: auto;
    background: none;
    border: 0;
    color: #fff;
    font-size: 0;
  }
  .menu:after {
    content: "MENU";
    font-size: 11px;
    letter-spacing: 0.12em;
  }
  nav {
    display: none;
    position: absolute;
    top: 72px;
    left: 0;
    right: 0;
    margin: 0;
    padding: 25px 7vw;
    background: var(--navy);
    flex-direction: column;
    align-items: flex-start;
  }
  nav.open {
    display: flex;
  }
  .mobile-language {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    order: -1;
    margin: 0 0 12px;
    padding: 0 0 20px;
    border-bottom: 1px solid #ffffff24;
  }
  .mobile-language span,
  .mobile-language a {
    display: grid;
    place-items: center;
    min-width: 48px;
    height: 38px;
    border: 1px solid #ffffff2e;
    color: #fff;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: .12em;
  }
  .mobile-language .current {
    border-color: var(--copper);
    background: var(--copper);
    color: #07131f;
  }
  .mobile-language a:hover,
  .mobile-language a:focus-visible { border-color: #fff; }
  .dropdown {
    position: static;
    display: block;
    background: transparent;
    color: white;
    padding-left: 12px;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
  .dropdown a {
    padding: 7px;
  }
  .hero,
  .page-hero,
  .service-hero,
  .contact-page {
    min-height: 720px;
  }
  .hero-copy,
  .page-hero > div,
  .service-hero > div,
  .contact-panel {
    left: 7vw;
    right: 7vw;
  }
  .hero-facts,
  .ground-line {
    display: none;
  }
  .office-location {
    grid-template-columns: 1fr;
  }
  .office-map,
  .office-map iframe {
    min-height: 480px;
  }
  .intro-grid,
  .heading,
  .service-body {
    grid-template-columns: 1fr;
  }
  .process {
    grid-column: auto;
    grid-template-columns: 1fr 1fr;
  }
  .service-cards {
    grid-template-columns: 1fr 1fr;
  }
  .service-overview-grid { grid-template-columns: 1fr 1fr; }
  .geology-intro,
  .geology-story { grid-template-columns: 1fr; }
  .geology-story img { min-height: 580px; }
  .geology-output-grid { grid-template-columns: 1fr 1fr; }
  .industry-opening { grid-template-columns: 1fr 1fr; }
  .industry-opening > .kicker { grid-column: 1 / -1; }
  .industry-chapter,
  .industry-chapter:nth-child(even),
  .project-sector,
  .project-sector:nth-child(even) { grid-template-columns: 1fr; }
  .industry-chapter:nth-child(even) img,
  .project-sector:nth-child(even) img { order: 0; }
  .project-feature-row { grid-template-columns: 1fr 1fr; }
  .project-feature-row article:first-child { grid-column: 1 / -1; }
  .project-opening,
  .project-trust { grid-template-columns: 1fr; }
  .project-trust > small { grid-column: 1; }
  .project-grid {
    grid-template-columns: 1fr 1fr;
  }
  .split-story,
  .technical-feature {
    grid-template-columns: 1fr;
  }
  .split-story > img,
  .technical-feature > img {
    height: 460px;
  }
  .service-list a {
    grid-template-columns: 40px 1fr 20px;
  }
  .service-list p {
    display: none;
  }
  .experience-list article {
    grid-template-columns: 40px 1fr;
  }
  .experience-list ul {
    grid-column: 2;
  }
  .sectors {
    grid-template-columns: 1fr 1fr;
  }
  footer {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 620px) {
  .lab-journey ol { grid-template-columns: 1fr; }
  .lab-journey li,
  .lab-journey li:first-child { padding: 20px 0 20px 26px; border-left: 0; border-top: 1px solid var(--line); }
  .lab-journey li::before,
  .lab-journey li:first-child::before { top: 25px; left: 0; }
  .hero h1,
  .page-hero h1,
  .service-hero h1,
  .contact-page h1 {
    font-size: 52px;
  }
  .hero-copy > p:last-of-type {
    font-size: 14px;
  }
  .buttons {
    flex-direction: column;
    align-items: flex-start;
  }
  .section {
    padding: 82px 7vw;
  }
  .process,
  .service-cards,
  .project-grid,
  .sectors {
    grid-template-columns: 1fr;
  }
  .service-overview-grid,
  .geology-disciplines,
  .geology-output-grid { grid-template-columns: 1fr; }
  .service-overview-grid > a { min-height: 470px; }
  .geology-disciplines article { min-height: auto; padding: 72px 7vw; }
  .geology-story img { min-height: 420px; }
  .industry-opening { grid-template-columns: 1fr; }
  .industry-opening > .kicker { grid-column: auto; }
  .industry-chapter img { min-height: 390px; }
  .industry-chapter > div { padding: 68px 7vw; }
  .project-feature-row { grid-template-columns: 1fr; }
  .project-feature-row article,
  .project-feature-row article:first-child { grid-column: auto; min-height: 500px; }
  .project-sector img { min-height: 420px; }
  .project-sector > div { padding: 68px 7vw; }
  .named-projects li { grid-template-columns: 1fr; gap: 7px; }
  .service-cards a {
    min-height: 410px;
  }
  .project {
    height: 390px;
  }
  .split-story > div,
  .technical-feature > div {
    padding: 70px 7vw;
  }
  .image-band {
    grid-template-columns: 1fr;
    height: auto;
  }
  .image-band img {
    height: 300px;
  }
  .history .timeline {
    grid-template-columns: 1fr 1fr;
  }
  footer {
    grid-template-columns: 1fr;
    gap: 28px;
    padding-top: 48px;
  }
  .footer-brand {
    width: 290px;
    max-width: 100%;
    margin-bottom: 12px;
  }
  .page-hero.compact {
    height: 720px;
  }
}
.narrow {
  max-width: 820px;
}
.sector-catalog {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.sector-catalog article {
  padding: 30px;
  min-height: 290px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.sector-catalog span {
  color: var(--copper);
  font-size: 11px;
}
.sector-catalog h3 {
  font-size: 21px;
  line-height: 1.25;
  margin: 22px 0 14px;
}
.sector-catalog p {
  font-size: 13px;
  line-height: 1.75;
  color: #667078;
}
.featured-exp .experience-list article {
  border-color: #ffffff26;
}
.featured-exp .experience-list span,
.featured-exp .experience-list li {
  color: #bdc6cc;
}
.trust {
  background: #e8e4dc;
}
.name-wall {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  padding: 34px 0 8px;
  border-top: 1px solid #c8c2b7;
}
.name-wall span {
  position: relative;
  padding: 18px 34px 18px 0;
  margin-right: 34px;
  color: #172631;
  font-size: clamp(17px, 1.45vw, 23px);
  font-weight: 650;
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.name-wall span:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--copper);
}
.testimonials {
  background: #fff;
}
.quote-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--line);
}
.quote-grid blockquote {
  margin: 0;
  padding: 42px;
  background: #fff;
}
.quote-grid p {
  font-size: 20px;
  line-height: 1.6;
  margin: 0 0 28px;
}
.quote-grid cite {
  font-style: normal;
  font-size: 10px;
  color: var(--copper);
  text-transform: uppercase;
  letter-spacing: 0.13em;
}
.testimonial-note {
  max-width: 850px;
  margin: 24px 0 0;
  font-size: 11px;
  line-height: 1.7;
  color: #7a8287;
}
@media (max-width: 950px) {
  .sector-catalog {
    grid-template-columns: 1fr 1fr;
  }
  .name-wall {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 620px) {
  .sector-catalog,
  .name-wall,
  .quote-grid {
    grid-template-columns: 1fr;
  }
  .sector-catalog article {
    min-height: 0;
  }
  .name-wall span {
    padding: 12px 22px 12px 0;
    margin-right: 22px;
    font-size: 16px;
  }
  .quote-grid p {
    font-size: 17px;
  }
}

/* Premium editorial refinement */
body {
  background: #f0eee8;
}
.site-header {
  padding-left: 5.5vw;
  padding-right: 5.5vw;
}
.site-header.scrolled {
  background: #07131ff7;
  backdrop-filter: blur(18px);
}
.hero {
  height: 100svh;
  min-height: 760px;
}
.hero > img {
  object-position: center 52%;
  transform: scale(1.015);
}
.hero-wash {
  background:
    linear-gradient(90deg, #06121ff5 0%, #07131fbd 38%, #07131f24 72%),
    linear-gradient(0deg, #06121f7d, transparent 45%);
}
.hero-copy {
  left: 7.5vw;
  max-width: 760px;
}
.hero h1 {
  font-size: clamp(70px, 8vw, 122px);
  font-weight: 600;
  letter-spacing: -0.065em;
}
.hero-copy > p:last-of-type {
  max-width: 690px;
}
.proof-story {
  display: grid;
  grid-template-columns: minmax(230px, 0.72fr) minmax(0, 2.28fr);
  gap: 5vw;
  padding: 78px 7vw 84px;
  color: #f4f1eb;
  background:
    radial-gradient(circle at 10% 0%, #183142 0, transparent 36%),
    #091925;
  border-top: 1px solid #ffffff17;
}
.proof-intro p,
.client-ribbon-heading p {
  margin: 0;
  color: var(--copper);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.19em;
  text-transform: uppercase;
}
.proof-intro h2 {
  margin: 18px 0 0;
  max-width: 340px;
  color: #f5f2ec;
  font-size: clamp(32px, 3.2vw, 52px);
  font-weight: 520;
  letter-spacing: -0.045em;
  line-height: 0.98;
}
.proof-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
.proof-timeline::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 5px;
  right: 5px;
  height: 1px;
  background: linear-gradient(90deg, var(--copper), #b87a4966 72%, #ffffff2b);
}
.proof-timeline li {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding-top: 42px;
}
.proof-timeline i {
  position: absolute;
  top: 0;
  left: 0;
  width: 11px;
  height: 11px;
  border: 2px solid #091925;
  border-radius: 50%;
  background: var(--copper);
  box-shadow: 0 0 0 1px var(--copper);
}
.proof-timeline strong {
  color: #fff;
  font-size: clamp(17px, 1.35vw, 22px);
  font-weight: 650;
  letter-spacing: -0.025em;
  line-height: 1.15;
}
.proof-timeline span {
  margin-top: 10px;
  color: #aeb8be;
  font-size: 9px;
  letter-spacing: 0.16em;
  line-height: 1.55;
  text-transform: uppercase;
}
.section {
  padding-top: 135px;
  padding-bottom: 135px;
}
.section-note {
  max-width: 630px !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
  color: #aeb8be !important;
}
.service-mosaic {
  grid-template-columns: 1.35fr repeat(2, 1fr);
  grid-template-rows: repeat(2, 360px);
  gap: 2px;
  background: transparent;
}
.service-mosaic a {
  min-height: 0;
  padding: 190px 28px 28px;
}
.service-mosaic a:first-child {
  grid-row: 1/3;
  padding-top: 530px;
}
.service-mosaic a:first-child img {
  height: 100%;
}
.service-mosaic a:not(:first-child) img {
  height: 165px;
}
.service-mosaic a {
  transition:
    transform 0.35s ease,
    background 0.35s ease;
}
.service-mosaic a:hover {
  transform: translateY(-5px);
  background: #122839;
}
.service-mosaic img {
  transition:
    transform 0.6s ease,
    filter 0.4s;
}
.service-mosaic a:hover img {
  transform: scale(1.035);
  filter: saturate(0.95);
}
.project-grid {
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-auto-rows: 390px;
  gap: 12px;
}
.project {
  height: auto;
}
.project:first-child {
  grid-row: span 2;
}
.project:first-child img {
  opacity: 0.7;
}
.project:first-child h3 {
  font-size: 36px;
}
.project > div {
  inset: auto 32px 32px;
}
.project:after {
  content: "";
  position: absolute;
  inset: 35% 0 0;
  background: linear-gradient(transparent, #06121fe8);
}
.project > div {
  z-index: 3;
}
.project {
  transition: transform 0.35s ease;
}
.project:hover {
  transform: translateY(-4px);
}
.home-recommendation {
  background: #e4ded4;
  padding: 95px 7vw;
  display: grid;
  grid-template-columns: minmax(0, 820px) auto;
  gap: 8vw;
  align-items: end;
}
.home-recommendation blockquote {
  font-size: clamp(28px, 3.5vw, 52px);
  line-height: 1.25;
  letter-spacing: -0.035em;
  margin: 25px 0;
}
.home-recommendation > div > p:last-child {
  max-width: 670px;
  color: #687178;
  font-size: 11px;
  line-height: 1.7;
}
.home-recommendation > a {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-bottom: 1px solid;
  padding-bottom: 9px;
}
.sector-catalog {
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  border: 0;
}
.sector-catalog article {
  min-height: 250px;
  border: 1px solid var(--line);
  background: #f7f5f0;
  padding: 38px;
  transition: 0.3s;
}
.sector-catalog article:hover {
  background: #fff;
  transform: translateY(-3px);
  box-shadow: 0 20px 55px #07131f0b;
}
.featured-exp .experience-list article {
  grid-template-columns: 70px 1.1fr 1fr;
  padding: 48px 0;
}
.organisation-groups {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #c8c2b7;
}
.organisation-groups > div {
  background: #ebe7df;
  padding: 35px;
}
.organisation-groups p {
  color: var(--copper);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
.organisation-groups span {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid #cbc6bc;
  font-size: 14px;
  font-weight: 600;
}
.quote-grid {
  gap: 14px;
  background: transparent;
}
.quote-grid blockquote {
  border: 1px solid var(--line);
  padding: 48px;
}
.cta {
  padding-top: 145px;
  padding-bottom: 145px;
}
.cta > img {
  opacity: 0.16;
}
@media (max-width: 950px) {
  .proof-story {
    grid-template-columns: 1fr;
  }
  .service-mosaic {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }
  .service-mosaic a:first-child {
    grid-row: auto;
    padding-top: 250px;
  }
  .service-mosaic a:first-child img {
    height: 220px;
  }
  .service-mosaic a {
    min-height: 440px;
    padding-top: 250px;
  }
  .service-mosaic a:not(:first-child) img {
    height: 220px;
  }
  .project-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 420px;
  }
  .project:first-child {
    grid-row: auto;
  }
  .home-recommendation {
    grid-template-columns: 1fr;
  }
  .organisation-groups {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px) {
  .hero {
    min-height: 760px;
  }
  .hero > img {
    object-position: 61% center;
  }
  .hero-wash {
    background: linear-gradient(90deg, #06121ff2 0%, #07131fa8 75%, #07131f55);
  }
  .hero h1 {
    font-size: 57px;
  }
  .hero-copy {
    top: 48%;
  }
  .proof-story {
    gap: 48px;
    padding: 64px 7vw 70px;
  }
  .proof-intro h2 {
    font-size: 39px;
  }
  .proof-timeline {
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0;
    padding-left: 34px;
  }
  .proof-timeline::before {
    top: 5px;
    bottom: 5px;
    left: 5px;
    right: auto;
    width: 1px;
    height: auto;
    background: linear-gradient(180deg, var(--copper), #b87a4966 72%, #ffffff2b);
  }
  .proof-timeline li {
    min-height: 108px;
    padding: 0 0 34px;
  }
  .proof-timeline i {
    left: -34px;
  }
  .proof-timeline strong {
    font-size: 19px;
  }
  .section {
    padding-top: 90px;
    padding-bottom: 90px;
  }
  .service-mosaic {
    grid-template-columns: 1fr;
  }
  .service-mosaic a,
  .service-mosaic a:first-child {
    min-height: 430px;
    padding-top: 245px;
  }
  .project-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 400px;
    gap: 8px;
  }
  .project:first-child h3 {
    font-size: 28px;
  }
  .home-recommendation {
    padding: 75px 7vw;
  }
  .home-recommendation blockquote {
    font-size: 28px;
  }
  .sector-catalog {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .sector-catalog article {
    padding: 28px;
  }
  .quote-grid blockquote {
    padding: 30px;
  }
  .cta {
    padding-top: 100px;
    padding-bottom: 100px;
  }
}

/* Homepage V3 — engineer-led premium editorial system */
.home-v3 .hero h1 {
  font-size: clamp(58px, 6.6vw, 102px);
  max-width: 1050px;
}
.client-ribbon {
  display: grid;
  grid-template-columns: minmax(230px, 0.72fr) minmax(0, 2.28fr);
  gap: 5vw;
  align-items: center;
  background: #f7f4ee;
  padding: 46px 7vw 50px;
  border-bottom: 1px solid var(--line);
}
.client-ribbon-heading > span {
  display: block;
  max-width: 290px;
  margin-top: 10px;
  color: #737b7f;
  font-size: 11px;
  line-height: 1.55;
}
.client-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: clamp(22px, 3vw, 52px);
  min-width: 0;
}
.client-track span {
  flex: 0 0 auto;
  color: #1c2a34;
  font-size: clamp(13px, 1.05vw, 17px);
  font-weight: 620;
  letter-spacing: -0.025em;
  white-space: nowrap;
}
.client-track span:nth-child(2),
.client-track span:nth-child(4) {
  color: #47545c;
  font-weight: 500;
}
.relationship-proof {
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(620px, 1.65fr);
  gap: clamp(56px, 7vw, 120px);
  padding: clamp(72px, 8vw, 126px) 7vw 54px;
  overflow: hidden;
  background: #0a1a26;
  color: #f7f4ee;
}
.relationship-proof::after {
  content: "";
  position: absolute;
  right: -8vw;
  top: -18vw;
  width: 42vw;
  height: 42vw;
  border: 1px solid rgba(190, 113, 61, 0.16);
  border-radius: 50%;
  pointer-events: none;
}
.relationship-intro {
  position: relative;
  z-index: 1;
}
.relationship-intro .kicker {
  color: #c47b48;
}
.relationship-intro h2 {
  margin: 18px 0 24px;
  color: #f7f4ee;
  font-size: clamp(34px, 3.5vw, 58px);
  line-height: 1.01;
  letter-spacing: -0.045em;
}
.relationship-intro > p:not(.kicker) {
  max-width: 470px;
  margin: 0 0 28px;
  color: #aeb9bf;
  font-size: 14px;
  line-height: 1.72;
}
.text-button.light {
  color: #f7f4ee;
  border-color: rgba(247, 244, 238, 0.28);
}
.relationship-groups {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgba(247, 244, 238, 0.18);
}
.relationship-groups article {
  min-width: 0;
  padding: 26px clamp(20px, 2vw, 36px) 16px;
  border-left: 1px solid rgba(247, 244, 238, 0.14);
}
.relationship-groups article:first-child {
  padding-left: 0;
  border-left: 0;
}
.relationship-groups article > p {
  min-height: 32px;
  margin: 0 0 30px;
  color: #c47b48;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.relationship-groups ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.relationship-groups li {
  position: relative;
  padding: 17px 0;
  border-top: 1px solid rgba(247, 244, 238, 0.1);
  color: #f7f4ee;
  font-size: clamp(15px, 1.2vw, 19px);
  font-weight: 540;
  line-height: 1.25;
  letter-spacing: -0.025em;
}
.relationship-groups li:first-child {
  border-top-color: rgba(247, 244, 238, 0.24);
}
.relationship-proof > small {
  grid-column: 2;
  position: relative;
  z-index: 1;
  margin-top: -20px;
  color: #71808a;
  font-size: 9px;
  line-height: 1.55;
}
@media (max-width: 1320px) and (min-width: 621px) {
  .relationship-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .relationship-groups article:nth-child(3) {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid rgba(247, 244, 238, 0.18);
  }
  .relationship-groups article:nth-child(4) {
    border-top: 1px solid rgba(247, 244, 238, 0.18);
  }
}
.positioning {
  display: grid;
  grid-template-columns: 180px 1.25fr 0.55fr;
  gap: 5vw;
}
.positioning aside {
  border-left: 1px solid var(--line);
  padding-left: 3vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.positioning aside strong {
  font-size: clamp(42px, 5vw, 72px);
  line-height: 1;
  color: var(--copper);
  font-weight: 600;
}
.positioning aside span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #737c80;
  margin: 7px 0 38px;
}
.service-mosaic.six {
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 430px);
}
.service-mosaic.six a,
.service-mosaic.six a:first-child {
  grid-row: auto;
  padding: 245px 28px 28px;
}
.service-mosaic.six a img,
.service-mosaic.six a:first-child img,
.service-mosaic.six a:not(:first-child) img {
  height: 220px;
}
.service-mosaic.six h3 {
  font-size: 19px;
  line-height: 1.28;
}
.industries {
  background: #e7e2d9;
}
.industry-editorial {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  border-top: 1px solid #c8c2b7;
  border-left: 1px solid #c8c2b7;
}
.industry-editorial > img {
  grid-row: span 3;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
}
.industry-editorial > div {
  padding: 30px 32px;
  min-height: 185px;
  border-right: 1px solid #c8c2b7;
  border-bottom: 1px solid #c8c2b7;
  background: #ede9e1;
  transition: 0.3s;
}
.industry-editorial > div:hover {
  background: #f7f4ee;
}
.industry-editorial span,
.why-grid b {
  font-size: 10px;
  color: var(--copper);
  letter-spacing: 0.14em;
}
.industry-editorial h3,
.why-grid h3 {
  font-size: 19px;
  line-height: 1.3;
  margin: 18px 0 10px;
}
.industry-editorial p,
.why-grid p {
  font-size: 12px;
  line-height: 1.65;
  color: #6a7378;
  margin: 0;
}
.why {
  background: #fff;
}
.why-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.why-grid article {
  padding: 36px 30px;
  min-height: 270px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.home-testimonials {
  background: var(--navy);
  color: #fff;
  padding: 120px 7vw;
}
.home-testimonials > div:first-child {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 5vw;
  margin-bottom: 55px;
}
.home-testimonials h2 {
  font-size: clamp(38px, 4.6vw, 70px);
  line-height: 1.04;
  letter-spacing: -0.045em;
  margin: 0;
}
.quote-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #ffffff24;
}
.quote-row blockquote {
  margin: 0;
  padding: 42px 34px;
  background: #0c1d2b;
}
.quote-row p {
  font-size: 18px;
  line-height: 1.55;
  margin: 0 0 32px;
}
.quote-row cite {
  font-style: normal;
  color: var(--copper);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
}
.home-testimonials .testimonial-note {
  color: #9eabb2;
}
.certification .credential {
  padding: 25px 0;
  border-top: 1px solid #ffffff2f;
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 25px;
}
.certification .credential strong {
  color: var(--copper);
  font-size: 17px;
}
.certification .credential span {
  font-size: 11px;
  line-height: 1.7;
  color: #bac4c9;
}
@media (max-width: 1100px) {
  nav {
    gap: 16px;
  }
  nav > a,
  .nav-group > a {
    font-size: 11px;
  }
  .header-cta {
    display: none;
  }
  .client-ribbon {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .relationship-proof {
    grid-template-columns: 1fr;
    gap: 54px;
  }
  .relationship-proof > small {
    grid-column: 1;
    margin-top: -26px;
  }
  .client-track {
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 8px;
    scrollbar-width: none;
  }
  .client-track::-webkit-scrollbar {
    display: none;
  }
  .positioning {
    grid-template-columns: 150px 1fr;
  }
  .positioning aside {
    grid-column: 2;
  }
  .service-mosaic.six {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }
  .industry-editorial {
    grid-template-columns: 1fr 1fr;
  }
  .industry-editorial > img {
    grid-row: span 2;
    min-height: 500px;
  }
  .why-grid {
    grid-template-columns: 1fr 1fr;
  }
  .quote-row {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px) {
  .home-v3 .hero h1 {
    font-size: 48px;
    line-height: 0.96;
  }
  .client-ribbon {
    gap: 28px;
    padding-top: 42px;
    padding-bottom: 44px;
  }
  .client-ribbon-heading > span {
    font-size: 10px;
  }
  .client-track {
    margin-right: -7vw;
    padding-right: 7vw;
    gap: 32px;
    mask-image: linear-gradient(90deg, #000 0%, #000 88%, transparent 100%);
  }
  .client-track span {
    font-size: 15px;
  }
  .relationship-proof {
    gap: 46px;
    padding: 68px 7vw 46px;
  }
  .relationship-proof::after {
    right: -32vw;
    top: -12vw;
    width: 92vw;
    height: 92vw;
  }
  .relationship-intro h2 {
    font-size: 38px;
  }
  .relationship-groups {
    grid-template-columns: 1fr;
  }
  .relationship-groups article,
  .relationship-groups article:first-child {
    padding: 26px 0 12px;
    border-left: 0;
    border-top: 1px solid rgba(247, 244, 238, 0.18);
  }
  .relationship-groups article:first-child {
    border-top: 0;
    padding-top: 0;
  }
  .relationship-groups article > p {
    min-height: 0;
    margin-bottom: 14px;
  }
  .relationship-groups li {
    padding: 13px 0;
    font-size: 17px;
  }
  .positioning {
    grid-template-columns: 1fr;
  }
  .positioning aside {
    grid-column: auto;
    border-left: 0;
    border-top: 1px solid var(--line);
    padding: 35px 0 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 20px;
  }
  .positioning aside span {
    margin: 0 0 22px;
  }
  .service-mosaic.six {
    grid-template-columns: 1fr;
  }
  .service-mosaic.six a,
  .service-mosaic.six a:first-child {
    min-height: 430px;
    padding-top: 245px;
  }
  .industry-editorial {
    grid-template-columns: 1fr;
  }
  .industry-editorial > img {
    grid-row: auto;
    height: 400px;
    min-height: 0;
  }
  .industry-editorial > div {
    min-height: 0;
  }
  .why-grid {
    grid-template-columns: 1fr;
  }
  .why-grid article {
    min-height: 0;
  }
  .home-testimonials {
    padding: 85px 7vw;
  }
  .home-testimonials > div:first-child {
    grid-template-columns: 1fr;
  }
  .quote-row blockquote {
    padding: 32px 26px;
  }
  .certification .credential {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

.method-band {
  padding: 0 7vw 95px;
  background: var(--paper);
}
.method-band > p {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #777f83;
  margin: 0 0 22px;
}
.method-band ol {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.method-band li {
  padding: 26px 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: 15px;
  font-weight: 600;
  display: flex;
  gap: 16px;
  align-items: center;
  background: #f5f3ee;
}
.method-band span {
  color: var(--copper);
  font-size: 9px;
  letter-spacing: 0.12em;
}
.industry-browser {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  background: #0b1b28;
  min-height: 700px;
}
.industry-browser figure {
  margin: 0;
  position: relative;
  overflow: hidden;
}
.industry-browser figure:after {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(transparent, #07131fba);
}
.industry-browser figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition:
    opacity 0.18s ease,
    transform 0.7s ease;
}
.industry-browser figure img.changing {
  opacity: 0.25;
  transform: scale(1.025);
}
.industry-browser figcaption {
  position: absolute;
  z-index: 2;
  left: 30px;
  bottom: 27px;
  color: #fff;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}
.industry-list {
  display: flex;
  flex-direction: column;
}
.industry-list button {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(190px, .75fr) minmax(260px, 1.25fr);
  align-items: center;
  gap: 22px;
  text-align: left;
  padding: 20px 32px;
  border: 0;
  border-bottom: 1px solid #ffffff20;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: 0.25s;
}
.industry-list button:hover,
.industry-list button.active {
  background: #122a3b;
}
.industry-list button.active {
  box-shadow: inset 3px 0 var(--copper);
}
.industry-list b {
  display: block;
  font-size: 16px;
  line-height: 1.22;
}
.industry-list small {
  display: block;
  font-size: 10px;
  line-height: 1.55;
  color: #9fabb2;
}
.quote-row.two {
  grid-template-columns: repeat(2, 1fr);
}
.quote-row.two p {
  font-size: clamp(20px, 2.2vw, 31px);
  line-height: 1.45;
}
.home-v3 .project span {
  display: block;
  max-width: 480px;
}
.home-v3 .project p {
  font-weight: 600;
}
.home-v3 .project h3 {
  letter-spacing: -0.025em;
}
.home-v3 .cta > div {
  max-width: 820px;
}
.home-v3 .cta p:not(.eyebrow) {
  max-width: 650px;
  line-height: 1.7;
  color: #c7d0d5;
}

/* Premium service narratives */
.field-intro,
.lab-intro {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(60px, 9vw, 150px);
  align-items: start;
}
.field-statement h2,
.lab-intro h2,
.evidence-heading h2,
.lab-catalogue h2 {
  max-width: 850px;
}
.field-facts {
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.field-facts li {
  display: grid;
  grid-template-columns: 42px 120px 1fr;
  gap: 18px;
  align-items: baseline;
  padding: 19px 0;
  border-bottom: 1px solid var(--line);
}
.field-facts span,
.lab-test-groups > article > span,
.lab-showcase figcaption span {
  color: var(--copper);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.field-facts b { font-size: 15px; }
.field-facts small { color: var(--muted); line-height: 1.5; }
.field-editorial {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, 0.55fr);
  min-height: 720px;
  background: #081925;
  color: #fff;
}
.field-editorial-main,
.lab-showcase figure,
.evidence-grid figure { margin: 0; position: relative; overflow: hidden; }
.field-editorial-main img { width: 100%; height: 100%; object-fit: cover; }
.field-editorial-main:after {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(transparent, #07131fc4);
}
.field-editorial-main figcaption {
  position: absolute;
  z-index: 1;
  left: clamp(24px, 4vw, 64px);
  bottom: 35px;
  max-width: 580px;
  font-size: 13px;
  line-height: 1.6;
}
.field-editorial-main figcaption span {
  display: block;
  margin-bottom: 9px;
  color: #d5a071;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .16em;
}
.field-editorial-copy { padding: clamp(52px, 7vw, 104px) clamp(34px, 5vw, 76px); }
.field-editorial-copy h2 { color: #fff; font-size: clamp(31px, 3.7vw, 55px); margin-bottom: 38px; }
.field-editorial-copy ul { padding: 0; margin: 0; list-style: none; }
.field-editorial-copy li {
  padding: 15px 0;
  border-bottom: 1px solid #ffffff1c;
  color: #c8d0d4;
  line-height: 1.5;
}
.evidence-section { background: #f3f0e9; }
.evidence-heading { display: grid; grid-template-columns: 1fr 1fr; column-gap: 8vw; align-items: end; margin-bottom: 48px; }
.evidence-heading .kicker { grid-column: 1 / -1; }
.evidence-heading p:last-child { max-width: 520px; color: var(--muted); line-height: 1.75; }
.evidence-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 18px; min-height: 620px; }
.evidence-grid img { width: 100%; height: 100%; object-fit: cover; }
.evidence-grid figure:after,
.lab-showcase figure:after { content: ""; position: absolute; inset: 52% 0 0; background: linear-gradient(transparent, #07131fdb); }
.evidence-grid figcaption,
.lab-showcase figcaption { position: absolute; z-index: 1; left: 26px; right: 26px; bottom: 24px; color: #fff; }
.evidence-grid figcaption b,
.evidence-grid figcaption span { display: block; }
.evidence-grid figcaption b { font-size: 17px; margin-bottom: 7px; }
.evidence-grid figcaption span { color: #d2d8da; font-size: 11px; line-height: 1.55; max-width: 500px; }

.laboratory .service-hero img { object-position: center 45%; }
.lab-accreditation {
  background: #0b1d29;
  color: #fff;
  padding: clamp(34px, 5vw, 64px);
  border-top: 3px solid var(--copper);
}
.lab-accreditation > span { color: #d1a174; text-transform: uppercase; letter-spacing: .15em; font-size: 9px; }
.lab-accreditation strong { display: block; margin: 28px 0 24px; font-size: clamp(34px, 4vw, 58px); line-height: .95; letter-spacing: -.045em; }
.lab-accreditation p { color: #b8c2c7; line-height: 1.7; margin: 0; }
.lab-showcase { display: grid; grid-template-columns: 1.35fr .65fr; min-height: 760px; background: #071722; gap: 2px; }
.lab-showcase-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 2px; min-width: 0; }
.lab-showcase img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.lab-showcase figure:hover img { transform: scale(1.02); }
.lab-showcase figcaption span,
.lab-showcase figcaption b,
.lab-showcase figcaption small { display: block; }
.lab-showcase figcaption b { font-size: clamp(16px, 1.7vw, 25px); margin: 8px 0; }
.lab-showcase figcaption small { color: #cad2d5; line-height: 1.55; max-width: 560px; }
.lab-catalogue { background: #f3f0e9; }
.lab-catalogue .section-heading { max-width: 930px; margin-bottom: 55px; }
.lab-test-groups { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.lab-test-groups article { padding: clamp(28px, 4vw, 52px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f8f6f1; }
.lab-test-groups h3 { min-height: 58px; margin: 18px 0 30px; font-size: 19px; line-height: 1.35; }
.lab-test-groups ul { list-style: none; padding: 0; margin: 0; }
.lab-test-groups li { padding: 11px 0; border-top: 1px solid var(--line); color: #45525b; font-size: 12px; line-height: 1.45; }
.lab-quality { display: grid; grid-template-columns: 1fr 1fr; min-height: 680px; background: #0a1b27; color: #fff; }
.lab-quality img { width: 100%; height: 100%; object-fit: cover; }
.lab-quality > div { align-self: center; padding: clamp(48px, 8vw, 120px); }
.lab-quality h2 { color: #fff; font-size: clamp(38px, 5vw, 72px); }
.lab-quality p:not(.kicker) { color: #bdc7cc; line-height: 1.8; max-width: 590px; }
.lab-quality ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; padding: 24px 0 0; list-style: none; }
.lab-quality li { border-top: 1px solid #ffffff24; padding: 15px 0; color: #e0e5e7; font-size: 12px; }
.certificate-downloads { background: #f3f0e9; }
.certificate-downloads-heading { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(50px, 8vw, 130px); align-items: end; }
.certificate-downloads-heading h2 { max-width: 920px; margin-bottom: 0; }
.certificate-downloads-heading > p { max-width: 500px; margin: 0 0 8px; color: var(--muted); line-height: 1.75; }
.certificate-grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: clamp(50px, 6vw, 85px); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.certificate-grid a { min-height: 360px; padding: clamp(32px, 4.5vw, 62px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--navy); background: #f8f6f1; text-decoration: none; transition: background .25s ease, color .25s ease; }
.certificate-grid a:hover,
.certificate-grid a:focus-visible { background: #0a1b27; color: #fff; }
.certificate-grid span,
.certificate-grid strong,
.certificate-grid p,
.certificate-grid b { display: block; }
.certificate-grid span { color: var(--copper); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.certificate-grid strong { margin: 55px 0 18px; font-size: clamp(29px, 3.4vw, 50px); letter-spacing: -.035em; }
.certificate-grid p { color: var(--muted); font-size: 12px; line-height: 1.7; }
.certificate-grid a:hover p,
.certificate-grid a:focus-visible p { color: #bac5ca; }
.certificate-grid b { margin-top: 48px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--copper); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.certificate-grid b i { float: right; font-size: 16px; font-style: normal; }
.lab-journey {
  display: grid;
  grid-template-columns: minmax(280px, .75fr) minmax(620px, 1.6fr);
  gap: clamp(50px, 7vw, 120px);
  padding: clamp(80px, 9vw, 135px) 7vw;
  background: #f7f4ee;
}
.lab-journey-intro h2 { margin: 18px 0 22px; font-size: clamp(38px, 4.5vw, 68px); line-height: 1.02; letter-spacing: -.045em; }
.lab-journey-intro > p:last-child { max-width: 500px; color: #667078; line-height: 1.75; }
.lab-journey ol { display: grid; grid-template-columns: repeat(5, 1fr); align-self: center; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.lab-journey li { position: relative; min-width: 0; padding: 30px 18px 20px; border-left: 1px solid var(--line); }
.lab-journey li:first-child { border-left: 0; padding-left: 0; }
.lab-journey li::before { content: ""; position: absolute; top: -4px; left: 18px; width: 7px; height: 7px; border-radius: 50%; background: var(--copper); }
.lab-journey li:first-child::before { left: 0; }
.lab-journey li span,
.lab-journey li b,
.lab-journey li small { display: block; }
.lab-journey li span { color: var(--copper); font-size: 9px; letter-spacing: .14em; }
.lab-journey li b { margin: 12px 0 9px; font-size: 17px; }
.lab-journey li small { color: #69737a; font-size: 10px; line-height: 1.55; }
.lab-enquiry { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; padding: clamp(70px, 8vw, 120px) 7vw; background: #07131f; color: #fff; }
.lab-enquiry h2 { margin: 16px 0 0; color: #fff; font-size: clamp(38px, 5vw, 72px); line-height: 1.02; letter-spacing: -.045em; }

/* Geophysics and engineering */
.geo-intro,
.eng-intro {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(60px, 9vw, 150px);
  align-items: end;
}
.geo-intro h2,
.eng-intro h2 { max-width: 850px; }
.geo-intro > .lead,
.eng-intro > .lead { margin: 0 0 8px; }
.geo-methods {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #0a1b27;
  color: #fff;
  border-top: 1px solid #ffffff1c;
}
.geo-methods article {
  min-height: 390px;
  padding: clamp(30px, 4vw, 56px);
  border-right: 1px solid #ffffff1c;
  display: flex;
  flex-direction: column;
}
.geo-methods article > span,
.eng-decision-grid article > span {
  color: var(--copper);
  font-size: 9px;
  letter-spacing: .15em;
}
.geo-methods h3 { margin: auto 0 20px; font-size: clamp(24px, 2.4vw, 38px); color: #fff; letter-spacing: -.03em; }
.geo-methods p { color: #bdc7cc; line-height: 1.7; font-size: 12px; }
.geo-methods small { display: block; margin-top: 22px; padding-top: 15px; border-top: 1px solid #ffffff20; color: #d6a276; text-transform: uppercase; letter-spacing: .12em; font-size: 8px; }
.geo-field-story,
.eng-project-story { display: grid; grid-template-columns: 1.25fr .75fr; background: #f3f0e9; min-height: 760px; }
.geo-field-story figure,
.eng-project-story figure { margin: 0; position: relative; overflow: hidden; }
.geo-field-story figure img,
.eng-project-story figure img { width: 100%; height: 100%; object-fit: cover; }
.geo-field-story figure:after,
.eng-project-story figure:after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, #07131fcf); }
.geo-field-story figcaption,
.eng-project-story figcaption { position: absolute; z-index: 1; left: 28px; right: 28px; bottom: 25px; color: #d4dcdf; line-height: 1.6; font-size: 11px; }
.geo-field-story figcaption span,
.eng-project-story figcaption span { display: block; color: #d9a277; text-transform: uppercase; letter-spacing: .15em; font-size: 8px; margin-bottom: 8px; }
.geo-field-story > div,
.eng-project-story > div { align-self: center; padding: clamp(52px, 7vw, 104px); }
.geo-field-story h2,
.eng-project-story h2 { font-size: clamp(36px, 4.5vw, 66px); }
.geo-field-story ol { padding: 16px 0 0; margin: 0; list-style: none; }
.geo-field-story li { display: grid; grid-template-columns: 38px 1fr; gap: 4px 12px; padding: 17px 0; border-top: 1px solid var(--line); }
.geo-field-story li > span { grid-row: 1/3; color: var(--copper); font-size: 9px; padding-top: 4px; }
.geo-field-story li b { font-size: 14px; }
.geo-field-story li small { color: var(--muted); line-height: 1.5; }
.geo-principle { background: #081925; color: #fff; text-align: center; }
.geo-principle blockquote { max-width: 1100px; margin: 35px auto 80px; font-size: clamp(34px, 5vw, 76px); line-height: 1.08; letter-spacing: -.045em; font-weight: 600; }
.geo-principle-grid { display: grid; grid-template-columns: repeat(3, 1fr); text-align: left; border-top: 1px solid #ffffff20; }
.geo-principle-grid p { padding: 30px 28px 0; border-right: 1px solid #ffffff20; margin: 0; }
.geo-principle-grid b,
.geo-principle-grid span { display: block; }
.geo-principle-grid b { margin-bottom: 10px; }
.geo-principle-grid span { color: #aebac0; font-size: 11px; line-height: 1.6; }

.eng-decision-grid { display: grid; grid-template-columns: repeat(3, 1fr); background: #0a1b27; color: #fff; }
.eng-decision-grid article { min-height: 300px; padding: clamp(32px, 4vw, 58px); border-right: 1px solid #ffffff1b; border-bottom: 1px solid #ffffff1b; display: flex; flex-direction: column; }
.eng-decision-grid h3 { color: #fff; margin: auto 0 18px; font-size: clamp(23px, 2.5vw, 38px); letter-spacing: -.03em; }
.eng-decision-grid p { color: #b8c3c8; line-height: 1.7; font-size: 12px; margin: 0; }
.eng-project-story { grid-template-columns: .82fr 1.18fr; background: #f3f0e9; }
.eng-project-story > div p:not(.kicker) { color: var(--muted); line-height: 1.8; }
.eng-project-story ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; list-style: none; padding: 24px 0 0; }
.eng-project-story li { border-top: 1px solid var(--line); padding: 14px 0; color: #354550; font-size: 11px; line-height: 1.45; }
.eng-evidence { background: #fff; }
.eng-evidence .section-heading { max-width: 900px; margin-bottom: 65px; }
.eng-evidence-flow { display: flex; align-items: center; }
.eng-evidence-flow article { flex: 1; min-height: 160px; padding: 25px; background: #f4f1eb; border: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; }
.eng-evidence-flow article b { color: var(--copper); font-size: 9px; letter-spacing: .14em; }
.eng-evidence-flow article span { font-weight: 600; line-height: 1.4; }
.eng-evidence-flow > i { width: 28px; height: 1px; background: var(--copper); position: relative; flex: 0 0 28px; }
.eng-evidence-flow > i:after { content: ""; position: absolute; right: 0; top: -3px; width: 6px; height: 6px; border-top: 1px solid var(--copper); border-right: 1px solid var(--copper); transform: rotate(45deg); }

/* Technical leadership */
.leadership { background: #f3f0e9; }
.leadership-heading { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(42px, 7vw, 110px); align-items: start; }
.leadership-heading h2 { max-width: 950px; margin: 15px 0 28px; }
.leadership-heading .lead { max-width: 880px; }
.leadership-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(55px, 7vw, 100px); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.leadership-grid article { min-height: 520px; display: flex; flex-direction: column; padding: clamp(32px, 4vw, 58px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f8f6f1; }
.leadership-grid article.lead { background: #0a1b27; color: #fff; }
.leadership-grid .role { min-height: 34px; margin: 0; color: var(--copper); font-size: 9px; font-weight: 700; line-height: 1.5; letter-spacing: .15em; text-transform: uppercase; }
.leadership-grid h3 { margin: auto 0 24px; font-size: clamp(28px, 3vw, 45px); letter-spacing: -.035em; }
.leadership-grid article.lead h3 { color: #fff; }
.leadership-grid article > p:not(.role) { color: #59656d; font-size: 12px; line-height: 1.78; }
.leadership-grid article.lead > p:not(.role) { color: #bac5ca; }
.leadership-grid small { display: block; margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); color: #59656d; line-height: 1.55; }
.leadership-grid article.lead small { color: #d5dde0; border-color: #ffffff20; }
.leadership-story { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(42px, 7vw, 110px); margin-top: clamp(55px, 7vw, 95px); padding-top: 35px; border-top: 1px solid var(--line); }
.leadership-story > p { margin: 6px 0 0; color: var(--copper); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.leadership-story blockquote { max-width: 1050px; margin: 0; font-size: clamp(27px, 3.4vw, 49px); font-weight: 600; line-height: 1.18; letter-spacing: -.035em; }
.leadership > .full-link { margin-top: 30px; }
.certificate-actions { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 28px 0 8px; }
.certificate-actions + .text-button { margin-top: 18px; }
@media (max-width: 950px) {
  .certificate-downloads-heading { grid-template-columns: 1fr; gap: 28px; }
  .leadership-heading,
  .leadership-story { grid-template-columns: 1fr; gap: 28px; }
  .leadership-grid { grid-template-columns: 1fr; }
  .leadership-grid article { min-height: 420px; }
  .geo-intro,
  .eng-intro { grid-template-columns: 1fr; gap: 36px; }
  .geo-methods { grid-template-columns: 1fr 1fr; }
  .geo-field-story,
  .eng-project-story { grid-template-columns: 1fr; }
  .geo-field-story figure,
  .eng-project-story figure { min-height: 620px; }
  .eng-project-story > div { order: 2; }
  .eng-project-story figure { order: 1; }
  .eng-decision-grid { grid-template-columns: 1fr 1fr; }
  .eng-evidence-flow { display: grid; grid-template-columns: 1fr; }
  .eng-evidence-flow > i { width: 1px; height: 20px; margin-left: 28px; }
  .eng-evidence-flow > i:after { right: -3px; top: auto; bottom: 0; transform: rotate(135deg); }
  .field-intro,
  .lab-intro { grid-template-columns: 1fr; gap: 44px; }
  .field-editorial { grid-template-columns: 1fr; }
  .field-editorial-main { min-height: 590px; }
  .evidence-grid { min-height: 520px; }
  .lab-showcase { grid-template-columns: 1fr; }
  .lab-showcase-main { min-height: 600px; }
  .lab-showcase-stack { grid-template-columns: 1fr 1fr; grid-template-rows: 430px; }
  .lab-test-groups { grid-template-columns: 1fr; }
  .lab-test-groups h3 { min-height: 0; }
  .lab-quality { grid-template-columns: 1fr; }
  .lab-quality img { height: 600px; }
  .method-band ol {
    grid-template-columns: repeat(5, 1fr);
  }
  .method-band li {
    padding: 22px 12px;
    justify-content: center;
    flex-direction: column;
    align-items: flex-start;
  }
  .industry-browser {
    grid-template-columns: 1fr;
  }
  .industry-browser figure {
    height: 520px;
  }
  .quote-row.two {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 620px) {
  .certificate-grid { grid-template-columns: 1fr; }
  .certificate-grid a { min-height: 330px; }
  .leadership-grid article { min-height: 390px; padding: 32px 27px; }
  .leadership-grid .role { min-height: 0; }
  .geo-methods,
  .eng-decision-grid { grid-template-columns: 1fr; }
  .geo-methods article { min-height: 290px; }
  .geo-field-story figure,
  .eng-project-story figure { min-height: 480px; }
  .geo-principle blockquote { margin-bottom: 50px; }
  .geo-principle-grid { grid-template-columns: 1fr; }
  .geo-principle-grid p { border-right: 0; border-bottom: 1px solid #ffffff20; padding: 24px 0; }
  .eng-project-story ul { grid-template-columns: 1fr; }
  .field-facts li { grid-template-columns: 32px 90px 1fr; gap: 10px; }
  .field-editorial-main { min-height: 450px; }
  .evidence-heading { grid-template-columns: 1fr; }
  .evidence-heading p:last-child { margin-top: 18px; }
  .evidence-grid { grid-template-columns: 1fr; min-height: 0; }
  .evidence-grid figure { min-height: 390px; }
  .lab-showcase-main { min-height: 500px; }
  .lab-showcase-stack { grid-template-columns: 1fr; grid-template-rows: repeat(2, 430px); }
  .lab-quality img { height: 480px; }
  .lab-quality ul { grid-template-columns: 1fr; }
  .method-band {
    padding-bottom: 70px;
  }
  .method-band ol {
    grid-template-columns: 1fr;
  }
  .method-band li {
    flex-direction: row;
    justify-content: flex-start;
    padding: 18px 20px;
  }
  .industry-browser {
    min-height: 0;
  }
  .industry-browser figure {
    height: 380px;
  }
  .industry-list button {
    grid-template-columns: 1fr;
    gap: 7px;
    padding: 18px 20px;
  }
  .industry-list small { display: block; }
  .quote-row.two {
    grid-template-columns: 1fr;
  }
  .home-v3 .hero-copy {
    top: 47%;
    transform: translateY(-42%);
  }
  .home-v3 .hero-copy > p:last-of-type {
    line-height: 1.6;
  }
  .home-v3 .button {
    width: 100%;
    text-align: center;
  }
  .home-v3 .cta .button {
    width: auto;
  }
}
@media (max-width: 950px) {
  .lab-journey { grid-template-columns: 1fr; }
  .lab-enquiry { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 620px) {
  .lab-journey ol { grid-template-columns: 1fr; }
  .lab-journey li,
  .lab-journey li:first-child { padding: 20px 0 20px 26px; border-left: 0; border-top: 1px solid var(--line); }
  .lab-journey li::before,
  .lab-journey li:first-child::before { top: 25px; left: 0; }
}
