/* Headings: Playfair Display, self-hosted (2026-10-12, client requirement).
   Previously Playfair came only from Google Fonts, so any visitor whose
   browser could not reach fonts.googleapis/gstatic saw Georgia. One variable
   font file per subset covers weights 400-900.
   No paid or demo fonts are used: every heading stack is
   'Playfair Display', Georgia, serif. */
@font-face {
  font-family: 'Playfair Display';
  src: url('../fonts/playfair-display-latin.woff2') format('woff2');
  font-display: swap;
  font-style: normal;
  font-weight: 400 900;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  src: url('../fonts/playfair-display-latin-ext.woff2') format('woff2');
  font-display: swap;
  font-style: normal;
  font-weight: 400 900;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  src: url('../fonts/dm-sans-300.ttf') format('truetype');
  font-display: swap;
  font-style: normal;
  font-weight: 300;
}

@font-face {
  font-family: 'DM Sans';
  src: url('../fonts/dm-sans-400.ttf') format('truetype');
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: 'DM Sans';
  src: url('../fonts/dm-sans-500.ttf') format('truetype');
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}

body {
  font-family: Arial, sans-serif;
  color: #1a1a1a;
  overflow-x: hidden;
}

/* ==========================================================
   Industries landing page
   Source layout: JNV Industries landing design/PDF (1920px)
   ========================================================== */

.industries-page {
  --industries-gold: #9a7637;
  --industries-ink: #352b46;
  --industries-purple: #44295f;
  background: #fff;
}

.industries-site-header {
  position: relative;
  z-index: 20;
  background: #fff;
}

.industries-site-header .navbar .nav-link.active {
  color: var(--industries-gold);
}

.industries-hero {
  position: relative;
  min-height: clamp(34rem, 46.8vw, 56.2rem);
  overflow: hidden;
  background: #0d0d13;
}

.industries-hero__image {
  position: absolute;
  inset: -2% 0 0;
  width: 100%;
  height: 104%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  transform: translate3d(0, var(--industries-hero-shift, 0), 0) scale(1.015);
  will-change: transform;
}

.industries-hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7, 7, 12, 0.02) 30%, rgba(7, 6, 13, 0.8) 100%);
}

.industries-hero__content {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: clamp(2.75rem, 4.25vw, 5.1rem);
  left: 0;
}

.industries-hero__title {
  max-width: clamp(38rem, 49vw, 58.8rem);
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.35rem, 3.13vw, 3.76rem);
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.industries-breadcrumb {
  display: flex;
  align-items: center;
  min-height: clamp(4.25rem, 5.1vw, 6.1rem);
  background: var(--industries-gold);
}

.industries-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: clamp(0.65rem, 0.78vw, 0.94rem);
  margin: 0;
  padding: 0;
  list-style: none;
  color: #fff;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.95rem, 1.04vw, 1.25rem);
}

.industries-breadcrumb__list li + li::before {
  margin-right: clamp(0.65rem, 0.78vw, 0.94rem);
  content: "-";
}

.industries-breadcrumb__list a {
  color: inherit;
}

.industries-breadcrumb__list a:hover,
.industries-breadcrumb__list a:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.industry-sectors {
  padding: clamp(4.5rem, 6.15vw, 7.4rem) 0 clamp(5rem, 7.3vw, 8.75rem);
  overflow: hidden;
}

.industry-sectors__intro {
  max-width: 96rem;
  margin: 0 auto clamp(2.8rem, 4.15vw, 4.98rem);
  color: var(--industries-ink);
  font-size: clamp(2rem, 3.12vw, 3.75rem);
  font-weight: 400;
  line-height: 1.12;
  text-align: center;
  letter-spacing: -0.026em;
}

.industry-sectors__intro > span {
  display: block;
}

.industry-sectors__intro-line {
  color: #e1dfe1;
}

.industry-sectors__intro-word {
  display: inline-block;
  white-space: nowrap;
}

.industry-sectors__intro-character {
  display: inline;
  color: #e1dfe1;
  transition: color 560ms ease var(--industry-character-delay, 0ms);
}

.industry-sectors__intro.is-revealed .industry-sectors__intro-character {
  color: var(--industries-ink);
}

.industry-sectors__grid {
  --bs-gutter-x: clamp(1rem, 2.64vw, 2.25rem);
  width: 100%;
  max-width: 62.5rem;
  margin-right: auto;
  margin-left: auto;
}

.industry-card {
  position: relative;
  min-height: 25.25rem;
  overflow: hidden;
  border: 1px solid rgba(75, 63, 87, 0.16);
  border-radius: clamp(0.75rem, 1.25vw, 1.5rem);
  /* background: linear-gradient(132deg, #c8b5db 0%, #e8e1ef 26%, #faf9fb 51%, #fff 68%); */
  box-shadow: none;
  isolation: isolate;
}

.industry-card::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: url('../images/industry-card-curves.svg') center / 100% 100% no-repeat;
  content: "";
  pointer-events: none;
}

.industry-card:hover {
  transform: none;
  box-shadow: none;
}

.industry-card__copy {
  position: relative;
  z-index: 4;
  max-width: 80%;
  padding: clamp(1.6rem, 2.18vw, 2.6rem) 0 0 clamp(1.5rem, 2.08vw, 2.5rem);
}

.industry-card__copy h3 {
  margin-bottom: clamp(0.45rem, 0.52vw, 0.63rem);
  color: var(--industries-ink);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.25rem, 1.46vw, 1.75rem);
  font-weight: 400;
  letter-spacing: -0.02em;
}

.industry-card__copy p {
  max-width: 66%;
  color: #111;
 font: 300 clamp(.875rem, .9375vw, 1.125rem) / 1.3 'DM Sans', Arial, sans-serif !important;
  line-height: 1.35;
}

.industry-card__arrow {
  position: absolute;
  z-index: 5;
  top: clamp(1.55rem, 2.08vw, 2.5rem);
  right: clamp(1.25rem, 1.82vw, 2.18rem);
  display: grid;
  width: clamp(2.15rem, 2.54vw, 4.25rem);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid #8d682a;
  border-radius: 50%;
  color: #fff;
  background: #8d682a;
  transition: background-color 250ms ease, color 250ms ease, transform 250ms ease;
}

.industry-card__arrow svg {
  width: 44%;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

.industry-card__arrow:hover,
.industry-card__arrow:focus-visible {
  color: #8d682a;
  background: #fff;
  transform: translateX(0.2rem);
}

.industry-card__image {
  position: absolute;
  z-index: 2;
  right: -10%;
  bottom: -1%;
  width: 116%;
  max-width: none;
  mix-blend-mode: multiply;
  transform: translate3d(0, 0, 0);
  transition: transform 850ms cubic-bezier(.22, .7, .2, 1);
  will-change: transform;
}

.industry-card:hover .industry-card__image {
  transform: translate3d(-12%, 0, 0);
}

.industry-card__image--automotive {
  right: -43%;
  bottom: -5%;
  width: 110%;
}

.industry-card__image--railways {
  right: -45%;
  bottom: -5%;
  width: 118%;
}

.industry-card__image--aerospace {
  right: -18%;
  bottom: -5%;
  width: 96%;
}

.industry-products {
  position: relative;
  min-height: 23rem;
  padding: 4.25rem 0 2.75rem;
  overflow: hidden;
  color: #fff;
  background: #352b46;
}

.industry-products::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: url('../images/industry-products-curves.svg') center bottom / 100% 100% no-repeat;
  content: "";
  pointer-events: none;
}

.industry-products > .container {
  position: relative;
  z-index: 2;
}

.industry-products__title {
  color: #fff;
  font-size: clamp(2rem, 2.64vw, 2.25rem);
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: -0.025em;
}

.industry-products__list {
  position: relative;
  z-index: 2;
  margin-top: 0;
}

.industry-product {
  display: grid;
  grid-template-columns: 1rem 1fr;
  gap: 0.65rem;
  min-height: 4.8rem;
  padding: 0 1rem 1rem 0;
}

.industry-product__icon {
  display: block;
  width: 1rem;
  height: 1rem;
  margin-top: 0.12rem;
  color: #fff;
}

.industry-product__icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.industry-product h3 {
  margin-bottom: 0.25rem;
  color: #fff;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.25vw, 1.125rem);
  font-weight: 500;
  line-height: 1.3;
}

.industry-product p {
  max-width: 26rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.7rem, 0.84vw, 0.75rem);
  line-height: 1.4;
}

.industry-leaders {
  padding: clamp(5rem, 7.8vw, 9.4rem) 0 clamp(6rem, 9.6vw, 11.5rem);
  overflow: hidden;
  background: #fff;
}

.industry-leaders__heading h2 {
  margin-bottom: clamp(1.3rem, 1.82vw, 2.18rem);
  color: var(--industries-ink);
  font-size: clamp(2.15rem, 3.13vw, 3.75rem);
  letter-spacing: -0.025em;
}

.industry-leaders__heading p {
  color: #635e67;
  font-size: clamp(1rem, 1.15vw, 1.38rem);
  line-height: 1.55;
}

.industry-leaders__viewport {
  width: 100%;
  height: clamp(6rem, 9.22vw, 177px);
  margin: clamp(3.5rem, 5vw, 6rem) 0 0;
  overflow: hidden;
  border-top: 1px dashed rgba(126, 97, 49, 0.48);
  border-bottom: 1px dashed rgba(126, 97, 49, 0.48);
}

.industry-leaders__track {
  display: flex;
  width: 280%;
  height: 100%;
  animation: industry-leaders-scroll 23s linear infinite;
  will-change: transform;
}

.industry-leaders__viewport:hover .industry-leaders__track,
.industry-leaders__viewport:focus-within .industry-leaders__track {
  animation-play-state: paused;
}

.industry-leaders__set {
  display: grid;
  flex: 0 0 50%;
  height: 100%;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

@keyframes industry-leaders-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-50%, 0, 0);
  }
}

.industry-leaders__logo {
  display: grid;
  min-height: 0;
  height: 100%;
  padding: 1.5rem;
  place-items: center;
  border-right: 1px dashed rgba(126, 97, 49, 0.48);
}

.industry-leaders__logo:first-child {
  border-left: 1px dashed rgba(126, 97, 49, 0.48);
}

.industry-leaders__logo img {
  max-width: clamp(6rem, 8.5vw, 10.2rem);
  max-height: clamp(3rem, 4.2vw, 5rem);
  object-fit: contain;
  filter: saturate(0.9);
}

[data-industries-reveal] {
  opacity: 0;
  transform: translateY(1.75rem);
  transition:
    opacity 750ms cubic-bezier(.2, .75, .22, 1) var(--industries-reveal-delay, 0ms),
    transform 750ms cubic-bezier(.2, .75, .22, 1) var(--industries-reveal-delay, 0ms);
}

[data-industries-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1199.98px) {
  .industries-site-header .navbar-collapse {
    padding-top: 1rem;
  }

  .industry-products__list {
    margin-top: 0;
  }
}

/* ---------- Sitemap destination pages ---------- */
.sitemap-page {
  min-height: 100vh;
  background: #fff;
  color: #20182d;
}

.sitemap-site-header {
  position: relative;
  z-index: 20;
  background: #fff;
}

.sitemap-breadcrumb {
  border-bottom: 1px solid rgba(126, 97, 49, .35);
  background: #fff;
}

.sitemap-breadcrumb .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  min-height: 3.25rem;
  padding-top: .7rem;
  padding-bottom: .7rem;
  font-family: 'Inter', Arial, sans-serif;
  font-size: .9rem;
}

.sitemap-breadcrumb a {
  color: #7e6131;
  text-decoration: none;
}

.sitemap-breadcrumb a:hover,
.sitemap-breadcrumb a:focus-visible {
  text-decoration: underline;
}

.sitemap-page__hero {
  min-height: clamp(28rem, 42vw, 44rem);
  display: flex;
  align-items: center;
  padding: clamp(4rem, 9vw, 10rem) 0;
  background: linear-gradient(135deg, #f8f6fb 0%, #fff 58%, #f4efe7 100%);
}

.sitemap-page__eyebrow {
  margin: 0 0 1.15rem;
  color: #7e6131;
  font-family: 'Inter', Arial, sans-serif;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.sitemap-page__hero h1 {
  max-width: 100%;
  overflow-wrap: anywhere;
  margin: 0;
  color: #352b46;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.2rem, 5vw, 5rem);
  line-height: 1.08;
}

.sitemap-page__copy {
  max-width: 38rem;
  margin: 1.5rem 0 2rem;
  color: #3d3446;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.35vw, 1.35rem);
  line-height: 1.55;
}

@media (max-width: 991.98px) {
  .industries-hero {
    min-height: 35rem;
  }

  .industry-card {
    min-height: 31rem;
  }

  .industry-card__copy {
    max-width: 82%;
  }

  .industry-products__title br {
    display: block;
  }
}

@media (max-width: 767.98px) {
  .industries-hero {
    min-height: 31rem;
  }

  .industries-hero__image {
    object-position: 54% center;
  }

  .industries-hero__title {
    max-width: 100%;
    font-size: clamp(2rem, 10vw, 2.75rem);
    text-wrap: wrap;
  }

  .industry-sectors__intro {
    text-align: left;
  }

  .industry-card {
    min-height: min(34rem, 136vw);
  }

  .industry-card__copy {
    max-width: calc(100% - 4.5rem);
  }

  .industry-product {
    min-height: 0;
    padding-right: 0;
    padding-left: 0;
  }

  .industry-leaders__viewport {
    width: 100%;
    height: clamp(4rem, 11.5vw, 220px);
    margin-left: 0;
    margin-right: 0;
  }

  .industry-leaders__track {
    width: 154rem;
  }

  .industry-leaders__set {
    flex-basis: 77rem;
    grid-template-columns: repeat(7, 11rem);
  }
}

/* ---------- Contact Us page (Figma frame 206:858) ---------- */
.contact-page {
  overflow-x: hidden;
  background: #fff;
  color: #1a1814;
}

.contact-site-header {
  position: relative;
  z-index: 10;
  background: #fff;
}

.contact-hero {
  position: relative;
  height: clamp(34rem, 47.4vw, 56.875rem);
  min-height: 0;
  overflow: hidden;
  background: #100d1e;
}

.contact-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.contact-hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(53, 43, 70, .94) 0%, rgba(53, 43, 70, .2) 35%, rgba(53, 43, 70, 0) 62%);
}

.contact-hero__content {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  align-items: flex-end;
  padding-bottom: clamp(3.75rem, 8.7vw, 10.5rem);
}

.contact-hero h1 {
  margin: 0;
  color: #fff;
  font: 700 clamp(2.35rem, 3.125vw, 3.75rem)/1.06 'Playfair Display', Georgia, serif;
}

.contact-breadcrumb {
  min-height: var(--shared-breadcrumb-height);
  height: var(--shared-breadcrumb-height);
  display: flex;
  align-items: center;
  background: #7e6131;
  color: #fff;
  font: 300 clamp(.78rem, .9375vw, 1.125rem)/1 'DM Sans', Arial, sans-serif;
}

.contact-breadcrumb .container {
  display: flex;
  align-items: center;
  gap: clamp(.55rem, .8vw, 1rem);
}

.contact-breadcrumb a { color: inherit; text-decoration: none; }
.contact-breadcrumb a:hover, .contact-breadcrumb a:focus-visible { text-decoration: underline; }

.contact-enquiry {
  padding: clamp(4.5rem, 6.25vw, 7.5rem) 0 clamp(4rem, 5.2vw, 6.25rem);
  background: #fff;
}

.contact-enquiry__heading {
  --character-heading-muted: #dddcdc;
  max-width: min(61.4rem, 61.35vw);
  margin: 0 auto;
  color: #dddcdc;
  font: 700 clamp(2.25rem, 2.6vw, 3.125rem)/1.12 'Playfair Display', Georgia, serif;
  text-align: center;
}

.contact-enquiry__grid {
  width: min(90.1vw, 108.1rem);
  min-height: 38.875rem;
  margin: clamp(4rem, 5.4vw, 6.5rem) auto 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2.5rem, 4.2vw, 5rem);
  align-items: start;
}

.contact-office {
  min-height: 38.875rem;
  padding: clamp(2.5rem, 3.15vw, 3.78rem);
  border: 1px solid #352b46;
  border-radius: clamp(1.5rem, 1.93vw, 2.32rem);
  background: #352b46;
  color: #fff;
  -webkit-backdrop-filter: blur(30px);
  backdrop-filter: blur(30px);
}

.contact-office h3 {
  margin: 0 0 clamp(3rem, 5.5vw, 6.8rem);
  color: #ededf2;
  font: 700 clamp(2rem, 2.42vw, 2.9rem)/1 'Playfair Display', Georgia, serif;
  letter-spacing: .015em;
  text-transform: uppercase;
}

.contact-office__detail {
  display: grid;
  grid-template-columns: clamp(1.65rem, 1.61vw, 1.94rem) minmax(0, 1fr);
  gap: clamp(1rem, 1.29vw, 1.55rem);
  align-items: start;
}

.contact-office__detail + .contact-office__detail { margin-top: clamp(2.25rem, 3.35vw, 4rem); }

.contact-office__detail img {
  width: clamp(1.5rem, 1.61vw, 1.94rem);
  height: clamp(1.5rem, 1.61vw, 1.94rem);
  object-fit: contain;
}

.contact-office__detail span {
  display: block;
  margin-bottom: .2rem;
  font: 400 clamp(.85rem, .967vw, 1.16rem)/1.15 'Geist', 'DM Sans', Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.contact-office__detail p {
  margin: 0;
  color: #fff;
  font: 400 clamp(1rem, 1.21vw, 1.45rem)/1.4 'DM Sans', Arial, sans-serif;
}

.contact-enquiry__form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(1rem, 1.15vw, 1.38rem);
  row-gap: clamp(1.25rem, 1.65vw, 2rem);
  padding-top: clamp(.25rem, .9vw, 1rem);
}

.contact-enquiry__field { min-width: 0; }
.contact-enquiry__field--message { grid-column: 1 / -1; }

.contact-enquiry__field label {
  display: block;
  margin: 0 0 clamp(.5rem, .67vw, .8rem);
  color: #1a1814;
  font: 500 clamp(1rem, 1.15vw, 1.375rem)/1.17 'DM Sans', Arial, sans-serif;
}

.contact-enquiry__field input,
.contact-enquiry__field textarea {
  display: block;
  width: 100%;
  border: 1px solid rgba(28, 24, 20, .12);
  border-radius: clamp(.8rem, 1vw, 1.2rem);
  background: #fff;
  color: #1a1814;
  font: 400 clamp(.9rem, 1.04vw, 1.25rem)/1.4 'DM Sans', Arial, sans-serif;
}

.contact-enquiry__field input {
  height: clamp(3.5rem, 3.9vw, 4.68rem);
  padding: 0 clamp(1rem, 1.39vw, 1.67rem);
}

.contact-enquiry__field textarea {
  height: clamp(10rem, 10.73vw, 12.875rem);
  padding: clamp(1rem, 1.06vw, 1.27rem) clamp(1rem, 1.39vw, 1.67rem);
  resize: vertical;
}

.contact-enquiry__field input::placeholder,
.contact-enquiry__field textarea::placeholder { color: #7a7160; opacity: 1; }
.contact-enquiry__field input:focus,
.contact-enquiry__field textarea:focus { outline: 2px solid rgba(126, 97, 49, .32); outline-offset: 2px; }

.contact-enquiry__submit {
  grid-column: 1 / -1;
  width: clamp(11rem, 11.15vw, 13.375rem);
  height: clamp(2.8rem, 2.66vw, 3.2rem);
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 1.2rem;
  border: 1px solid #7e6131;
  border-radius: 4px;
  background: #fff;
  color: #7e6131;
  font: 500 clamp(.85rem, 1.04vw, 1.25rem)/1 'DM Sans', Arial, sans-serif;
  transition: background-color .25s ease, color .25s ease;
}

.contact-enquiry__submit:hover,
.contact-enquiry__submit:focus-visible { background: #7e6131; color: #fff; }
.contact-enquiry__submit img { width: 1rem; height: auto; margin-left: auto; }
.contact-enquiry__submit-divider { width: 1px; height: 82%; margin-left: auto; margin-right: .7rem; background: #7e6131; }
.contact-enquiry__submit:hover .contact-enquiry__submit-divider,
.contact-enquiry__submit:focus-visible .contact-enquiry__submit-divider { background: #fff; }
.contact-enquiry__submit:hover img,
.contact-enquiry__submit:focus-visible img { filter: brightness(0) invert(1); }
.contact-enquiry__note { grid-column: 1 / -1; margin: -.75rem 0 0; color: #7e6131; font-size: .9rem; }

.contact-map {
  position: relative;
  height: clamp(30rem, 38.75vw, 46.5rem);
  overflow: hidden;
  background: #d7d7d7;
}

.contact-map__image {
  position: absolute;
  top: -2.63%;
  left: -29.135%;
  width: 158.27%;
  height: 122.29%;
  max-width: none;
  object-fit: cover;
}

.contact-map__pulse {
  position: absolute;
  top: 43.8%;
  left: 34.1%;
  width: clamp(7rem, 13.18vw, 15.8rem);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}

.contact-map__pulse img { position: absolute; inset: 0; width: 100%; height: 100%; transform-origin: center; }
.contact-map__pulse img:nth-child(1) { animation: contact-map-pulse-outer 3s ease-in-out infinite; }
.contact-map__pulse img:nth-child(2) { animation: contact-map-pulse-mid 3s ease-in-out .15s infinite; }
.contact-map__pulse img:nth-child(3) { animation: contact-map-pulse-dot 3s ease-in-out .3s infinite; }
@keyframes contact-map-pulse-outer {
  0%, 50%, 100% { opacity: 1; transform: scale(1); }
  25% { opacity: .45; transform: scale(1.16); }
}
@keyframes contact-map-pulse-mid {
  0%, 50%, 100% { opacity: 1; transform: scale(1); }
  25% { opacity: .55; transform: scale(1.12); }
}
@keyframes contact-map-pulse-dot {
  0%, 50%, 100% { opacity: 1; transform: scale(1); }
  25% { opacity: .7; transform: scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .contact-map__pulse img { animation: none; }
}
.contact-map__marker { position: absolute; right: 4.7%; bottom: 3.8%; width: clamp(4.5rem, 5.26vw, 6.31rem); height: auto; }

.contact-faq {
  width: min(90.5vw, 108.75rem);
  margin: clamp(4.5rem, 6.25vw, 7.5rem) auto clamp(5rem, 6.25vw, 7.5rem);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(25rem, .78fr);
  gap: clamp(3rem, 6vw, 7rem);
  align-items: start;
}

.contact-faq__questions h2 {
  margin: 0 0 clamp(2rem, 3.1vw, 3.75rem);
  color: #352b46;
  font: 700 clamp(2.25rem, 2.6vw, 3.125rem)/1.1 'Playfair Display', Georgia, serif;
}

.contact-faq__list { border-top: 0; }
.contact-faq__row {
  width: 100%;
  min-height: clamp(4.5rem, 6.05vw, 7.125rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(1.5rem, 2.23vw, 2.67rem) 0;
  border: 0;
  border-bottom: 1px solid #d1cbc3;
  background: transparent;
  color: #1a1a1a;
  text-align: left;
  font: 400 clamp(1rem, 1.56vw, 1.875rem)/1.25 'DM Sans', Arial, sans-serif;
  cursor: pointer;
}

.contact-faq__row img { flex: 0 0 auto; width: clamp(1.5rem, 1.67vw, 2rem); height: auto; transition: transform .25s ease; }
.contact-faq__row:hover, .contact-faq__row:focus-visible { color: #7e6131; }
.contact-faq__row:hover img, .contact-faq__row:focus-visible img { transform: translateX(.3rem); }
/* The closed question rows retain their original geometry. Only an opened
   row wraps its CMS answer beneath the existing question and arrow. */
.contact-faq__row.is-open { flex-wrap: wrap; }
.contact-faq__question { min-width: 0; }
.contact-faq__row.is-open .contact-faq__answer {
  flex: 0 0 100%;
  margin-top: clamp(.75rem, 1vw, 1.2rem);
  color: #1a1a1a;
  font: 300 clamp(.95rem, 1.04vw, 1.25rem)/1.45 'DM Sans', Arial, sans-serif;
}

.contact-faq__art {
  height: clamp(30rem, 35.94vw, 43.125rem);
  overflow: hidden;
}

.contact-faq__art img {
  display: block;
  width: 107%;
  height: auto;
  margin-top: 13.55%;
  margin-left: -3.5%;
}

@media (max-width: 991.98px) {
  .contact-enquiry__grid { width: min(92vw, 52rem); grid-template-columns: 1fr; }
  .contact-office { min-height: 0; }
  .contact-office h3 { margin-bottom: 3rem; }
  .contact-faq { width: min(92vw, 52rem); grid-template-columns: 1fr; }
  .contact-faq__art { max-width: 42rem; width: 100%; margin: 1rem auto 0; }
}

@media (max-width: 575.98px) {
  .contact-hero { height: 35rem; }
  .contact-hero__content { padding-bottom: 3rem; }
  .contact-hero h1 { font-size: clamp(2.2rem, 9vw, 3rem); }
  .contact-breadcrumb { height: 3.25rem; min-height: 3.25rem; }
  .contact-enquiry { padding-top: 3.5rem; }
  .contact-enquiry__heading { max-width: 92vw; font-size: clamp(1.8rem, 7.6vw, 2.45rem); }
  .contact-enquiry__grid { margin-top: 3rem; }
  .contact-enquiry__form { grid-template-columns: 1fr; }
  .contact-enquiry__field--message,
  .contact-enquiry__submit,
  .contact-enquiry__note { grid-column: 1; }
  .contact-map { height: 25rem; }
  .contact-map__image { left: -72%; width: 245%; }
  .contact-map__pulse { top: 48%; left: 38%; width: 9rem; }
  .contact-map__marker { right: 6%; bottom: 5%; width: 4.5rem; }
  .contact-faq { margin-top: 3.5rem; margin-bottom: 4rem; }
  .contact-faq__questions h2 { font-size: clamp(2rem, 8vw, 2.6rem); }
  .contact-faq__row { font-size: 1rem; }
  .contact-faq__art { height: 19rem; }
}

@media (min-width: 992px) {
  .awards-page .awards-hero {
    height: min(52.65625vw, 1011px) !important;
  }

  .awards-page .awards-hero__image {
    top: -81.8%;
    left: -18.77%;
    width: 148.66%;
    height: 188.23%;
  }

  .awards-page .awards-hero__content.container {
    max-width: none;
    padding-right: 4.895833vw;
    padding-bottom: 7.604167vw;
    padding-left: 4.895833vw;
  }

  .awards-page .awards-breadcrumb {
    height: 52px !important;
    min-height: 52px !important;
  }

  .awards-page .awards-breadcrumb .container {
    max-width: none;
    padding-right: 4.895833vw;
    padding-left: 4.895833vw;
  }
}

@media (prefers-reduced-motion: reduce) {
  .industries-hero__image,
  .industry-card,
  .industry-card__image,
  .industry-leaders__track,
  [data-industries-reveal] {
    transition: none;
    transform: none;
  }

  .industry-leaders__track {
    animation: none;
  }

  .expertise-carousel__slide,
  .expertise-carousel__caption {
    transition: none;
  }

  .industry-sectors__intro-character,
  .industry-sectors__intro.is-revealed .industry-sectors__intro-character {
    color: var(--industries-ink);
    transition: none;
  }
}

h1, h2, h3, h4, p {
  margin: 0;
}

a {
  text-decoration: none;
}

img {
  max-width: 100%;
}

/* ==========================================================
   Fluid scaling system
   The Figma design is authored at a 1920px reference width.
   Every size below that varies with viewport (type, spacing,
   gaps, component/image sizes) uses:
     clamp(MIN, (px-at-1920 / 19.2)vw, px-at-1920 px)
   so the whole page scales down in the same proportion as the
   design at any width below 1920, instead of snapping between
   fixed values at Bootstrap's breakpoints. MIN is a floor so
   text/spacing never gets illegibly small on very narrow phones.
   ========================================================== */

h1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.5rem, 3.13vw, 60.17px);
  line-height: 1.25;
}

h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.375rem, 2.6vw, 50px);
  line-height: 1.25;
}

h3 {
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 500;
  font-size: clamp(1.125rem, 2.08vw, 40px);
  line-height: 1.3;
}

h4 {
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 500;
  font-size: clamp(1rem, 1.04vw, 20px);
  line-height: 1.3;
}

p {
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 400;
  font-size: clamp(1rem, 1.15vw, 22px);
  line-height: 1.5;
}

.section-heading {
  font-family: 'Playfair Display', Georgia, serif;
  color: #352b46;
}

.section-copy {
  color: #666;
}

.character-heading__word {
  display: inline-block;
  white-space: nowrap;
}

.character-heading__character {
  color: var(--character-heading-muted, #dddcdc);
}

.section-pad {
  padding-top: clamp(3rem, 6.25vw, 120px);
  padding-bottom: clamp(3rem, 6.25vw, 120px);
}

/* Override Bootstrap's stepped container max-widths (540/720/960/1140/1320px)
   with one fluid rule so content width scales continuously with the
   viewport instead of jumping between fixed breakpoint values. This rule
   has the same specificity as Bootstrap's but is unconditional and loads
   after bootstrap.min.css, so it wins the cascade at every width. */
.container {
  width: 100%;
  max-width: 1728px;
  padding-left: clamp(1rem, 4.91vw, 6rem);
  padding-right: clamp(1rem, 4.91vw, 6rem);
}

.gold-btn {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.5rem, 0.78vw, 15px);
  padding: clamp(0.6rem, 0.78vw, 15px) clamp(1rem, 1.4vw, 27px);
  border: 1px solid #7e6131;
  border-radius: 4px;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.85rem, 0.83vw, 16px);
  font-weight: 500;
  color: #7e6131;
  background: transparent;
  white-space: nowrap;
}

.gold-btn img {
  width: clamp(0.75rem, 0.78vw, 15px);
  height: auto;
  display: block;
}

.gold-btn:hover,
.gold-btn:focus-visible {
  background: #7e6131;
  color: #fff;
}

.gold-btn:hover img,
.gold-btn:focus-visible img {
  filter: brightness(0) invert(1);
}

/* ============ Navbar (existing) ============ */

.navbar {
  border-bottom: 1px solid #7e6131;
}

.navbar__logo {
  display: block;
  height: clamp(2.5rem, 3.54vw, 68px);
  width: auto;
}

.navbar__nav {
  gap: clamp(0.5rem, 0.83vw, 16px);
}

@media (min-width: 1400px) {
  .navbar__nav {
    gap: clamp(1rem, 2.08vw, 40px);
  }
}

.navbar .nav-link {
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.95rem, 1.04vw, 20px);
  font-weight: 400;
  color: #000;
  padding: 0;
  white-space: nowrap;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
  color: #7e6131;
}

/* Shared sitemap dropdown navigation. The same menu markup is used on every
   page; Bootstrap handles the collapse/dropdown state on desktop and mobile. */
.navbar .dropdown-toggle::after {
  margin-left: .4em;
  vertical-align: .16em;
  border-top-width: .32em;
  border-right-width: .32em;
  border-left-width: .32em;
}

.navbar .dropdown-menu {
  min-width: 16rem;
  margin-top: .75rem;
  padding: .45rem 0;
  border: 1px solid rgba(126, 97, 49, .35);
  border-radius: 0;
  box-shadow: 0 14px 30px rgba(24, 18, 32, .12);
}

.navbar .dropdown-item {
  padding: .55rem 1rem;
  color: #20182d;
  font-family: 'Inter', Arial, sans-serif;
  font-size: .9rem;
  line-height: 1.25;
  white-space: normal;
}

.navbar .dropdown-item:hover,
.navbar .dropdown-item:focus,
.navbar .dropdown-item.active {
  color: #7e6131;
  background: rgba(126, 97, 49, .08);
}

.navbar .nav-link.active {
  color: #7e6131;
}

/* Bootstrap-compatible layout fallbacks keep the shared header usable when
   the CDN stylesheet is unavailable (and make the menu consistent on every
   sitemap destination page). */
.navbar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.navbar > .container {
  display: flex;
  flex-wrap: inherit;
  align-items: center;
  justify-content: space-between;
}

.navbar-brand {
  display: inline-block;
  padding-top: .3125rem;
  padding-bottom: .3125rem;
  margin-right: 1rem;
  text-decoration: none;
  white-space: nowrap;
}

.navbar-collapse {
  flex-basis: 100%;
  flex-grow: 1;
  align-items: center;
}

.navbar-nav {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-top: 0;
  margin-bottom: 0;
  list-style: none;
}

.navbar-nav .nav-item { list-style: none; }
.navbar-nav .nav-link { display: block; text-decoration: none; }
.navbar-toggler {
  padding: .25rem .75rem;
  font-size: 1.25rem;
  line-height: 1;
  color: #20182d;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: .375rem;
}
.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  background: linear-gradient(#20182d 0 0) top/100% 2px no-repeat,
              linear-gradient(#20182d 0 0) center/100% 2px no-repeat,
              linear-gradient(#20182d 0 0) bottom/100% 2px no-repeat;
}
.navbar .dropdown-menu { display: none; }
.navbar .dropdown.show > .dropdown-menu,
.navbar .dropdown-menu.show,
.navbar .nav-item.dropdown.is-open > .dropdown-menu { display: block; }

@media (min-width: 1200px) {
  .navbar-expand-xl .navbar-collapse { display: flex !important; flex-basis: auto; }
  .navbar-expand-xl .navbar-toggler { display: none; }
  .navbar-expand-xl .navbar-nav { flex-direction: row; }
}

@media (max-width: 1199.98px) {
  .navbar-expand-xl .navbar-toggler { display: block !important; margin-left: auto; }
  .navbar-collapse:not(.show) { display: none; }
  .navbar-collapse.show { display: flex; }
  .navbar-collapse.show .navbar-nav { width: 100%; }
}

@media (max-width: 1199.98px) {
  .navbar .dropdown-menu {
    min-width: 0;
    margin-top: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
  }

  .navbar .dropdown-item {
    padding: .45rem 1rem .45rem 1.75rem;
  }
}

.navbar__cta {
  display: inline-flex;
  align-items: center;
  position: relative;
  width: clamp(8.5rem, 10.55vw, 12.66rem);
  height: clamp(2.25rem, 2.664vw, 3.196rem);
  padding: 0;
  border: 1px solid #7e6131;
  border-radius: 4px;
  background: #fff;
  text-decoration: none;
}

.navbar__cta:hover,
.navbar__cta:focus-visible {
  border-color: #7e6131;
  background: #fff;
}

.navbar__cta span {
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.95rem, 1.04vw, 20px);
  font-weight: 500;
  color: #7e6131;
  white-space: nowrap;
}

.navbar__cta > span:first-child {
  position: absolute;
  top: 27.46%;
  left: 11.88%;
  width: 53.95%;
  line-height: 1.2;
}

.navbar__cta-divider {
  position: absolute;
  top: 9.8%;
  left: 77.09%;
  width: 1px;
  height: 82.34%;
  margin: 0;
  background-color: #7e6131;
}

.navbar__cta img {
  position: absolute;
  top: 53%;
  left: 81.77%;
  display: block;
  width: clamp(1.25rem, 1.539vw, 1.847rem);
  height: auto;
  transform: translateY(-50%);
}

/* ============ Hero (existing) ============ */

.hero {
  aspect-ratio: 1920 / 1056;
  overflow: hidden;
}

.hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Keep the banner video's top edge visible while preserving the hero crop. */
.hero__video {
  object-position: center top;
}

.hero__sound-toggle {
  position: absolute;
  right: clamp(1rem, 3.5vw, 3.5rem);
  bottom: clamp(1rem, 3.5vw, 3.5rem);
  z-index: 3;
  display: grid;
  width: clamp(2.5rem, 3.2vw, 3.25rem);
  height: clamp(2.5rem, 3.2vw, 3.25rem);
  place-items: center;
  padding: 0;
  color: #fff;
  background: rgba(53, 43, 70, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  cursor: pointer;
  transition: background-color 180ms ease, transform 180ms ease;
}

.hero__sound-toggle:hover,
.hero__sound-toggle:focus-visible {
  background: #7e6131;
  transform: scale(1.06);
}

.hero__sound-toggle:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.hero__sound-icon {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.hero__sound-icon--on {
  display: none;
}

.hero__sound-toggle[aria-pressed="true"] .hero__sound-icon--muted {
  display: none;
}

.hero__sound-toggle[aria-pressed="true"] .hero__sound-icon--on {
  display: block;
}

.hero__overlay {
  height: 46.5%;
  background: linear-gradient(to top, #352b46 16%, rgba(53, 43, 70, 0) 100%);
}

.hero__container {
  padding-left: clamp(1rem, 4.91vw, 6rem);
  padding-right: clamp(1rem, 4.91vw, 6rem);
}

.hero__heading {
  max-width: 60%;
  color: #fff;
}

/* ============ Expertise intro + Figma card carousel ============ */

.expertise > .container {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.expertise {
  padding-bottom: 0;
}

.expertise__heading {
  width: min(1257px, 65.5vw);
  max-width: calc(100% - 2rem);
  margin: 0 auto;
  font-size: clamp(1.75rem, 2.604vw, 50px);
  line-height: 1.2;
  text-align: center;
}

.typewriter-word {
  display: inline-block;
  white-space: nowrap;
}

.typewriter-letter {
  opacity: 0;
  transition: opacity 0.15s ease-out;
}

.typewriter-letter.is-visible {
  opacity: 1;
}

.expertise-carousel {
  position: relative;
  width: 100%;
  margin-top: clamp(2rem, 4.58vw, 88px);
}

.expertise-overview__carousel .expertise-carousel__slide {
  display: block;
  color: inherit;
  text-decoration: none;
}

.expertise-overview__carousel .expertise-card {
  position: absolute;
  aspect-ratio: auto;
}

/* The original expertise cards use negative stacking layers in the grid.
   The carousel transforms each slide, so keep those layers inside the slide
   while ensuring the card image and content remain visible. */
.expertise-overview__carousel .expertise-card > img {
  z-index: 0;
}

.expertise-overview__carousel .expertise-card__shade {
  z-index: 1;
}

.expertise-overview__carousel .expertise-card__copy,
.expertise-overview__carousel .expertise-card__arrow {
  z-index: 2;
}

.expertise-overview__carousel .expertise-card__arrow > img {
  position: static;
  width: 48%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  filter: brightness(0) invert(1);
  transform: none;
}

.expertise-carousel__viewport {
  position: relative;
  width: min(1564px, 81.5vw);
  aspect-ratio: 1564 / 557.037;
  margin: 0 auto;
  transform: translateX(clamp(0px, 0.15625vw, 3px));
}

.expertise-carousel__slide {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 16.75%;
  height: 70.2%;
  margin: 0;
  border-radius: clamp(18px, 1.43125vw, 27.48px);
  overflow: hidden;
  background: #f7f7f7;
  box-shadow: 0 clamp(5px, 0.4167vw, 8px) clamp(16px, 1.25vw, 24px) calc(-0.2083vw) rgba(0, 0, 0, 0.35);
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: top 650ms cubic-bezier(0.22, 0.61, 0.36, 1), left 650ms cubic-bezier(0.22, 0.61, 0.36, 1), width 650ms cubic-bezier(0.22, 0.61, 0.36, 1), height 650ms cubic-bezier(0.22, 0.61, 0.36, 1), filter 500ms ease, opacity 500ms ease;
}

/* During a loop the edge card travels across the carousel underneath the
   other cards, matching the Figma interaction instead of crossing over them. */
.expertise-carousel__slide.is-wrapping {
  z-index: 0 !important;
}

.expertise-carousel__slide--hidden {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.expertise-carousel__slide--left {
  left: 0.13%;
  top: 8.92%;
  width: 16.75%;
  height: 70.2%;
}

.expertise-carousel__slide--near-left {
  left: 19.014%;
  top: 3.6%;
  width: 18.879%;
  height: 78.78%;
}

.expertise-carousel__slide--active {
  z-index: 4;
  left: 39.7%;
  top: 0.27%;
  width: 20.46%;
  height: 85.39%;
  filter: blur(0);
  opacity: 1;
}

.expertise-carousel__slide--near-right {
  left: 62.29%;
  top: 3.69%;
  width: 18.91%;
  height: 79.24%;
}

.expertise-carousel__slide--right {
  left: 83.04%;
  top: 7.83%;
  width: 16.85%;
  height: 70.7%;
}

.expertise-carousel__slide img {
  position: relative;
  top: auto;
  left: auto;
  width: 100%;
  height: 100%;
  max-width: 100%;
  display: block;
  object-fit: cover;
  filter: none;
  transform: none;
}

/* The Figma component uses a contained hero image and a deliberate zoomed
   crop for the adjacent CAD card. Keeping those treatments per slot avoids
   stretching the source exports while the cards move through the carousel. */
.expertise-carousel__slide--active img {
  object-fit: contain;
}

.expertise-carousel__slide--near-left img {
  position: absolute;
  top: -11.5%;
  left: -1.45%;
  width: 102.91%;
  height: 123%;
  max-width: none;
  object-fit: fill;
}

.expertise-carousel__slide--left img,
.expertise-carousel__slide--right img {
  filter: none;
  transform: scale(1.012);
}

.expertise-carousel__slide--near-left img,
.expertise-carousel__slide--near-right img {
  filter: none;
}

.expertise-carousel__caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: 20.82%;
  padding: clamp(0.65rem, 1.284vw, 24.64px) clamp(0.65rem, 0.739vw, 14.183px) 0.5rem;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9));
  color: #fff;
  box-shadow: 0 clamp(5px, 0.4167vw, 8px) clamp(16px, 1.25vw, 24px) 0 rgba(0, 0, 0, 0.35);
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.75rem, 1.04vw, 20px);
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
  opacity: 1;
  transition: filter 500ms ease, opacity 400ms ease;
}

.expertise-carousel__slide--active .expertise-carousel__caption {
  opacity: 1;
  filter: none;
}

/* The displayed Figma variant softens inactive labels while preserving the
   exact vertical rhythm of each slot's overlay. */
.expertise-carousel__slide--left .expertise-carousel__caption {
  min-height: 26.96%;
  padding-top: clamp(1.5rem, 3.055vw, 58.64px);
  filter: none;
}

.expertise-carousel__slide--near-left .expertise-carousel__caption {
  min-height: 20.88%;
  padding-top: clamp(0.85rem, 1.336vw, 25.64px);
  filter: none;
}

.expertise-carousel__slide--near-right .expertise-carousel__caption {
  min-height: 16.12%;
  padding-top: clamp(0.55rem, 0.554vw, 10.64px);
  filter: none;
}

.expertise-carousel__slide--right .expertise-carousel__caption {
  min-height: 20.82%;
  padding-top: clamp(1rem, 1.804vw, 34.64px);
  filter: none;
}

.expertise-carousel__controls {
  position: absolute;
  z-index: 5;
  left: 44.5%;
  right: auto;
  bottom: 0;
  display: flex;
  justify-content: center;
  gap: clamp(1rem, 1.35vw, 25.92px);
}

.expertise-carousel__btn {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(2.75rem, 3.335vw, 64.036px);
  height: clamp(1.5rem, 1.668vw, 32.018px);
  border: none;
  background: transparent;
  padding: 0;
  line-height: 0;
  cursor: pointer;
}

.expertise-carousel__btn img {
  position: absolute;
  top: -46.88%;
  left: .21%;
  width: 99.79%;
  height: 200%;
  max-width: none;
  object-fit: fill;
}

.expertise-carousel__btn--next img {
  transform: rotate(180deg);
}

/* ==========================================================
   HOME PAGE — local XAMPP corrective rules
   These rules are intentionally scoped to .home-page so shared Expertise,
   Industry and form components on the remaining routes remain unchanged.
   ========================================================== */

/* The home carousel keeps its depth/overlay treatment but never blurs the
   source image or caption while a card is inactive or moving. */
.home-page .expertise-carousel__slide,
.home-page .expertise-carousel__slide img,
.home-page .expertise-carousel__slide .expertise-carousel__caption {
  filter: none;
}

.home-page .expertise-carousel__slide--left img,
.home-page .expertise-carousel__slide--right img,
.home-page .expertise-carousel__slide--near-left img,
.home-page .expertise-carousel__slide--near-right img {
  filter: none;
}

.home-page .expertise-carousel__slide--left .expertise-carousel__caption,
.home-page .expertise-carousel__slide--near-left .expertise-carousel__caption,
.home-page .expertise-carousel__slide--near-right .expertise-carousel__caption,
.home-page .expertise-carousel__slide--right .expertise-carousel__caption {
  filter: none;
}

/* The Railways file is 16:9. The old artboard was 24px shorter at 1920px,
   so the accordion's overflow clip removed the bottom of the video. */
@media (min-width: 992px) {
  .home-page .accordion-industries__panel-inner--media {
    height: min(29.115vw, 559px);
  }

  .home-page .accordion-industries__image {
    aspect-ratio: 16 / 9;
    object-fit: contain;
    object-position: center;
  }
}

/* Smart Factories: the Industry 4.0 section intentionally shares the exact
   Engineering Solutions slider geometry. The sf-capabilities hook remains
   for CMS schema and page-level targeting, without inheriting the retired
   Smart Factories carousel layout. */
.smart-factories-page .sf-capabilities.expertise-internal-technology {
  height: min(54.53vw, 65.44rem);
  min-height: 44rem;
  padding-top: clamp(4rem, 4.74vw, 5.7rem);
  padding-bottom: 0;
  overflow: hidden;
  background: #fff;
}

.smart-factories-page .sf-capabilities .expertise-internal-heading h2 {
  margin: 0;
  color: #352b46;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 2.8vw, 3.4rem);
  font-weight: 400;
  line-height: 1.1;
}

.smart-factories-page .sf-capabilities .expertise-internal-heading p {
  max-width: min(60vw, 56.625rem);
  margin: clamp(0.5rem, 0.83vw, 1rem) auto 0;
  color: #393939;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.82rem, 0.94vw, 1.125rem);
  font-weight: 300;
  line-height: 1.35;
}

@media (max-width: 991.98px) {
  .smart-factories-page .sf-capabilities.expertise-internal-technology {
    height: auto;
    min-height: 48rem;
    padding: clamp(4rem, 4.74vw, 5.7rem) 0 3rem;
  }
}

@media (max-width: 767.98px) {
  .smart-factories-page .sf-capabilities.expertise-internal-technology {
    min-height: 0;
  }
}

/* One shared Home-page CTA system. Each variant retains its existing layout
   (compact header/form, wide section button, or text link) while sharing the
   same colour timing, focus treatment, and arrow motion. */
.home-page .navbar__cta,
.home-page .gold-btn,
.home-page .legacy__cta,
.home-page .sustainability__cta,
.home-page .contact__submit {
  --home-cta-gold: #7e6131;
  transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease, transform 220ms ease;
}

.home-page .gold-btn,
.home-page .legacy__cta,
.home-page .sustainability__cta,
.home-page .contact__submit {
  color: var(--home-cta-gold);
  border-color: var(--home-cta-gold);
  background-color: #fff;
  text-decoration: none;
}

.home-page .gold-btn:hover,
.home-page .gold-btn:focus-visible,
.home-page .legacy__cta:hover,
.home-page .legacy__cta:focus-visible,
.home-page .sustainability__cta:hover,
.home-page .sustainability__cta:focus-visible,
.home-page .contact__submit:hover,
.home-page .contact__submit:focus-visible {
  color: #fff;
  border-color: var(--home-cta-gold);
  background-color: var(--home-cta-gold);
}

.home-page .gold-btn img,
.home-page .legacy__cta img,
.home-page .sustainability__cta img,
.home-page .contact__submit img,
.home-page .navbar__cta img {
  transition: filter 220ms ease, transform 220ms ease;
}

.home-page .gold-btn:hover img,
.home-page .gold-btn:focus-visible img,
.home-page .sustainability__cta:hover img,
.home-page .sustainability__cta:focus-visible img,
.home-page .contact__submit:hover img,
.home-page .contact__submit:focus-visible img {
  filter: brightness(0) invert(1);
  transform: translateX(0.18rem);
}

/* These two arrows are vertically centred with an existing translateY.
   Preserve that centring while applying the common horizontal hover nudge. */
.home-page .legacy__cta:hover img,
.home-page .legacy__cta:focus-visible img,
.home-page .contact__submit:hover img,
.home-page .contact__submit:focus-visible img,
.home-page .navbar__cta:hover img,
.home-page .navbar__cta:focus-visible img {
  filter: brightness(0) invert(1);
  transform: translate(0.18rem, -50%);
}

.home-page .legacy__cta:hover::after,
.home-page .legacy__cta:focus-visible::after,
.home-page .sustainability__cta:hover .sustainability__cta-divider,
.home-page .sustainability__cta:focus-visible .sustainability__cta-divider,
.home-page .contact__submit:hover .contact__submit-divider,
.home-page .contact__submit:focus-visible .contact__submit-divider {
  background-color: #fff;
}

.home-page .navbar__cta:focus-visible,
.home-page .gold-btn:focus-visible,
.home-page .legacy__cta:focus-visible,
.home-page .sustainability__cta:focus-visible,
.home-page .contact__submit:focus-visible,
.home-page .ecosystem__view-all:focus-visible {
  outline: 2px solid var(--home-cta-gold);
  outline-offset: 3px;
}

.home-page .ecosystem__view-all {
  transition: color 220ms ease, transform 220ms ease;
}

.home-page .ecosystem__view-all:hover,
.home-page .ecosystem__view-all:focus-visible {
  color: #352b46;
  transform: translateX(-0.18rem);
}

/* Home CTA structure: every primary Home action uses the same labelled,
   divided-arrow control. Its surrounding section still owns placement only. */
.home-page .home-primary-cta {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: clamp(10.75rem, 11.174vw, 214.543px);
  min-width: clamp(10.75rem, 11.174vw, 214.543px);
  height: clamp(2.55rem, 2.663vw, 51.129px);
  min-height: clamp(2.55rem, 2.663vw, 51.129px);
  padding: 0 !important;
  border: 1px solid #7e6131;
  border-radius: 4px;
  background: #fff;
  color: #7e6131;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.044vw, 20.05px);
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
}

.home-page .home-primary-cta > .home-primary-cta__label {
  position: static;
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  width: auto;
  height: 100%;
  margin: 0;
  padding: 0 0 0 clamp(.75rem, .89vw, 17.09px);
  color: inherit;
  font: inherit;
  line-height: 1;
  white-space: nowrap;
}

.home-page .home-primary-cta > .home-primary-cta__divider {
  position: static;
  display: block;
  flex: 0 0 1px;
  width: 1px;
  height: 82.34%;
  margin: 0;
  padding: 0;
  background: currentColor;
}

.home-page .home-primary-cta > img {
  position: static;
  display: block;
  flex: 0 0 auto;
  width: clamp(1.35rem, 1.462vw, 28.071px);
  height: auto;
  margin: 0 clamp(.75rem, .917vw, 17.6px) 0 clamp(.55rem, .576vw, 11.05px);
  padding: 0;
  border: 0;
  box-sizing: content-box;
  transform: none;
}

.home-page .home-primary-cta:hover,
.home-page .home-primary-cta:focus-visible {
  color: #fff;
  background: #7e6131;
}

.home-page .home-primary-cta:hover > img,
.home-page .home-primary-cta:focus-visible > img {
  filter: brightness(0) invert(1);
  transform: translateX(.18rem);
}

.home-page .home-primary-cta:hover > .home-primary-cta__divider,
.home-page .home-primary-cta:focus-visible > .home-primary-cta__divider {
  background: #fff;
}

/* Keep the full 16:9 Railways file inside the accordion artboard.  The media
   column and its image share the source ratio, so no parent overflow can cut
   the bottom edge at desktop widths. */
@media (min-width: 992px) {
  .home-page .accordion-industries__panel-inner--media {
    height: auto;
    aspect-ratio: 1622 / 559;
  }

  .home-page .accordion-industries__panel-inner--media > .col-lg-6:last-child {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .home-page .accordion-industries__panel-inner--media .accordion-industries__image {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center;
  }
}

/* ============ Industries Catered ============ */

/* Figma ends this frame on the final Aerospace divider. The following
   inter-section gap is added once before Ecosystem. */
.industries.section-pad {
  padding-bottom: 0;
}

.industries > .container {
  width: min(1622px, 84.48vw);
  max-width: none;
  padding-right: 0;
  padding-left: 0;
}

.industries > .container > .section-heading {
  margin: 0;
  font-size: clamp(1.75rem, 2.604vw, 50px);
  /* Figma's heading frame is 77.195px high at the 1920px reference width. */
  line-height: 1.544;
}

.industries__intro {
  width: min(1122px, 58.44vw);
  max-width: 100%;
  margin: 0 auto;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.146vw, 22px);
  line-height: normal;
  text-align: center;
}

.accordion-industries {
  margin-top: clamp(3rem, 4.427vw, 85px);
}

.accordion-industries__item {
  position: relative;
  border-bottom: 0;
}

.accordion-industries__trigger {
  width: 100%;
  height: clamp(2.9rem, 2.917vw, 56px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.75rem, 1.04vw, 20px);
  padding: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px dashed rgba(53, 43, 70, 0.7);
  text-align: left;
  cursor: pointer;
  color: #1a1a1a;
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 400;
  font-size: clamp(1.25rem, 2.083vw, 40px);
  line-height: normal;
}

.accordion-industries__icon {
  flex-shrink: 0;
  width: clamp(0.85rem, 1.097vw, 21.053px);
  height: clamp(1.15rem, 1.514vw, 29.074px);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: width 0.3s ease, height 0.3s ease;
}

.accordion-industries__icon img {
  width: 100%;
  height: 100%;
  display: block;
  transition: transform 0.3s ease;
}

.accordion-industries__item.is-open .accordion-industries__icon {
  width: clamp(1.15rem, 1.514vw, 29.074px);
  height: clamp(0.85rem, 1.097vw, 21.053px);
}

.accordion-industries__item.is-open .accordion-industries__icon img {
  width: clamp(0.85rem, 1.097vw, 21.053px);
  height: clamp(1.15rem, 1.514vw, 29.074px);
  transform: rotate(90deg);
  transform-origin: center;
}

.accordion-industries__panel {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.35s ease;
}

.accordion-industries__item.is-open .accordion-industries__panel {
  max-height: 1400px;
}

.accordion-industries__panel-inner {
  padding-bottom: clamp(1.5rem, 3.13vw, 60px);
}

.accordion-industries__panel-inner--media {
  position: relative;
  display: block;
  height: clamp(25rem, 27.945vw, 535px);
  min-height: 0;
  margin: 0;
  padding: 0;
}

.accordion-industries__item:not(.is-open):not(:last-child) {
  min-height: clamp(5rem, 6.224vw, 119.5px);
}

.accordion-industries__panel-inner--media > .col-lg-6:first-child {
  position: absolute;
  z-index: 2;
  top: clamp(1.75rem, 1.719vw, 33px);
  left: 0.32%;
  width: 33.83%;
  padding: 0;
}

.accordion-industries__panel-inner--media > .col-lg-6:last-child {
  position: absolute;
  z-index: 1;
  top: clamp(0.1rem, 0.104vw, 2px);
  left: 35.27%;
  width: 61.16%;
  padding: 0;
}

.accordion-industries__panel-inner--media .accordion-industries__copy {
  width: 100%;
  max-width: 548px;
  color: #000;
  font-size: clamp(1rem, 1.146vw, 22px);
  line-height: normal;
}

.accordion-industries__panel-inner--media > .accordion-industries__copy {
  position: absolute;
  z-index: 2;
  top: clamp(1.75rem, 1.719vw, 33px);
  left: 0.32%;
  width: 33.83%;
  max-width: 548px;
}

.accordion-industries__panel-inner--media .gold-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  position: static;
  top: auto;
  left: auto;
  margin-top: 0 !important;
  width: clamp(10.75rem, 11.174vw, 214.543px);
  min-height: clamp(2.55rem, 2.663vw, 51.129px);
  background: #fff;
  padding: 0;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.044vw, 20.05px);
  font-weight: 500;
  line-height: 1;
}

.accordion-industries__panel-inner--media > .col-lg-6:first-child .gold-btn {
  margin-top: clamp(1.5rem, 1.719vw, 33px) !important;
}

.accordion-industries__panel-inner--media .gold-btn > span {
  display: flex;
  align-items: center;
  width: clamp(7.9rem, 8.219vw, 157.8px);
  height: 100%;
  padding-left: clamp(0.75rem, 0.89vw, 17.09px);
  box-sizing: border-box;
}

.accordion-industries__panel-inner--media .gold-btn > img {
  width: clamp(1.35rem, 1.462vw, 28.071px);
  height: auto;
  margin-right: clamp(0.75rem, 0.917vw, 17.6px);
  padding-left: clamp(0.55rem, 0.576vw, 11.05px);
  border-left: 1px solid currentColor;
  box-sizing: content-box;
}

.accordion-industries__copy {
  max-width: min(420px, 90vw);
  color: #666;
}

.accordion-industries__image {
  width: 100%;
  max-width: none;
  aspect-ratio: 992 / 559;
  height: auto;
  display: block;
}

.accordion-industries__panel-inner--media > .accordion-industries__image {
  position: absolute;
  z-index: 1;
  top: clamp(0.1rem, 0.104vw, 2px);
  left: 35.27%;
  width: 61.16%;
  max-width: none;
  padding: 0;
}

.accordion-industries__coming-soon {
  position: relative;
  z-index: 1;
  top: auto;
  left: auto;
  display: grid;
  width: 100%;
  height: clamp(25rem, 27.945vw, 535px);
  place-items: center;
  color: #352b46;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1.5rem, 2.083vw, 40px);
  font-weight: 500;
}

@media (max-width: 991.98px) {
  .industries.section-pad {
    padding-bottom: 3rem;
  }

  .ecosystem.section-pad {
    margin-top: 3rem;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .ecosystem > .container > .section-heading {
    line-height: 1.2;
  }

  .industries > .container {
    width: calc(100% - 2rem);
  }

  .industries > .container > .section-heading {
    line-height: 1.2;
  }

  .industries__intro {
    width: 100%;
  }

  .accordion-industries__panel-inner--media {
    height: auto;
    min-height: 0;
    padding-bottom: 2.5rem;
  }

  .accordion-industries__panel-inner--media > .col-lg-6:first-child,
  .accordion-industries__panel-inner--media > .col-lg-6:last-child {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
  }

  .accordion-industries__panel-inner--media > .accordion-industries__copy {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    max-width: 548px;
  }

  .accordion-industries__panel-inner--media > .col-lg-6:last-child {
    margin-top: 2rem;
  }

  .accordion-industries__panel-inner--media .gold-btn {
    position: static;
    margin-top: 1.25rem !important;
  }

  .accordion-industries__image {
    width: 100%;
  }

  .accordion-industries__panel-inner--media > .accordion-industries__image,
  .accordion-industries__panel-inner--media > .col-lg-6:last-child .accordion-industries__coming-soon {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: auto;
    margin-top: 2rem;
  }

  .accordion-industries__item:not(.is-open):not(:last-child) {
    min-height: 0;
  }
}

/* ============ JNV Ecosystem ============ */

.ecosystem.section-pad {
  margin-top: clamp(4rem, 7.604vw, 146px);
  padding-top: 0;
  padding-bottom: 0;
}

.ecosystem > .container > .section-heading {
  margin: 0;
  font-size: clamp(1.75rem, 2.604vw, 50px);
  line-height: 1.1;
}

.ecosystem__tabs {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.75rem, 0.83vw, 16px);
  margin-top: clamp(0.5rem, 0.63vw, 12px);
  font-family: 'DM Sans', Arial, sans-serif;
}

.ecosystem__tab {
  border: none;
  background: transparent;
  padding: 0.25rem 0;
  font-size: clamp(1rem, 1.042vw, 20px);
  font-weight: 500;
  color: rgba(51, 51, 51, 0.24);
  cursor: pointer;
}

.ecosystem__tab.is-active {
  color: #7e6131;
}

.ecosystem__tabs-dot {
  position: absolute;
  left: 50%;
  /* Figma places the 13px ellipse on the dashed rule below the labels. */
  top: calc(100% + clamp(0.5rem, 0.63vw, 12px));
  width: clamp(0.4rem, 0.677vw, 0.8125rem);
  height: clamp(0.4rem, 0.677vw, 0.8125rem);
  border-radius: 50%;
  background: #352b46;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1;
}

.ecosystem__tabs-dot.is-positioned {
  transition: left 0.45s cubic-bezier(0.2, 0.75, 0.22, 1);
  will-change: left;
}

.ecosystem__tabs-line {
  width: 100%;
  border: none;
  border-top: 1px dashed #352b46;
  margin-top: clamp(0.5rem, 0.63vw, 12px);
  margin-bottom: 0;
}

.ecosystem__body {
  display: grid;
  grid-template-columns: minmax(0, 939fr) minmax(0, 653fr);
  gap: clamp(1rem, 1.302vw, 25px);
  margin-left: 0;
  margin-right: 0;
  margin-top: clamp(1rem, 1.094vw, 21px);
}

.ecosystem > .container {
  width: min(1630px, 84.9vw);
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.ecosystem__body > .col-lg-6 {
  width: auto;
  padding-left: 0;
  padding-right: 0;
}

.ecosystem__card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 939 / 560;
  border: 1px solid rgba(53, 43, 70, 0.1);
}

.ecosystem__card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ecosystem__card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 55%);
}

.ecosystem__card-caption {
  position: absolute;
  left: clamp(1rem, 1.615vw, 31px);
  bottom: clamp(1rem, 1.563vw, 30px);
  color: #fff;
}

.ecosystem__card-caption strong {
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.25rem, 1.563vw, 30px);
  font-weight: 700;
}

.ecosystem__card-caption span {
  display: flex;
  align-items: center;
  gap: clamp(0.35rem, 0.52vw, 10px);
  font-size: clamp(1rem, 1.042vw, 20px);
  opacity: 0.85;
  margin-top: 0.2rem;
}

.ecosystem__card-caption span::before {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  content: '';
  background: url('../images/ecosystem-location-icon.svg') center/contain no-repeat;
}

.ecosystem__card-caption a {
  display: inline-block;
  margin-top: clamp(0.4rem, 0.42vw, 8px);
  font-size: clamp(0.9rem, 0.938vw, 18px);
  color: #fff;
  text-decoration: underline;
}

.ecosystem__list {
  list-style: none;
  margin: 0;
  padding: 0 clamp(1rem, 0.885vw, 17px) 0 clamp(1rem, 3.021vw, 58px);
}

.ecosystem__list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.75rem, 0.83vw, 16px);
  min-height: clamp(5rem, 5.417vw, 104px);
  padding: 0;
  border-bottom: 1px solid #eee;
}

.ecosystem__logo {
  width: clamp(9rem, 10.156vw, 195px);
  height: clamp(3.5rem, 3.854vw, 74px);
  object-fit: contain;
}

/* The two Figma variants use different logo frames. Keep every logo centred
   inside the same per-row slot instead of scaling all marks to one size. */
.ecosystem__list[data-ecosystem-view="portfolio"] .ecosystem__logo {
  width: clamp(9rem, 10.156vw, 195px);
  height: clamp(3.5rem, 3.854vw, 74px);
}

.ecosystem__list[data-ecosystem-view="portfolio"] .ecosystem__list-item:nth-child(2) .ecosystem__logo {
  width: clamp(9rem, 10.26vw, 197px);
  height: clamp(3.25rem, 3.594vw, 69px);
}

.ecosystem__list[data-ecosystem-view="portfolio"] .ecosystem__list-item:nth-child(3) .ecosystem__logo {
  width: clamp(9rem, 10.156vw, 195px);
  height: clamp(3.4rem, 3.75vw, 72px);
}

.ecosystem__list[data-ecosystem-view="portfolio"] .ecosystem__list-item:nth-child(n + 4) .ecosystem__logo {
  width: clamp(8rem, 9.063vw, 174px);
  height: clamp(3.5rem, 3.854vw, 74px);
}

.ecosystem__list[data-ecosystem-view="alliances"] .ecosystem__logo {
  width: clamp(9.5rem, 10.885vw, 209px);
  height: clamp(3.5rem, 3.854vw, 74px);
}

.ecosystem__list[data-ecosystem-view="alliances"] .ecosystem__list-item:nth-child(3) .ecosystem__logo {
  width: clamp(9rem, 9.583vw, 184px);
  height: clamp(3.5rem, 3.854vw, 74px);
}

.ecosystem__location {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.3rem, 0.36vw, 7px);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1rem, 1.146vw, 22px);
  color: rgba(0, 0, 0, 0.8);
  white-space: normal;
}

.ecosystem__location-pin {
  width: clamp(0.65rem, 0.63vw, 12px);
  height: clamp(0.65rem, 0.63vw, 12px);
  flex-shrink: 0;
  color: #7e6131;
}

.ecosystem__view-all {
  display: block;
  text-align: right;
  margin-top: clamp(0.75rem, 0.83vw, 16px);
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.9rem, 0.938vw, 18px);
  color: #7e6131;
}

.ecosystem__card img {
  transition: opacity 0.18s ease, transform 0.45s ease;
}

.ecosystem__card img.is-changing {
  opacity: 0.35;
  transform: scale(1.015);
}

@media (max-width: 991.98px) {
  .ecosystem > .container {
    width: calc(100% - 2rem);
  }

  .ecosystem__body {
    grid-template-columns: 1fr;
  }

  .ecosystem__list {
    padding-left: 0;
    padding-right: 0;
  }

  .ecosystem__list-item {
    min-height: 5rem;
  }

  .ecosystem__logo {
    width: 9rem;
    height: 3.5rem;
  }

  .ecosystem__list[data-ecosystem-view] .ecosystem__logo,
  .ecosystem__list[data-ecosystem-view] .ecosystem__list-item:nth-child(n) .ecosystem__logo {
    width: 9rem;
    height: 3.5rem;
  }

  .ecosystem__location {
    font-size: 1rem;
  }
}

/* ============ Our Foundation ============ */

.foundation {
  position: relative;
  background: url("../images/foundation-bg.png") center/cover no-repeat;
  color: #fff;
  text-align: center;
  overflow: hidden;
}

.foundation::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #352b46;
}

.foundation > .container {
  position: relative;
  z-index: 1;
}

.foundation__heading {
  color: #fff;
}

.foundation__copy {
  max-width: min(600px, 90vw);
  margin: clamp(0.75rem, 0.83vw, 16px) auto 0;
  color: #d8d5df;
}

.foundation__cta {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.5rem, 0.75vw, 14.4px);
  margin-top: clamp(1.5rem, 3.13vw, 60px);
  padding: clamp(0.7rem, 0.94vw, 18px) clamp(1.25rem, 1.82vw, 35px);
  background: #fff;
  border-radius: 4px;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.85rem, 0.83vw, 16px);
  font-weight: 500;
  color: #352b46;
}

.foundation__cta img {
  width: clamp(0.75rem, 0.83vw, 16px);
}

.foundation__stats {
  margin-top: clamp(2.5rem, 5.2vw, 100px);
  text-align: left;
}

.foundation__stat {
  position: relative;
  padding-left: clamp(1.25rem, 1.46vw, 28px);
}

.foundation__stat::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: clamp(0.65rem, 0.63vw, 12px);
  height: clamp(0.65rem, 0.63vw, 12px);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.15);
}

@media (min-width: 768px) {
  .foundation__stat:nth-child(2) {
    margin-top: clamp(1.5rem, 2.6vw, 50px);
  }

  .foundation__stat:nth-child(4) {
    margin-top: clamp(-1.5rem, -2.6vw, -50px);
  }
}

.foundation__stat-value {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.75rem, 2.6vw, 50px);
  font-weight: 700;
}

.foundation__stat-value span {
  color: #b89b5e;
}

.foundation__stat-label {
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.85rem, 0.83vw, 16px);
  color: #d8d5df;
  margin-top: clamp(0.2rem, 0.21vw, 4px);
}

/* ============ Global map artwork ============ */

.leaders-map {
  position: relative;
  height: clamp(42rem, 44.167vw, 53rem);
  overflow: hidden;
  background: #fff;
}

.leaders-map__canvas {
  position: absolute;
  top: clamp(2rem, 3.021vw, 58px);
  left: 50%;
  width: min(56.927vw, 1093px);
  height: min(38.137vw, 732px);
  transform: translateX(-50%);
}

.leaders-map__canvas img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.leaders-map__pulse {
  position: absolute;
  /* Figma marker group: x=738, y=389 inside the 1093x732 map layer. */
  top: 53.14%;
  left: 67.52%;
  width: clamp(2.25rem, 3.125vw, 60px);
  height: clamp(2.25rem, 3.125vw, 60px);
  animation: leaders-map-pulse-rotate 8.5s linear infinite;
}

.leaders-map__pulse-ring,
.leaders-map__pulse-dot {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(1);
  transform-origin: center;
}

.leaders-map__pulse-ring--outer {
  width: 100%;
  height: 100%;
  background: rgba(53, 43, 70, 0.28);
  animation: leaders-map-pulse-outer 8.5s linear infinite;
}

.leaders-map__pulse-ring--mid {
  width: 61.111%;
  height: 61.111%;
  background: rgba(53, 43, 70, 0.61);
  animation: leaders-map-pulse-mid 8.5s linear infinite;
}

.leaders-map__pulse-dot {
  width: 27.778%;
  height: 27.778%;
  background: #dddcdc;
  animation: leaders-map-pulse-dot 8.5s linear infinite;
}

@keyframes leaders-map-pulse-rotate {
  0%, 35.294% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes leaders-map-pulse-outer {
  0%, 5.882%, 14.118%, 29.412%, 37.647%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  10%, 33.529% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); }
}

@keyframes leaders-map-pulse-mid {
  0%, 2.941%, 11.176%, 26.471%, 34.706%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  7.059%, 30.588% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); }
}

@keyframes leaders-map-pulse-dot {
  0%, 8.235%, 23.529%, 31.765%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  4.118%, 27.647% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); }
}

/* ============ Powering Leaders ============ */

.leaders.section-pad {
  position: relative;
  /* Keep the logo strip's bottom rule inside the section at fluid widths. */
  height: clamp(16rem, 24vw, 28.125rem);
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #fff;
}

.leaders > .container {
  position: relative;
  width: 100%;
  max-width: none;
  height: 100%;
  padding-right: 0;
  padding-left: 0;
}

.leaders__heading {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100%;
  margin: 0;
  color: #352b46;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.2rem, 2.604vw, 50px);
  font-weight: 700;
  line-height: 1.08;
  text-align: center;
  transform: translateX(-50%);
}

.leaders__copy {
  position: absolute;
  top: clamp(3rem, 4.741vw, 91px);
  left: 50%;
  width: min(50.223vw, 964px);
  max-width: calc(100% - 2rem);
  margin: 0;
  color: #000;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.95rem, 1.146vw, 22px);
  font-weight: 400;
  line-height: 1.34;
  text-align: center;
  transform: translateX(-50%);
}

.leaders__logos {
  position: absolute;
  top: clamp(7.75rem, 14.2547vw, 273.67px);
  left: 0;
  width: 100%;
  height: clamp(6rem, 9.22vw, 177px);
  z-index: 2;
  margin: 0;
  overflow: hidden;
  border-top: 1px dashed #352b46;
  border-bottom: 1px dashed #352b46;
}

.leaders__logos-track {
  display: flex;
  width: 200%;
  height: 100%;
  animation: leaders-scroll 23s linear infinite;
  will-change: transform;
}

.leaders__logos:hover .leaders__logos-track,
.leaders__logos:focus-within .leaders__logos-track {
  animation-play-state: paused;
}

@keyframes leaders-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.leaders__logo-item {
  flex: 0 0 10%;
  width: 10%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 clamp(0.5rem, 1.04vw, 20px);
  border-left: 1px dashed rgba(53, 43, 70, 0.42);
}

.leaders__logo-item:nth-child(6) {
  border-left: 1px dashed rgba(53, 43, 70, 0.42);
}

.leaders__logo-item img {
  display: block;
  max-width: 100%;
  max-height: 92px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.leaders__logo-item:nth-child(1) img,
.leaders__logo-item:nth-child(6) img {
  width: clamp(11rem, 13.184vw, 253px);
}

.leaders__logo-item:nth-child(2) img,
.leaders__logo-item:nth-child(7) img {
  width: clamp(9rem, 8.336vw, 160px);
}

.leaders__logo-item:nth-child(3) img,
.leaders__logo-item:nth-child(8) img {
  width: clamp(9rem, 9.762vw, 187px);
}

.leaders__logo-item:nth-child(4) img,
.leaders__logo-item:nth-child(9) img {
  width: clamp(9rem, 9.169vw, 176px);
}

.leaders__logo-item:nth-child(5) img,
.leaders__logo-item:nth-child(10) img {
  width: clamp(9rem, 9.585vw, 184px);
}

@media (prefers-reduced-motion: reduce) {
  .leaders__logos-track {
    animation: none;
  }
}

@media (max-width: 991.98px) {
  .leaders-map {
    height: clamp(19rem, 70vw, 42rem);
  }

  .leaders-map__canvas {
    top: 2rem;
    width: calc(100% - 2rem);
    height: auto;
    aspect-ratio: 1131.39 / 734.227;
  }

  .leaders-map__pulse {
    width: clamp(2.25rem, 6vw, 3.75rem);
    height: clamp(2.25rem, 6vw, 3.75rem);
  }

  .leaders.section-pad {
    height: clamp(16rem, 35vw, 29.375rem);
  }

  .leaders__heading {
    top: 1.5rem;
    font-size: clamp(1.2rem, 2.604vw, 50px);
  }

  .leaders__copy {
    top: clamp(4rem, 4.741vw, 91px);
    width: calc(100% - 2rem);
    font-size: clamp(0.75rem, 2vw, 1.375rem);
  }

  .leaders__logos {
    top: clamp(8rem, 14.2547vw, 273.67px);
    height: clamp(4rem, 11.5vw, 220px);
  }

  .leaders__logo-item img {
    max-height: clamp(1.25rem, 5.5vw, 5rem);
  }
}

@media (max-width: 575.98px) {
  .leaders.section-pad {
    height: clamp(16rem, 35vw, 29.375rem);
  }

  .leaders__copy {
    top: clamp(4rem, 4.741vw, 91px);
  }

  .leaders__logos {
    top: clamp(8rem, 14.2547vw, 273.67px);
    height: clamp(4rem, 11.5vw, 220px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .leaders-map__pulse,
  .leaders-map__pulse-ring,
  .leaders-map__pulse-dot {
    animation: none;
  }

  .leaders-map__pulse-ring--outer,
  .leaders-map__pulse-ring--mid,
  .leaders-map__pulse-dot {
    opacity: 0.8;
  }
}

/* ============ A Legacy of Engineering ============ */

.legacy {
  position: relative;
  height: clamp(20rem, 43.8vw, 841px);
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #fff;
}

.legacy > .container {
  position: relative;
  z-index: 4;
  height: 100%;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.legacy__heading {
  position: absolute;
  top: 0;
  left: 4.94%;
  color: #352b46;
  margin: 0;
  font-size: clamp(2rem, 2.61vw, 50.14px);
  line-height: 1.15;
}

.legacy__body {
  position: absolute;
  top: 9.77%;
  left: 5.72%;
  display: block;
  max-width: min(656px, 34.14vw);
  margin: 0;
  padding-left: clamp(0.25rem, 0.78vw, 15px);
}

.legacy__body-rule {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: clamp(4rem, 3.7vw, 71px);
  border-left: 1px dashed rgba(53, 43, 70, 0.6);
}

.legacy__body p {
  color: #393939;
  font-size: clamp(0.5rem, 1.15vw, 22.06px);
  font-weight: 300;
  line-height: 1.18;
}

.legacy__cta {
  position: absolute;
  z-index: 5;
  top: 24.26%;
  left: 4.94%;
  display: inline-flex;
  align-items: center;
  width: clamp(6rem, 14.27vw, 274px);
  height: clamp(1.25rem, 2.66vw, 51px);
  padding: 0;
  border: 1px solid #7e6131;
  border-radius: 4px;
  color: #7e6131;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.5rem, 1.04vw, 20px);
  font-weight: 500;
  justify-content: space-between;
  box-sizing: border-box;
  background: #fff;
}

.legacy__cta img {
  position: absolute;
  top: 53%;
  left: 83.58%;
  width: clamp(0.75rem, 1.46vw, 28px);
  margin: 0;
  transform: translateY(-50%);
}

.legacy__cta > span:first-child {
  position: absolute;
  top: 23.53%;
  left: 11.68%;
  width: 53.65%;
  line-height: 1.2;
  white-space: nowrap;
}

.legacy__cta::after {
  content: "";
  position: absolute;
  top: 9%;
  right: auto;
  left: 77.74%;
  width: 1px;
  height: 82%;
  background: #7e6131;
}

.legacy__band {
  position: absolute;
  z-index: 1;
  top: 50.12%;
  left: 0;
  width: 100%;
  height: 33.03%;
  margin: 0;
  overflow: visible;
  background: #21182d;
}

/* Figma leaves a deliberate white breathing space before the Legacy section. */
@media (min-width: 992px) {
  .legacy {
    margin-top: clamp(3rem, 3.65vw, 70px);
  }
}

.legacy__visual {
  position: absolute;
  z-index: 2;
  top: -164%;
  left: 29.06%;
  width: min(71vw, 1362px);
  height: min(44.22vw, 849px);
  pointer-events: none;
}

.legacy__lines {
  position: absolute;
  z-index: 1;
  top: -27.68%;
  left: 50.81%;
  width: 66.67%;
  height: 96.22%;
  object-fit: contain;
  transform: rotate(13.75deg);
  transform-origin: center;
  display:none;
}

.legacy__orb {
  position: absolute;
  z-index: 1;
  top: 17.2%;
  left: 20.7%;
  width: 39.72%;
  height: auto;
}

.legacy__image {
  position: absolute;
  z-index: 2;
  top: 11.07%;
  left: 0;
  display: block;
  width: 100%;
  height: 88.93%;
  max-width: none;
  object-fit: fill;
}

@media (max-width: 767.98px) {
  .legacy {
    height: clamp(20rem, 43.8vw, 841px);
  }

  .legacy__heading {
    top: 0;
    left: 4.94%;
    right: auto;
    font-size: clamp(1.2rem, 2.61vw, 50px);
  }

  .legacy__body {
    top: 9.77%;
    left: 5.72%;
    max-width: min(656px, 34.14vw);
    padding-left: clamp(0.25rem, 0.78vw, 15px);
  }

  .legacy__body p {
    font-size: clamp(0.5rem, 1.15vw, 22.06px);
    line-height: 1.35;
  }

  .legacy__band {
    top: 50.12%;
    height: 33.03%;
  }

  .legacy__visual {
    left: 29.06%;
    width: min(71vw, 1362px);
    height: min(44.22vw, 849px);
  }
}

/* ============ Sustainable Solutions ============ */

.sustainability {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(30rem, 44.84375vw, 53.8125rem);
  margin-top: clamp(2rem, 3.4896vw, 4.2rem);
  color: #fff;
  overflow: hidden;
}

.sustainability__media,
.sustainability__scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.sustainability__media {
  z-index: -3;
  overflow: hidden;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: var(--sustainability-image-environment, none);
}

.sustainability__media::before,
.sustainability__media::after {
  position: absolute;
  inset: 0;
  content: "";
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease;
  will-change: opacity;
}

.sustainability__media::before {
  background-image: var(--sustainability-image-governance, none);
}

.sustainability__media::after {
  background-image: var(--sustainability-image-social, none);
  transform: scaleX(-1);
}

.sustainability[data-sustainability-state="governance"] .sustainability__media::before,
.sustainability[data-sustainability-state="social"] .sustainability__media::after {
  opacity: 1;
}

.sustainability__scrim {
  z-index: -2;
  right: 58.06%;
  background: linear-gradient(90deg, rgba(53, 43, 70, .88) 0%, rgba(53, 43, 70, .58) 57%, rgba(53, 43, 70, 0) 100%);
}

.sustainability__grid {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 0;
  width: 100%;
  height: auto;
  transform: translateY(-50%);
  pointer-events: none;
  opacity: .7;
}

.sustainability__inner {
  position: relative;
  width: 100%;
  height: 100%;
}

.sustainability__copy-block {
  position: absolute;
  z-index: 2;
  top: 6.25vw;
  left: 4.58vw;
  width: min(36.5vw, 44rem);
}

.sustainability__heading {
  max-width: 39rem;
  margin: 0;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 2.60417vw, 3.125rem);
  font-weight: 400;
  line-height: 1.02;
}

.sustainability__heading-break {
  display: none;
}

.sustainability__copy {
  max-width: 26.1vw;
  margin: clamp(.75rem, 1.04vw, 1.2rem) 0 0;
  color: #fff;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(.9rem, 1.04167vw, 1.25rem);
  font-weight: 400;
  line-height: 1.1;
}

.sustainability__cta {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: clamp(10.75rem, 11.174vw, 214.543px);
  min-height: clamp(2.55rem, 2.663vw, 51.129px);
  margin-top: clamp(1rem, 1.56vw, 1.875rem);
  padding: 0;
  border: 1px solid #7e6131;
  border-radius: 4px;
  background: #fff;
  color: #7e6131;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.044vw, 20.05px);
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
}

.sustainability__cta > span:first-child {
  display: flex;
  align-items: center;
  width: clamp(7.9rem, 8.219vw, 157.8px);
  height: 100%;
  padding-left: clamp(.75rem, .89vw, 17.09px);
  box-sizing: border-box;
}

.sustainability__cta-divider {
  width: 1px;
  height: 82.34%;
  flex: 0 0 1px;
  margin: 0;
  background: #7e6131;
}

.sustainability__cta img {
  width: clamp(1.35rem, 1.462vw, 28.071px);
  height: auto;
  margin-left: clamp(.55rem, .576vw, 11.05px);
  margin-right: clamp(.75rem, .917vw, 17.6px);
}

.sustainability__circles {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.sustainability__circle {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(9.5rem, 18.23vw, 21.875rem);
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  color: #352b46;
  background: rgba(255, 255, 255, .6);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.2rem, 2.0833vw, 2.5rem);
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  transition: background-color .35s ease, color .35s ease, border-color .35s ease;
}

.sustainability__circle span { margin-left: .2em; }

.sustainability__circle--environment { top: 4.11vw; left: 39.48%; }
.sustainability__circle--governance { top: 4.11vw; left: 76.14%; }
.sustainability__circle--social { top: 22.6vw; left: 57.8%; }

.sustainability[data-sustainability-state="environment"] .sustainability__circle--environment,
.sustainability[data-sustainability-state="social"] .sustainability__circle--social,
.sustainability[data-sustainability-state="governance"] .sustainability__circle--governance {
  background: #352b46;
  color: #fff;
}

.sustainability__circle:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

@media (max-width: 767.98px) {
  .sustainability { height: 42rem; margin-top: 3rem; }
  .sustainability__media { background-size: auto 130%; }
  .sustainability__scrim {
    right: 0;
    bottom: 45%;
    background: linear-gradient(180deg, rgba(53, 43, 70, .88), rgba(53, 43, 70, .18));
  }
  .sustainability__copy-block { top: 2.5rem; left: 1.5rem; width: calc(100% - 3rem); }
  .sustainability__heading { font-size: clamp(2rem, 9vw, 3rem); }
  .sustainability__heading-break { display: inline; }
  .sustainability__copy { max-width: 24rem; font-size: 1rem; }
  .sustainability__circle { width: clamp(9rem, 38vw, 12rem); font-size: 1.25rem; }
  .sustainability__circle--environment { top: 15rem; left: 8%; }
  .sustainability__circle--governance { top: 15rem; left: 54%; }
  .sustainability__circle--social { top: 28rem; left: 31%; }
}

/* ============ Get In Touch ============ */

.contact__heading-row {
  display: flex;
  align-items: center;
  gap: clamp(0.5rem, 0.63vw, 12px);
}

.contact__heading-dot {
  width: clamp(0.4rem, 0.42vw, 8px);
  height: clamp(0.4rem, 0.42vw, 8px);
  border-radius: 50%;
  background: #7e6131;
  flex-shrink: 0;
}

.contact__form {
  margin-top: clamp(2rem, 4.17vw, 60px);
}

.contact__field {
  margin-bottom: clamp(1.5rem, 2.6vw, 40px);
}

.contact__field label {
  display: block;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.8rem, 0.99vw, 19px);
  color: #4a4a4a;
  margin-bottom: clamp(0.4rem, 0.63vw, 12px);
}

.contact__field input,
.contact__field textarea {
  width: 100%;
  border: none;
  border-bottom: 1px solid #ccc;
  padding: clamp(0.25rem, 0.36vw, 7px) 0;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.85rem, 0.83vw, 16px);
  color: #1a1a1a;
  background: transparent;
  resize: none;
}

.contact__field input:focus,
.contact__field textarea:focus {
  outline: none;
  border-bottom-color: #7e6131;
}

.contact__submit {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.5rem, 0.75vw, 14.4px);
  padding: clamp(0.6rem, 0.71vw, 13.6px) clamp(1rem, 1.25vw, 24px);
  border: 1px solid #7e6131;
  border-radius: 4px;
  background: transparent;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.85rem, 0.83vw, 16px);
  font-weight: 500;
  color: #7e6131;
  cursor: pointer;
}

.contact__submit img {
  width: clamp(0.7rem, 0.78vw, 15px);
}

.contact__note {
  margin-top: clamp(0.75rem, 0.83vw, 16px);
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.8rem, 0.75vw, 14.4px);
  color: #7e6131;
}

/* Home contact form: Component 248 / Contact Us form from Figma. */
.contact.section-pad {
  height: clamp(27rem, 26.979vw, 32.375rem);
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

.contact > .container {
  position: relative;
  width: 80.853vw;
  max-width: none;
  height: 100%;
  margin: 0 auto;
  padding: 0;
}

.contact__heading-row {
  position: absolute;
  top: 23.166%;
  left: 0;
  display: flex;
  align-items: center;
  gap: clamp(1rem, 1.358vw, 1.625rem);
}

.contact__heading-dot {
  width: clamp(.75rem, .9924vw, 1.191rem);
  height: clamp(.75rem, .9924vw, 1.191rem);
  border-radius: 50%;
  background: #7e6131;
}

.contact__heading-row h3 {
  color: #352b46;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1.25rem, 1.567vw, 1.88rem);
  font-weight: 500;
  line-height: 1.368;
}

.contact__form {
  position: absolute;
  inset: 0;
  margin: 0;
}

.contact__form > .row {
  position: absolute;
  top: 24.328%;
  right: 0;
  left: 33.525%;
  display: grid;
  grid-template-columns: 37.7% 43.53%;
  column-gap: 18.77%;
  margin: 0;
}

.contact__form > .row > [class*="col-"] {
  width: auto;
  padding: 0;
}

.contact__field {
  width: 100%;
  margin: 0;
}

.contact__field + .contact__field {
  margin-top: clamp(2.5rem, 3.656vw, 4.39rem);
}

.contact__field label {
  display: block;
  height: clamp(1.5rem, 1.567vw, 1.88rem);
  margin: 0;
  color: #352b46;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.045vw, 1.255rem);
  font-weight: 400;
  line-height: 1.2;
}

.contact__field input,
.contact__field textarea {
  display: block;
  width: 100%;
  height: 1px;
  min-height: 1px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid #8f8b96;
  border-radius: 0;
  color: #352b46;
  background: transparent;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(.9rem, .94vw, 1.125rem);
  resize: none;
}

.contact__form > .text-end {
  position: absolute;
  top: 63.821%;
  right: 0;
  width: auto;
}

.contact__submit {
  display: block;
  position: relative;
  width: clamp(8.5rem, 10.55vw, 12.66rem);
  height: clamp(2.25rem, 2.664vw, 3.196rem);
  padding: 0;
  border: 1px solid #7e6131;
  border-radius: 4px;
  background: #fff;
  color: #7e6131;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(1rem, 1.045vw, 1.255rem);
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
}

.contact__submit:hover,
.contact__submit:focus-visible {
  border-color: #7e6131;
  background: #fff;
  color: #7e6131;
}

.contact__submit-divider {
  position: absolute;
  top: 9.8%;
  left: 77.09%;
  width: 1px;
  height: 82.34%;
  margin: 0;
  background: #7e6131;
}

.contact__submit > span:first-child {
  position: absolute;
  top: 27.46%;
  left: 11.88%;
  width: 53.95%;
  white-space: nowrap;
  line-height: 1.2;
}

.contact__submit img {
  position: absolute;
  top: 53%;
  left: 81.77%;
  display: block;
  width: clamp(1.25rem, 1.539vw, 1.847rem);
  height: auto;
  transform: translateY(-50%);
}

.contact__note { display: none; }
.contact__note.is-visible,
.contact-enquiry__note.is-visible { display: block; color: #7e6131; }

@media (max-width: 767.98px) {
  .contact.section-pad {
    height: auto;
    min-height: 34rem;
    padding: 3rem 0;
  }

  .contact > .container {
    width: calc(100% - 3rem);
    height: auto;
  }

  .contact__heading-row,
  .contact__form,
  .contact__form > .row,
  .contact__form > .text-end {
    position: static;
  }

  .contact__form { margin-top: 3rem; }
  .contact__form > .row { display: block; }
  .contact__form > .row > [class*="col-"] + [class*="col-"] { margin-top: 2.75rem; }
  .contact__field + .contact__field { margin-top: 2.75rem; }
  .contact__form > .text-end { margin-top: 3rem; text-align: left !important; }
}

/* ============ Footer ============ */

.site-footer {
  background: #0d0d0d;
  color: #fff;
  padding-top: clamp(2rem, 4.17vw, 60px);
  padding-bottom: clamp(1.5rem, 3.13vw, 40px);
}

.site-footer__logo {
  height: clamp(2.25rem, 2.92vw, 56px);
  width: auto;
}

.site-footer__nav {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1rem, 1.82vw, 35px);
  margin: 0;
  padding: 0;
}

.site-footer__nav a {
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.8rem, 0.99vw, 19px);
  color: #fff;
}

.site-footer__nav a:hover,
.site-footer__nav a:focus {
  color: #7e6131;
}

.site-footer__social {
  list-style: none;
  display: flex;
  gap: clamp(0.5rem, 0.78vw, 15px);
  margin: 0;
  padding: 0;
}

.site-footer__social a,
.site-footer__social li > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(1.75rem, 1.875vw, 36px);
  height: clamp(1.75rem, 1.875vw, 36px);
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff;
}

.site-footer__social a:hover,
.site-footer__social a:focus-visible {
  border-color: #7e6131;
  color: #7e6131;
}

.site-footer__social svg {
  width: clamp(0.8rem, 0.83vw, 16px);
  height: clamp(0.8rem, 0.83vw, 16px);
}

.site-footer__rule {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  margin: clamp(1.5rem, 3.13vw, 40px) 0 clamp(1rem, 1.56vw, 24px);
}

.site-footer__copyright {
  text-align: center;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.75rem, 0.73vw, 14px);
  color: #999;
}

/* One frontend-owned global chrome is rendered on every route. Page-specific
   Figma experiments must not replace the CMS-managed navigation or footer. */
body > .jnv-global-header {
  position: absolute !important;
  width:100%;
  top: auto !important;
  z-index: 50 !important;
  height: auto !important;
  min-height: 0 !important;
  background: #fff !important;
  border-bottom: 1px solid #b18b4c !important;
}

body > .jnv-global-header .navbar,
body > .jnv-global-header .navbar > .container {
  min-height: 0 !important;
  height: auto !important;
}

body > .site-footer.jnv-global-footer {
  position: static !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  padding-top: clamp(2rem, 4.17vw, 60px) !important;
  padding-bottom: clamp(1.5rem, 3.13vw, 40px) !important;
  background: #0d0d0d !important;
  color: #fff !important;
}

body > .site-footer.jnv-global-footer > .container {
  position: static !important;
  width: min(100% - 3rem, 1200px) !important;
  max-width: 1200px !important;
  height: auto !important;
  margin-inline: auto !important;
  padding: 0 !important;
}

body > .site-footer.jnv-global-footer > .container > .d-flex {
  position: static !important;
  display: flex !important;
  min-height: clamp(2.25rem, 2.92vw, 56px) !important;
  height: auto !important;
  align-items: center !important;
}

body > .site-footer.jnv-global-footer .site-footer__logo {
  width: auto !important;
  height: clamp(2.25rem, 2.92vw, 56px) !important;
  margin: 0 !important;
}

body > .site-footer.jnv-global-footer .site-footer__nav,
body > .site-footer.jnv-global-footer .site-footer__social {
  position: static !important;
  margin: 0 !important;
}

@media (max-width: 767.98px) {
  body > .site-footer.jnv-global-footer > .container { width: min(100% - 2rem, 1200px) !important; }
  body > .site-footer.jnv-global-footer > .container > .d-flex { flex-direction: column; gap: 1.25rem !important; }
  body > .site-footer.jnv-global-footer .site-footer__nav { flex-wrap: wrap; justify-content: center; }
  body > .site-footer.jnv-global-footer .site-footer__social { min-width: 0; justify-content: center; }
}

/* ============ Responsive adjustments ============ */

@media (max-width: 991.98px) {
  .foundation__stat:nth-child(2),
  .foundation__stat:nth-child(4) {
    margin-top: 0;
  }
}

@media (max-width: 767.98px) {
  .expertise {
    overflow: hidden;
  }

  .expertise__heading {
    width: calc(100% - 2rem);
    max-width: 480px;
  }

  .expertise-carousel__viewport {
    width: min(100% - 2rem, 480px);
    height: min(120vw, 480px);
    aspect-ratio: auto;
    transform: none;
  }

  .expertise-overview__carousel .expertise-carousel__viewport {
    overflow: hidden;
  }

  .expertise-carousel__slide:not(.expertise-carousel__slide--active) {
    visibility: hidden;
    pointer-events: none;
  }

  .expertise-carousel__slide--active {
    left: 8%;
    top: 0;
    width: 84%;
    height: 86%;
    border-radius: 22px;
  }

  .expertise-carousel__caption {
    font-size: clamp(0.9rem, 3.8vw, 1.2rem);
  }

  .expertise-carousel__controls {
    left: 50%;
    bottom: 2%;
    transform: translateX(-50%);
  }
}

/* ==========================================================
   ABOUT JNV PAGE
   Source: About JNV design supplied in PDF / Figma frame.
   All selectors are scoped with .about- to keep the shared
   home-page styles unchanged.
   ========================================================== */

.about-page {
  --about-purple: #342946;
  --about-deep: #080914;
  --about-gold: #9a7640;
  --about-muted: #817b85;
  background: #fff;
}

.about-page .navbar .nav-link.active {
  color: var(--about-gold);
}

.about-display {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 3.25vw, 52px);
  font-weight: 600;
  line-height: 1.05;
  color: var(--about-purple);
}

/* ---------- About hero ---------- */

.about-hero {
  min-height: clamp(390px, 47.7vw, 687px);
  overflow: hidden;
  background: var(--about-deep);
}

.about-hero__image,
.about-contact__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-hero__image {
  object-position: center 49%;
}

.about-hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(5, 5, 14, 0.62) 0%, rgba(5, 5, 14, 0.08) 58%);
}

.about-hero__content {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: clamp(2rem, 6vw, 86px);
  transform: translateX(-50%);
}

.about-hero h1 {
  max-width: 560px;
  color: #fff;
  font-size: clamp(2.25rem, 4.1vw, 59px);
  line-height: 1.02;
}

.about-breadcrumb {
  padding: 0.75rem 0;
  background: var(--about-gold);
  color: #fff;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.72rem, 0.78vw, 12px);
}

.about-breadcrumb .container {
  display: flex;
  gap: 0.55rem;
  align-items: center;
}

.about-breadcrumb a {
  color: #fff;
}

.about-breadcrumb a:hover,
.about-breadcrumb a:focus-visible {
  text-decoration: underline;
}

/* ---------- Trust earned ---------- */

.about-trust {
  position: relative;
  min-height: clamp(510px, 49vw, 710px);
  padding: clamp(4rem, 7.5vw, 108px) 0;
  overflow: hidden;
}

.about-trust::after {
  content: "";
  position: absolute;
  right: -12%;
  bottom: 2%;
  width: 70%;
  height: 1px;
  background: rgba(154, 118, 64, 0.22);
  transform: rotate(-9deg);
  transform-origin: right;
}

.about-trust__copy {
  max-width: 460px;
  margin-top: clamp(1.25rem, 2vw, 28px);
  color: #57545b;
  font-size: clamp(1rem, 1.2vw, 17px);
}

.about-trust__visual {
  position: relative;
  min-height: clamp(310px, 34vw, 490px);
}

.about-trust__visual img {
  position: absolute;
  z-index: 1;
  right: -7%;
  top: 50%;
  width: min(760px, 67vw);
  max-width: none;
  transform: translateY(-45%);
}

.about-trust__line {
  position: absolute;
  right: -25%;
  width: 115%;
  height: 1px;
  background: rgba(154, 118, 64, 0.18);
  transform: rotate(-10deg);
}

.about-trust__line--one { top: 56%; }
.about-trust__line--two { top: 70%; }

/* ---------- Vision / mission ---------- */

.about-purpose__panel {
  position: relative;
  min-height: clamp(430px, 49vw, 705px);
  overflow: hidden;
}

.about-purpose__panel--vision {
  background: var(--about-purple);
}

.about-purpose__curves {
  position: absolute;
  inset: 0;
  opacity: 0.35;
  background:
    radial-gradient(120% 90% at 9% 125%, transparent 62%, rgba(167, 140, 211, 0.55) 62.25%, transparent 62.6%),
    radial-gradient(120% 90% at 9% 125%, transparent 72%, rgba(167, 140, 211, 0.4) 72.25%, transparent 72.6%);
}

.about-purpose__panel--mission {
  background: #090a12;
}

.about-purpose__background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: brightness(0.83);
}

.about-purpose__circle {
  position: absolute;
  left: 50%;
  top: 50%;
  width: clamp(235px, 31vw, 445px);
  height: clamp(235px, 31vw, 445px);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  overflow: hidden;
}

.about-purpose__circle--image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 69% center;
  transform: scale(1.85);
}

.about-purpose__circle--purple {
  background: var(--about-purple);
}

.about-purpose__copy {
  position: absolute;
  z-index: 2;
  width: min(390px, 29vw);
  color: #fff;
}

.about-purpose__copy--left {
  left: clamp(1rem, 4.91vw, 6rem);
  top: 50%;
  transform: translateY(-50%);
}

.about-purpose__copy--right {
  right: clamp(1rem, 4.91vw, 6rem);
  top: 50%;
  transform: translateY(-50%);
}

.about-purpose__copy span {
  display: block;
  margin-bottom: 1rem;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.78rem, 0.9vw, 14px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #d3b880;
}

.about-purpose__copy h2 {
  color: #fff;
  font-size: clamp(1.35rem, 2.15vw, 34px);
  line-height: 1.22;
}

/* ---------- History timeline ---------- */

.about-history {
  padding: clamp(5rem, 9vw, 130px) 0 clamp(5rem, 10vw, 145px);
}

.about-history__intro {
  max-width: 840px;
  margin: 0 auto clamp(5rem, 9vw, 130px);
  text-align: center;
  color: #c9c3cd;
  font-size: clamp(1.75rem, 3vw, 43px);
  font-weight: 400;
  line-height: 1.25;
}

.about-timeline {
  position: relative;
  max-width: 1050px;
  margin: 0 auto;
}

.about-timeline::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  border-left: 1px solid #ece8ee;
}

.about-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  min-height: clamp(420px, 39vw, 560px);
}

.about-timeline__item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 3.4rem;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--about-gold);
  box-shadow: 0 0 0 6px rgba(154, 118, 64, 0.13);
  transform: translateX(-50%);
}

.about-timeline__year {
  padding: 2.3rem clamp(2rem, 5vw, 72px) 0 0;
  text-align: right;
  color: #342d39;
}

.about-timeline__year strong {
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(3rem, 5.2vw, 75px);
  line-height: 0.95;
  font-weight: 400;
  color: #eeeaf0;
}

.about-timeline__year span {
  display: block;
  margin-top: 0.65rem;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: 0.9rem;
  line-height: 1.2;
  font-weight: 500;
}

.about-timeline__year--featured {
  position: relative;
  width: clamp(180px, 19vw, 275px);
  height: clamp(180px, 19vw, 275px);
  margin-left: auto;
  margin-right: clamp(2rem, 5vw, 72px);
  padding: clamp(3.5rem, 5.4vw, 78px) clamp(2rem, 3.2vw, 46px) 0 0;
  border-radius: 50%;
  background: radial-gradient(circle at 28% 28%, #d2c8e5, #f8f6fa 69%);
  text-align: right;
  box-shadow: 0 14px 38px rgba(88, 68, 112, 0.13);
}

.about-timeline__year--featured strong {
  color: #e7dff0;
}

.about-timeline__content {
  padding-left: clamp(2rem, 5vw, 72px);
  max-width: 510px;
}

.about-timeline__image {
  width: 100%;
  height: clamp(190px, 18vw, 260px);
  object-fit: cover;
  border-radius: 12px;
}

.about-timeline__image--logo {
  height: clamp(155px, 15vw, 215px);
  object-fit: contain;
  border-radius: 0;
}

.about-timeline__content h3 {
  margin-top: 1.4rem;
  color: var(--about-purple);
  font-size: clamp(1.25rem, 1.75vw, 25px);
  font-weight: 500;
}

.about-timeline__content small {
  display: block;
  margin-top: 0.65rem;
  font-family: 'Inter', Arial, sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--about-purple);
}

.about-timeline__content p {
  max-width: 430px;
  margin-top: 0.35rem;
  color: #77717b;
  font-size: clamp(0.86rem, 0.95vw, 14px);
  line-height: 1.45;
}

/* ---------- Awards ---------- */

.about-awards {
  padding: 0 0 clamp(5rem, 10vw, 145px);
}

.about-awards__tabs {
  display: flex;
  justify-content: center;
  max-width: 720px;
  margin: clamp(2rem, 4vw, 58px) auto clamp(2.5rem, 5vw, 72px);
  border-bottom: 1px dashed #cfc9d2;
}

.about-awards__tabs button {
  position: relative;
  flex: 1 1 0;
  padding: 0.7rem 0.25rem 1rem;
  border: 0;
  background: transparent;
  color: #c0bbc3;
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.75rem, 0.85vw, 13px);
}

.about-awards__tabs button.is-active {
  color: var(--about-gold);
}

.about-awards__tabs button.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -4px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--about-gold);
  transform: translateX(-50%);
}

.about-awards__grid {
  max-width: 1220px;
  margin: 0 auto;
}

.about-award-card {
  height: 100%;
  text-align: center;
}

.about-award-card > span,
.about-award-card small {
  display: block;
  font-family: 'Inter', Arial, sans-serif;
  font-size: 0.72rem;
  color: #8d8790;
}

.about-award-card h3 {
  min-height: 2.5em;
  margin: 0.25rem 0 1rem;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.95rem, 1.15vw, 17px);
  color: #3e3744;
}

.about-award-card img {
  display: block;
  width: 100%;
  aspect-ratio: 1.32 / 1;
  object-fit: cover;
  border-radius: 11px;
}

.about-award-card small {
  margin-top: 0.65rem;
}

.about-awards__empty {
  padding: 4rem 1rem;
  text-align: center;
  color: #8d8790;
  font-size: 1rem;
}

.about-awards__button {
  margin-top: clamp(2rem, 4vw, 58px);
}

/* ---------- Contact banner ---------- */

.about-contact {
  position: relative;
  min-height: clamp(420px, 47vw, 675px);
  overflow: hidden;
  background: #080911;
}

.about-contact__image {
  object-position: center;
}

.about-contact__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(5, 7, 13, 0.97) 0%, rgba(5, 7, 13, 0.78) 32%, rgba(5, 7, 13, 0.08) 75%);
}

.about-contact__content {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
}

.about-contact h2 {
  color: #fff;
  font-size: clamp(2rem, 3.3vw, 48px);
  line-height: 1.02;
}

.about-contact p {
  max-width: 410px;
  margin-top: 1.25rem;
  color: #dedbe1;
  font-size: clamp(0.95rem, 1.1vw, 16px);
}

.about-contact__button {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 1.5rem;
  padding: 0.72rem 1.2rem;
  border-radius: 3px;
  background: #fff;
  color: #352b46;
  font-family: 'Inter', Arial, sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
}

.about-contact__button img {
  width: 14px;
}

.about-contact__button:hover,
.about-contact__button:focus-visible {
  background: var(--about-gold);
  color: #fff;
}

.about-contact__button:hover img,
.about-contact__button:focus-visible img {
  filter: brightness(0) invert(1);
}

.about-page .site-footer {
  padding-top: clamp(2rem, 3.5vw, 50px);
}

.about-page .site-footer__social a {
  font-family: 'Inter', Arial, sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
}

/* ==========================================================
   Automotive industry page modifiers
   Reuses the shared industries hero/breadcrumb, section heading,
   button, logo carousel, contact banner and footer components.
   ========================================================== */

.automotive-page {
  --automotive-ink: #352b46;
  --about-gold: #7e6131;
  margin: 0;
  color: #111;
}

.automotive-hero {
  min-height: clamp(32rem, 47.7vw, 57.25rem);
}

.automotive-hero .industries-hero__image {
  inset: 0;
  height: 100%;
  object-position: center;
  transform: none;
}

.automotive-hero .industries-hero__shade {
  background: linear-gradient(180deg, rgba(9, 8, 13, 0) 44%, rgba(7, 6, 12, 0.62) 100%);
}

.automotive-hero .industries-hero__content {
  bottom: clamp(3.25rem, 5.4vw, 6.5rem);
}

.automotive-hero .industries-hero__title {
  max-width: 68rem;
  font-size: clamp(2.75rem, 3.125vw, 3.75rem);
  font-weight: 700;
  line-height: 1.08;
}

.automotive-platforms {
  padding: clamp(3rem, 4vw, 4.8rem) 0 clamp(3.5rem, 5vw, 6rem);
  overflow: hidden;
}

.automotive-platform-tabs {
  /* Column widths belong to the artwork shape, not the tab position:
     wp-api.js lists one variable per tab in the CMS order. */
  --automotive-tab-column-narrow: minmax(15rem, 21.7rem);
  --automotive-tab-column-wide: minmax(20rem, 29rem);
  display: grid;
  grid-template-columns: minmax(15rem, 21.7rem) minmax(20rem, 29rem);
  gap: clamp(1rem, 1.15vw, 1.4rem);
  align-items: stretch;
  justify-content: center;
}

.automotive-platform-tab {
  position: relative;
  min-width: 0;
  padding: 0 0 3.25rem;
  overflow: hidden;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--automotive-ink);
  opacity: 0.42;
  cursor: pointer;
  transition: border-color 360ms ease, opacity 360ms ease;
}

.automotive-platform-tab:hover,
.automotive-platform-tab.is-active {
  border-bottom-color: var(--about-gold);
  opacity: 1;
}

.automotive-platform-tab:focus-visible {
  outline: 2px solid var(--about-gold);
  outline-offset: 5px;
}

.automotive-platform-tab__visual {
  display: block;
  height: clamp(22rem, 18.7vw, 22.45rem);
  overflow: hidden;
}

.automotive-platform-tab__visual img {
  display: block;
  width: 100%;
  height: 100%;
  /* Show the whole vehicle artwork (no cropping) inside the unchanged tab box. */
  object-fit: contain;
}

.automotive-platform-tab__label {
  position: absolute;
  right: 0;
  bottom: 0.75rem;
  left: 0;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.35rem, 1.55vw, 1.85rem);
  line-height: 1;
  text-align: center;
}

.automotive-product-panels {
  margin-top: clamp(2.5rem, 4vw, 4.75rem);
}

.automotive-product-panel[hidden] {
  display: none !important;
}

.automotive-product-panel.is-active {
  animation: automotive-panel-enter 520ms ease both;
}

.automotive-product-explorer {
  width: min(calc(100% - 2rem), 90.875rem);
  min-height: clamp(38rem, 47.7vw, 45.75rem);
  margin: 0 auto;
}

.automotive-product-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 0.8rem;
  align-items: center;
  justify-content: center;
  max-width: 74rem;
  margin: 0 auto;
}

.automotive-product-explorer--4w .automotive-product-categories {
  max-width: 54rem;
}

.automotive-product-category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0.38rem 1rem;
  border: 1px solid var(--about-gold);
  border-radius: 4px;
  background: #fff;
  color: var(--about-gold);
  font-family: 'Inter', Arial, sans-serif;
  font-size: clamp(0.83rem, 1.04vw, 1.25rem);
  font-weight: 500;
  line-height: 1.15;
  text-align: center;
  cursor: pointer;
  transition: background-color 260ms ease, color 260ms ease, transform 260ms ease;
}

.automotive-product-category.is-active {
  background: var(--about-gold);
  color: #fff;
}

.automotive-product-category:hover:not(.is-active) {
  background: rgba(126, 97, 49, 0.08);
}

.automotive-product-category:focus-visible {
  outline: 2px solid var(--about-gold);
  outline-offset: 3px;
}

.automotive-product-content.is-changing .automotive-product-stage,
.automotive-product-content.is-changing .automotive-product-list {
  animation: automotive-product-content-enter 520ms ease both;
}

.automotive-product-content.is-changing .automotive-product-list {
  animation-delay: 70ms;
}

.automotive-product-content.is-product-changing .automotive-product-stage {
  animation: automotive-product-content-enter 420ms ease both;
}

.automotive-segment-selector {
  position: relative;
  display: flex;
  gap: clamp(2.5rem, 4.3vw, 5.1rem);
  align-items: flex-end;
  justify-content: center;
  width: min(60%, 54.125rem);
  margin: 0 auto 1.85rem;
  padding-top: 1.05rem;
  border-top: 1px dashed rgba(53, 43, 70, 0.66);
}

.automotive-segment-selector button {
  position: relative;
  min-width: 5.5rem;
  padding: 0;
  border: 0;
  appearance: none;
  background: transparent;
  color: #dddcdc;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.3vw, 1.55rem);
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  transition: color 240ms ease;
}

.automotive-segment-selector button.is-active {
  color: var(--about-gold);
}

.automotive-segment-selector button.is-active::before {
  position: absolute;
  top: -1.35rem;
  left: 50%;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--about-gold);
  content: '';
  transform: translateX(-50%);
}

.automotive-segment-selector button:hover:not(.is-active) {
  color: var(--automotive-ink);
}

.automotive-segment-selector button:focus-visible {
  outline: 2px solid var(--about-gold);
  outline-offset: 5px;
}

.automotive-product-stage {
  position: relative;
  height: clamp(20rem, 24.6vw, 29.5rem);
  max-width: 71rem;
  margin: clamp(2.5rem, 3.8vw, 4.5rem) auto 1.3rem;
}

.automotive-product-stage__vehicle {
  display: block;
  width: min(72%, 52rem);
  height: 100%;
  margin: 0 auto;
  object-fit: contain;
}

.automotive-product-stage__vehicle--4w {
  width: min(72%, 52rem);
}

.automotive-segment-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 2.75rem;
  height: 3.5rem;
  padding: 0;
  border: 0;
  appearance: none;
  background: transparent;
  color: var(--automotive-ink);
  font-family: Arial, sans-serif;
  font-size: 2.8rem;
  font-weight: 200;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
  transition: color 220ms ease, transform 220ms ease;
}

.automotive-segment-arrow--previous {
  left: -3.5rem;
}

.automotive-segment-arrow--next {
  right: -3.5rem;
}

.automotive-segment-arrow:hover {
  color: var(--about-gold);
  transform: translateY(-50%) scale(1.08);
}

.automotive-segment-arrow:focus-visible {
  outline: 2px solid var(--about-gold);
  outline-offset: 2px;
}

.automotive-product-callout {
  position: absolute;
  z-index: 2;
  top: 34%;
  left: 2.5%;
  width: clamp(7rem, 8.1vw, 9.7rem);
  aspect-ratio: 1.38;
  border: 1px solid #dddcdc;
  border-radius: 9px;
  background: #fff;
}

/* Client request 2026-10-08: hide the product callout bubble and its dotted
   connector on the Automotive product stage. */
.automotive-page .automotive-product-callout { display: none; }

/* Category with a single product: no slider arrows, card centred at its
   normal column width (set by script.js via .is-single-product). */
.automotive-product-carousel.is-single-product .automotive-product-arrow { display: none; }
.automotive-product-carousel.is-single-product .automotive-product-list {
  grid-template-columns: minmax(0, calc((100% - 3 * clamp(1rem, 3.25vw, 3.9rem)) / 4));
  justify-content: center;
}
@media (max-width: 991.98px) {
  .automotive-product-carousel.is-single-product .automotive-product-list { grid-template-columns: minmax(0, calc((100% - 3rem) / 4)); }
}
@media (max-width: 767.98px) {
  .automotive-product-carousel.is-single-product .automotive-product-list { grid-template-columns: minmax(0, calc((100% - 1rem) / 2)); }
}

.automotive-product-callout img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: contain;
}

.automotive-product-callout__line {
  position: absolute;
  top: 50%;
  left: calc(100% + 1.15rem);
  width: clamp(4.3rem, 7vw, 8rem);
  border-top: 1px dashed var(--automotive-ink);
}

.automotive-product-pulse {
  position: absolute;
  top: 50%;
  left: calc(100% + 0.45rem);
  width: 2.8rem;
  height: 2.8rem;
  transform: translate(-50%, -50%);
}

.automotive-product-pulse i {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transform-origin: center;
}

.automotive-product-pulse__outer {
  width: 2.8rem;
  height: 2.8rem;
  background: rgba(53, 43, 70, 0.42);
  animation: automotive-pulse-outer-opacity 3s linear infinite, automotive-pulse-outer-scale 3.2s linear infinite;
}

.automotive-product-pulse__mid {
  width: 1.8rem;
  height: 1.8rem;
  background: rgba(221, 220, 220, 0.88);
  animation: automotive-pulse-mid-opacity 3s linear infinite, automotive-pulse-mid-scale 3s linear infinite;
}

.automotive-product-pulse__dot {
  width: 0.72rem;
  height: 0.72rem;
  background: #fff;
  animation: automotive-pulse-dot-opacity 3s linear infinite, automotive-pulse-dot-scale 3s linear infinite;
}

.automotive-product-carousel {
  position: relative;
  box-sizing: border-box;
  width: min(calc(100% - 2rem), 90.875rem);
  margin: 0 auto;
  padding: 0 clamp(2.75rem, 4vw, 4.75rem);
}

.automotive-product-carousel [data-product-status] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.automotive-product-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 3.25vw, 3.9rem);
  align-items: stretch;
  width: 100%;
  margin: 0;
}

.automotive-product-arrow {
  position: absolute;
  z-index: 4;
  top: 50%;
  display: grid;
  width: 2.75rem;
  height: 3.5rem;
  padding: 0;
  border: 0;
  appearance: none;
  place-items: center;
  background: transparent;
  color: var(--automotive-ink);
  font-family: Arial, sans-serif;
  font-size: 2.8rem;
  font-weight: 200;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
  transition: color 220ms ease, transform 220ms ease;
}

.automotive-product-arrow span {
  display: block;
  line-height: 0.8;
}

.automotive-product-arrow--previous {
  left: 0;
}

.automotive-product-arrow--next {
  right: 0;
}

.automotive-product-arrow:hover {
  color: var(--about-gold);
  transform: translateY(-50%) scale(1.08);
}

.automotive-product-arrow:focus-visible {
  outline: 2px solid var(--about-gold);
  outline-offset: 2px;
}

.automotive-product-card {
  width: 100%;
  min-height: 8.75rem;
  padding: 1.05rem 0.8rem 0.8rem;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  border-top: 3px solid #dddcdc;
  border-radius: 0;
  appearance: none;
  background: #fff;
  color: var(--automotive-ink);
  font: inherit;
  text-align: center;
  cursor: pointer;
  transition: border-color 260ms ease, background-color 260ms ease, color 260ms ease, transform 260ms ease;
}

.automotive-product-card.is-active {
  border-top-color: var(--about-gold);
  border-radius: 8px;
  background: var(--about-gold);
  color: #fff;
}

.automotive-product-card h3 {
  margin: 0 0 0.65rem;
  color: var(--automotive-ink);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.25rem, 1.55vw, 1.85rem);
  font-weight: 400;
  line-height: 1.15;
}

.automotive-product-card p {
  max-width: 18rem;
  margin: 0 auto;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.84rem, 1.04vw, 1.25rem);
  font-weight: 300;
  line-height: 1.28;
}

.automotive-product-card.is-active h3,
.automotive-product-card.is-active p {
  color: #fff;
}

.automotive-product-card:hover:not(.is-active) {
  border-top-color: rgba(126, 97, 49, 0.65);
  background: rgba(126, 97, 49, 0.06);
  transform: translateY(-2px);
}

.automotive-product-card:focus-visible {
  outline: 2px solid var(--about-gold);
  outline-offset: 4px;
}

.automotive-network {
  min-height: 0;
  padding: clamp(3rem, 3.1vw, 3.75rem) 0 clamp(3rem, 3.5vw, 4.25rem);
  background: #fff;
}

.automotive-network__inner.container {
  display: grid;
  grid-template-columns: 33.7fr 6.3fr 35.8fr 2fr 22.2fr;
  gap: 0;
  align-items: stretch;
  width: 88.75%;
  max-width: 106.75rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 0;
  padding-left: 0;
  box-sizing: border-box;
}

.automotive-network__company,
.automotive-network__address {
  box-sizing: border-box;
}

.automotive-network__intro {
  grid-column: 1;
  align-self: start;
}

.automotive-network__title {
  margin: 0;
  color: var(--automotive-ink);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.25rem, 2.61vw, 3.125rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.automotive-network__copy {
  max-width: 35rem;
  margin: clamp(1.35rem, 1.7vw, 2rem) 0 0;
  color: #454545;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.05vw, 1.25rem);
  font-weight: 400;
  line-height: 1.42;
}

.automotive-network__companies {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1rem;
  margin-top: clamp(2.2rem, 4vw, 5rem);
}

.automotive-network__company {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: clamp(4.4rem, 4.12vw, 4.94rem);
  padding: 0.35rem 1rem;
  overflow: hidden;
  border: 1px solid #dddcdc;
  border-radius: 0.625rem;
  background: #fff;
  cursor: pointer;
  transition: border-color 260ms ease, box-shadow 260ms ease, transform 260ms ease;
}

.automotive-network__company img {
  display: block;
  width: 86%;
  height: 100%;
  object-fit: contain;
}

.automotive-network__company:not(.is-associated):hover,
.automotive-network__company.is-active {
  border-color: var(--about-gold);
}

.automotive-network__company.is-active {
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.16);
}

.automotive-network__company:not(.is-associated):hover:not(.is-active) {
  transform: translateY(-2px);
}

.automotive-network__company.is-associated {
  cursor: default;
}

.automotive-network__company:focus-visible {
  outline: 2px solid var(--about-gold);
  outline-offset: 3px;
}

.automotive-network__map-column {
  grid-column: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.automotive-network__map {
  position: relative;
  width: 100%;
  max-width: 40.375rem;
  aspect-ratio: 646 / 723;
}

.automotive-network__map > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: url('#automotive-network-remove-dark');
}

.automotive-network__filters {
  position: absolute;
  overflow: hidden;
  pointer-events: none;
}

.automotive-network__pulse {
  position: absolute;
  top: var(--network-y);
  left: var(--network-x);
  z-index: 2;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.automotive-network__pulse > span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transform-origin: center;
  background: #ffffff40; /* client request 2026-10-08 */
}

.automotive-network__pulse-outer {
  width: clamp(1.75rem, 1.7vw, 2.05rem);
  height: clamp(1.75rem, 1.7vw, 2.05rem);
  background: rgba(89, 80, 106, 0.32);
  animation: automotive-pulse-outer-opacity 3s linear infinite, automotive-pulse-outer-scale 3.2s linear infinite;
}

.automotive-network__pulse-mid {
  width: clamp(1.1rem, 1.12vw, 1.35rem);
  height: clamp(1.1rem, 1.12vw, 1.35rem);
  background: rgba(89, 80, 106, 0.48);
  animation: automotive-pulse-mid-opacity 3s linear infinite, automotive-pulse-mid-scale 3s linear infinite;
}

.automotive-network__pulse-dot {
  width: clamp(0.45rem, 0.52vw, 0.63rem);
  height: clamp(0.45rem, 0.52vw, 0.63rem);
  background: #352b46;
  animation: automotive-pulse-dot-opacity 3s linear infinite, automotive-pulse-dot-scale 3s linear infinite;
}

.automotive-network__address {
  grid-column: 5;
  align-self: end;
  width: 100%;
  min-height: clamp(20rem, 21vw, 25.2rem);
  padding: clamp(1.35rem, 1.5vw, 1.8rem) clamp(1.35rem, 1.7vw, 2rem);
  border-radius: 1.25rem;
  background: #352b46;
  color: #fff;
}

.automotive-network__address h3 {
  margin: 0 0 1.1rem;
  color: inherit;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.45rem, 1.52vw, 1.82rem);
  font-weight: 400;
  line-height: 1.16;
}

.automotive-network__address ul {
  display: grid;
  gap: 0.58rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.automotive-network__address li {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  gap: 0.55rem;
  align-items: start;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.82rem, 0.9vw, 1.08rem);
  font-weight: 400;
  line-height: 1.5;
}

.automotive-network__address svg {
  width: 1rem;
  height: 1rem;
  margin-top: 0.18rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}

.automotive-network__map.is-changing,
.automotive-network__address.is-changing {
  animation: automotive-network-enter 420ms ease both;
}

@keyframes automotive-panel-enter {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes automotive-product-content-enter {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes automotive-network-enter {
  from { opacity: 0.35; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes automotive-pulse-outer-opacity {
  0%, 16.667%, 40%, 83.333% { opacity: 1; }
  28.333%, 95% { opacity: 0.3; }
  100% { opacity: 0.469; }
}

@keyframes automotive-pulse-outer-scale {
  0%, 15.625%, 37.5%, 78.125% { transform: translate(-50%, -50%) scale(1); }
  26.563%, 89.063% { transform: translate(-50%, -50%) scale(1.2); }
  100% { transform: translate(-50%, -50%) scale(1.152); }
}

@keyframes automotive-pulse-mid-opacity {
  0%, 8.333%, 31.667%, 75%, 98.333%, 100% { opacity: 1; }
  20%, 86.667% { opacity: 0.3; }
}

@keyframes automotive-pulse-mid-scale {
  0%, 8.333%, 31.667%, 75%, 98.333%, 100% { transform: translate(-50%, -50%) scale(1); }
  20%, 86.667% { transform: translate(-50%, -50%) scale(1.2); }
}

@keyframes automotive-pulse-dot-opacity {
  0%, 23.333%, 66.667%, 90%, 100% { opacity: 1; }
  11.667%, 78.333% { opacity: 0.3; }
}

@keyframes automotive-pulse-dot-scale {
  0%, 23.333%, 66.667%, 90%, 100% { transform: translate(-50%, -50%) scale(1); }
  11.667%, 78.333% { transform: translate(-50%, -50%) scale(1.2); }
}

.automotive-network,
.automotive-capabilities,
.automotive-growth,
.automotive-partners {
  overflow: hidden;
}

.automotive-character-heading {
  --character-heading-muted: #dddcdc;
  max-width: 74.5rem;
  min-height: 8.4rem;
  margin: clamp(4rem, 5vw, 6rem) auto;
  color: #dddcdc;
  font-size: clamp(2rem, 2.61vw, 3.125rem);
  line-height: 1.32;
  text-align: center;
  letter-spacing: -0.022em;
}

.automotive-capabilities__strip {
  padding: clamp(2.75rem, 4.25vw, 5.1rem) 0 clamp(3rem, 4.7vw, 5.6rem);
  background: rgba(108, 61, 154, 0.14);
}

.automotive-capability {
  min-height: clamp(12rem, 15vw, 18rem);
  padding: 0 clamp(1.25rem, 1.7vw, 2rem);
  text-align: center;
}

.automotive-capability + .automotive-capability {
  border-left: 1px dashed rgba(126, 97, 49, 0.54);
}

.automotive-capability img {
  width: clamp(3.5rem, 4.1vw, 4.9rem);
  height: clamp(3.5rem, 4.1vw, 4.9rem);
  margin-bottom: clamp(1.5rem, 2.15vw, 2.6rem);
  object-fit: contain;
}

.automotive-capability h3 {
  margin-bottom: 0.7rem;
  color: var(--automotive-ink);
  font-size: clamp(1.35rem, 1.41vw, 1.7rem);
}

.automotive-capability p {
  max-width: 14rem;
  margin: 0 auto;
  font-size: clamp(0.88rem, 1.04vw, 1.25rem);
  font-weight: 300;
  line-height: 1.32;
}

.automotive-growth {
  padding: clamp(4.75rem, 7.5vw, 9rem) 0 clamp(5rem, 7.7vw, 9.2rem);
}

.automotive-growth > .container {
  width: calc(100% - 4rem);
  max-width: 95.25rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 0;
  padding-left: 0;
}

.automotive-growth .industry-leaders__heading {
  text-align: center;
}

.automotive-growth .industry-leaders__heading h2 {
  margin-bottom: clamp(0.65rem, 0.85vw, 1rem);
  font-size: clamp(2rem, 2.6vw, 3.125rem);
}

.automotive-growth .industry-leaders__heading p {
  max-width: 40rem;
  margin-right: auto;
  margin-left: auto;
  font-size: clamp(0.85rem, 0.95vw, 1.125rem);
  line-height: 1.4;
}

.automotive-growth__carousel {
  position: relative;
  width: min(78.75vw, 95.25rem);
  max-width: 95.25rem;
  margin: clamp(3.5rem, 4.7vw, 5.625rem) auto 0;
  padding: 0;
}

.automotive-growth__cards {
  --bs-gutter-x: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 2.6vw, 3.125rem);
  width: min(70.68vw, 84.8125rem);
  max-width: 84.8125rem;
  margin: 0 auto;
}

.automotive-growth__cards > [class*="col-"] {
  width: auto;
  max-width: none;
  padding-right: 0;
  padding-left: 0;
}

.automotive-growth-card {
  position: relative;
  aspect-ratio: 419 / 569;
  min-height: 0;
  overflow: hidden;
  border: 1px solid #dddcdc;
  border-radius: clamp(0.75rem, 1.04vw, 1.25rem);
  background: #fefefe;
}

.automotive-growth-card__gradient,
.automotive-growth-card__curves {
  position: absolute;
  display: block;
  max-width: none;
  pointer-events: none;
}

.automotive-growth-card__gradient {
  z-index: 0;
  top: -15.6%;
  left: -110%;
  width: 275.4%;
  height: 172.4%;
}

.automotive-growth-card__curves {
  z-index: 1;
  top: -9.3%;
  left: -41%;
  width: 154.8%;
  height: 99.1%;
  transform: rotate(-14.19deg);
  transform-origin: center;
}

.automotive-growth-card__art {
  position: absolute;
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
}

.automotive-growth-card__art > img {
  position: absolute;
  display: block;
  max-width: none;
}

.automotive-growth-card__art--lightweight {
  top: 3.16%;
  left: 18.38%;
  width: 64.44%;
  height: 77.15%;
  border-radius: 6.25rem;
}

.automotive-growth-card__art--lightweight > img {
  top: 0.03%;
  left: -31.44%;
  width: 162.39%;
  height: 100%;
}

.automotive-growth-card__art--sealing {
  top: 3.16%;
  left: 1.67%;
  width: 97.14%;
  height: 71.53%;
  border-radius: 50%;
}

.automotive-growth-card__art--sealing > img {
  top: -4.53%;
  left: 1.11%;
  width: 97.77%;
  height: 121.98%;
}

.automotive-growth-card__art--thermal {
  top: -2.99%;
  left: -9.31%;
  width: 122.67%;
  height: 87.17%;
  border-radius: 10rem;
}

.automotive-growth-card__art--thermal > img {
  top: 1.87%;
  left: 11.46%;
  width: 77.14%;
  height: 100%;
}

.automotive-growth-card__copy {
  position: absolute;
  z-index: 3;
  top: 77.8%;
  right: 5%;
  left: 5%;
  text-align: center;
}

.automotive-growth-card h3 {
  margin: 0 0 clamp(0.35rem, 0.55vw, 0.65rem);
  color: var(--automotive-ink);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.1rem, 1.43vw, 1.71875rem);
  font-weight: 400;
  line-height: 1.12;
}

.automotive-growth-card p {
  max-width: 19rem;
  margin: 0 auto;
  font-size: clamp(0.78rem, 0.94vw, 1.125rem);
  font-weight: 300;
  line-height: 1.3;
}

.automotive-growth__arrow {
  position: absolute;
  z-index: 4;
  top: 50%;
  display: grid;
  width: 2.75rem;
  height: 3.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--automotive-ink);
  font-family: Georgia, serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  place-items: center;
  transform: translateY(-50%);
}

.automotive-growth__arrow--previous {
  left: 0;
}

.automotive-growth__arrow--next {
  right: 0;
}

.automotive-growth__arrow:hover,
.automotive-growth__arrow:focus-visible {
  color: var(--about-gold);
}

.automotive-growth__arrow:focus-visible {
  outline: 1px solid var(--about-gold);
  outline-offset: 2px;
}

.automotive-growth__cards.is-reordering > [class*="col-"] {
  animation: automotive-growth-reorder 360ms ease both;
}

@keyframes automotive-growth-reorder {
  from { opacity: 0.72; transform: translateX(0.8rem); }
  to { opacity: 1; transform: translateX(0); }
}

/* Previous generic card rules intentionally replaced by the exact Figma proportions. */
.automotive-growth-card > img:not(.automotive-growth-card__gradient):not(.automotive-growth-card__curves) {
  width: 100%;
  height: 100%;
}

.automotive-partners {
  padding-top: clamp(1.5rem, 1.9vw, 2.25rem);
}

.automotive-partners .industry-leaders__heading {
  text-align: center;
}

.automotive-partners .industry-leaders__heading h2 {
  margin-bottom: clamp(0.65rem, 0.85vw, 1rem);
  font-size: clamp(2rem, 3.13vw, 3.75rem);
}

.automotive-partners .industry-leaders__heading p {
  max-width: 52rem;
  margin: 0 auto;
  font-size: clamp(0.88rem, 1.3vw, 1.5625rem);
  line-height: 1.35;
}

.automotive-partners .gold-btn {
  box-sizing: border-box;
  width: clamp(7.75rem, 9.48vw, 11.375rem);
  min-width: 0;
  min-height: clamp(2.25rem, 2.66vw, 3.1875rem);
  justify-content: center;
  gap: 0;
  margin-top: clamp(1.45rem, 1.93vw, 2.3125rem);
  padding: 0.35rem 0;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.78rem, 1.04vw, 1.25rem);
}

.automotive-partners .gold-btn img {
  box-sizing: border-box;
  width: 30%;
  height: clamp(1rem, 1.2vw, 1.45rem);
  padding: 0.15rem clamp(0.35rem, 0.55vw, 0.65rem);
  border-left: 1px solid currentColor;
  object-fit: contain;
}

.automotive-partners .gold-btn span {
  flex: 1;
  text-align: center;
}

.automotive-partners .industry-leaders__viewport {
  width: 100%;
  height: clamp(7rem, 9.2vw, 11rem);
  margin-top: clamp(5rem, 7.8vw, 9.375rem);
}

.automotive-partners .industry-leaders__track {
  width: 440vw;
  height: 100%;
  /* Match the homepage logo-carousel speed in pixels/second. This track
     contains 11 logos per loop instead of the homepage's 5. */
  animation-duration: 50.6s;
}

.automotive-partners .industry-leaders__set {
  flex: 0 0 220vw;
  grid-template-columns: repeat(11, 20vw);
  grid-template-rows: 100%;
}

.automotive-partners .industry-leaders__logo {
  min-height: 0;
  padding: clamp(0.75rem, 1.25vw, 1.5rem);
}

.automotive-partners .industry-leaders__logo img {
  max-width: clamp(6rem, 8.5vw, 10.2rem);
  max-height: clamp(3rem, 4.2vw, 5rem);
}

.automotive-partners .industry-leaders__set .industry-leaders__logo:nth-child(-n + 5) {
  overflow: hidden;
}

.automotive-partners .industry-leaders__set .industry-leaders__logo:nth-child(-n + 5) img {
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
}

.automotive-partners .industry-leaders__set .industry-leaders__logo:nth-child(1) img {
  width: 66%;
  height: 50%;
}

.automotive-partners .industry-leaders__set .industry-leaders__logo:nth-child(2) img {
  width: 42%;
  height: 45%;
}

.automotive-partners .industry-leaders__set .industry-leaders__logo:nth-child(3) img {
  width: 46%;
  height: 50%;
}

.automotive-partners .industry-leaders__set .industry-leaders__logo:nth-child(4) img {
  width: 49%;
  height: 37%;
}

.automotive-partners .industry-leaders__set .industry-leaders__logo:nth-child(5) img {
  width: 48%;
  height: 52%;
}

.automotive-contact {
  min-height: clamp(34rem, 42.55vw, 51.06rem);
  border: 1px solid #111;
}

.automotive-contact .about-contact__image {
  top: -33%;
  left: -7.25%;
  width: 113.2%;
  height: 133%;
  max-width: none;
}

.automotive-contact .about-contact__shade {
  right: 31%;
  background: linear-gradient(90deg, #000 8%, rgba(0, 0, 0, 0.94) 35%, rgba(0, 0, 0, 0) 100%);
}

.automotive-contact .about-contact__content {
  color: #fff;
}

.automotive-contact p {
  max-width: 31rem;
}

@media (max-width: 1199.98px) {
  .automotive-network__inner.container {
    grid-template-areas:
      "network-intro network-map"
      "network-address network-map";
    grid-template-columns: minmax(20rem, 0.9fr) minmax(25rem, 1.1fr);
    align-items: start;
    max-width: 71rem;
  }

  .automotive-network__intro {
    grid-area: network-intro;
  }

  .automotive-network__map-column {
    grid-area: network-map;
  }

  .automotive-network__address {
    grid-area: network-address;
    min-height: 0;
  }
}

@media (max-width: 991.98px) {
  .automotive-platform-tabs {
    --automotive-tab-column-narrow: minmax(12rem, 19rem);
    --automotive-tab-column-wide: minmax(17rem, 25rem);
    grid-template-columns: minmax(12rem, 19rem) minmax(17rem, 25rem);
  }

  .automotive-product-stage {
    height: 24rem;
  }

  .automotive-product-list {
    gap: 1rem;
  }

  .automotive-network__inner.container {
    grid-template-areas:
      "network-intro"
      "network-map"
      "network-address";
    grid-template-columns: minmax(0, 1fr);
    max-width: 45rem;
  }

  .automotive-network__companies {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 2.25rem;
  }

  .automotive-network__company {
    padding: 0.35rem 0.6rem;
  }

  .automotive-network__map {
    max-width: 34rem;
  }

  .automotive-network__address {
    max-width: 36rem;
    margin: 0 auto;
  }

  .automotive-capability:nth-child(odd) {
    border-left: 0;
  }

  .automotive-capability {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .automotive-contact .about-contact__shade {
    right: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.92), rgba(0, 0, 0, 0.2));
  }
}

@media (max-width: 767.98px) {
  .automotive-hero {
    min-height: 33rem;
  }

  .automotive-hero .industries-hero__image {
    object-position: 56% center;
  }

  .automotive-hero .industries-hero__title {
    font-size: clamp(2rem, 9vw, 2.5rem);
  }

  .automotive-platform-tabs {
    --automotive-tab-column-narrow: 0.75fr;
    --automotive-tab-column-wide: 1fr;
    grid-template-columns: 0.75fr 1fr;
  }

  .automotive-platform-tab {
    padding-bottom: 2.65rem;
  }

  .automotive-platform-tab__visual {
    height: 13rem;
  }

  .automotive-product-explorer {
    min-height: 0;
  }

  .automotive-segment-selector {
    width: 80%;
  }

  .automotive-product-stage {
    height: 18rem;
    margin-top: 2.5rem;
  }

  .automotive-product-stage__vehicle,
  .automotive-product-stage__vehicle--4w {
    width: 78%;
  }

  .automotive-segment-arrow {
    width: 2rem;
    height: 3rem;
    font-size: 2.25rem;
  }

  .automotive-segment-arrow--previous {
    left: 0;
  }

  .automotive-segment-arrow--next {
    right: 0;
  }

  .automotive-product-callout {
    top: 30%;
    left: 0;
    width: 6rem;
  }

  .automotive-product-callout__line {
    left: calc(100% + 0.7rem);
    width: 3rem;
  }

  .automotive-product-pulse {
    left: calc(100% + 0.3rem);
    transform: translate(-50%, -50%) scale(0.7);
  }

  .automotive-product-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .automotive-product-carousel {
    width: 100%;
    padding-right: 2.35rem;
    padding-left: 2.35rem;
  }

  .automotive-product-arrow {
    width: 2rem;
    height: 3rem;
    font-size: 2.25rem;
  }

  .automotive-network {
    padding-top: 3.5rem;
  }

  .automotive-network__inner.container {
    width: calc(100% - 2.25rem);
  }

  .automotive-network__companies {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .automotive-network__company {
    height: 4.65rem;
  }

  .automotive-network__map {
    max-width: 27rem;
  }

  .automotive-network__address {
    border-radius: 1rem;
  }

  .automotive-character-heading {
    min-height: 0;
    text-align: left;
  }

  .automotive-growth__carousel {
    width: 100%;
    padding-right: 2.25rem;
    padding-left: 2.25rem;
  }

  .automotive-growth__cards {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .automotive-growth__cards::-webkit-scrollbar {
    display: none;
  }

  .automotive-growth__cards > [class*="col-"] {
    flex: 0 0 min(85%, 24rem);
    width: min(85%, 24rem);
    scroll-snap-align: center;
  }

  .automotive-growth > .container {
    width: calc(100% - 2rem);
  }

  .automotive-capability,
  .automotive-capability + .automotive-capability,
  .automotive-capability:nth-child(odd) {
    border-left: 0;
    border-bottom: 1px dashed rgba(126, 97, 49, 0.54);
  }

  .automotive-capability:last-child {
    border-bottom: 0;
  }

  .automotive-growth__cards {
    max-width: 28rem;
  }

  .automotive-partners .industry-leaders__track {
    width: 440vw;
  }

  .automotive-partners .industry-leaders__set {
    flex-basis: 220vw;
    grid-template-columns: repeat(11, 20vw);
  }

  .automotive-contact .about-contact__image {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-position: 70% center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .automotive-product-panel.is-active,
  .automotive-product-pulse i,
  .automotive-product-content.is-changing .automotive-product-stage,
  .automotive-product-content.is-changing .automotive-product-list,
  .automotive-product-content.is-product-changing .automotive-product-stage,
  .automotive-network__pulse > span,
  .automotive-network__map.is-changing,
  .automotive-network__address.is-changing {
    animation: none;
  }

  .automotive-growth__cards.is-reordering > [class*="col-"] {
    animation: none;
  }

  .character-heading__character {
    color: #352b46;
  }
}

/* ---------- About responsive ---------- */

@media (max-width: 991.98px) {
  .about-trust__visual {
    min-height: 360px;
  }

  .about-trust__visual img {
    left: 50%;
    right: auto;
    width: min(760px, 105vw);
    transform: translate(-50%, -48%);
  }

  .about-purpose__copy {
    width: min(320px, 39vw);
  }
}

@media (max-width: 767.98px) {
  .about-hero {
    min-height: 430px;
  }

  .about-hero__image {
    object-position: 57% center;
  }

  .about-hero__shade {
    background: linear-gradient(0deg, rgba(5, 5, 14, 0.76) 0%, rgba(5, 5, 14, 0.05) 70%);
  }

  .about-trust {
    padding-bottom: 1rem;
  }

  .about-trust__visual {
    min-height: 330px;
  }

  .about-purpose__panel {
    min-height: 570px;
  }

  .about-purpose__circle {
    top: 38%;
    width: 270px;
    height: 270px;
  }

  .about-purpose__copy,
  .about-purpose__copy--left,
  .about-purpose__copy--right {
    left: 1.25rem;
    right: 1.25rem;
    top: auto;
    bottom: 2.25rem;
    width: auto;
    transform: none;
    padding: 1.2rem;
    border-radius: 6px;
    background: rgba(20, 14, 30, 0.8);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
  }

  .about-timeline::before {
    left: 10px;
  }

  .about-timeline__item {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 0 0 5rem 2.3rem;
  }

  .about-timeline__item::before {
    left: 10px;
    top: 1.3rem;
  }

  .about-timeline__year,
  .about-timeline__year--featured {
    width: auto;
    height: auto;
    margin: 0 0 1.5rem;
    padding: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    text-align: left;
  }

  .about-timeline__year strong,
  .about-timeline__year--featured strong {
    color: #e7e1e9;
  }

  .about-timeline__content {
    padding-left: 0;
  }

  .about-awards__tabs {
    overflow-x: auto;
    justify-content: flex-start;
  }

  .about-awards__tabs button {
    min-width: 92px;
  }

  .about-award-card h3 {
    min-height: 0;
  }

  .about-contact__image {
    object-position: 68% center;
  }

  .about-contact__shade {
    background: rgba(5, 7, 13, 0.7);
  }
}

/* ---------- About walkthrough motion refinements ---------- */

.about-page .about-site-header {
  position: sticky;
  top: 0;
  z-index: 1040;
  background: rgba(255, 255, 255, 0.98);
  transition: box-shadow 280ms ease, background-color 280ms ease;
}

.about-page .about-site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 28px rgba(24, 18, 32, 0.1);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.about-hero__image {
  --about-hero-shift: 0px;
  transform: translate3d(0, var(--about-hero-shift), 0) scale(1.045);
  transform-origin: center center;
  will-change: transform;
}

.about-trust__visual img {
  --about-robot-shift: 0px;
  transform: translate3d(0, calc(-45% + var(--about-robot-shift)), 0);
  will-change: transform;
}

.about-purpose__circle {
  --about-circle-shift: 0px;
  transform: translate3d(-50%, calc(-50% + var(--about-circle-shift)), 0);
  box-shadow: 0 24px 70px rgba(7, 5, 13, 0.32);
  will-change: transform;
}

.about-purpose__circle--continuation img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 69% center;
  transform: scale(1.85);
}

.about-purpose__panel--vision::after,
.about-purpose__panel--mission::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.about-purpose__panel--vision::after {
  background: linear-gradient(180deg, transparent 70%, rgba(14, 9, 22, 0.16));
}

.about-purpose__panel--mission::after {
  background: linear-gradient(180deg, rgba(8, 8, 15, 0.08), transparent 32%, rgba(8, 8, 15, 0.18));
}

.motion-ready [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 42px, 0);
  transition:
    opacity 760ms cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms),
    transform 900ms cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms);
}

.motion-ready [data-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.motion-ready .about-hero__content[data-reveal] {
  transform: translate3d(-50%, 42px, 0);
}

.motion-ready .about-hero__content[data-reveal].is-visible {
  transform: translate3d(-50%, 0, 0);
}

.motion-ready .about-purpose__copy[data-reveal] {
  transform: translate3d(0, calc(-50% + 42px), 0);
}

.motion-ready .about-purpose__copy[data-reveal].is-visible {
  transform: translate3d(0, -50%, 0);
}

.motion-ready .about-contact__content[data-reveal] {
  transform: translate3d(-50%, calc(-50% + 42px), 0);
}

.motion-ready .about-contact__content[data-reveal].is-visible {
  transform: translate3d(-50%, -50%, 0);
}

/* The walkthrough uses large year orbs rather than a centre-line timeline. */
.about-timeline::before,
.about-timeline__item::before {
  display: none;
}

.about-timeline__item {
  grid-template-columns: 0.47fr 0.53fr;
  align-items: center;
  min-height: clamp(560px, 52vw, 750px);
}

.about-timeline__year,
.about-timeline__year--featured {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: clamp(210px, 19vw, 274px);
  height: clamp(210px, 19vw, 274px);
  margin: 0 clamp(3rem, 7vw, 105px) 0 auto;
  padding: 0 0 0 clamp(3.5rem, 5vw, 72px);
  border-radius: 50%;
  background: radial-gradient(circle at 27% 28%, #c6b8df 0%, #e5deef 43%, #fbfafc 78%, #fff 100%);
  box-shadow: 0 14px 34px rgba(81, 60, 104, 0.14);
  text-align: left;
}

.about-timeline__year::before {
  content: "";
  position: absolute;
  left: -44px;
  top: 50%;
  width: 25px;
  height: 86px;
  background: repeating-linear-gradient(to bottom, rgba(154, 118, 64, 0.78) 0 1px, transparent 1px 11px);
  transform: translateY(-32%);
}

.about-timeline__year::after {
  content: "";
  position: absolute;
  left: -47px;
  top: calc(50% - 48px);
  width: 29px;
  height: 1px;
  background: #615969;
}

.about-timeline__year strong,
.about-timeline__year--featured strong {
  color: #96743e;
  font-size: clamp(3rem, 4.45vw, 64px);
  line-height: 0.92;
  transition: color 700ms ease 180ms;
}

.about-timeline__year span {
  margin-top: 0.7rem;
  color: #312a38;
}

.about-timeline__content {
  max-width: 560px;
  padding-left: 0;
}

.about-timeline__image {
  height: clamp(220px, 20vw, 288px);
}

.about-timeline__image--logo {
  height: clamp(180px, 17vw, 245px);
}

.motion-ready .about-timeline__year,
.motion-ready .about-timeline__content {
  opacity: 0;
  transition: opacity 800ms cubic-bezier(0.22, 1, 0.36, 1), transform 950ms cubic-bezier(0.22, 1, 0.36, 1);
}

.motion-ready .about-timeline__year {
  transform: translate3d(0, 90px, 0) scale(0.94);
}

.motion-ready .about-timeline__content {
  transform: translate3d(54px, 68px, 0);
  transition-delay: calc(var(--timeline-delay, 0ms) + 90ms);
}

.motion-ready .about-timeline__item.is-visible .about-timeline__year,
.motion-ready .about-timeline__item.is-visible .about-timeline__content {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

/* Award cards are rendered after the CMS response. Unlike the fixed About
   sections, a category may create a grid taller than the viewport; never make
   its content depend on a scroll-reveal state or it can remain blank. */
.motion-ready .about-awards__grid[data-reveal] {
  opacity: 1;
  transform: none;
}

.motion-ready .about-awards__grid .awards2-card {
  opacity: 1;
  transform: none;
}

.motion-ready .about-contact__image {
  clip-path: inset(0 0 0 100%);
  transform: scale(1.055);
  transform-origin: right center;
  transition:
    clip-path 1200ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 1600ms cubic-bezier(0.22, 1, 0.36, 1);
}

.motion-ready .about-contact.is-visible .about-contact__image {
  clip-path: inset(0 0 0 0);
  transform: scale(1);
}

.motion-ready .about-contact__shade {
  opacity: 0;
  transition: opacity 900ms ease 280ms;
}

.motion-ready .about-contact.is-visible .about-contact__shade {
  opacity: 1;
}

@media (max-width: 767.98px) {
  .about-trust__visual img {
    transform: translate3d(-50%, calc(-48% + var(--about-robot-shift)), 0);
  }

  .about-purpose__circle {
    transform: translate3d(-50%, calc(-50% + var(--about-circle-shift)), 0);
  }

  .about-timeline__item {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 0 0 6rem 0;
  }

  .about-timeline__year,
  .about-timeline__year--featured {
    width: 190px;
    height: 190px;
    margin: 0 0 2.2rem 2.8rem;
    padding-left: 3rem;
  }

  .about-timeline__year strong,
  .about-timeline__year--featured strong {
    font-size: 2.8rem;
  }

  .about-timeline__year::before {
    left: -34px;
  }

  .about-timeline__year::after {
    left: -37px;
  }

  .motion-ready .about-timeline__content {
    transform: translate3d(0, 48px, 0);
  }

  .motion-ready .about-purpose__copy[data-reveal] {
    transform: translate3d(0, 42px, 0);
  }

  .motion-ready .about-purpose__copy[data-reveal].is-visible {
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-page *,
  .about-page *::before,
  .about-page *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .about-contact__image {
    clip-path: none !important;
  }
}

/* ---------- About: Trust section reference-match refinement ---------- */

.about-trust {
  height: clamp(470px, 46.55vw, 670px);
  min-height: 0;
  padding: clamp(74px, 7.55vw, 109px) 0 0;
  border-top: 1px solid rgba(154, 118, 64, 0.7);
  isolation: isolate;
}

.about-trust .row {
  align-items: flex-start !important;
}

.about-trust .col-lg-5 {
  position: relative;
  z-index: 3;
}

.about-trust .about-display {
  font-size: clamp(2rem, 2.55vw, 36px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.025em;
}

.about-trust__copy {
  max-width: clamp(280px, 30.5vw, 440px);
  margin-top: clamp(22px, 2.25vw, 32px);
  padding-left: clamp(12px, 1.35vw, 19px);
  border-left: 1px dashed rgba(53, 43, 70, 0.82);
  color: #4e4a51;
  font-size: clamp(0.78rem, 0.9vw, 13px);
  line-height: 1.3;
}

.about-trust .gold-btn {
  gap: 0;
  margin-top: clamp(16px, 1.7vw, 24px) !important;
  padding: 0 0 0 clamp(10px, 1vw, 14px);
  min-height: clamp(28px, 2.75vw, 40px);
  border-color: rgba(154, 118, 64, 0.85);
  border-radius: 2px;
  font-size: clamp(0.72rem, 0.82vw, 12px);
  line-height: 1;
}

.about-trust .gold-btn span {
  padding-right: clamp(11px, 1.15vw, 16px);
}

.about-trust .gold-btn img {
  box-sizing: content-box;
  width: clamp(12px, 1.15vw, 16px);
  margin: 0;
  padding: clamp(7px, 0.72vw, 10px) clamp(8px, 0.8vw, 12px);
  border-left: 1px solid rgba(154, 118, 64, 0.85);
}

.about-trust__visual {
  position: static;
  min-height: 0;
}

.about-trust__visual img {
  top: 32%;
  right: -33vw;
  bottom: auto;
  width: min(119vw, 2285px);
  transform: translate3d(0, var(--about-robot-shift, 0px), 0);
}

.about-trust::before,
.about-trust::after,
.about-trust__line {
  position: absolute;
  z-index: -1;
  left: -13%;
  width: 138%;
  height: 101%;
  border: 0;
  border-top: 1px solid rgba(154, 118, 64, 0.27);
  border-radius: 50%;
  background: transparent;
  transform: rotate(-20deg);
  transform-origin: center;
  pointer-events: none;
}

.about-trust::before {
  content: "";
  bottom: -58%;
}

.about-trust::after {
  content: "";
  right: auto;
  bottom: -69%;
}

.about-trust__line {
  right: auto;
}

.about-trust__line--one {
  top: auto;
  bottom: -80%;
}

.about-trust__line--two {
  top: auto;
  bottom: -91%;
}

@media (max-width: 991.98px) {
  .about-trust {
    height: auto;
    min-height: 680px;
    padding-bottom: 0;
  }

  .about-trust__visual {
    position: relative;
    min-height: 390px;
  }

  .about-trust__visual img {
    left: 50%;
    right: auto;
    top: 54%;
    bottom: auto;
    width: min(1180px, 172vw);
    transform: translate3d(-50%, calc(-34% + var(--about-robot-shift, 0px)), 0);
  }
}

@media (max-width: 575.98px) {
  .about-trust {
    min-height: 630px;
    padding-top: 58px;
  }

  .about-trust .about-display {
    font-size: 2rem;
  }

  .about-trust__copy {
    max-width: 315px;
    font-size: 0.82rem;
  }

  .about-trust__visual {
    min-height: 350px;
  }

  .about-trust__visual img {
    top: 57%;
    width: 188vw;
  }

  .about-trust::before,
  .about-trust::after,
  .about-trust__line {
    left: -48%;
    width: 190%;
  }
}

/* ---------- ESG and Sustainability page ---------- */
.esg-page {
  --esg-purple: #352b46;
  --esg-gold: #7e6131;
  --esg-muted: #dddcdc;
  overflow-x: hidden;
  background: #fff;
}

.esg-page .about-site-header .navbar .nav-link.active { color: var(--esg-gold); }
.esg-hero { position: relative; height: clamp(38rem, 47.41vw, 57.25rem); overflow: hidden; background: #0d0b1b; }
.esg-hero__image { position: absolute; inset: -13.51% 0 0; width: 100%; height: 140.61%; max-width: none; object-fit: fill; }
.esg-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(53,43,70,0) 33.57%, rgba(53,43,70,.55) 100%), linear-gradient(180deg, rgba(0,0,0,0) 52%, rgba(0,0,0,.92) 100%); }
.esg-hero__content { position: absolute; inset: 0; display: flex; align-items: flex-end; padding-bottom: clamp(5rem, 10.36vw, 12.45rem); }
.esg-hero h1 { max-width: 68rem; margin: 0; color: #fff; font: 700 clamp(2.45rem, 3.125vw, 3.75rem)/1.06 'Playfair Display', Georgia, serif; }

.esg-breadcrumb { display: flex; align-items: center; min-height: 52px; padding: 0; background: var(--esg-gold); color: #fff; font: 300 clamp(.8rem, .9375vw, 1.125rem)/1 'DM Sans', Arial, sans-serif; }
.esg-breadcrumb .container { display: flex; align-items: center; gap: .75rem; }
.esg-breadcrumb a { color: inherit; text-decoration: none; }
.esg-breadcrumb a:hover, .esg-breadcrumb a:focus-visible { text-decoration: underline; }

.esg-practice { position: relative; min-height: clamp(37rem, 43.17vw, 52rem); overflow: hidden; background: #fff; }
.esg-practice__lines { position: absolute; z-index: 0; top: 12%; left: -8%; width: 80%; height: 130%; max-width: none; pointer-events: none; opacity: .7; transform: rotate(180deg); }
.esg-practice__layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(22rem, .48fr) minmax(30rem, .52fr); width: 100%; max-width: none; min-height: inherit; align-items: center; }
.esg-practice__copy { position: relative; z-index: 2; max-width: 35rem; padding: clamp(4rem, 8vw, 9rem) 0 clamp(4rem, 8vw, 9rem) clamp(1.5rem, 4.6vw, 5.5rem); }
.esg-rule { display: block; width: 91px; height: 2px; margin: 0 0 2rem; background: var(--esg-gold); }
.esg-practice h2 { margin: 0 0 2.5rem; color: var(--esg-purple); font: 700 clamp(2.5rem, 3.125vw, 3.75rem)/1.03 'Playfair Display', Georgia, serif; }
.esg-practice__copy p { max-width: 28rem; margin: 0 0 2.6rem; color: #393939; font: 300 clamp(1rem, 1.302vw, 1.5625rem)/1.3 'DM Sans', Arial, sans-serif; }
.esg-outline-button { display: inline-flex; align-items: center; min-height: 51px; padding: 0 16px; border: 1px solid var(--esg-gold); border-radius: 4px; background: #fff; color: var(--esg-gold); font: 500 18px/1 'DM Sans', Arial, sans-serif; text-decoration: none; }
.esg-outline-button:hover, .esg-outline-button:focus-visible { color: var(--esg-purple); }
.esg-outline-button__divider { display: block; width: 1px; height: 41px; margin: 0 15px 0 18px; background: var(--esg-gold); }
.esg-outline-button img { width: 1rem; height: auto; }
.esg-practice__visual { position: relative; min-height: clamp(31rem, 36.9vw, 44rem); }
.esg-practice__outline { position: absolute; top: 2%; left: 27%; width: min(36rem, 76%); height: auto; opacity: .85; }
.esg-practice__main-circle { position: absolute; top: 12%; left: 35%; width: min(25rem, 53%); height: auto; }
.esg-practice__goal { position: absolute; top: 46%; left: 3%; display: flex; align-items: center; gap: .75rem; color: #111; }
.esg-practice__goal strong { color: var(--esg-muted); font: 400 clamp(4rem, 6.75vw, 8.1rem)/.8 'Playfair Display', Georgia, serif; }
.esg-practice__goal span { max-width: 9rem; font: 500 clamp(.85rem, .975vw, 1.17rem)/1.2 'DM Sans', Arial, sans-serif; }
.esg-practice__mini { position: absolute; padding: 0; border: 0; background: transparent; }
.esg-practice__mini img { display: block; width: 100%; height: 100%; }
.esg-practice__mini--one { top: 69%; left: 57%; width: 82px; height: 82px; }
.esg-practice__mini--two { top: 79%; left: 76%; width: 42px; height: 42px; }

.esg-efforts { position: relative; display: grid; grid-template-columns: 52% 48%; min-height: clamp(44rem, 49.02vw, 59rem); overflow: hidden; background: #f0edf4; }
.esg-efforts__copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(4rem, 7.5vw, 9rem) clamp(1.5rem, 4.3vw, 5.2rem) clamp(3rem, 5vw, 6rem); border-radius: 40px 0 0 40px; background: #f0edf4; }
.esg-efforts h2 { max-width: 32rem; margin: 0; color: var(--esg-purple); font: 700 clamp(2.2rem, 2.6vw, 3.125rem)/1.04 'Playfair Display', Georgia, serif; }
.esg-efforts__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.5rem, 1.1vw, 1.35rem); }
.esg-effort-card { min-height: 9.6rem; padding: 1rem .75rem; border: 1px solid var(--esg-purple); border-radius: 12px; background: rgba(255,255,255,.2); text-align: center; }
.esg-effort-card img { width: 28px; height: 28px; margin-bottom: .85rem; object-fit: contain; }
.esg-effort-card p { margin: 0; color: #111; font: 300 clamp(.75rem, .9375vw, 1.125rem)/1.35 'DM Sans', Arial, sans-serif; }
.esg-effort-card strong { font-weight: 600; }
.esg-efforts__image { position: relative; min-height: inherit; overflow: hidden; border-radius: 40px 0 0 40px; }
.esg-efforts__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.esg-efforts__arrows { display: flex; justify-content: center; gap: .35rem; margin: -1.2rem 0 0; color: #111; font: 400 1.35rem/1 'DM Sans', Arial, sans-serif; position: relative; z-index: 3; }

.esg-commitment { padding: clamp(6rem, 8.4vw, 10rem) 1.5rem clamp(7rem, 10vw, 12rem); background: #fff; }
.esg-commitment h2 { max-width: 68rem; margin: 0 auto clamp(5rem, 7.5vw, 9rem); color: var(--esg-purple); font: 700 clamp(2.2rem, 2.6vw, 3.14rem)/1.08 'Playfair Display', Georgia, serif; text-align: center; }
.esg-commitment h2 em { color: #cfcbd2; font-style: normal; }
.esg-commitment__nodes { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 23.5rem)); justify-content: center; gap: clamp(2rem, 4.8vw, 5.8rem); }
.esg-node { position: relative; z-index: 2; display: flex; aspect-ratio: 1; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; border-radius: 50%; background: var(--esg-purple); color: #fff; text-align: center; }
.esg-node h3 { margin: 0 0 1.25rem; font: 400 clamp(1.15rem, 1.4vw, 1.7rem)/1.1 'Playfair Display', Georgia, serif; }
.esg-node p { max-width: 15rem; margin: 0; font: 300 clamp(.75rem, .9375vw, 1.125rem)/1.3 'DM Sans', Arial, sans-serif; }
.esg-commitment__connector { position: absolute; z-index: 1; top: 50%; width: min(23.5rem, 25vw); height: auto; transform: translateY(-50%); }
.esg-commitment__connector--one { left: calc(50% - 25.2rem); }
.esg-commitment__connector--two { left: calc(50% + 1.6rem); }

.esg-vision { position: relative; min-height: clamp(32rem, 42.34vw, 51rem); overflow: hidden; background: #080914; }
.esg-vision__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.esg-vision__shade { position: absolute; inset: 0 auto 0 0; width: 44%; background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,0)); }
.esg-vision__content { position: relative; z-index: 1; padding-top: clamp(5rem, 9.3vw, 11rem); color: #fff; }
.esg-vision h2 { margin: 0 0 1.75rem; color: #fff; font: 700 clamp(2.4rem, 3.125vw, 3.75rem)/1.03 'Playfair Display', Georgia, serif; }
.esg-vision p { max-width: 30rem; margin: 0 0 2.5rem; color: #fff; font: 300 clamp(1rem, 1.1458vw, 1.375rem)/1.3 'DM Sans', Arial, sans-serif; }
.esg-outline-button--vision { background: #fff; }

@media (max-width: 991.98px) {
  .esg-practice__layout { grid-template-columns: 1fr; }
  .esg-practice__copy { max-width: 40rem; padding-top: 4rem; padding-bottom: 2rem; }
  .esg-practice__visual { min-height: 34rem; }
  .esg-practice__outline { left: 30%; width: 60%; }
  .esg-practice__main-circle { left: 37%; width: 42%; }
  .esg-practice__goal { left: 18%; top: 40%; }
  .esg-efforts { grid-template-columns: 1fr; }
  .esg-efforts__copy { min-height: 38rem; border-radius: 0; }
  .esg-efforts__image { min-height: 30rem; border-radius: 0; }
  .esg-commitment__nodes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
  .esg-commitment__connector { width: 29%; }
  .esg-commitment__connector--one { left: 20%; }
  .esg-commitment__connector--two { left: 51%; }
}

@media (max-width: 575.98px) {
  .esg-hero { height: 35rem; }
  .esg-hero__content { padding-bottom: 3.5rem; }
  .esg-breadcrumb .container { flex-wrap: wrap; padding-top: .75rem; padding-bottom: .75rem; }
  .esg-practice { min-height: 55rem; }
  .esg-practice__copy { padding: 3.5rem 1.25rem 1rem; }
  .esg-practice__visual { min-height: 28rem; }
  .esg-practice__outline { top: 5%; left: 12%; width: 84%; }
  .esg-practice__main-circle { top: 14%; left: 28%; width: 56%; }
  .esg-practice__goal { top: 43%; left: 3%; }
  .esg-practice__mini--one { top: 70%; left: 58%; }
  .esg-practice__mini--two { top: 82%; left: 78%; }
  .esg-efforts__copy { min-height: 45rem; padding: 3.5rem 1rem 2.5rem; }
  .esg-efforts__cards { grid-template-columns: 1fr; gap: .75rem; }
  .esg-effort-card { min-height: 7.5rem; }
  .esg-commitment { padding-right: 1rem; padding-left: 1rem; }
  .esg-commitment__nodes { grid-template-columns: 1fr; gap: 2rem; }
  .esg-commitment__connector { display: none; }
  .esg-node { width: min(19rem, 90vw); margin: 0 auto; }
  .esg-vision { min-height: 34rem; }
  .esg-vision__shade { width: 75%; }
  .esg-vision__content { padding-top: 4rem; }
}

/* Keep the ESG practice composition side-by-side at phone widths, matching the
   compact Figma artwork rather than stacking the copy above the goal graphic. */
.esg-practice .esg-rule {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 1px;
  height: clamp(3rem, 4.74vw, 5.7rem);
  margin: 0;
  background: repeating-linear-gradient(to bottom, #7e6131 0 1px, transparent 1px 7px);
}
@media (max-width: 575.98px) {
  .esg-practice { height: min(48vw, 14.5rem); min-height: 0; }
  .esg-practice__layout {
    grid-template-columns: 48% 52%;
    min-height: 0;
    height: 100%;
    width: 100%;
    padding-right: 0;
    padding-left: 0;
  }
  .esg-practice__copy { max-width: none; align-self: start; padding: 2rem 0 1rem .95rem; }
  .esg-rule { top: 2.2rem; left: 1rem; width: 1px; height: 1.6rem; margin: 0; }
  .esg-practice h2 { margin-bottom: .55rem; font-size: clamp(.7rem, 3.125vw, 1.1rem); line-height: 1.05; }
  .esg-practice__copy p { max-width: 9rem; margin-bottom: .55rem; font-size: clamp(.45rem, 1.5vw, .75rem); line-height: 1.28; }
  .esg-outline-button { min-height: 1.1rem; padding: 0 .28rem; border-radius: 2px; font-size: clamp(.38rem, 1.25vw, .62rem); }
  .esg-outline-button__divider { height: .85rem; margin: 0 .28rem 0 .35rem; }
  .esg-outline-button img { width: .36rem; }
  .esg-practice__visual { min-height: 100%; }
  .esg-practice__lines { top: 10%; left: -18%; width: 100%; height: 135%; opacity: .65; }
  .esg-practice__outline { top: 4%; left: 35%; width: 62%; opacity: .85; }
  .esg-practice__main-circle { top: 18%; left: 41%; width: 42%; }
  .esg-practice__goal { top: 46%; left: 11%; gap: .2rem; }
  .esg-practice__goal strong { font-size: clamp(1.8rem, 6.7vw, 3.4rem); line-height: .8; }
  .esg-practice__goal span { max-width: 3.2rem; font-size: clamp(.36rem, 1.1vw, .56rem); line-height: 1.15; }
  .esg-practice__mini--one { top: 70%; left: 66%; width: 1.7rem; height: 1.7rem; }
  .esg-practice__mini--two { top: 82%; left: 85%; width: .85rem; height: .85rem; }
}

/* Desktop geometry follows the Figma frame: the copy occupies the left
   1,156px artboard and the 1,131px goal component sits independently on the
   right, slightly outside the page frame. */
@media (min-width: 992px) {
  .esg-practice__layout { display: block; height: 100%; }
  .esg-practice__copy {
    position: absolute;
    top: 22.4%;
    left: 3.7%;
    width: 43%;
    max-width: 35rem;
    padding: 0;
  }
  .esg-practice__copy p { margin-left: 1.5%; }
  .esg-practice__copy .esg-outline-button {
    min-height: clamp(2.25rem, 2.66vw, 3.1875rem);
    padding: 0 clamp(.6rem, .83vw, 1rem);
    font-size: clamp(.85rem, 1.04vw, 1.25rem);
  }
  .esg-practice__copy .esg-outline-button__divider { height: clamp(1.85rem, 2.2vw, 2.625rem); margin-left: clamp(.7rem, .94vw, 1.125rem); margin-right: clamp(.6rem, .78vw, .9375rem); }
  .esg-practice__copy .esg-outline-button img { width: clamp(.7rem, .83vw, 1rem); }
  .esg-practice__visual {
    position: absolute;
    top: 1.8%;
    left: 52.75%;
    width: min(58.9vw, 1131px);
    height: 85%;
    min-height: 0;
  }
  .esg-practice__outline { top: 0; left: 39%; width: 61%; }
  .esg-practice__main-circle { top: 21.1%; left: 28.8%; width: 34.4%; height: 54.84%; }
  .esg-practice__main-circle img {
    position: absolute;
    top: -4.17%;
    left: -8.33%;
    width: 116.67%;
    height: 116.67%;
    max-width: none;
  }
  .esg-practice__goal { top: 39.4%; left: 4.1%; }
  .esg-practice__mini--one { top: 85.1%; left: 51.3%; width: 7.18%; height: 11.46%; }
  .esg-practice__mini--two { top: 91.5%; left: 67.7%; width: 3.54%; height: 5.64%; }
  .esg-practice__mini span { position: absolute; inset: 0; display: block; }
  .esg-practice__mini--one img {
    position: absolute; top: -4.17%; left: -8.33%; width: 116.67%; height: 116.67%; max-width: none;
  }
  .esg-practice__mini--two img {
    position: absolute; top: -8.47%; left: -16.93%; width: 133.86%; height: 133.86%; max-width: none;
  }
}

@media (max-width: 575.98px) {
  .esg-practice__main-circle { height: auto; aspect-ratio: 1; }
  .esg-practice__main-circle img {
    position: absolute;
    top: -4.17%;
    left: -8.33%;
    width: 116.67%;
    height: 116.67%;
    max-width: none;
  }
  .esg-practice__mini span { position: absolute; inset: 0; display: block; }
  .esg-practice__mini--one img {
    position: absolute; top: -4.17%; left: -8.33%; width: 116.67%; height: 116.67%; max-width: none;
  }
  .esg-practice__mini--two img {
    position: absolute; top: -8.47%; left: -16.93%; width: 133.86%; height: 133.86%; max-width: none;
  }
}

/* ---------- Leadership Team page ---------- */
.leaders-page { background: #fff; color: #352b46; overflow-x: hidden; }
.leaders-site-header { position: relative; z-index: 20; background: #fff; }
.leaders-hero { position: relative; overflow: hidden; aspect-ratio: 1924 / 936; min-height: 30rem; color: #fff; }
.leaders-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.leaders-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,5,15,.66), rgba(13,8,24,.2) 58%, rgba(7,5,15,.16)), linear-gradient(0deg, rgba(6,4,12,.54), transparent 48%); }
.leaders-hero__content { position: relative; z-index: 1; height: 100%; display: flex; align-items: flex-end; padding-bottom: clamp(3.5rem, 9.7vw, 11.6rem); }
.leaders-hero h1 { margin: 0; color: #fff; font: 700 60px/normal 'Playfair Display', Georgia, serif; letter-spacing: 0; }
.leaders-breadcrumb { min-height: 3.25rem; display: flex; align-items: center; background: #7e6131; color: #fff; }
.leaders-breadcrumb .container { display: flex; align-items: center; gap: .7rem; font: 300 18px/normal 'DM Sans', Arial, sans-serif; }
.leaders-breadcrumb a { color: inherit; opacity: .82; text-decoration: none; }
.leaders-directory { padding: clamp(6rem, 7.65vw, 9.2rem) 0 8rem; background: #fff; }
.leaders-intro { text-align: center; }
.leaders-intro h2 { margin: 0; color: #352b46; font: 700 50px/normal 'Playfair Display', Georgia, serif; letter-spacing: 0; }
.leaders-intro p { max-width: 56rem; margin: 12px auto 0; color: #352b46; font: 300 22px/normal 'DM Sans', Arial, sans-serif; }
.leaders-grid { width: 1315px; max-width: calc(100% - 3rem); margin: 130px auto 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 80px 29px; }
.leader-card { position: relative; isolation: isolate; overflow: hidden; flex: 0 0 calc((100% - 87px) / 4); width: auto; aspect-ratio: 419 / 517; border: 1px solid #bfbfbf; border-radius: 20px; background: #fefefe; transition: transform .35s ease, box-shadow .35s ease; }
.leader-card:hover, .leader-card:focus-within { transform: translateY(-.5rem); box-shadow: 0 1.15rem 2.4rem rgba(53,43,70,.16); }
.leader-card::before { position: absolute; z-index: 1; top: -25.3%; left: -41%; width: 181.6%; height: 136.1%; content: ''; background: url('../images/leaders-card-decoration.svg') center / 84.4% 80.1% no-repeat; transform: rotate(-14.19deg); pointer-events: none; }
.leader-card__pattern { position: absolute; z-index: 2; top: -17.6%; left: -84%; width: 275.5%; height: 189.8%; background: url('../images/leaders-card-pattern.svg') center / 100% 100% no-repeat; opacity: .62; pointer-events: none; }
.leader-card h3 { position: absolute; z-index: 3; top: 3.87%; left: 5.49%; width: 75%; margin: 0; color: #352b46; font: 700 27.047px/1.11 'Playfair Display', Georgia, serif; letter-spacing: 0; }
.leader-card > p { position: absolute; z-index: 3; top: 11.2%; left: 5.49%; width: 86%; margin: 0; color: #000; font: 400 18px/1.23 'DM Sans', Arial, sans-serif; }
.leader-card__portrait { position: absolute; z-index: 1; top: 10.25%; right: 0; bottom: 0; left: 0; height: 89.55%; overflow: hidden; }
.leader-card__portrait img { position: absolute; display: block; max-width: none; object-fit: fill; }
.leader-card:nth-child(1) .leader-card__portrait { top: 18.38%; height: 81.43%; }
.leader-card:nth-child(2) .leader-card__portrait { top: 10.25%; height: 89.55%; }
.leader-card:nth-child(3) .leader-card__portrait { top: 16.25%; height: 89.55%; }
.leader-card:nth-child(4) .leader-card__portrait { top: 15.09%; height: 89.55%; }
.leader-card:nth-child(5) .leader-card__portrait { top: 10.83%; height: 89.55%; }
.leader-card:nth-child(6) .leader-card__portrait { top: 15.67%; height: 89.55%; }
.leader-card:nth-child(7) .leader-card__portrait { top: 14.51%; height: 87.23%; }
.leader-card:nth-child(8) .leader-card__portrait { top: 14.51%; height: 87.23%; }
.leader-card:nth-child(9) .leader-card__portrait { top: 15.09%; height: 89.55%; }
.leader-card:nth-child(10) .leader-card__portrait { top: 20.31%; height: 80.66%; }
.leader-card:nth-child(11) .leader-card__portrait { top: 10.25%; height: 89.55%; }
.leader-card:nth-child(12) .leader-card__portrait { top: 15.09%; height: 89.55%; }
.leader-card:nth-child(13) .leader-card__portrait { top: 15.09%; height: 89.55%; }
.leader-card:nth-child(14) .leader-card__portrait { top: 9.67%; height: 89.55%; }
.leader-card:nth-child(1) .leader-card__portrait img { top: 9.57%; left: -.03%; width: 117%; height: 116.67%; }
.leader-card:nth-child(2) .leader-card__portrait img { top: 12.12%; left: 0; width: 119.1%; height: 106.76%; }
.leader-card:nth-child(3) .leader-card__portrait img { top: 0; left: -4.68%; width: 104.58%; height: 93.74%; }
.leader-card:nth-child(4) .leader-card__portrait img { top: 8.41%; left: -21.79%; width: 136%; height: 105.57%; }
.leader-card:nth-child(5) .leader-card__portrait img { top: 13.11%; left: -5.04%; width: 105.01%; height: 86.89%; }
.leader-card:nth-child(6) .leader-card__portrait img { top: 13.64%; left: -4.16%; width: 113%; height: 106.92%; }
.leader-card:nth-child(7) .leader-card__portrait img { top: 7.44%; left: -10.79%; width: 117.92%; height: 121.17%; }
.leader-card:nth-child(8) .leader-card__portrait img { top: -.06%; left: -.39%; width: 100.77%; height: 100.09%; }
.leader-card:nth-child(9) .leader-card__portrait img { top: 8.98%; left: -6.27%; width: 118.71%; height: 92.15%; }
.leader-card:nth-child(10) .leader-card__portrait img { top: -37.01%; left: -2.41%; width: 106.15%; height: 136.05%; }
.leader-card:nth-child(11) .leader-card__portrait img { top: 11.27%; left: -13.03%; width: 113%; height: 93.5%; }
.leader-card:nth-child(12) .leader-card__portrait img { top: 5.1%; left: -10%; width: 120%; height: 94.39%; }
.leader-card:nth-child(13) .leader-card__portrait img { top: 8.67%; left: -17.62%; width: 128%; height: 99.36%; }
.leader-card:nth-child(14) .leader-card__portrait img { top: -.3%; left: -12.04%; width: 112%; height: 100.39%; }
@media (min-width: 1200px) {
  /* Four columns scale the original 419px Figma card to ~306px at 1920px. */
  .leader-card h3 { font-size: clamp(16px, 1.04vw, 20px); }
  .leader-card > p { font-size: clamp(11px, .69vw, 14px); }

  /* Keep each Figma crop proportional as the desktop cards become four columns. */
  .leader-card:nth-child(1) .leader-card__portrait,
  .leader-card:nth-child(7) .leader-card__portrait,
  .leader-card:nth-child(10) .leader-card__portrait { left: -.24%; right: auto; width: 100%; }
  .leader-card:nth-child(2) .leader-card__portrait,
  .leader-card:nth-child(4) .leader-card__portrait,
  .leader-card:nth-child(5) .leader-card__portrait,
  .leader-card:nth-child(6) .leader-card__portrait,
  .leader-card:nth-child(9) .leader-card__portrait,
  .leader-card:nth-child(11) .leader-card__portrait,
  .leader-card:nth-child(12) .leader-card__portrait,
  .leader-card:nth-child(13) .leader-card__portrait,
  .leader-card:nth-child(14) .leader-card__portrait { left: 0; right: auto; width: 99.05%; }
  .leader-card:nth-child(3) .leader-card__portrait { left: .48%; right: auto; width: 99.05%; }
  .leader-card:nth-child(8) .leader-card__portrait { left: 3.1%; right: auto; width: 96.43%; }

  /* Exact text offsets from the 419 × 517 Figma card component, scaled with each card. */
  .leader-card:nth-child(1) h3 { top: 4.45%; }
  .leader-card:nth-child(2) h3 { top: 4.26%; }
  .leader-card:nth-child(5) h3 { top: 4.45%; }
  .leader-card:nth-child(8) h3 { top: 4.64%; }
  .leader-card:nth-child(1) > p,
  .leader-card:nth-child(2) > p,
  .leader-card:nth-child(3) > p { top: 11.8%; }
  .leader-card:nth-child(8) > p { top: 12%; }
  .leader-card:nth-child(1) > p { width: 84.96%; }
  .leader-card:nth-child(6) > p,
  .leader-card:nth-child(12) > p { width: 86.87%; }
  .leader-card:nth-child(7) > p,
  .leader-card:nth-child(8) > p { width: 65.87%; }
  .leader-card:nth-child(10) > p { left: 5.25%; }
}
@media (max-width: 991.98px) {
  .leaders-hero h1 { font-size: clamp(2.4rem, 6vw, 3.75rem); }
  .leaders-breadcrumb .container { font-size: clamp(.8rem, 1.5vw, 1.125rem); }
  .leaders-intro h2 { font-size: clamp(2.1rem, 5vw, 3.15rem); }
  .leaders-intro p { font-size: clamp(.9rem, 2.1vw, 1.375rem); }
  .leaders-grid { margin-top: clamp(4rem, 7vw, 8.125rem); }
  .leader-card h3 { font-size: clamp(1rem, 2.4vw, 1.69rem); }
  .leader-card > p { font-size: clamp(.72rem, 1.5vw, 1.125rem); }
}
@media (max-width: 767.98px) {
  .leaders-grid { width: min(52rem, calc(100% - 2rem)); gap: 2.5rem 1.25rem; }
  .leader-card { flex-basis: calc((100% - 1.25rem) / 2); }
}
@media (max-width: 575.98px) {
  .leaders-hero { aspect-ratio: 1 / 1.05; }
  .leaders-hero__content { padding-bottom: 3rem; }
  .leaders-hero h1 { font-size: clamp(2.2rem, 9vw, 3rem); }
  .leaders-breadcrumb .container { flex-wrap: wrap; padding-top: .65rem; padding-bottom: .65rem; }
  .leaders-directory { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  .leaders-grid { width: min(100%, 25rem); margin-top: 3rem; gap: 1.5rem; }
  .leader-card { flex-basis: 100%; }
}

/* ---------- Group of Companies page ---------- */
.group-company-page { background: #fff; color: #352b46; overflow-x: hidden; }
.group-company-site-header { position: relative; z-index: 20; background: #fff; }
.group-company-hero { position: relative; overflow: hidden; aspect-ratio: 1932 / 916; min-height: 30rem; color: #fff; }
.group-company-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.group-company-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,7,16,.78), rgba(15,11,26,.25) 48%, rgba(9,7,16,.18)), linear-gradient(0deg, rgba(9,7,16,.48), transparent 45%); }
.group-company-hero__content { position: relative; z-index: 1; height: 100%; display: flex; align-items: flex-end; padding-bottom: clamp(3.5rem, 9.5vw, 11.5rem); }
.group-company-hero h1 { margin: 0; font: 500 clamp(2.8rem, 4.15vw, 5rem)/.98 'Playfair Display', Georgia, serif; letter-spacing: -.035em; }
.group-company-breadcrumb { min-height: 3.25rem; display: flex; align-items: center; background: #7e6131; color: #fff; }
.group-company-breadcrumb .container { display: flex; align-items: center; gap: .7rem; font: 500 clamp(.68rem, .78vw, .9rem)/1.3 'DM Sans', Arial, sans-serif; }
.group-company-breadcrumb a { color: inherit; opacity: .82; text-decoration: none; }
.group-companies { padding: clamp(5rem, 6.25vw, 7.5rem) 0 0; background: #fff; }
.group-companies > .container { max-width: 1920px; padding-left: 0; padding-right: 0; }
.group-companies__intro { text-align: center; }
.group-companies__intro h2 { margin: 0; color: #352b46; font: 700 clamp(2.1rem, 2.6vw, 3.15rem)/1.08 'Playfair Display', Georgia, serif; letter-spacing: -.03em; }
.group-companies__intro p { max-width: 56rem; margin: 1.15rem auto 0; color: #352b46; font: 300 clamp(.8rem, 1.1458vw, 1.375rem)/1.35 'DM Sans', Arial, sans-serif; }
.group-cards { width: min(calc(100% - clamp(4rem, 8vw, 10rem)), 100rem); margin: clamp(4rem, 6vw, 7.5rem) auto 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.group-card { position: relative; isolation: isolate; overflow: hidden; aspect-ratio: 419 / 517; border: 1px solid #bfbfbf; border-radius: 1.2rem; background: #fefefe; padding: 0; transition: transform .35s ease, box-shadow .35s ease; }
.group-card:hover, .group-card:focus-within { transform: translateY(-.45rem); box-shadow: 0 1rem 2.2rem rgba(53,43,70,.14); }
.group-card__pattern { position: absolute; z-index: 2; top: -15.5%; left: -82.3%; width: 275.5%; height: 189.8%; background: url('../images/joint-card-pattern.svg') center / 100% 100% no-repeat; opacity: .62; pointer-events: none; }
.group-card:nth-child(n+2) .group-card__pattern { top: -17.6%; left: -84%; }
.group-card__location { position: absolute; z-index: 3; top: 6.96%; left: 9.55%; color: #000; font: 400 clamp(.6rem, .9375vw, 1.125rem)/1.23 'DM Sans', Arial, sans-serif; }
.group-card h3 { position: absolute; z-index: 3; top: 12.57%; left: 9.55%; width: 70%; margin: 0; color: #352b46; font: 500 clamp(.95rem, 1.41vw, 1.69rem)/1.25 'Playfair Display', Georgia, serif; letter-spacing: -.025em; }
.group-card p { position: absolute; z-index: 3; top: 27.66%; left: 9.55%; width: 82.3%; margin: 0; color: #000; font: 400 clamp(.64rem, .9375vw, 1.125rem)/1.23 'DM Sans', Arial, sans-serif; }
.group-card__arrow { position: absolute; z-index: 3; top: 6.96%; right: 7.4%; width: 13.13%; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: #8b6a34; color: #fff; font: 500 clamp(.9rem, 1.1vw, 1.3rem)/1 'DM Sans', Arial, sans-serif; }
.group-card__logo { position: absolute; z-index: 1; right: -1px; bottom: -1px; left: -1px; height: 55.13%; overflow: hidden; border-radius: 0 0 1.2rem 1.2rem; }
.group-card__logo::before { position: absolute; z-index: 2; top: -1%; right: 0; left: 0; height: 38%; content: ''; background: linear-gradient(to bottom, #fff, rgba(255,255,255,0)); pointer-events: none; }
.group-card__logo img { position: absolute; display: block; max-width: none; object-fit: fill; }
.group-card:nth-child(1) .group-card__logo img { top: 22.61%; left: 10.02%; width: 85.2%; height: 55.26%; }
.group-card:nth-child(2) .group-card__logo img { top: .72%; left: 2.39%; width: 96.55%; height: 98.57%; }
.group-card:nth-child(3) .group-card__logo img { top: 30.6%; left: 5.81%; width: 90.37%; height: 55%; }
.group-card:nth-child(4) .group-card__logo img { top: 3.1%; left: 24.17%; width: 51.66%; height: 87.02%; }
.group-statement { padding: clamp(4rem, 6.25vw, 7.5rem) 0 clamp(4rem, 6.75vw, 8.1rem); background: #fff; text-align: center; }
.group-statement h2 { --character-heading-muted: #dddcdc; max-width: 72rem; margin: 0 auto; color: #352b46; font: 700 clamp(2rem, 2.6vw, 3.15rem)/1.08 'Playfair Display', Georgia, serif; letter-spacing: -.03em; }
.joint-benefits.group-benefits { height: 22.5rem; padding: 4.5rem 0; background: rgba(247,247,248,.7); }
.group-benefits .container { height: 100%; }
.group-benefits__grid { height: 100%; }
.group-benefits .joint-benefit { min-height: 13.625rem; }
.group-company-cta { position: relative; overflow: hidden; height: min(42.55vw, 51.06rem); min-height: 30rem; color: #fff; }
.group-company-cta__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.group-company-cta__shade { position: absolute; inset: 0; width: 44%; background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.72) 55%, rgba(0,0,0,0) 100%); }
.group-company-cta__content { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding-left: 5.15vw; }
.group-company-cta h2 { margin: 0; color: #fff; font: 700 clamp(2.6rem, 3.6vw, 4.35rem)/.98 'Playfair Display', Georgia, serif; }
.group-company-cta p { max-width: 29rem; margin: 1.25rem 0 2rem; color: rgba(255,255,255,.9); font: 400 clamp(.82rem, .94vw, 1.15rem)/1.35 'DM Sans', Arial, sans-serif; }
.group-company-cta .gold-btn { color: #7e6131; background: #fff; border-color: #fff; }
@media (max-width: 991.98px) {
  .group-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(100%, 52rem); gap: 1.25rem; transform: none; }
  .group-benefits { height: auto; padding: 4rem 0; }
  .group-benefits__grid { height: auto; }
}
@media (max-width: 575.98px) {
  .group-company-hero { aspect-ratio: 1 / 1.05; }
  .group-company-hero__content { padding-bottom: 3rem; }
  .group-company-hero h1 { font-size: clamp(2.2rem, 9vw, 3rem); }
  .group-company-breadcrumb .container { flex-wrap: wrap; padding-top: .65rem; padding-bottom: .65rem; }
  .group-companies > .container { padding-left: 1rem; padding-right: 1rem; }
  .group-cards { grid-template-columns: 1fr; width: min(100%, 25rem); margin-top: 3rem; }
  .group-statement { padding-top: 4rem; padding-bottom: 4rem; }
  .group-benefits { height: auto; }
  .group-company-cta { height: 34rem; }
  .group-company-cta__shade { width: 100%; background: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.35)); }
  .group-company-cta__content { padding-left: 1.5rem; padding-right: 1.5rem; }
}

/* ---------- Joint Ventures page ---------- */
.joint-page { background: #fff; color: #352b46; overflow-x: hidden; }
.joint-site-header { position: relative; z-index: 20; background: #fff; }
.joint-hero { position: relative; overflow: hidden; aspect-ratio: 1932 / 916; min-height: 30rem; color: #fff; }
.joint-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.joint-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,7,16,.78) 0%, rgba(20,14,31,.35) 38%, rgba(16,12,28,.06) 72%, rgba(10,7,17,.25) 100%), linear-gradient(0deg, rgba(10,7,17,.46), transparent 42%); }
.joint-hero__content { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: clamp(3.5rem, 10.5vw, 12rem); }
.joint-hero__eyebrow { margin: 0 0 .85rem; font: 500 clamp(.72rem, .88vw, 1rem)/1.2 'DM Sans', Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; color: #d0a957; }
.joint-hero h1 { margin: 0; max-width: 43rem; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.8rem, 4.15vw, 5rem); font-weight: 500; line-height: .98; letter-spacing: -.035em; }
.joint-breadcrumb { min-height: 3.25rem; display: flex; align-items: center; background: #8b6a34; color: #fff; }
.joint-breadcrumb .container { display: flex; align-items: center; gap: .7rem; font: 500 clamp(.68rem, .78vw, .9rem)/1.3 'DM Sans', Arial, sans-serif; }
.joint-breadcrumb a { color: inherit; text-decoration: none; opacity: .82; }
.joint-breadcrumb a:hover { opacity: 1; }
.joint-partners { padding: clamp(4.5rem, 7.1vw, 8.5rem) 0 clamp(2.75rem, 3.8vw, 4.5rem); background: #fff; }
.joint-partners > .container { max-width: 1920px; padding-left: 0; padding-right: 0; }
.joint-intro { max-width: 60rem; margin: 0 auto; text-align: center; }
.joint-intro h2, .joint-statement h2 { margin: 0; font-family: 'Playfair Display', Georgia, serif; font-weight: 500; letter-spacing: -.03em; }
.joint-intro h2 { font-size: clamp(2.1rem, 3.12vw, 3.75rem); line-height: 1.06; }
.joint-intro p { max-width: 52rem; margin: 1.35rem auto 0; color: #625c68; font: 400 clamp(.92rem, 1.05vw, 1.2rem)/1.45 'DM Sans', Arial, sans-serif; }
.joint-tabs { display: flex; justify-content: center; align-items: center; gap: clamp(1rem, 2.8vw, 3.25rem); margin: clamp(3rem, 5vw, 6rem) auto 0; }
.joint-tabs button { border: 0; background: transparent; padding: .65rem .15rem .85rem; color: #98929e; font: 500 clamp(.82rem, 1.03vw, 1.1rem)/1.2 'DM Sans', Arial, sans-serif; cursor: pointer; transition: color .25s ease; }
.joint-tabs button.is-active { color: #8b6a34; }
.joint-tabs button:focus-visible { outline: 2px solid #8b6a34; outline-offset: 4px; }
.joint-tabs__rule { width: min(100%, 78rem); height: 1px; margin: 0 auto clamp(4rem, 6vw, 7rem); border-top: 1px dashed #c6b7a0; }
.joint-cards { width: min(67.55vw, 81.1rem); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.3rem, 2.45vw, 3rem) 1.25rem; }
.joint-card { position: relative; isolation: isolate; overflow: hidden; aspect-ratio: 419 / 517; min-height: 0; border: 1px solid #bfbfbf; border-radius: clamp(.8rem, 1.2vw, 1.2rem); background: #fefefe; padding: 0; transition: transform .35s ease, box-shadow .35s ease; }
.joint-card:hover, .joint-card:focus-within { transform: translateY(-.45rem); box-shadow: 0 1.15rem 2.5rem rgba(53,43,70,.14); }
.joint-card__pattern {position: absolute;z-index: 2;top: -35%;left: 0%;width: 120%;height: 150%;background: url(../images/industry-card-curves.svg) center / 100% 100% no-repeat;opacity: .8;pointer-events: none;}
.joint-card__location { position: absolute; z-index: 3; top: 6.96%; left: 9.55%; display: block; color: #000; font: 400 clamp(.6rem, .9375vw, 1.125rem)/1.23 'DM Sans', Arial, sans-serif; letter-spacing: 0; }
.joint-card h3 { position: absolute; z-index: 3; top: 12.57%; left: 9.55%; width: 64%; max-width: none; margin: 0; color: #352b46; font: 500 clamp(.95rem, 1.41vw, 1.69rem)/1.25 'Playfair Display', Georgia, serif; letter-spacing: -.025em; }
.joint-card p { position: absolute; z-index: 3; top: 27.66%; left: 9.55%; width: 82.3%; max-width: none; margin: 0; color: #000; font: 400 clamp(.64rem, .9375vw, 1.125rem)/1.23 'DM Sans', Arial, sans-serif; }
.joint-card__arrow { position: absolute; z-index: 3; top: clamp(1.4rem, 1.85vw, 2.25rem); right: clamp(1.25rem, 1.9vw, 2.3rem); width: clamp(2.3rem, 2.85vw, 3.45rem); aspect-ratio: 1; display: grid; place-items: center; border: 0; border-radius: 50%; background: #8b6a34; color: #fff; font: 500 clamp(1rem, 1.2vw, 1.35rem)/1 'DM Sans', Arial, sans-serif; transition: background .25s ease, color .25s ease, transform .25s ease; }
.joint-card:hover .joint-card__arrow { background: #a07b3d; transform: rotate(8deg); }
.joint-card__logo { position: absolute; z-index: 1; right: -1px; bottom: -1px; left: -1px; height: 55.13%; overflow: hidden; border-radius: 0 0 clamp(.8rem, 1.2vw, 1.2rem) clamp(.8rem, 1.2vw, 1.2rem); }
.joint-card__logo::before { position: absolute; z-index: 2; top: -1%; right: 0; left: 0; height: 38%; content: ''; background: linear-gradient(to bottom, #fff 0%, rgba(255,255,255,0) 100%); pointer-events: none; }
.joint-card__logo img { position: absolute; display: block; max-width: none; object-fit: fill; object-position: center; }
.joint-card:nth-child(1) .joint-card__logo img { top: 21.22%; left: 0; width: 100%; height: 64.86%; }
.joint-card:nth-child(2) .joint-card__logo img { top: 11.37%; left: 3.58%; width: 94.27%; height: 92.31%; }
.joint-card:nth-child(3) .joint-card__logo img { top: 22.57%; left: -30.41%; width: 161.26%; height: 67.72%; }
.joint-card:nth-child(4) .joint-card__logo img { top: 10.87%; left: 3.34%; width: 94.88%; height: 78.79%; }
.joint-card:nth-child(5) .joint-card__logo img { top: 7.68%; left: -24.33%; width: 158.6%; height: 90.91%; }
.joint-card:nth-child(6) .joint-card__logo img { top: 32.08%; left: 9.79%; width: 82.34%; height: 48.82%; }
.joint-card:nth-child(7) .joint-card__logo img { top: .36%; left: .01%; width: 102%; height: 99.87%; }
.joint-card:nth-child(8) .joint-card__logo img { top: 19.41%; left: -15.17%; width: 130%; height: 74.52%; }
.joint-card:nth-child(9) .joint-card__logo img { top: 5.19%; left: -29.58%; width: 159.27%; height: 91.3%; }
.joint-technology-panel { width: min(67.55vw, 81.1rem); margin: 0 auto; min-height: 14rem; padding: 4rem; border: 1px solid #ded9e4; border-radius: 1.2rem; background: #f8f6fb; text-align: center; color: #625c68; font: 400 1.1rem/1.5 'DM Sans', Arial, sans-serif; }
.joint-statement { padding: clamp(3rem, 3.2vw, 4rem) 0 clamp(3.5rem, 4.2vw, 5rem); background: #fff; text-align: center; }
.joint-statement h2 { --character-heading-muted: #c9c3cd; max-width: 65rem; margin: 0 auto; color: #352b46; font-size: clamp(2rem, 3vw, 3.6rem); line-height: 1.08; }
.joint-statement h2 span { color: #c9c4cc; }
.joint-benefits { padding: clamp(3.5rem, 4.75vw, 5.7rem) 0; background: #f6f5f7; }
.joint-benefits__grid { width: min(100%, 92rem); margin: 0 auto; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.joint-benefit { min-height: 12rem; padding: 0 clamp(1rem, 2.2vw, 2.5rem); text-align: center; }
.joint-benefit + .joint-benefit { border-left: 1px dashed #cfc8d5; }
.joint-benefit__icon { width: 5.9rem; height: 5.9rem; margin: 0 auto 1.3rem; display: grid; place-items: center; border-radius: 50%; background: #fff; }
.joint-benefit__icon img { width: 4.35rem; height: 4.35rem; object-fit: contain; }
.joint-benefit h3 { margin: 0; color: #352b46; font: 500 clamp(1.2rem, 1.45vw, 1.7rem)/1.15 'Playfair Display', Georgia, serif; }
.joint-benefit p { margin: .7rem 0 0; color: #716b76; font: 400 clamp(.75rem, .84vw, .98rem)/1.4 'DM Sans', Arial, sans-serif; }
.joint-cta { position: relative; overflow: hidden; margin-top: clamp(2rem, 3.2vw, 3.8rem); aspect-ratio: 1920 / 817; min-height: 30rem; color: #fff; }
.joint-cta__image { position: absolute; top: -35.3%; left: 0; width: 100%; height: 156.7%; object-fit: cover; object-position: center; }
.joint-cta__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,9,18,.94) 0%, rgba(15,11,25,.74) 32%, rgba(20,13,28,.2) 67%, rgba(20,13,28,.05) 100%); }
.joint-cta__content { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding-left: 5.15vw; }
.joint-cta h2 { margin: 0; font: 500 clamp(2.6rem, 4.15vw, 5rem)/.98 'Playfair Display', Georgia, serif; letter-spacing: -.035em; }
.joint-cta p { max-width: 26rem; margin: 1.55rem 0 2.1rem; color: rgba(255,255,255,.82); font: 400 clamp(.88rem, .98vw, 1.1rem)/1.45 'DM Sans', Arial, sans-serif; }
.joint-cta .gold-btn { color: #fff; border-color: #c7a260; }

@media (max-width: 991.98px) {
  .joint-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(100%, 52rem); }
  .joint-technology-panel { width: min(100%, 52rem); }
  .joint-benefits__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2.5rem; }
  .joint-benefit:nth-child(4) { border-left: 0; }
}
@media (max-width: 575.98px) {
  .joint-hero { aspect-ratio: 1 / 1.05; min-height: 29rem; }
  .joint-hero__content { padding-bottom: 3rem; }
  .joint-hero h1 { font-size: clamp(2.3rem, 10vw, 3rem); }
  .joint-breadcrumb .container { flex-wrap: wrap; padding-top: .65rem; padding-bottom: .65rem; }
  .joint-partners > .container { padding-left: 1rem; padding-right: 1rem; }
  .joint-tabs { flex-direction: column; gap: .25rem; }
  .joint-cards { grid-template-columns: 1fr; width: min(100%, 25rem); }
  .joint-card { min-height: 0; }
  .joint-benefits__grid { grid-template-columns: 1fr 1fr; }
  .joint-benefit + .joint-benefit { border-left: 1px dashed #cfc8d5; }
  .joint-benefit:nth-child(odd) { border-left: 0; }
  .joint-benefit:last-child { grid-column: 1 / -1; }
  .joint-cta { aspect-ratio: 1 / 1.05; }
  .joint-cta__content { padding-left: 1.5rem; padding-right: 1.5rem; }
}

/* ---------- About: unified Vision / Mission scroll transition ---------- */

.about-purpose--unified {
  --purpose-wipe-top: 100%;
  --purpose-cutout-y: -36px;
  --purpose-vision-opacity: 1;
  --purpose-vision-shift: 0px;
  --purpose-mission-copy-opacity: 0;
  --purpose-mission-copy-shift: 18px;
  --purpose-stage-width: 100vw;
  --purpose-stage-height: calc(100svh - var(--about-header-height, 72px));
  --purpose-image-position: center;
  position: relative;
  height: 380svh;
  min-height: 2200px;
  background: #342946;
}

.about-purpose__stage {
  position: sticky;
  top: var(--about-header-height, 72px);
  height: calc(100svh - var(--about-header-height, 72px));
  min-height: 470px;
  overflow: hidden;
  isolation: isolate;
  background: #342946;
}

.about-purpose__vision-layer,
.about-purpose__mission-layer {
  position: absolute;
  inset: 0;
}

.about-purpose__vision-layer {
  z-index: 1;
  background: #342946;
}

.about-purpose__vision-layer::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.015), rgba(14, 9, 22, 0.12));
  pointer-events: none;
}

.about-purpose--unified .about-purpose__curves {
  position: absolute;
  inset: 0;
  background: url("../images/about-purpose-curves.svg") center/100% 100% no-repeat;
}

.about-purpose__mission-layer {
  z-index: 2;
  background: #080911 var(--about-purpose-image, none) var(--purpose-image-position)/cover no-repeat;
  clip-path: inset(var(--purpose-wipe-top) 0 0 0);
  will-change: clip-path;
}

.about-purpose__shared-circle {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: clamp(270px, 32vw, 615px);
  height: clamp(270px, 32vw, 615px);
  overflow: hidden;
  border-radius: 50%;
  transform: translate3d(-50%, calc(-50% + var(--purpose-cutout-y)), 0);
  will-change: transform;
}

.about-purpose__shared-circle img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--purpose-stage-width);
  height: var(--purpose-stage-height);
  max-width: none;
  object-fit: cover;
  object-position: var(--purpose-image-position);
  transform: translate3d(-50%, calc(-50% - var(--purpose-cutout-y)), 0);
  will-change: transform;
}

.about-purpose__statement {
  position: absolute;
  z-index: 4;
  left: 50%;
  top: 50%;
  width: clamp(250px, 27vw, 520px);
  margin: 0;
  color: #f7f4fa;
  text-align: center;
  transform: translate3d(-50%, -50%, 0);
  pointer-events: none;
}

.about-purpose__statement h3 {
  margin: 0 0 clamp(0.75rem, 1.2vw, 22px);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.35rem, 3.125vw, 60px);
  font-weight: 700;
  line-height: 1.1;
}

.about-purpose__statement p {
  margin: 0 auto;
  max-width: 560px;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1rem, 1.3vw, 25px);
  font-weight: 400;
  line-height: 1.32;
}

.about-purpose__statement--vision {
  opacity: var(--purpose-vision-opacity);
  transform: translate3d(-50%, calc(-50% + var(--purpose-vision-shift)), 0);
  text-shadow: 0 2px 24px rgba(4, 3, 8, 0.95);
  will-change: opacity, transform;
}

.about-purpose__statement--mission {
  z-index: 6;
  top: 50%;
  color: #f7f4fa;
  transform: translate3d(-50%, calc(-50% + var(--purpose-mission-copy-shift)), 0);
  opacity: var(--purpose-mission-copy-opacity);
  will-change: opacity, transform;
}

.about-purpose__statement--mission h3 {
  margin-bottom: clamp(0.55rem, 0.85vw, 14px);
}

.about-purpose__statement--mission p {
  font-size: clamp(1rem, 1.3vw, 25px);
  line-height: 1.32;
}

@media (max-width: 767.98px) {
  .about-purpose--unified {
    height: 330svh;
    min-height: 1800px;
    --purpose-image-position: 61% center;
  }

  .about-purpose__stage {
    min-height: 430px;
  }

  .about-purpose__shared-circle {
    width: min(68vw, 340px);
    height: min(68vw, 340px);
  }

  .about-purpose__statement {
    width: min(60vw, 286px);
  }

}

@media (prefers-reduced-motion: reduce) {
  .about-purpose--unified {
    height: auto;
    min-height: 0;
    background: #080911;
  }

  .about-purpose__stage {
    position: relative;
    top: auto;
    height: clamp(430px, 56vw, 720px);
  }

  .about-purpose__mission-layer {
    clip-path: none;
    transform: none;
  }

  .about-purpose__shared-circle {
    display: none;
  }

  .about-purpose__statement--vision {
    display: none;
  }

  .about-purpose__statement--mission {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0);
  }
}

/* ==========================================================
   Expertise landing page
   Shared JNV components + Figma frame 204:5544
   ========================================================== */

.expertise-page {
  --expertise-ink: #352b46;
  --expertise-gold: #7e6131;
  --expertise-muted: #393939;
  background: #fff;
}

.expertise-hero {
  /* Figma banner frame: 1932 × 916 (2.109:1). Keep the artwork ratio stable. */
  height: auto;
  aspect-ratio: 1932 / 916;
  min-height: 0;
}

.expertise-hero .industries-hero__image {
  object-position: center;
}

.expertise-hero .industries-hero__title {
  max-width: 68rem;
}

.expertise-breadcrumb {
  min-height: clamp(3rem, 2.71vw, 3.25rem);
}

.expertise-section-heading {
  max-width: 72rem;
  margin: 0 auto;
  text-align: center;
}

.expertise-section-heading h2,
.expertise-trust__heading h2 {
  margin: 0;
  color: var(--expertise-ink);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 2.61vw, 3.125rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.expertise-section-heading p,
.expertise-trust__heading p {
  max-width: 72rem;
  margin: clamp(1rem, 1.25vw, 1.5rem) auto 0;
  color: var(--expertise-muted);
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.95rem, 1.15vw, 1.375rem);
  font-weight: 300;
  line-height: 1.35;
}

.expertise-overview {
  padding: clamp(5rem, 6.15vw, 7.4rem) 0 clamp(5rem, 6.25vw, 7.5rem);
}

.expertise-overview__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(3rem, 3.75vw, 4.5rem) clamp(1.5rem, 2.65vw, 3.2rem);
  width: min(100%, 71rem);
  margin: clamp(3.75rem, 4.75vw, 5.7rem) auto 0;
}

.expertise-card {
  position: relative;
  grid-column: span 2;
  aspect-ratio: 344 / 478;
  overflow: hidden;
  border-radius: clamp(0.55rem, 0.73vw, 0.86rem);
  background: #100d19;
  color: #fff;
  isolation: isolate;
}

.expertise-card--quality {
  grid-column: 2 / span 2;
}

.expertise-card--central {
  grid-column: 4 / span 2;
}

.expertise-card > img {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.expertise-card__shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(145deg, rgba(53, 43, 70, 0.94) 0%, rgba(53, 43, 70, 0.42) 38%, rgba(53, 43, 70, 0) 68%);
}

.expertise-card__copy {
  position: absolute;
  top: 8.1%;
  left: 5.8%;
  display: block;
  width: 78%;
}

.expertise-card__copy strong {
  display: block;
  margin-bottom: clamp(0.55rem, 0.75vw, 0.9rem);
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.35rem, 1.56vw, 1.875rem);
  font-weight: 400;
  line-height: 1.06;
}

.expertise-card__copy > span {
  display: block;
  color: #fff;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.82rem, 0.94vw, 1.125rem);
  font-weight: 300;
  line-height: 1.28;
}

.expertise-card__arrow {
  position: absolute;
  right: 4.2%;
  bottom: 3.1%;
  display: grid;
  width: clamp(2.65rem, 2.86vw, 3.44rem);
  height: clamp(2.65rem, 2.86vw, 3.44rem);
  border-radius: 50%;
  place-items: center;
  background: var(--expertise-gold);
}

.expertise-card__arrow img {
  width: 48%;
  filter: brightness(0) invert(1);
}

.expertise-card:focus-visible {
  outline: 3px solid var(--expertise-gold);
  outline-offset: 4px;
}

.expertise-process {
  padding: clamp(3rem, 3.9vw, 4.75rem) 0 clamp(2rem, 2.6vw, 3.125rem);
  overflow: hidden;
}

.expertise-process .expertise-section-heading p {
  max-width: 52rem;
}

.expertise-process__chain {
  position: relative;
  height: clamp(315px, 23.08vw, 443px);
  margin-top: clamp(6rem, 8.55vw, 10.25rem);
}

.expertise-process__step,
.expertise-process__bridge {
  position: absolute;
  top: 15px;
  width: clamp(285px, 20.83vw, 400px);
  height: clamp(285px, 20.83vw, 400px);
  margin: 0;
  border-radius: 50%;
  transform: translateX(-50%);
}

.expertise-process__orbit {
  position: absolute;
  z-index: 0;
  top: 15px;
  left: 50%;
  width: clamp(285px, 20.83vw, 400px);
  height: clamp(285px, 20.83vw, 400px);
  border: 2px dashed #bfbfbf;
  border-radius: 50%;
  opacity: 1;
  transform: translateX(-50%);
  transition: opacity 900ms ease;
}

.expertise-process__step {
  overflow: hidden;
  background: #dedede;
  box-shadow: 0 1.05rem 2.1rem rgba(0, 0, 0, 0.07);
  transition: left 1200ms cubic-bezier(.2, .75, .22, 1),
    opacity 900ms ease,
    transform 1200ms cubic-bezier(.2, .75, .22, 1),
    box-shadow 900ms ease;
  will-change: left, opacity, transform;
}

.expertise-process__step--requirement {
  z-index: 1;
  left: 50%;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%);
}

.expertise-process__step--engineer {
  z-index: 3;
  left: 50%;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%);
  box-shadow: 0 1.05rem 2.1rem rgba(0, 0, 0, 0.07);
}

.expertise-process__step--manufacture {
  z-index: 5;
  left: 50%;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%);
}

.expertise-process__step img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.expertise-process__step::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.55) 88%);
  content: '';
}

.expertise-process__step figcaption {
  position: absolute;
  z-index: 2;
  top: 68.15%;
  left: 50%;
  width: 285.5px;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.35rem, 1.57vw, 1.88rem);
  font-weight: 400;
  line-height: 1.08;
  text-align: center;
  transform: translateX(-50%);
}

.expertise-process__step--engineer figcaption {
  top: 71.25%;
}

.expertise-process__bridge {
  border: 2px dashed #bfbfbf;
  opacity: 0;
  transform: none;
  transition: opacity 900ms ease;
}

.expertise-process__bridge--one {
  z-index: 0;
  left: clamp(230px, 16.8vw, 322.62px);
}

.expertise-process__bridge--two {
  z-index: 0;
  left: clamp(720px, 52.64vw, 1010.68px);
}

/* Scroll-triggered state shared with Smart Factories: the process begins as a
   centered step, then resolves into the three-card chain. */
.expertise-process__chain.is-expanded .expertise-process__orbit { opacity: 0; }
.expertise-process__chain.is-expanded .expertise-process__bridge { opacity: 1; }
.expertise-process__chain.is-expanded .expertise-process__step--requirement {
  left: 0;
  opacity: 1;
  pointer-events: auto;
  transform: none;
}
.expertise-process__chain.is-expanded .expertise-process__step--engineer {
  left: 50%;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%);
}
.expertise-process__chain.is-expanded .expertise-process__step--manufacture {
  right: 0;
  left: auto;
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

.expertise-trust {
  --expertise-ink: #352b46;
  --expertise-gold: #7e6131;
  --expertise-muted: #393939;
  position: relative;
  min-height: min(39.3229vw, 47.1875rem);
  overflow: hidden;
  background: #161020;
  color: #fff;
}

.expertise-trust__image,
.expertise-trust__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.expertise-trust__image {
  top: -33.9%;
  right: auto;
  bottom: auto;
  left: 0.02%;
  width: 101.28%;
  height: 172.35%;
  object-fit: cover;
}

.expertise-trust__shade {
  background: rgba(53, 43, 70, 0.7);
}

.expertise-trust__content {
  position: relative;
  width: 100%;
  max-width: none !important;
  min-height: inherit;
  padding-right: 0;
  padding-left: 0;
}

.expertise-trust__heading {
  position: absolute;
  top: 9.5%;
  right: 0;
  left: 0;
  text-align: center;
}

.expertise-trust__heading h2,
.expertise-trust__heading p {
  color: #fff;
}

.expertise-trust__heading h2 {
  font-weight: 700;
}

.expertise-trust__heading p {
  width: min(38.3vw, 46rem);
  max-width: none;
  margin-top: min(1.05vw, 1.25rem);
  line-height: 1.2;
}

.expertise-trust__stats {
  position: absolute;
  inset: 0;
  margin: 0;
}

.expertise-stat {
  --expertise-stat-line: 15rem;
  position: absolute;
  min-width: clamp(11rem, 15vw, 18rem);
  margin: 0;
  padding-left: clamp(3.2rem, 4.25vw, 5.1rem);
}

.expertise-stat--engineers {
  --expertise-stat-line: min(17.8125vw, 21.375rem);
  top: 47.42%;
  left: 4.896%;
}

.expertise-stat--programmes {
  --expertise-stat-line: min(11.8229vw, 14.1875rem);
  top: 63.25%;
  left: 25.729%;
  padding-left: min(4.01vw, 4.8125rem);
}

.expertise-stat--facilities {
  --expertise-stat-line: min(18.986vw, 22.783rem);
  top: 43.31%;
  left: 51.719%;
}

.expertise-stat--customers {
  --expertise-stat-line: min(12.4479vw, 14.9375rem);
  top: 61.13%;
  left: 72.448%;
  padding-left: min(4.583vw, 5.5rem);
}

/* Repeater fallback: preserve the art-directed four-stat composition by
   default, and use a responsive grid only when editors add/remove rows. */
.expertise-trust__stats[data-stat-count]:not([data-stat-count="4"]) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: clamp(1rem, 2vw, 2.5rem);
  align-content: end;
  padding: clamp(13rem, 24vw, 28rem) 5% 6%;
}

.expertise-trust__stats[data-stat-count]:not([data-stat-count="4"]) .expertise-stat {
  position: relative;
  top: auto;
  left: auto;
  min-width: 0;
}

.expertise-stat dt {
  color: #fff;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(3rem, 4.55vw, 5.45rem);
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.expertise-stat dt span {
  color: var(--expertise-gold);
}

.expertise-stat dd {
  margin: clamp(0.65rem, 0.85vw, 1rem) 0 0;
  color: #fff;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(1.1rem, 1.62vw, 1.95rem);
  font-weight: 300;
  line-height: 1.16;
}

.expertise-stat__beacon {
  position: absolute;
  z-index: 0;
  top: min(1.15vw, 1.375rem);
  left: 0;
  width: clamp(3.25rem, 3.125vw, 3.75rem);
  height: clamp(3.25rem, 3.125vw, 3.75rem);
}

.expertise-stat__beacon::after {
  position: absolute;
  z-index: 0;
  top: 58.333%;
  left: 50%;
  height: var(--expertise-stat-line);
  border-left: 1.5px dashed rgba(255, 255, 255, 0.96);
  content: '';
  transform: translateX(-50%);
}

.expertise-stat__orbit,
.expertise-stat__orbit b {
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.expertise-stat__orbit {
  z-index: 1;
  width: 100%;
  height: 100%;
  animation: expertise-beacon-rotate 8.5s linear infinite;
  will-change: transform;
}

.expertise-stat__orbit--continuous {
  animation-name: expertise-beacon-rotate-continuous;
}

.expertise-stat__orbit b:nth-child(1) {
  width: 100%;
  height: 100%;
  background: rgba(182, 176, 190, 0.78);
  animation: expertise-beacon-outer 8.5s linear infinite;
}

.expertise-stat__orbit b:nth-child(2) {
  width: 61.1%;
  height: 61.1%;
  background: rgba(221, 220, 220, 0.92);
  animation: expertise-beacon-mid 8.5s linear infinite;
}

.expertise-stat__orbit b:nth-child(3) {
  width: 27.8%;
  height: 27.8%;
  background: #fff;
  animation: expertise-beacon-dot 8.5s linear infinite;
}

.expertise-gallery {
  position: relative;
  height: min(47.7865vw, 57.34375rem);
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #fff;
}

.expertise-gallery__curves {
  position: absolute;
  z-index: 0;
  top: -66.34%;
  left: -11.93%;
  width: 116.46%;
  height: 317.6%;
  pointer-events: none;
}

.expertise-gallery > .container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none !important;
  height: 100%;
  padding-right: 0;
  padding-left: 0;
}

.expertise-gallery__title {
  --character-heading-muted: #d2d2d2;
  position: absolute;
  top: 13.34%;
  left: 50%;
  width: min(52vw, 62.4rem);
  max-width: none;
  margin: 0;
  color: #d2d2d2;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: min(2.6042vw, 3.125rem);
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: 0;
  text-align: center;
  transform: translateX(-50%);
}

.expertise-gallery__grid {
  position: absolute;
  inset: 0;
  margin: 0;
}

.expertise-gallery__item {
  position: relative;
  margin: 0;
}

.expertise-gallery__hover {
  position: absolute;
  inset: 0;
  left: -1.1%;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: min(1.25vw, 1.5rem);
  align-items: center;
  justify-content: center;
  width: 101.84%;
  height: 99.7%;
  margin: 0;
  border-radius: min(1.1458vw, 1.375rem);
  background: #352b46;
  color: #fff;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.34s ease, visibility 0s linear 0.34s;
}

.expertise-gallery__hover > * {
  transform: translateY(min(-0.3125vw, -0.375rem));
}

.expertise-gallery__hover h3 {
  margin: 0;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: min(1.5625vw, 1.875rem);
  font-weight: 700;
  line-height: 1.15;
}

.expertise-gallery__hover p {
  margin: 0;
  color: #fff;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: min(0.9375vw, 1.125rem);
  font-weight: 300;
  line-height: 1.3;
}

.expertise-gallery__item {
  position: absolute;
  top: 51.09%;
  width: min(16.9643vw, 20.3571rem);
  aspect-ratio: 1;
}

.expertise-gallery__item--one {
  left: 13.9323%;
  z-index: 2;
  cursor: pointer;
}

.expertise-gallery__item--two,
.expertise-gallery__item--three,
.expertise-gallery__item--four {
  cursor: pointer;
}

.expertise-gallery__motion {
  position: absolute;
  inset: 0;
  transition: transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}

.expertise-gallery__item--one:hover,
.expertise-gallery__item--one:focus-visible {
  z-index: 4;
  outline: none;
}

.expertise-gallery__item--one:hover .expertise-gallery__motion,
.expertise-gallery__item--one:focus-visible .expertise-gallery__motion {
  transform: translateY(max(-9.4271vw, -11.3125rem));
}

.expertise-gallery__item--one:hover .expertise-gallery__motion > img,
.expertise-gallery__item--one:hover .expertise-gallery__motion > span,
.expertise-gallery__item--one:focus-visible .expertise-gallery__motion > img,
.expertise-gallery__item--one:focus-visible .expertise-gallery__motion > span {
  opacity: 0;
}

.expertise-gallery__item--two:hover .expertise-gallery__motion > img,
.expertise-gallery__item--two:hover .expertise-gallery__motion > span,
.expertise-gallery__item--two:focus-visible .expertise-gallery__motion > img,
.expertise-gallery__item--two:focus-visible .expertise-gallery__motion > span,
.expertise-gallery__item--three:hover .expertise-gallery__motion > img,
.expertise-gallery__item--three:hover .expertise-gallery__motion > span,
.expertise-gallery__item--three:focus-visible .expertise-gallery__motion > img,
.expertise-gallery__item--three:focus-visible .expertise-gallery__motion > span,
.expertise-gallery__item--four:hover .expertise-gallery__motion > img,
.expertise-gallery__item--four:hover .expertise-gallery__motion > span,
.expertise-gallery__item--four:focus-visible .expertise-gallery__motion > img,
.expertise-gallery__item--four:focus-visible .expertise-gallery__motion > span {
  opacity: 0;
}

.expertise-gallery__item--one:hover .expertise-gallery__hover,
.expertise-gallery__item--one:focus-visible .expertise-gallery__hover {
  opacity: 1;
  visibility: visible;
  transition-delay: 0.13s, 0s;
}

.expertise-gallery__item--two:hover .expertise-gallery__hover,
.expertise-gallery__item--two:focus-visible .expertise-gallery__hover,
.expertise-gallery__item--three:hover .expertise-gallery__hover,
.expertise-gallery__item--three:focus-visible .expertise-gallery__hover,
.expertise-gallery__item--four:hover .expertise-gallery__hover,
.expertise-gallery__item--four:focus-visible .expertise-gallery__hover {
  opacity: 1;
  visibility: visible;
  transition-delay: 0.13s, 0s;
}

.expertise-gallery__item--two:hover,
.expertise-gallery__item--two:focus-visible,
.expertise-gallery__item--three:hover,
.expertise-gallery__item--three:focus-visible,
.expertise-gallery__item--four:hover,
.expertise-gallery__item--four:focus-visible {
  z-index: 4;
  outline: none;
}

.expertise-gallery__item--two:hover .expertise-gallery__motion,
.expertise-gallery__item--two:focus-visible .expertise-gallery__motion,
.expertise-gallery__item--three:hover .expertise-gallery__motion,
.expertise-gallery__item--three:focus-visible .expertise-gallery__motion,
.expertise-gallery__item--four:hover .expertise-gallery__motion,
.expertise-gallery__item--four:focus-visible .expertise-gallery__motion {
  transform: translateY(max(-9.4271vw, -11.3125rem));
}

.expertise-gallery__item--two {
  left: 32.902%;
}

.expertise-gallery__item--three {
  left: 51.714%;
}

.expertise-gallery__item--four {
  left: 70.677%;
}

.expertise-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity 0.28s ease;
}

.expertise-gallery__item > span,
.expertise-gallery__motion > span {
  position: absolute;
  z-index: 2;
  top: -3.376%;
  left: -2.61%;
  display: grid;
  width: min(2.7083vw, 3.25rem);
  height: min(2.7083vw, 3.25rem);
  border-radius: 50%;
  place-items: center;
  background: #dddcdc;
  color: #000;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: min(1.0417vw, 1.25rem);
  font-weight: 700;
  transition: opacity 0.24s ease;
}

.expertise-sector {
  min-height: clamp(28rem, 33.55vw, 40.25rem);
}

.expertise-sector .about-contact__image {
  object-position: center;
}

.expertise-sector .about-contact__shade {
  background: linear-gradient(90deg, rgba(4, 5, 9, 0.98) 0%, rgba(4, 5, 9, 0.82) 25%, rgba(4, 5, 9, 0) 56%);
}

.expertise-sector .about-contact__content {
  top: 45%;
}

.expertise-sector h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 400;
}

.expertise-sector .about-contact__button {
  box-sizing: border-box;
  gap: 0;
  min-height: clamp(2.25rem, 2.8vw, 2.75rem);
  padding: 0 clamp(0.8rem, 1vw, 1rem);
  border: 1px solid #fff;
  border-radius: 3px;
  background: #fff;
  color: var(--expertise-gold);
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.75rem, 0.9vw, 0.95rem);
  font-weight: 500;
}

.expertise-sector .about-contact__button-divider {
  display: block;
  width: 1px;
  height: clamp(1.1rem, 1.35vw, 1.35rem);
  margin: 0 clamp(0.65rem, 0.8vw, 0.8rem);
  background: currentColor;
  opacity: 0.55;
}

.expertise-sector .about-contact__button img {
  display: block;
  width: clamp(0.7rem, 0.85vw, 0.9rem);
  height: auto;
}

@keyframes expertise-beacon-rotate {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  35.294%, 100% { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes expertise-beacon-rotate-continuous {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  100% { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes expertise-beacon-outer {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  5.882% { opacity: 1; transform: translate(-50%, -50%) scale(1); animation-timing-function: ease-out; }
  10% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); animation-timing-function: ease-in; }
  14.118% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  29.412% { opacity: 1; transform: translate(-50%, -50%) scale(1); animation-timing-function: ease-out; }
  33.529% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); animation-timing-function: ease-in; }
  37.647%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes expertise-beacon-mid {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  2.941% { opacity: 1; transform: translate(-50%, -50%) scale(1); animation-timing-function: ease-out; }
  7.059% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); animation-timing-function: ease-in; }
  11.176% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  26.471% { opacity: 1; transform: translate(-50%, -50%) scale(1); animation-timing-function: ease-out; }
  30.588% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); animation-timing-function: ease-in; }
  34.706%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes expertise-beacon-dot {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(1); animation-timing-function: ease-out; }
  4.118% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); animation-timing-function: ease-in; }
  8.235% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  23.529% { opacity: 1; transform: translate(-50%, -50%) scale(1); animation-timing-function: ease-out; }
  27.647% { opacity: 0.3; transform: translate(-50%, -50%) scale(1.2); animation-timing-function: ease-in; }
  31.765%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@media (max-width: 991.98px) {
  .expertise-overview__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: 46rem;
  }

  .expertise-card {
    grid-column: span 2;
  }

  .expertise-card--research {
    grid-column: 2 / span 2;
  }

  .expertise-card--quality,
  .expertise-card--central {
    grid-column: span 2;
  }

  .expertise-process__chain {
    width: calc(100% - 2rem);
  }

  .expertise-trust {
    min-height: 42rem;
  }

  .expertise-trust__heading p {
    width: min(calc(100% - 2rem), 38rem);
  }

  .expertise-trust__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    align-content: end;
    padding: 13rem 1rem 4rem;
  }

  .expertise-stat,
  .expertise-stat--engineers,
  .expertise-stat--programmes,
  .expertise-stat--facilities,
  .expertise-stat--customers {
    position: relative;
    top: auto;
    left: auto;
    min-height: 9rem;
  }

  .expertise-stat__beacon::after {
    height: 8.5rem;
  }

  .expertise-gallery {
    height: auto;
    min-height: 0;
    padding: 4.5rem 0;
  }

  .expertise-gallery > .container {
    height: auto;
  }

  .expertise-gallery__curves {
    top: -12%;
    left: -45%;
    width: 190%;
    height: auto;
  }

  .expertise-gallery__title {
    position: relative;
    top: auto;
    left: auto;
    width: min(calc(100% - 2rem), 44rem);
    margin: 0 auto;
    font-size: clamp(2rem, 5.2vw, 3.125rem);
    transform: none;
  }

  .expertise-gallery__grid {
    position: relative;
    inset: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    width: min(calc(100% - 2rem), 44rem);
    margin: 4rem auto 0;
  }

  .expertise-gallery__item,
  .expertise-gallery__item--one,
  .expertise-gallery__item--two,
  .expertise-gallery__item--three,
  .expertise-gallery__item--four {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
  }

  .expertise-gallery__hover {
    gap: 1.25rem;
    border-radius: 1.1rem;
  }

  .expertise-gallery__hover > * {
    transform: none;
  }

  .expertise-gallery__hover h3 {
    font-size: clamp(1.6rem, 3.5vw, 1.875rem);
  }

  .expertise-gallery__hover p {
    font-size: clamp(0.95rem, 2vw, 1.125rem);
  }

  .expertise-gallery__item--one:hover .expertise-gallery__motion,
  .expertise-gallery__item--one:focus-visible .expertise-gallery__motion {
    transform: translateY(-0.75rem);
  }

  .expertise-gallery__item--two:hover .expertise-gallery__motion,
  .expertise-gallery__item--two:focus-visible .expertise-gallery__motion,
  .expertise-gallery__item--three:hover .expertise-gallery__motion,
  .expertise-gallery__item--three:focus-visible .expertise-gallery__motion,
  .expertise-gallery__item--four:hover .expertise-gallery__motion,
  .expertise-gallery__item--four:focus-visible .expertise-gallery__motion {
    transform: translateY(-0.75rem);
  }

  .expertise-gallery__item > span,
  .expertise-gallery__motion > span {
    width: clamp(2.6rem, 5.2vw, 3.25rem);
    height: clamp(2.6rem, 5.2vw, 3.25rem);
    font-size: clamp(0.95rem, 2vw, 1.25rem);
  }
}

@media (max-width: 767.98px) {
  .expertise-hero {
    height: auto;
    min-height: 31rem;
  }

  .expertise-hero .industries-hero__image {
    object-position: 63% center;
  }

  .expertise-overview__grid {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    width: min(100%, 22rem);
  }

  .expertise-card {
    width: 100%;
  }

  .expertise-process {
    padding: 3.5rem 0 4rem;
  }

  .expertise-process__chain {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    align-items: center;
    width: 100%;
    height: auto;
    margin-top: 3rem;
  }

  .expertise-process__step,
  .expertise-process__step--requirement,
  .expertise-process__step--engineer,
  .expertise-process__step--manufacture {
    position: relative;
    top: auto;
    left: auto;
    width: min(78vw, 20rem);
    transform: none;
  }

  .expertise-process__orbit {
    display: none;
  }

  .expertise-process__bridge {
    display: none;
  }

  .expertise-process__chain.is-expanded .expertise-process__step,
  .expertise-process__chain.is-expanded .expertise-process__step--requirement,
  .expertise-process__chain.is-expanded .expertise-process__step--engineer,
  .expertise-process__chain.is-expanded .expertise-process__step--manufacture {
    left: auto;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .expertise-trust {
    min-height: 47rem;
  }

  .expertise-trust__heading {
    top: 7%;
    padding: 0 1rem;
  }

  .expertise-trust__stats {
    padding-top: 13rem;
    padding-bottom: 2.5rem;
  }

  .expertise-stat {
    min-width: 0;
    padding-left: 2.8rem;
  }

  .expertise-stat__beacon {
    width: 2.6rem;
    height: 2.6rem;
  }

  .expertise-gallery__title {
    text-align: center;
  }

  .expertise-gallery__grid {
    gap: 2rem 1rem;
  }

  .expertise-sector .about-contact__image {
    object-position: 64% center;
  }

  .expertise-sector .about-contact__shade {
    background: linear-gradient(90deg, rgba(4, 5, 9, 0.96), rgba(4, 5, 9, 0.45));
  }
}

@media (max-width: 479.98px) {
  .expertise-gallery__grid {
    grid-template-columns: 1fr;
    width: min(calc(100% - 2rem), 22rem);
  }

  .expertise-trust__stats {
    grid-template-columns: 1fr;
    gap: 0.65rem;
    padding-top: 12.5rem;
  }

  .expertise-stat {
    min-height: 6.75rem;
  }

  .expertise-stat__beacon::after {
    height: 6rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .expertise-stat__orbit,
  .expertise-stat__orbit b {
    animation: none;
  }

  .expertise-gallery__motion,
  .expertise-gallery__item--two .expertise-gallery__motion,
  .expertise-gallery__item--three .expertise-gallery__motion,
  .expertise-gallery__item--four .expertise-gallery__motion,
  .expertise-gallery__item img,
  .expertise-gallery__item > span,
  .expertise-gallery__motion > span,
  .expertise-gallery__hover {
    transition: none;
  }

  .expertise-gallery__item--one:hover .expertise-gallery__motion,
  .expertise-gallery__item--one:focus-visible .expertise-gallery__motion {
    transform: none;
  }

  .expertise-gallery__item--two:hover .expertise-gallery__motion,
  .expertise-gallery__item--two:focus-visible .expertise-gallery__motion,
  .expertise-gallery__item--three:hover .expertise-gallery__motion,
  .expertise-gallery__item--three:focus-visible .expertise-gallery__motion,
  .expertise-gallery__item--four:hover .expertise-gallery__motion,
  .expertise-gallery__item--four:focus-visible .expertise-gallery__motion {
    transform: none;
  }
}

/* ==========================================================
   Expertise Internal / Engineering Solutions
   Figma frame 204:5097 — shared header, footer and tab runtime
   ========================================================== */

.expertise-internal-page { background: #fff; }
.expertise-internal-page,
.expertise-internal-page *,
.expertise-internal-page *::before,
.expertise-internal-page *::after { box-sizing: border-box; }

.expertise-internal-hero {
  height: auto;
  min-height: 0;
  aspect-ratio: 1932 / 916;
}

.expertise-internal-hero .industries-hero__image {
  object-position: center;
}

.expertise-internal-hero .industries-hero__shade {
  background: linear-gradient(180deg, rgba(7, 6, 14, 0.02) 36%, rgba(7, 6, 14, 0.76) 100%);
}

.expertise-internal-hero .industries-hero__content {
  bottom: 14.6%;
}

.expertise-internal-page .industries-hero__title {
  font-family: 'Playfair Display', Georgia, serif;
}

.expertise-internal-hero .industries-hero__title {
  max-width: min(56.6vw, 67.94rem);
  font-size: clamp(2rem, 3.125vw, 3.75rem);
  line-height: 1.08;
}

.expertise-internal-breadcrumb { min-height: clamp(2.75rem, 2.71vw, 3.25rem); }

.expertise-internal-heading h2 {
  margin: 0;
  color: #352b46;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 2.6042vw, 3.125rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.expertise-internal-heading p {
  max-width: min(60vw, 56.625rem);
  margin: clamp(0.5rem, 0.83vw, 1rem) auto 0;
  color: #393939;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.82rem, 0.94vw, 1.125rem);
  font-weight: 300;
  line-height: 1.35;
}

.expertise-internal-technology {
  height: min(54.53vw, 65.44rem);
  min-height: 44rem;
  padding-top: clamp(4rem, 4.74vw, 5.7rem);
  overflow: hidden;
}

.expertise-internal-showcase {
  position: relative;
  width: min(calc(100% - 6rem), 108.31rem);
  height: min(31.65vw, 38rem);
  margin: clamp(2.75rem, 4.25vw, 5.1rem) auto 0;
}

.expertise-internal-showcase__card {
  position: absolute;
  top: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 100%;
}

.expertise-internal-showcase__card img,
.expertise-internal-showcase__card video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.expertise-internal-showcase__card--main {
  left: 28.2%;
  width: 43.6%;
  z-index: 2;
}

.expertise-internal-showcase__card--side {
  width: 28%;
  opacity: 0.32;
  z-index: 1;
}

.expertise-internal-showcase__card--left { left: 0; }
.expertise-internal-showcase__card--right { right: 0; }

.expertise-internal-showcase__track,
.expertise-internal-showcase__slide { position: absolute; inset: 0; }
.expertise-internal-showcase__slide { opacity: 0; pointer-events: none; transform: translateX(2.5%); transition: opacity 700ms ease, transform 700ms cubic-bezier(.2,.7,.2,1); }
.expertise-internal-showcase__slide.is-active { opacity: 1; pointer-events: auto; transform: translateX(0); }
.expertise-internal-showcase__slide.is-entering-left { transform: translateX(-2.5%); }
.expertise-internal-showcase__slide .expertise-internal-showcase__card { height: calc(100% - 5.3rem); transition: transform 650ms cubic-bezier(.2,.7,.2,1), opacity 650ms ease; }
.expertise-internal-showcase__slide:hover .expertise-internal-showcase__card--main { transform: translateY(-0.7rem) scale(1.015); }
.expertise-internal-showcase__slide:hover .expertise-internal-showcase__card--side { opacity: 0.48; }

.expertise-internal-showcase__arrow {
  position: absolute;
  z-index: 5;
  top: 50%;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #352b46;
  font-family: Georgia, serif;
  font-size: 2rem;
  line-height: 1;
  transform: translateY(-50%);
}

.expertise-internal-showcase__arrow--prev { left: -1rem; }
.expertise-internal-showcase__arrow--next { right: -1rem; }
.expertise-internal-showcase__arrow:hover,
.expertise-internal-showcase__arrow:focus-visible { color: #7e6131; transform: translateY(-50%) scale(1.2); outline: none; }

.expertise-internal-showcase__labels {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: min(calc(100% - 6rem), 108.31rem);
  margin: 0 auto;
  border-top: 0;
  color: #352b46;
  text-align: center;
}

.expertise-internal-showcase__labels > button {
  appearance: none;
  width: 100%;
  min-height: 4.8rem;
  padding: 0.55rem 1rem 0;
  border-top: 2px solid #dddcdc;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  background: transparent;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1rem, 1.6vw, 1.9rem);
  font-weight: 400;
  line-height: 1.05;
  color: #352b46;
  cursor: pointer;
}

.expertise-internal-showcase__labels > button.is-selected { border-top-color: #7e6131; }
.expertise-internal-showcase__labels > button strong { font-weight: 400; }
.expertise-internal-showcase__labels > button:hover,
.expertise-internal-showcase__labels > button:focus-visible { color: #7e6131; outline: none; }

.expertise-internal-process {
  /* Shared by Engineering Solutions and R&D. Positions are fractions of the
     three-step design height (--process-unit). Steps added in the CMS beyond
     three extend the section by one step pitch each (--process-extra-rows,
     set by wp-api.js renderInternalProcess). */
  --process-unit: max(min(81.667vw, 98rem), 60rem);
  --process-pitch: 0.21937;
  position: relative;
  height: calc(var(--process-unit) * (1 + var(--process-extra-rows, 0) * var(--process-pitch)));
  min-height: 60rem;
  overflow: hidden;
  background: #352b46;
  color: #fff;
}

.expertise-internal-process .expertise-internal-heading h2,
.expertise-internal-process .expertise-internal-heading p { color: #fff; }

.expertise-internal-process__heading {
  position: absolute;
  top: calc(var(--process-unit) * 0.0816);
  right: 1rem;
  left: 1rem;
}

.expertise-internal-process__heading p { color: rgba(255, 255, 255, 0.85); }

.expertise-internal-process__line {
  position: absolute;
  right: 4.9%;
  left: 4.9%;
  height: 0;
  top: calc(var(--process-unit) * (0.2545 + var(--process-line, 0) * var(--process-pitch)));
  border-top: 1px dashed rgba(255, 255, 255, 0.3);
}

.expertise-internal-process__photo {
  position: absolute;
  z-index: 3;
  top: calc(var(--process-unit) * 0.2557);
  left: 50%;
  width: min(16.84vw, 20.2rem);
  height: min(20.05vw, 24.06rem);
  overflow: hidden;
  border-radius: min(0.7vw, 0.85rem);
  transform: translateX(-50%);
  transition: top 900ms cubic-bezier(.2,.7,.2,1), transform 900ms cubic-bezier(.2,.7,.2,1), box-shadow 500ms ease;
}

.expertise-internal-process__photo.is-middle { top: calc(var(--process-unit) * 0.4793); }
.expertise-internal-process__photo.is-bottom { top: calc(var(--process-unit) * 0.6939); }
/* Fourth and later CMS steps (--process-photo-row set by script.js). */
.expertise-internal-process__photo.is-beyond { top: calc(var(--process-unit) * (0.6939 + (var(--process-photo-row, 3) - 2) * var(--process-pitch))); }
.expertise-internal-process__photo:hover { transform: translateX(-50%) scale(1.025); box-shadow: 0 1.2rem 2.5rem rgba(0,0,0,.28); }

.expertise-internal-process__photo img,
.expertise-internal-process__photo video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.expertise-internal-process__row {
  position: absolute;
  z-index: 2;
  top: calc(var(--process-unit) * (0.3017 + var(--process-row, 0) * var(--process-pitch)));
  right: 11.5%;
  left: 11.5%;
  display: grid;
  grid-template-columns: minmax(0, 29%) minmax(0, 29%);
  justify-content: space-between;
  height: 12.5%;
  align-items: center;
  cursor: pointer;
  transition: transform 500ms cubic-bezier(.2,.7,.2,1);
}

.expertise-internal-process__row p {
  max-width: 100%;
  transform: translateY(0);
  opacity: .82;
  transition: transform 500ms cubic-bezier(.2,.7,.2,1), opacity 500ms ease;
}
.expertise-internal-process__row:hover p,
.expertise-internal-process__row.is-hovered p,
.expertise-internal-process__row:focus-within p { transform: translateY(-0.55rem); opacity: 1; }
.expertise-internal-process__row:focus { outline: 0; }
.expertise-internal-process__row:focus-visible h3 { outline: 1px solid rgba(255, 255, 255, 0.75); outline-offset: 0.45rem; }
.expertise-internal-process__row:hover,
.expertise-internal-process__row.is-hovered { transform: translateX(0.35rem); }

.expertise-internal-process__row h3 {
  margin: 0;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.55rem, 2.08vw, 2.5rem);
  font-weight: 400;
  line-height: 1.05;
}

.expertise-internal-process__row p {
  max-width: 26.6rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.86);
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.82rem, 1.04vw, 1.25rem);
  font-weight: 300;
  line-height: 1.3;
}

.expertise-internal-materials {
  position: relative;
  min-height: min(58.02vw, 69.625rem);
  padding-top: clamp(2.75rem, 4.4vw, 5.3rem);
  overflow: hidden;
  background: #fff;
}

.expertise-internal-materials__heading h2 { color: #999; font-size: clamp(1.6rem, 2.6042vw, 3.125rem); }

.expertise-internal-materials__layout {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: clamp(1rem, 1.35vw, 1.65rem);
  /* Match the 1325px Figma frame (68.6% of the 1931px desktop canvas). */
  width: min(68.62vw, 82.8125rem);
  height: min(32.95vw, 39.55rem);
  min-height: 0;
  margin: clamp(2.25rem, 4.25vw, 5.1rem) auto 0;
  padding: 0.75rem;
  background: #fff;
}

.expertise-internal-materials__image { margin: 0; overflow: hidden; }

.expertise-internal-materials__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: opacity 320ms ease, transform 520ms cubic-bezier(.2,.7,.2,1);
}

.expertise-internal-materials__image.is-changing img {
  opacity: 0.35;
  transform: scale(1.015);
}

.expertise-internal-materials__tabs {
  display: flex;
  flex-direction: column;
  gap: clamp(0.65rem, 1.19vw, 1.4375rem);
  padding: 0.2rem 0;
}

.expertise-internal-materials__tabs > button {
  order: 1;
  width: 100%;
  min-height: 4rem;
  padding: 1rem 1.4rem;
  border: 1px solid #dddcdc;
  border-radius: 0.8rem;
  background: #fff;
  color: #352b46;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  text-align: left;
}

.expertise-internal-materials__tabs > button.is-active { order: 0; }

.expertise-internal-materials__tabs > button[aria-selected="true"] {
  border-color: #352b46;
  border-radius: 0.8rem;
  background: #352b46;
  color: #fff;
}

.expertise-internal-materials__tabs > button[aria-selected="true"] { display: none; }
.expertise-internal-materials__tabs > button:not([aria-selected="true"]):hover,
.expertise-internal-materials__tabs > button:not([aria-selected="true"]):focus-visible { border-color: #7e6131; background: #faf8fc; transform: translateX(-0.25rem); outline: none; }

.expertise-internal-materials__panel {
  order: 0;
  padding: 2.7rem 1.4rem 2.25rem;
  border: 1px solid #dddcdc;
  border-radius: 0.8rem;
  background: #fff;
  transition: transform 450ms cubic-bezier(.2,.7,.2,1), box-shadow 450ms ease;
}

.expertise-internal-materials__panel.is-active { order: -1; background: #352b46; color: #fff; }
.expertise-internal-materials__panel.is-active:hover { transform: translateY(-0.35rem); box-shadow: 0 1rem 2rem rgba(53,43,70,.18); }

/* Material tabs: titles keep their row; the selected row expands in place. */
.expertise-internal-materials__tabs { gap: clamp(0.65rem, 1.19vw, 1.4375rem); }
.expertise-internal-materials__item { overflow: hidden; border: 1px solid #dddcdc; border-radius: 0.8rem; background: #fff; transition: box-shadow 450ms ease, transform 450ms ease; }
.expertise-internal-materials__item > button {
  display: block;
  width: 100%;
  min-height: 4rem;
  padding: 1rem clamp(1rem, 1.14vw, 1.375rem);
  border: 0;
  background: #fff;
  color: #352b46;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1rem, 1.584vw, 1.91rem);
  text-align: left;
  cursor: pointer;
  transition: background 350ms ease, color 350ms ease;
}
.expertise-internal-materials__item:not(:has(button[aria-selected="true"])) > button {
  min-height: clamp(4rem, 6.47vw, 7.8125rem);
}
.expertise-internal-materials__item > button[aria-selected="true"] { background: #352b46; color: #fff; }
.expertise-internal-materials__item > button:hover,
.expertise-internal-materials__item > button:focus-visible { outline: none; }
.expertise-internal-materials__item:has(button[aria-selected="true"]) { border-color: #352b46; }
.expertise-internal-materials__item:has(button[aria-selected="true"]):hover { transform: translateY(-0.2rem); box-shadow: 0 0.8rem 1.8rem rgba(53,43,70,.16); }
.expertise-internal-materials__item > .expertise-internal-materials__panel,
.expertise-internal-materials__item > .expertise-internal-materials__panel.is-active { display: block; order: initial; padding: 0 clamp(1rem, 1.14vw, 1.375rem) 1.3rem; border: 0; border-radius: 0; background: #352b46; color: #fff; transform: none; box-shadow: none; }
.expertise-internal-materials__item > .expertise-internal-materials__panel[hidden] { display: none !important; }
.expertise-internal-materials__item > .expertise-internal-materials__panel p { margin: 0; }

.expertise-internal-materials__panel h3 {
  margin: 0 0 0.65rem;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.2rem, 1.6vw, 1.9rem);
  font-weight: 400;
}

.expertise-internal-materials__panel p {
  margin: 0;
  color: inherit;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.78rem, 0.94vw, 1.125rem);
  font-weight: 300;
  line-height: 1.3;
}

.expertise-internal-cta {
  position: relative;
  height: min(33.02vw, 39.625rem);
  min-height: 28rem;
  overflow: hidden;
  color: #fff;
}

.expertise-internal-cta__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.expertise-internal-cta__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.35) 48%, rgba(0, 0, 0, 0) 75%); }

.expertise-internal-cta__content { position: relative; z-index: 1; padding-top: clamp(5rem, 9.1vw, 10.9rem); }

.expertise-internal-cta h2 {
  margin: 0;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 2.6042vw, 3.125rem);
  font-weight: 700;
  line-height: 1;
}

.expertise-internal-cta p { max-width: 29rem; margin: 1.1rem 0 2rem; color: #fff; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(0.85rem, 1.04vw, 1.25rem); line-height: 1.3; }

@media (max-width: 991.98px) {
  .expertise-internal-technology { height: auto; min-height: 48rem; padding-bottom: 3rem; }
  .expertise-internal-showcase { width: calc(100% - 2rem); height: 25rem; }
  .expertise-internal-showcase__labels { width: calc(100% - 2rem); }
  .expertise-internal-process { height: auto; min-height: 58rem; padding: 5rem 1rem 4rem; }
  .expertise-internal-process__heading { position: relative; top: auto; right: auto; left: auto; }
  .expertise-internal-process__photo,
  .expertise-internal-process__photo.is-middle,
  .expertise-internal-process__photo.is-bottom,
  .expertise-internal-process__photo.is-beyond { position: relative; top: auto; left: auto; width: min(48vw, 20rem); height: min(55vw, 24rem); margin: 3rem auto; transform: none; }
  .expertise-internal-process__line { display: none; }
  .expertise-internal-process__row { position: relative; top: auto; right: auto; left: auto; grid-template-columns: 1fr 1.5fr; gap: 1.5rem; height: auto; margin: 1.7rem auto; width: min(100%, 44rem); }
  .expertise-internal-materials { min-height: 58rem; }
  .expertise-internal-materials__layout { width: min(calc(100% - 2rem), 52rem); grid-template-columns: 1fr; }
  .expertise-internal-materials__image { min-height: 22rem; }
}

@media (max-width: 767.98px) {
  .expertise-internal-hero { height: auto; min-height: 31rem; aspect-ratio: auto; }
  .expertise-internal-showcase { height: 18rem; }
  .expertise-internal-showcase__card--side { opacity: 0.2; }
  .expertise-internal-showcase__labels { font-size: 0.8rem; }
  .expertise-internal-showcase__labels > div { padding-inline: 0.25rem; }
  .expertise-internal-process__row { grid-template-columns: 1fr; gap: 0.45rem; }
  .expertise-internal-cta { min-height: 30rem; }
}

@media (prefers-reduced-motion: reduce) {
  .expertise-internal-page * { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Local navbar fallback: keeps this page laid out correctly when the optional
   Bootstrap CDN is unavailable (the shared navbar still uses Bootstrap classes). */
.expertise-internal-page .navbar { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding-top: 1rem; padding-bottom: 1rem; }
.expertise-internal-page .navbar > .container { display: flex; flex-wrap: inherit; align-items: center; justify-content: space-between; }
.expertise-internal-page .navbar-brand { display: inline-block; padding-top: 0.3125rem; padding-bottom: 0.3125rem; margin-right: 1rem; font-size: 1.25rem; text-decoration: none; white-space: nowrap; }
.expertise-internal-page .navbar-collapse { flex-basis: 100%; flex-grow: 1; align-items: center; }
.expertise-internal-page .collapse:not(.show) { display: none; }
.expertise-internal-page .navbar-nav { display: flex; flex-direction: column; padding-left: 0; margin-top: 0; margin-bottom: 0; list-style: none; }
.expertise-internal-page .navbar-nav .nav-link { display: block; text-decoration: none; }
.expertise-internal-page .navbar-toggler { padding: 0.25rem 0.75rem; font-size: 1.25rem; line-height: 1; background: transparent; border: 1px solid rgba(0,0,0,.15); border-radius: .375rem; }
.expertise-internal-page .navbar-toggler-icon { display: inline-block; width: 1.5em; height: 1.5em; vertical-align: middle; background: center/100% 100% no-repeat; }
.expertise-internal-page .ms-auto { margin-left: auto !important; }
.expertise-internal-page .text-center { text-align: center !important; }
.expertise-internal-page .d-flex { display: flex !important; }
.expertise-internal-page .flex-wrap { flex-wrap: wrap !important; }
.expertise-internal-page .align-items-center { align-items: center !important; }
.expertise-internal-page .justify-content-between { justify-content: space-between !important; }
.expertise-internal-page .gap-4 { gap: 1.5rem !important; }
@media (min-width: 1200px) {
  .expertise-internal-page .navbar-expand-xl .navbar-collapse { display: flex !important; flex-basis: auto; }
  .expertise-internal-page .navbar-expand-xl .navbar-toggler { display: none; }
  .expertise-internal-page .navbar-expand-xl .navbar-nav { flex-direction: row; }
}

/* ---------- About: pinned vertical history slider ---------- */
.about-page .about-timeline-slider {
  --timeline-stage-height: calc(100svh - var(--about-header-height, 72px));
  position: relative;
  height: var(--timeline-track-height, 1450px);
  min-height: 1450px;
}

.about-page .about-timeline__stage {
  position: sticky;
  top: var(--about-header-height, 72px);
  height: var(--timeline-stage-height);
  min-height: 470px;
  overflow: hidden;
  isolation: isolate;
}

.about-page .about-timeline__controls {
  position: absolute;
  z-index: 8;
  top: 50%;
  left: max(1rem, calc(50% - 525px + 2rem));
  display: flex;
  flex-direction: column;
  gap: 0.38rem;
  transform: translateY(-50%);
}

.about-page .about-timeline__controls button {
  display: grid;
  width: 2rem;
  height: 0.5rem;
  margin: 0;
  padding: 0;
  place-items: center;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.about-page .about-timeline__controls button span {
  display: block;
  width: 1.6rem;
  height: 1px;
  background: rgba(154, 118, 64, 0.68);
  transition: width 240ms ease, background-color 240ms ease, height 240ms ease;
}

.about-page .about-timeline__controls button:hover span,
.about-page .about-timeline__controls button:focus-visible span,
.about-page .about-timeline__controls button.is-active span {
  width: 1.85rem;
  height: 1px;
  background: var(--about-purple);
}

.about-page .about-timeline__controls button:focus-visible {
  outline: 1px dashed var(--about-purple);
  outline-offset: 0.2rem;
}

.about-page .about-timeline-slider .about-timeline {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 1050px;
  margin: 0 auto;
}

.about-page .about-timeline-slider .about-timeline__item {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: 0.47fr 0.53fr;
  align-items: center;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  opacity: var(--timeline-slide-opacity, 0);
  transform: translate3d(0, var(--timeline-slide-y, 100%), 0) scale(var(--timeline-slide-scale, 1));
  transform-origin: center center;
  pointer-events: none;
  transition: none;
  will-change: transform, opacity;
}

.about-page .about-timeline-slider .about-timeline__item.is-active {
  z-index: 4;
  pointer-events: auto;
}

.about-page .about-timeline-slider .about-timeline__year,
.about-page .about-timeline-slider .about-timeline__content {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

.about-page .about-timeline-slider .about-timeline__content {
  align-self: center;
  max-width: 560px;
  padding-left: 0;
}

/* Optional CMS "External link" wraps the title; it keeps the title's look. */
.about-page .about-timeline__content h3 a {
  color: inherit;
}

.about-page .about-timeline__orb {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: calc(50% - 525px + clamp(0rem, 5.6vw, 4.75rem));
  width: clamp(210px, 19vw, 274px);
  height: clamp(210px, 19vw, 274px);
  border-radius: 50%;
  background: radial-gradient(circle at 27% 28%, #c6b8df 0%, #e5deef 43%, #fbfafc 78%, #fff 100%);
  box-shadow: 0 14px 34px rgba(81, 60, 104, 0.14);
  transform: translateY(-50%);
  pointer-events: none;
}

.about-page .about-timeline-slider .about-timeline__year,
.about-page .about-timeline-slider .about-timeline__year--featured {
  position: relative;
  z-index: 2;
  width: clamp(210px, 19vw, 274px);
  height: clamp(210px, 19vw, 274px);
  margin: 0 clamp(3rem, 12vw, 165px) 0 auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.about-page .about-timeline-slider .about-timeline__year::before,
.about-page .about-timeline-slider .about-timeline__year::after {
  display: none;
}

.about-page .about-timeline-slider .about-timeline__year strong,
.about-page .about-timeline-slider .about-timeline__year--featured strong {
  color: #96743e;
}

@media (max-width: 767.98px) {
  .about-page .about-timeline-slider {
    --timeline-stage-height: min(calc(100svh - var(--about-header-height, 64px)), 44rem);
    min-height: 0;
  }

  .about-page .about-timeline__stage {
    min-height: 430px;
  }

  .about-page .about-timeline__controls {
    left: 0.35rem;
  }

  .about-page .about-timeline__orb {
    top: 27%;
    left: 50%;
    width: 138px;
    height: 138px;
    transform: translate(-50%, -50%);
  }

  .about-page .about-timeline-slider .about-timeline__item {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    align-content: center;
    justify-items: center;
    gap: 1.1rem;
    padding: 1.25rem 0.75rem;
  }

  .about-page .about-timeline-slider .about-timeline__year,
  .about-page .about-timeline-slider .about-timeline__year--featured {
    width: 138px;
    height: 138px;
    margin: 0 auto;
    padding: 0;
    align-items: center;
    justify-content: center;
  }

  .about-page .about-timeline-slider .about-timeline__year strong,
  .about-page .about-timeline-slider .about-timeline__year--featured strong {
    font-size: clamp(2.5rem, 10vw, 3.4rem);
  }

  .about-page .about-timeline-slider .about-timeline__content {
    width: min(100%, 33rem);
    max-width: 33rem;
    padding: 0;
  }

  .about-page .about-timeline-slider .about-timeline__image,
  .about-page .about-timeline-slider .about-timeline__image--logo {
    height: clamp(150px, 38vw, 220px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-page .about-timeline-slider .about-timeline__item {
    transition: none !important;
  }
}

/* Local navbar fallback for About Us when the optional Bootstrap CDN is unavailable. */
.about-page .navbar { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding-top: 1rem; padding-bottom: 1rem; }
.about-page .navbar > .container { display: flex; flex-wrap: inherit; align-items: center; justify-content: space-between; }
.about-page .navbar-brand { display: inline-block; padding-top: 0.3125rem; padding-bottom: 0.3125rem; margin-right: 1rem; font-size: 1.25rem; text-decoration: none; white-space: nowrap; }
.about-page .navbar-collapse { flex-basis: 100%; flex-grow: 1; align-items: center; }
.about-page .collapse:not(.show) { display: none; }
.about-page .navbar-nav { display: flex; flex-direction: column; padding-left: 0; margin-top: 0; margin-bottom: 0; list-style: none; }
.about-page .navbar-nav .nav-item { list-style: none; }
.about-page .navbar-nav .nav-link { display: block; text-decoration: none; }
.about-page .navbar-toggler { padding: 0.25rem 0.75rem; font-size: 1.25rem; line-height: 1; background: transparent; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 0.375rem; }
.about-page .navbar-toggler-icon { display: inline-block; width: 1.5em; height: 1.5em; vertical-align: middle; background: center/100% 100% no-repeat; }
.about-page .ms-auto { margin-left: auto !important; }
@media (min-width: 1200px) {
  .about-page .navbar-expand-xl .navbar-collapse { display: flex !important; flex-basis: auto; }
  .about-page .navbar-expand-xl .navbar-toggler { display: none; }
  .about-page .navbar-expand-xl .navbar-nav { flex-direction: row; }
}

/* ---------- About: shared Figma action-button treatment ---------- */
.about-page .gold-btn,
.about-page .navbar__cta,
.about-page .about-contact__button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease;
}

.about-page .gold-btn {
  gap: 0;
  min-height: clamp(2rem, 2.75vw, 2.5rem);
  padding: 0 clamp(0.7rem, 1vw, 0.95rem);
  border: 1px solid var(--about-gold);
  border-radius: 3px;
  color: var(--about-gold);
  background: transparent;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.75rem, 0.82vw, 0.82rem);
  font-weight: 500;
  line-height: 1;
}

.about-page .gold-btn > span:first-child {
  padding-right: clamp(0.7rem, 0.95vw, 0.95rem);
}

.about-page .gold-btn__divider {
  display: block;
  width: 1px;
  height: clamp(1.15rem, 1.45vw, 1.45rem);
  background: currentColor;
  opacity: 0.7;
}

.about-page .gold-btn img {
  display: block;
  width: clamp(0.75rem, 0.9vw, 0.95rem);
  height: auto;
  margin: 0 0 0 clamp(0.65rem, 0.8vw, 0.8rem);
  padding: 0;
  border: 0;
  filter: none;
}

.about-page .gold-btn:hover,
.about-page .gold-btn:focus-visible {
  border-color: var(--about-gold);
  color: #fff;
  background: var(--about-gold);
}

.about-page .gold-btn:hover img,
.about-page .gold-btn:focus-visible img {
  filter: brightness(0) invert(1);
}

.about-page .navbar__cta {
  gap: clamp(0.6rem, 0.75vw, 0.9rem);
  min-height: clamp(2.25rem, 2.8vw, 2.75rem);
  padding: 0 clamp(0.85rem, 1.15vw, 1.35rem);
  border: 1px solid var(--about-gold);
  border-radius: 3px;
  background: transparent;
}

.about-page .navbar__cta span {
  color: var(--about-gold);
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.75rem, 0.9vw, 0.95rem);
  font-weight: 500;
}

.about-page .navbar__cta-divider {
  width: 1px;
  height: clamp(1.1rem, 1.35vw, 1.35rem);
  background: var(--about-gold);
}

.about-page .navbar__cta img {
  width: clamp(0.7rem, 0.85vw, 0.9rem);
  margin: 0;
}

.about-page .about-contact__button {
  gap: 0;
  min-height: clamp(2.25rem, 2.8vw, 2.75rem);
  margin-top: 1.5rem;
  padding: 0 clamp(0.8rem, 1vw, 1rem);
  border: 1px solid #fff;
  border-radius: 3px;
  background: #fff;
  color: var(--about-purple);
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(0.75rem, 0.9vw, 0.95rem);
  font-weight: 500;
}

.about-page .about-contact__button-divider {
  display: block;
  width: 1px;
  height: clamp(1.1rem, 1.35vw, 1.35rem);
  margin: 0 clamp(0.65rem, 0.8vw, 0.8rem);
  background: currentColor;
  opacity: 0.55;
}

.about-page .about-contact__button img {
  display: block;
  width: clamp(0.7rem, 0.85vw, 0.9rem);
  height: auto;
  margin: 0;
}

/* ---------- About: history intro heading Figma alignment ---------- */
.about-page .about-history__intro {
  --character-heading-muted: #c9c3cd;
  max-width: 930px;
  margin: 0 auto clamp(3.75rem, 6.2vw, 5.75rem);
  color: var(--about-purple);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.85rem, 2.7vw, 3.25rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.025em;
  text-align: center;
  text-wrap: balance;
}

@media (max-width: 767.98px) {
  .about-page .about-history__intro {
    max-width: 34rem;
    margin-bottom: 3.25rem;
    font-size: clamp(1.65rem, 7.5vw, 2.35rem);
    line-height: 1.12;
  }
}

/* ---------- Board of Directors page ---------- */
.board-page {
  overflow-x: hidden;
  background: #fff;
}

.board-page .board-site-header {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 10;
  background: #fff;
}

.board-page .board-site-header .container,
.board-page .board-hero__content,
.board-page .board-breadcrumb .container {
  max-width: none;
  padding-right: 4.94vw;
  padding-left: 4.94vw;
}

.board-page .board-site-header .navbar .nav-link.active {
  color: #7e6131;
}

.board-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 1925.44 / 1055.953;
  overflow: hidden;
  background: #16151a;
}

.board-hero__image {
  position: absolute;
  top: -35.41%;
  left: -8.5%;
  width: 108.53%;
  height: 149%;
  max-width: none;
  object-fit: fill;
}

.board-hero__shade {
  position: absolute;
  inset: 36.18% 0 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .92));
}

.board-hero__content {
  position: absolute;
  inset: 0;
  display: block;
  padding-top: 0;
}

.board-hero h1 {
  position: absolute;
  top: 68%;
  left: 4.94vw;
  max-width: 700px;
  margin: 0;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.5rem, 3.12vw, 3.75rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
}

.board-breadcrumb {
  position: relative;
  z-index: 1;
  margin-top: -20px;
  background: #7e6131;
  color: #fff;
}

.board-breadcrumb .container {
  display: flex;
  align-items: center;
  gap: clamp(.55rem, .8vw, 1rem);
  min-height: clamp(2rem, 2.7vw, 3.25rem);
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(.72rem, .83vw, 1rem);
}

.board-breadcrumb a,
.board-breadcrumb span {
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
}

.board-breadcrumb a:hover,
.board-breadcrumb a:focus-visible {
  text-decoration: underline;
}

.board-directory {
  padding: clamp(5rem, 8vw, 9.625rem) 0 clamp(5rem, 8vw, 9.625rem);
}

.board-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  row-gap: clamp(4rem, 6.72vw, 8.06rem);
  column-gap: clamp(1.5rem, 2.6vw, 3.125rem);
  width: min(1400px, 72.73vw);
  margin: 0 auto;
}

.board-card {
  position: relative;
  aspect-ratio: 433 / 712;
  overflow: hidden;
  border-radius: clamp(.65rem, 1.04vw, 1.25rem);
  background: #352b46;
  isolation: isolate;
  transition: transform .45s cubic-bezier(.2, .75, .25, 1), box-shadow .45s ease;
}

.board-card:hover,
.board-card:focus-within {
  transform: translateY(-8px);
  box-shadow: 0 1.25rem 2.5rem rgba(53, 43, 70, .2);
}

.board-card__pattern {
  position: absolute;
  z-index: -2;
  top: -16.18%;
  left: -38.32%;
  width: 178.5%;
  height: 135.25%;
  background: url('../images/board-pattern.svg') center / 100% 100% no-repeat;
  opacity: .58;
}

.board-card__header {
  position: absolute;
  z-index: 2;
  top: 5.48%;
  right: 6.89%;
  left: 7.16%;
  color: #fff;
}

.board-card__header h3 {
  margin: 0 0 clamp(.55rem, .8vw, .95rem);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.35rem, 1.99vw, 2.4rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.02em;
  text-transform: uppercase;
}

.board-card__header p {
  margin: 0;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(.68rem, .94vw, 1.125rem);
  font-weight: 700;
  line-height: 1.1;
  text-transform: uppercase;
}

.board-card__rule {
  display: block;
  width: clamp(1rem, 1.33vw, 1.6rem);
  height: 1px;
  margin-top: clamp(.35rem, .5vw, .6rem);
  background: #c9a866;
}

.board-card__portrait {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.board-card__portrait img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  max-height: none;
  object-fit: contain !important;
  object-position: center top;
  flex: 0 0 auto;
}

.board-card__portrait--jaiprakash { top: 31.6%; left: -13.63%; width: 127.25%; height: 73.6%; overflow: hidden; }
.board-card__portrait--neelkumar { top: 33.29%; left: -13.63%; width: 127.25%; height: 81.18%; overflow: hidden; }
.board-card__portrait--vijay { top: 34.83%; left: -13.63%; width: 127.25%; height: 78.93%; overflow: hidden; }
.board-card__portrait--keith { top: 30.06%; left: -13.63%; width: 127.25%; height: 73.6%; overflow: hidden; }
.board-card__portrait--ravi { top: 33.29%; left: -13.63%; width: 127.25%; height: 81.18%; overflow: hidden; }
.board-card__portrait--sandeep { top: 35.25%; left: 0; width: 100%; height: 65.03%; overflow: hidden; }

/* Preserve each source PNG's aspect ratio; only the transparent canvas is offset. */
.board-card__portrait--jaiprakash img { transform: translateY(-3.7%); }
.board-card__portrait--neelkumar img { transform: none; }
.board-card__portrait--vijay img { transform: translateY(-6.67%); }
.board-card__portrait--sandeep img { transform: translateY(-.99%); }
.board-card__portrait--keith img { transform: translateY(-1.7%); }
.board-card__portrait--ravi img { transform: none; }

@media (max-width: 991.98px) {
  .board-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(100%, 44rem); }
  .board-hero h1 { top: 64%; }
}

@media (max-width: 575.98px) {
  .board-grid { grid-template-columns: 1fr; width: min(100%, 25rem); }
  .board-directory { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .board-hero { aspect-ratio: 1 / 1.05; }
  .board-hero__image { top: -20%; height: 130%; }
  .board-hero h1 { top: 58%; left: 4.94vw; }
  .board-hero h1 { font-size: clamp(2rem, 9vw, 2.6rem); }
}

/* ---------- Awards and Recognitions page ---------- */
.awards-page {
  --awards-purple: #352b46;
  --awards-gold: #7e6131;
  overflow-x: hidden;
  background: #fff;
}

.awards-page .about-site-header .navbar .nav-link.active { color: var(--awards-gold); }

.awards-data-status {
  width: min(100% - 2rem, 1728px);
  margin: 0 auto;
  padding: clamp(2rem, 3vw, 3.5rem) 1rem 0;
  color: var(--awards-purple);
  font: 400 clamp(1rem, 1.1458vw, 1.375rem)/1.4 'DM Sans', Arial, sans-serif;
  text-align: center;
}

.awards-data-status[hidden] { display: none; }

.awards-hero {
  position: relative;
  height: clamp(34rem, 47.41vw, 57.25rem);
  overflow: hidden;
  background: #080914;
}

.awards-hero__image {
  position: absolute;
  top: -101.42%;
  left: -18.65%;
  width: 147.74%;
  height: 207.73%;
  max-width: none;
  object-fit: fill;
}

.awards-hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(53, 43, 70, 0) 33.57%, rgba(53, 43, 70, .55) 100%), linear-gradient(180deg, rgba(0, 0, 0, 0) 52%, rgba(0, 0, 0, .96) 100%);
}

.awards-hero__content {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding-bottom: clamp(5rem, 10.36vw, 12.45rem);
}

.awards-hero h1 {
  max-width: 68rem;
  margin: 0;
  color: #fff;
  font: 700 clamp(2.45rem, 3.125vw, 3.75rem)/1.06 'Playfair Display', Georgia, serif;
  letter-spacing: 0;
}

.awards-breadcrumb {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 0;
  background: var(--awards-gold);
  color: #fff;
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: clamp(.8rem, .9375vw, 1.125rem);
  font-weight: 300;
}

.awards-breadcrumb .container { display: flex; align-items: center; gap: .75rem; }
.awards-breadcrumb a { color: inherit; text-decoration: none; }
.awards-breadcrumb a:hover, .awards-breadcrumb a:focus-visible { color: #fff; text-decoration: underline; }

.awards-section-title { margin: 0; color: var(--awards-purple); font: 700 clamp(2.15rem, 2.6vw, 3.125rem)/1.1 'Playfair Display', Georgia, serif; text-align: center; }

.awards-tabs { max-width: 866px; margin: clamp(3rem, 4.7vw, 5.65rem) auto clamp(3rem, 4.4vw, 5.3rem); }
.awards-tabs button { font-family: 'DM Sans', Arial, sans-serif; font-size: 18px; font-weight: 300; }
.awards-tabs button.is-active { color: var(--awards-gold); }
.awards-load-more { display: flex; justify-content: center; margin-top: clamp(2.5rem, 3.5vw, 4.25rem); }
.awards-load-more .gold-btn { margin: 0; }
.awards-empty { margin: 3rem auto 0; text-align: center; }

.awards-esg { position: relative; height: clamp(30rem, 37.4vw, 45.05rem); overflow: hidden; background: #080914; }
.awards-esg__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.awards-esg__shade { position: absolute; inset: 0 auto 0 0; width: 44%; background: linear-gradient(90deg, rgba(0, 0, 0, .9), rgba(0, 0, 0, 0)); }
.awards-esg__content { position: relative; z-index: 1; height: 100%; padding-top: clamp(5rem, 5.85vw, 7rem); color: #fff; }
.awards-esg h2 { margin: 0; color: #fff; font: 700 clamp(2.45rem, 3.125vw, 3.75rem)/1.06 'Playfair Display', Georgia, serif; }
.awards-esg p { max-width: 29rem; margin: 1rem 0 2.25rem; color: #fff; font: 300 clamp(1rem, 1.1458vw, 1.375rem)/1.25 'DM Sans', Arial, sans-serif; }
.awards-esg__button { display: inline-flex; align-items: center; min-height: 51px; padding: 0 18px; border: 1px solid var(--awards-gold); border-radius: 4px; background: #fff; color: var(--awards-gold); font: 500 20px/1 'DM Sans', Arial, sans-serif; text-decoration: none; }
.awards-esg__button img { width: 1rem; height: auto; margin-left: 15px; }
.awards-esg__button .gold-btn__divider { display: block; width: 1px; height: 41px; margin-left: 18px; background: var(--awards-gold); }

@media (max-width: 575.98px) {
  .awards-hero { height: 35rem; }
  .awards-hero__content { padding-bottom: 3.25rem; }
  .awards-hero h1 { font-size: clamp(2.2rem, 9vw, 3rem); }
  .awards-breadcrumb { min-height: 3.25rem; }
  .awards-breadcrumb .container { flex-wrap: wrap; padding-top: .7rem; padding-bottom: .7rem; }
    .awards-section-title { font-size: clamp(2rem, 8vw, 2.75rem); }
  .awards-tabs { margin-top: 2.25rem; }
  .awards-tabs button { font-size: .78rem; }
  .awards-esg { height: 34rem; }
  .awards-esg__shade { width: 78%; }
  .awards-esg__content { padding-top: 3.5rem; }
  .awards-esg p { max-width: 18rem; font-size: 1rem; }
  .awards-esg__button { font-size: .9rem; }
}

/* ---------- ESG practice goal carousel ---------- */
.esg-practice__orbit-item {
  position: absolute;
  z-index: 3;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  appearance: none;
  transform-origin: center;
  transition: top .72s cubic-bezier(.22,.61,.36,1), left .72s cubic-bezier(.22,.61,.36,1), width .72s cubic-bezier(.22,.61,.36,1), height .72s cubic-bezier(.22,.61,.36,1), opacity .35s ease, filter .35s ease;
  will-change: top, left, width, height;
}
.esg-practice__visual[data-esg-practice-carousel] { touch-action: pan-y; }
.esg-practice__orbit-item > span { position: absolute; inset: 0; display: block; border-radius: 50%; }
.esg-practice__orbit-item > span > img { position: absolute; display: block; max-width: none; }
.esg-practice__orbit-item:focus-visible { outline: 2px solid var(--esg-gold); outline-offset: 4px; }
.esg-practice__orbit-item.is-esg-main { z-index: 4; }
.esg-practice__orbit-item.is-esg-slot-one,
.esg-practice__orbit-item.is-esg-slot-two { z-index: 3; }
.esg-practice__orbit-item.is-esg-slot-one:hover,
.esg-practice__orbit-item.is-esg-slot-two:hover { filter: drop-shadow(0 5px 7px rgba(53,43,70,.25)); }
.esg-practice__orbit-item.is-esg-orbit-out { animation: esg-orbit-up .72s cubic-bezier(.22,.61,.36,1); }
.esg-practice__orbit-item.is-esg-orbit-in { animation: esg-orbit-in .72s cubic-bezier(.22,.61,.36,1); }
@keyframes esg-orbit-up {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  42% { transform: translate3d(2%, -9%, 0) rotate(7deg) scale(.82); }
  100% { transform: translate3d(0, 0, 0) rotate(0) scale(1); }
}
@keyframes esg-orbit-in {
  0% { transform: translate3d(0, 9%, 0) rotate(-7deg) scale(.78); }
  58% { transform: translate3d(-1%, -2%, 0) rotate(2deg) scale(1.04); }
  100% { transform: translate3d(0, 0, 0) rotate(0) scale(1); }
}
.esg-practice__orbit-item.is-esg-route-forward { animation: esg-route-forward .92s cubic-bezier(.22,.61,.36,1) both; }
@keyframes esg-route-forward {
  0% { top: 21.1%; left: 28.8%; width: 34.4%; height: 54.84%; transform: translate3d(0,0,0) scale(1); }
  16% { top: 10.9%; left: 32.2%; width: 30%; height: 47%; transform: translate3d(0,0,0) scale(.99); }
  32% { top: 4.1%; left: 39.5%; width: 22%; height: 35%; transform: translate3d(0,0,0) scale(.97); }
  46% { top: 0; left: 52.8%; width: 12%; height: 19%; transform: translate3d(0,0,0) scale(.94); }
  56% { top: 2%; left: 67.7%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(.92); }
  /* Hold at the upper orbit until the parked thumbnail clears the stop. */
  100% { top: 2%; left: 67.7%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(1); }
}
.esg-practice__orbit-item.is-esg-route-reverse { animation: esg-route-reverse .92s cubic-bezier(.22,.61,.36,1) both; }
@keyframes esg-route-reverse {
  0% { top: 21.1%; left: 28.8%; width: 34.4%; height: 54.84%; transform: translate3d(0,0,0) scale(1); }
  16% { top: 36.8%; left: 31.8%; width: 30%; height: 47%; transform: translate3d(0,0,0) scale(.99); }
  32% { top: 53.9%; left: 38.2%; width: 22%; height: 35%; transform: translate3d(0,0,0) scale(.97); }
  46% { top: 71.3%; left: 46.9%; width: 12%; height: 19%; transform: translate3d(0,0,0) scale(.94); }
  56% { top: 80.6%; left: 52.3%; width: 7.18%; height: 11.46%; transform: translate3d(0,0,0) scale(.92); }
  100% { top: 85.1%; left: 51.3%; width: 7.18%; height: 11.46%; transform: translate3d(0,0,0) scale(1); }
}
.esg-practice__orbit-item.is-esg-route-recycle { animation: esg-route-recycle .92s cubic-bezier(.22,.61,.36,1) both; }
@keyframes esg-route-recycle {
  0% { top: 2%; left: 67.7%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(1); }
  /* Keep the upper thumbnail parked while the active image reaches it. */
  48% { top: 2%; left: 67.7%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(1); }
  /* Continue clockwise: upper stop -> right edge -> lower orbit. */
  60% { top: 12.4%; left: 88.5%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(.98); }
  72% { top: 42.5%; left: 97.2%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(.95); }
  84% { top: 71.9%; left: 86.9%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(.94); }
  92% { top: 88.8%; left: 61.9%; width: 5.5%; height: 8.8%; transform: translate3d(0,0,0) scale(.97); }
  100% { top: 85.1%; left: 51.3%; width: 7.18%; height: 11.46%; transform: translate3d(0,0,0) scale(1); }
}
.esg-practice__orbit-item.is-esg-route-recycle-reverse { animation: esg-route-recycle-reverse .92s cubic-bezier(.22,.61,.36,1) both; }
@keyframes esg-route-recycle-reverse {
  0% { top: 85.1%; left: 51.3%; width: 7.18%; height: 11.46%; transform: translate3d(0,0,0) scale(1); }
  48% { top: 85.1%; left: 51.3%; width: 7.18%; height: 11.46%; transform: translate3d(0,0,0) scale(1); }
  100% { top: 2%; left: 67.7%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(1); }
}
.esg-practice__orbit-item.is-esg-route-incoming-forward { animation: esg-route-incoming-forward .92s cubic-bezier(.22,.61,.36,1) both; }
@keyframes esg-route-incoming-forward {
  0% { top: 85.1%; left: 51.3%; width: 7.18%; height: 11.46%; transform: translate3d(0,0,0) scale(.88); }
  24% { top: 69.9%; left: 46.5%; width: 10%; height: 16%; transform: translate3d(0,0,0) scale(.9); }
  48% { top: 51.1%; left: 38.6%; width: 18%; height: 29%; transform: translate3d(0,0,0) scale(.93); }
  72% { top: 33.4%; left: 32.7%; width: 27%; height: 43%; transform: translate3d(0,0,0) scale(.97); }
  100% { top: 21.1%; left: 28.8%; width: 34.4%; height: 54.84%; transform: translate3d(0,0,0) scale(1); }
}
.esg-practice__orbit-item.is-esg-route-incoming-reverse { animation: esg-route-incoming-reverse .92s cubic-bezier(.22,.61,.36,1) both; }
@keyframes esg-route-incoming-reverse {
  0% { top: 2%; left: 67.7%; width: 3.54%; height: 5.64%; transform: translate3d(0,0,0) scale(.9); }
  24% { top: 2%; left: 59%; width: 7%; height: 11%; transform: translate3d(0,0,0) scale(.92); }
  48% { top: 1%; left: 47%; width: 15%; height: 24%; transform: translate3d(0,0,0) scale(.95); }
  72% { top: 7%; left: 36%; width: 26%; height: 42%; transform: translate3d(0,0,0) scale(.98); }
  100% { top: 21.1%; left: 28.8%; width: 34.4%; height: 54.84%; transform: translate3d(0,0,0) scale(1); }
}

.esg-practice__goal strong,
.esg-practice__goal span { transition: opacity .22s ease, transform .22s ease; }
.esg-practice__goal.is-changing strong,
.esg-practice__goal.is-changing span { opacity: 0; transform: translateY(8px); }

@media (min-width: 992px) {
  .esg-practice__orbit-item.is-esg-main { top: 21.1%; left: 28.8%; width: 34.4%; height: 54.84%; }
  .esg-practice__orbit-item.is-esg-slot-one { top: 85.1%; left: 51.3%; width: 7.18%; height: 11.46%; }
  .esg-practice__orbit-item.is-esg-slot-two { top: 2%; left: 67.7%; width: 3.54%; height: 5.64%; }
  .esg-practice__orbit-item.is-esg-main > span > img,
  .esg-practice__orbit-item.is-esg-slot-one > span > img { top: -4.17%; left: -8.33%; width: 116.67%; height: 116.67%; }
  .esg-practice__orbit-item.is-esg-slot-two > span > img { top: -8.47%; left: -16.93%; width: 133.86%; height: 133.86%; }
  .esg-practice__orbit-item.is-esg-route-forward > span > img,
  .esg-practice__orbit-item.is-esg-route-reverse > span > img,
  .esg-practice__orbit-item.is-esg-route-recycle > span > img,
  .esg-practice__orbit-item.is-esg-route-recycle-reverse > span > img,
  .esg-practice__orbit-item.is-esg-route-incoming-forward > span > img,
  .esg-practice__orbit-item.is-esg-route-incoming-reverse > span > img { top: -4.17%; left: -8.33%; width: 116.67%; height: 116.67%; }
}

@media (max-width: 991.98px) and (min-width: 576px) {
  .esg-practice__orbit-item.is-esg-main { top: 14%; left: 37%; width: 42%; height: auto; aspect-ratio: 1; }
  .esg-practice__orbit-item.is-esg-slot-one { top: 68%; left: 57%; width: 5rem; height: 5rem; }
  .esg-practice__orbit-item.is-esg-slot-two { top: 2%; left: 78%; width: 2.6rem; height: 2.6rem; }
  .esg-practice__orbit-item.is-esg-main > span > img,
  .esg-practice__orbit-item.is-esg-slot-one > span > img { top: -4.17%; left: -8.33%; width: 116.67%; height: 116.67%; }
  .esg-practice__orbit-item.is-esg-slot-two > span > img { top: -8.47%; left: -16.93%; width: 133.86%; height: 133.86%; }
  .esg-practice__orbit-item.is-esg-route-forward,
  .esg-practice__orbit-item.is-esg-route-reverse,
  .esg-practice__orbit-item.is-esg-route-recycle,
  .esg-practice__orbit-item.is-esg-route-recycle-reverse,
  .esg-practice__orbit-item.is-esg-route-incoming-forward,
  .esg-practice__orbit-item.is-esg-route-incoming-reverse { animation-name: esg-orbit-up; }
}

@media (max-width: 575.98px) {
  .esg-practice__orbit-item.is-esg-main { top: 18%; left: 41%; width: 42%; height: auto; aspect-ratio: 1; }
  .esg-practice__orbit-item.is-esg-slot-one { top: 70%; left: 66%; width: 1.7rem; height: 1.7rem; }
  .esg-practice__orbit-item.is-esg-slot-two { top: 2%; left: 85%; width: .85rem; height: .85rem; }
  .esg-practice__orbit-item.is-esg-main > span > img,
  .esg-practice__orbit-item.is-esg-slot-one > span > img { top: -4.17%; left: -8.33%; width: 116.67%; height: 116.67%; }
  .esg-practice__orbit-item.is-esg-slot-two > span > img { top: -8.47%; left: -16.93%; width: 133.86%; height: 133.86%; }
  .esg-practice__orbit-item.is-esg-route-forward,
  .esg-practice__orbit-item.is-esg-route-reverse,
  .esg-practice__orbit-item.is-esg-route-recycle,
  .esg-practice__orbit-item.is-esg-route-recycle-reverse,
  .esg-practice__orbit-item.is-esg-route-incoming-forward,
  .esg-practice__orbit-item.is-esg-route-incoming-reverse { animation-name: esg-orbit-up; }
}

@media (prefers-reduced-motion: reduce) {
  .esg-practice__orbit-item,
  .esg-practice__goal strong,
  .esg-practice__goal span { transition: none; }
  .esg-practice__orbit-item.is-esg-orbit-out,
  .esg-practice__orbit-item.is-esg-orbit-in { animation: none; }
  .esg-practice__orbit-item.is-esg-route-forward,
  .esg-practice__orbit-item.is-esg-route-reverse,
  .esg-practice__orbit-item.is-esg-route-recycle,
  .esg-practice__orbit-item.is-esg-route-recycle-reverse,
  .esg-practice__orbit-item.is-esg-route-incoming-forward,
  .esg-practice__orbit-item.is-esg-route-incoming-reverse { animation: none; }
}

/* --------------------------------------------------------------------------
   Shared page chrome normalization
   All pages use different content inside these regions, but their outer
   geometry is shared. Keeping the sizing here prevents page-level rules from
   changing the rhythm between the hero, breadcrumb and footer.
   -------------------------------------------------------------------------- */
:root {
  --shared-hero-height: clamp(32rem, 48.75vw, 58.5rem);
  --shared-breadcrumb-height: clamp(3.25rem, 3.3854vw, 4.0625rem);
}

.hero,
.industries-hero,
.about-hero,
.esg-hero,
.leaders-hero,
.group-company-hero,
.joint-hero,
.board-hero,
.awards-hero {
  height: var(--shared-hero-height) !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
}

.industries-breadcrumb,
.about-breadcrumb,
.esg-breadcrumb,
.leaders-breadcrumb,
.group-company-breadcrumb,
.joint-breadcrumb,
.expertise-breadcrumb,
.expertise-internal-breadcrumb,
.board-breadcrumb,
.awards-breadcrumb {
  height: var(--shared-breadcrumb-height) !important;
  min-height: var(--shared-breadcrumb-height) !important;
  margin-top: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden;
}

.industries-breadcrumb .container,
.about-breadcrumb .container,
.esg-breadcrumb .container,
.leaders-breadcrumb .container,
.group-company-breadcrumb .container,
.joint-breadcrumb .container,
.expertise-breadcrumb .container,
.expertise-internal-breadcrumb .container,
.board-breadcrumb .container,
.awards-breadcrumb .container {
  min-width: 0;
  display: flex;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: clamp(.55rem, .8vw, 1rem);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  font-size: clamp(.72rem, .9375vw, 1.125rem);
  line-height: 1;
}

.industries-breadcrumb__list {
  min-width: 0;
  flex-wrap: nowrap !important;
  gap: clamp(.55rem, .8vw, 1rem);
  font-size: inherit;
  line-height: 1;
}

.industries-breadcrumb__list li:last-child,
.about-breadcrumb .container > :last-child,
.esg-breadcrumb .container > :last-child,
.leaders-breadcrumb .container > :last-child,
.group-company-breadcrumb .container > :last-child,
.joint-breadcrumb .container > :last-child,
.board-breadcrumb .container > :last-child,
.awards-breadcrumb .container > :last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-footer,
.about-page .site-footer {
  padding-top: clamp(2rem, 4.17vw, 60px) !important;
  padding-bottom: clamp(1.5rem, 3.13vw, 40px) !important;
}

.site-footer > .container > .d-flex {
  min-height: clamp(2.25rem, 2.92vw, 56px);
  align-items: center !important;
}

.site-footer__logo,
.site-footer__nav,
.site-footer__social {
  flex-shrink: 0;
}

.site-footer__nav {
  flex-wrap: nowrap;
  align-items: center;
}

.site-footer__social {
  min-width: calc(4 * clamp(1.75rem, 1.875vw, 36px) + 3 * clamp(.5rem, .78vw, 15px));
  justify-content: flex-end;
}

/* The About/Automotive contact panels are the shared pre-footer CTA variant. */
.about-contact,
.automotive-contact {
  height: clamp(30rem, 37.4vw, 45.05rem) !important;
  min-height: 0 !important;
}

main > :last-child {
  margin-bottom: 0 !important;
}

@media (max-width: 767.98px) {
  :root { --shared-hero-height: clamp(25rem, 105vw, 42rem); }

  .site-footer,
  .about-page .site-footer {
    padding-top: 2rem !important;
    padding-bottom: 1.5rem !important;
  }

  .site-footer > .container > .d-flex {
    flex-direction: column;
    gap: 1.25rem !important;
  }

  .site-footer__nav,
  .site-footer__social {
    justify-content: center;
  }

  .about-contact,
  .automotive-contact {
    height: auto !important;
    min-height: 30rem !important;
  }
}

/* ---------- Contact Us final visual alignment overrides ---------- */
body.contact-page { margin: 0; }

.contact-site-header {
  height: 100px;
  border-bottom: 2px solid #7e6131;
}

.contact-site-header .navbar {
  height: 100%;
  min-height: 100%;
  display: flex;
  align-items: center;
  padding: 0;
  border-bottom: 0;
}

.contact-site-header .navbar > .container {
  width: 100%;
  max-width: none;
  height: 100%;
  display: flex;
  align-items: center;
  padding-left: 4.95vw;
  padding-right: 4.58vw;
}

.contact-site-header .navbar-brand {
  display: block;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

.contact-site-header .navbar__logo {
  display: block;
  width: 107.9px;
  height: 67.7px;
  max-width: none;
  object-fit: contain;
}

.contact-site-header .navbar-toggler { display: none; }

.contact-site-header .navbar-collapse {
  display: flex !important;
  flex: 0 0 auto;
  align-items: center;
  margin-left: auto;
}

.contact-site-header .navbar-nav {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.contact-site-header .navbar-nav .nav-item { margin: 0 !important; padding: 0; }

.contact-site-header .navbar .nav-link {
  display: block;
  padding: 0;
  font-size: 20px;
  line-height: 1.15;
}

.contact-site-header .navbar__cta {
  width: 202.6px;
  height: 51.1px;
}

.contact-hero__content {
  box-sizing: border-box;
  padding-bottom: clamp(4rem, 4.79vw, 5.75rem);
}
.contact-breadcrumb {
  box-sizing: border-box;
  height: 52px;
  min-height: 52px;
}
.contact-enquiry {
  padding-bottom: clamp(4rem, 4.07vw, 5rem);
}
.contact-enquiry__heading {
  max-width: min(61.35vw, 73.625rem);
  font-size: clamp(2.25rem, 2.5vw, 3.125rem);
  letter-spacing: -.035em;
  white-space: nowrap;
}
.contact-office h3 { margin-bottom: clamp(3rem, 3.25vw, 3.9rem); }
.contact-office h3 {
  font-size: clamp(1.8rem, 2.18vw, 2.6rem);
}
.contact-enquiry__grid {
  grid-template-columns: minmax(0, 42.81vw) minmax(0, 33.93vw);
  gap: 5.26vw;
  margin-top: clamp(4rem, 7.02vw, 8rem);
  min-height: clamp(28rem, 32.4vw, 38.875rem);
}
/* QC JNV-QC-005: the grid is sized in vw (which includes the scrollbar) and is
   wider than its .container content box, so `margin: auto` could not centre it
   and it overflowed the viewport by ~7px at 1920px. Centre it on the container
   instead (negative side margins are allowed); its width is unchanged. */
@media (min-width: 992px) {
  .contact-enquiry__grid {
    margin-right: calc((100% - min(90.1vw, 108.1rem)) / 2);
    margin-left: calc((100% - min(90.1vw, 108.1rem)) / 2);
  }
}
.contact-office,
.contact-enquiry__form,
.contact-enquiry__form *,
.contact-enquiry__field input,
.contact-enquiry__field textarea {
  box-sizing: border-box;
}
.contact-office { min-height: clamp(28rem, 32.4vw, 38.875rem); }
.contact-map__image { left: -58.27%; width: 158.27%; }
.contact-map__pulse img { inset: auto; width: auto; height: auto; }
.contact-map__pulse img:nth-child(1) {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.contact-map__pulse img:nth-child(2) {
  top: 19.3%;
  left: 19.3%;
  width: 61.1%;
  height: 61.1%;
}
.contact-map__pulse img:nth-child(3) {
  top: 36.25%;
  left: 36.25%;
  width: 27.8%;
  height: 27.8%;
}

.contact-enquiry__field--message textarea { width: 98.1%; }
.contact-enquiry__submit { width: clamp(9.5rem, 11.15vw, 13.375rem); }
.contact-faq {
  width: calc(100% - 190px);
  grid-template-columns: minmax(0, 47.32vw) minmax(0, 35.26vw);
  gap: 6.22vw;
}

.contact-faq__art { margin-top: clamp(4rem, 5.21vw, 6.25rem); }
.contact-page main .contact-faq { margin-bottom: clamp(6rem, 6.25vw, 7.5rem) !important; }

.contact-page .site-footer {
  height: clamp(12.75rem, 14.9vw, 17.875rem);
  box-sizing: border-box;
  padding-top: clamp(2.85rem, 3.33vw, 4rem) !important;
  padding-bottom: 0 !important;
}

.contact-page .site-footer > .container {
  width: min(82.66vw, 1587px);
  max-width: 1587px;
  height: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
}

.contact-page .site-footer > .container > .d-flex {
  min-height: clamp(4.4rem, 5.1vw, 6.125rem);
  align-items: center !important;
}

.contact-page .site-footer__logo {
  width: clamp(7rem, 8.18vw, 9.8125rem);
  height: auto;
  object-fit: contain;
}
.contact-page .site-footer__rule { display: none; }
.contact-page .site-footer__copyright { margin: clamp(2.5rem, 2.86vw, 3.44rem) 0 0; }

@media (max-width: 1199.98px) {
  .contact-site-header { height: auto; min-height: 76px; }
  .contact-site-header .navbar > .container { min-height: 76px; }
  .contact-site-header .navbar-toggler {
    display: block;
    margin-left: auto;
    padding: .4rem .6rem;
    border: 1px solid #7e6131;
    border-radius: 4px;
    background: #fff;
  }
  .contact-site-header .navbar-collapse { display: none !important; }
  .contact-site-header .navbar__logo { width: 92px; height: 58px; }
}

@media (max-width: 991.98px) {
  /* QC JNV-QC-004: the desktop two-column refinement above has no media query
     and overrode the earlier tablet/mobile one-column rule. Restore it. */
  .contact-enquiry__grid {
    width: min(92vw, 52rem);
    grid-template-columns: 1fr;
    gap: 3rem;
    min-height: 0;
  }
  .contact-office { min-height: 0; }
  .contact-faq {
    width: min(92vw, 52rem);
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .contact-faq__art { margin-top: 1rem; }
  .contact-page .site-footer > .container { width: 92vw; max-width: none; }
}

@media (max-width: 575.98px) {
  .contact-site-header .navbar > .container { padding-left: 1rem; padding-right: 1rem; }
  .contact-enquiry__heading {
    max-width: 92vw;
    font-size: clamp(1.8rem, 7.6vw, 2.45rem);
    white-space: normal;
  }
  .contact-enquiry__grid { margin-top: 3rem; }
  .contact-faq { width: 92vw; }
  .contact-page .site-footer { height: auto; min-height: 16rem; }
}
/* Smart Factories page (scoped) */
.smart-factories-page {
  --sf-ink: #352b46;
  --sf-gold: #7e6131;
  --sf-muted: #393939;
  --sf-container: min(1732px, calc(100% - 188px));
  background: #fff;
  color: var(--sf-muted);
}

.smart-factories-page .container { width: var(--sf-container); max-width: none; padding-right: 0; padding-left: 0; }
.smart-factories-page .industries-site-header { position: relative; z-index: 20; background: #fff; }

.sf-hero { position: relative; height: clamp(34rem, 47.7vw, 57.25rem); min-height: 560px; overflow: hidden; background: #09090f; }
.sf-hero__image, .sf-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.sf-hero__image { object-fit: cover; object-position: center; }
.sf-hero__shade {
  background:
    linear-gradient(180deg, rgba(53, 43, 70, 0) 33.57%, rgba(53, 43, 70, .55) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0) 55.13%, #000 100%);
}
.sf-hero__content { position: absolute; right: 0; bottom: clamp(4rem, 8.8vw, 10.5rem); left: 0; z-index: 1; }
.sf-hero h1 { max-width: 68rem; margin: 0; color: #fff; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.9rem, 3.13vw, 3.75rem); font-weight: 500; line-height: 1.2; letter-spacing: -.02em; }

.sf-breadcrumb { min-height: 52px; background: var(--sf-gold); color: #fff; }
.sf-breadcrumb .container { display: flex; align-items: center; gap: clamp(.55rem, .78vw, .95rem); min-height: 52px; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.82rem, .94vw, 1.125rem); font-weight: 300; }
.sf-breadcrumb a { color: inherit; text-decoration: none; }
.sf-breadcrumb a:hover, .sf-breadcrumb a:focus-visible { text-decoration: underline; text-underline-offset: .2em; }

.sf-section-heading { text-align: center; }
.sf-section-heading h2 { margin: 0; color: var(--sf-ink); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.25rem, 2.6vw, 3.125rem); font-weight: 500; line-height: 1.18; }
.sf-section-heading p { max-width: 70rem; margin: 1.65rem auto 0; color: var(--sf-muted); font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(1rem, 1.15vw, 1.375rem); font-weight: 300; line-height: 1.25; }

.sf-capabilities { padding: clamp(6.8rem, 6.9vw, 8.25rem) 0 0; overflow: hidden; background: #fff; }
.sf-capability-carousel { position: relative; width: calc(100% + 21px); height: 607px; margin-top: clamp(3.5rem, 3.5vw, 4.2rem); margin-left: -19px; }
.sf-capability-stage { position: relative; width: calc(100% - 18px); height: 100%; margin-left: 18px; }
.sf-capability-lines { position: absolute; top: 478px; right: 0; left: 18px; z-index: 4; display: flex; justify-content: space-between; pointer-events: none; }
.sf-capability-lines img { display: block; width: 29.35%; height: 3px; }
.sf-capability-card { position: absolute; top: 0; left: 50%; display: flex; flex-direction: column; align-items: center; width: min(834px, 48vw); height: 517px; margin: 0; overflow: visible; opacity: 0; pointer-events: none; transform: translateX(-50%) scale(.72); transition: left 700ms cubic-bezier(.22, .7, .2, 1), top 700ms cubic-bezier(.22, .7, .2, 1), width 700ms cubic-bezier(.22, .7, .2, 1), height 700ms cubic-bezier(.22, .7, .2, 1), opacity 450ms ease, transform 700ms cubic-bezier(.22, .7, .2, 1); }
.sf-capability-card img { display: block; width: 100%; height: 100%; object-fit: contain; }
.sf-capability-card.is-active img { width: 84.03%; height: 84.26%; margin-top: 8.03%; margin-right: auto; margin-left: 5.82%; transform: none; transform-origin: center; transition: transform 1200ms cubic-bezier(.2, .75, .22, 1); }
.sf-capability-card.is-prev img,
.sf-capability-card.is-next img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  transform: scale(.84);
  transform-origin: center;
  transition: transform 1200ms cubic-bezier(.2, .75, .22, 1);
}
/* The left/previous frame is taller and narrower, so give its full source
   image a little more breathing room than the right frame. */
.sf-capability-card.is-prev img { transform: scale(.72); }
.sf-capability-card p { position: absolute; z-index: 5; top: 490px; bottom: auto; left: 50%; width: 100%; margin: 0; color: var(--sf-ink); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1rem, 1.4vw, 1.7rem); line-height: 1.05; text-align: center; transform: translateX(-50%); }
.sf-capability-card.is-active { z-index: 3; left: calc(50% + clamp(0px, 1.22vw, 23.5px)); width: min(834px, 48vw); height: 517px; opacity: 1; pointer-events: auto; transform: translateX(-50%) scale(1); }
.sf-capability-card.is-prev, .sf-capability-card.is-next { z-index: 1; opacity: .38; pointer-events: auto; }
.sf-capability-card.is-prev { left: 15.9%; top: 90px; width: min(465px, 27vw); height: 389px; transform: translateX(-50%) scale(1); }
.sf-capability-card.is-next { left: 86.6%; top: 124px; width: min(488px, 28vw); height: 302px; transform: translateX(-50%) scale(1); }
.sf-capability-card.is-prev p { top: 405px; font-size: clamp(.8rem, 1vw, 1.25rem); }
.sf-capability-card.is-next p { top: 364px; font-size: clamp(.8rem, 1vw, 1.25rem); }
.sf-carousel-arrow { position: absolute; top: 50%; z-index: 5; display: grid; width: 2rem; height: 3rem; padding: 0; place-items: center; border: 0; background: transparent; transform: translateY(-50%); }
.sf-carousel-arrow img { width: 12px; height: 21px; }
.sf-carousel-arrow--previous img { transform: scaleX(-1); }
.sf-carousel-arrow--previous { left: 37px; }
.sf-carousel-arrow--next { right: 27px; }
.sf-carousel-arrow:focus-visible { outline: 2px solid var(--sf-gold); outline-offset: 4px; }

.sf-systems { padding: clamp(5rem, 7.8vw, 9.4rem) 0 clamp(7rem, 10.25vw, 12.3rem); overflow: hidden; background: #fff; }
.sf-process-chain { position: relative; height: clamp(315px, 23.08vw, 443px); margin-top: clamp(6rem, 8.55vw, 10.25rem); }
.sf-process-chain__orbit { position: absolute; top: 15px; left: 50%; width: clamp(285px, 20.83vw, 400px); height: clamp(285px, 20.83vw, 400px); border: 2px dashed #bfbfbf; border-radius: 50%; opacity: 1; transform: translateX(-50%); transition: opacity 900ms ease; }
.sf-process-chain__bridge { position: absolute; top: 15px; width: clamp(285px, 20.83vw, 400px); height: clamp(285px, 20.83vw, 400px); border: 2px dashed #bfbfbf; border-radius: 50%; opacity: 0; transition: opacity 900ms ease; }
.sf-process-chain__bridge--left { left: clamp(230px, 16.8vw, 322.62px); }
.sf-process-chain__bridge--right { left: clamp(720px, 52.64vw, 1010.68px); }
.sf-process-node { position: absolute; top: 15px; display: flex; width: clamp(285px, 20.83vw, 400px); height: clamp(285px, 20.83vw, 400px); align-items: flex-end; justify-content: center; padding: 0 2rem 5rem; overflow: hidden; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 17px 34px rgba(0, 0, 0, .07); opacity: .18; transition: left 1200ms cubic-bezier(.2, .75, .22, 1), right 1200ms cubic-bezier(.2, .75, .22, 1), opacity 900ms ease, transform 1200ms cubic-bezier(.2, .75, .22, 1), box-shadow 900ms ease; }
.sf-process-node img { position: absolute; max-width: none; object-fit: fill; }
.sf-process-node--left img { top: -.05%; left: -29.46%; width: 177.72%; height: 100.02%; }
.sf-process-node--center img { top: -.1%; left: 0; width: 178.05%; height: 100.2%; }
.sf-process-node--right img { top: -.1%; left: -9.18%; width: 177.82%; height: 100.07%; }
.sf-process-node::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 28%, rgba(0, 0, 0, .5) 73%); content: ""; }
.sf-process-node--left::after { background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .5) 71.575%); }
.sf-process-node--center::after { background: linear-gradient(180deg, transparent 29.829%, rgba(0, 0, 0, .5) 72.651%); }
.sf-process-node--right::after { background: linear-gradient(180deg, transparent 9.904%, rgba(0, 0, 0, .5) 57.69%); }
.sf-process-node span { position: absolute; z-index: 1; left: 50%; width: 285.5px; color: #fff; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1rem, 1.55vw, 1.875rem); line-height: 1.05; text-align: center; transform: translateX(-50%); }
.sf-process-node--left span, .sf-process-node--right span { top: 68.15%; }
.sf-process-node--center span { top: 71.25%; }
.sf-process-node--left { left: 50%; right: auto; opacity: 0; pointer-events: none; transform: translateX(-50%); }
.sf-process-node--center { left: 50%; opacity: 0; pointer-events: none; transform: translateX(-50%); }
.sf-process-node--right { right: auto; left: 50%; opacity: 0; pointer-events: none; transform: translateX(-50%); }
.sf-process-node.is-active { z-index: 2; opacity: 1; pointer-events: auto; box-shadow: 0 17px 34px rgba(0, 0, 0, .12); }
.sf-process-node:focus-visible { outline: 3px solid var(--sf-gold); outline-offset: 5px; }

/* Scroll-triggered Figma process-chain state: cards travel outward into a
   three-step row and the dashed bridge circles sit in the gaps. */
.sf-process-chain.is-expanded .sf-process-chain__orbit { opacity: 0; }
.sf-process-chain.is-expanded .sf-process-chain__bridge { opacity: 1; }
.sf-process-chain.is-expanded .sf-process-node--left { left: 0; opacity: 1; pointer-events: auto; transform: none; }
.sf-process-chain.is-expanded .sf-process-node--center { left: 50%; opacity: 1; pointer-events: auto; transform: translateX(-50%); }
.sf-process-chain.is-expanded .sf-process-node--right { right: 0; left: auto; opacity: 1; pointer-events: auto; transform: none; }

.sf-cta { position: relative; height: clamp(34rem, 33.55vw, 40.25rem); overflow: hidden; background: #08070b; }
.sf-cta__image, .sf-cta__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.sf-cta__image { top: -55.61%; bottom: auto; height: 167.79%; object-fit: cover; object-position: center; }
.sf-cta__shade { right: auto; width: 43.65%; background: linear-gradient(270deg, rgba(0, 0, 0, 0) 4.475%, #000 100%); }
.sf-cta__content { position: absolute; top: 16.3%; right: 0; left: 0; z-index: 1; }
.sf-cta h2 { margin: 0; color: #fff; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.5rem, 2.6vw, 3.125rem); font-weight: 500; line-height: 1.04; }
.sf-cta p { max-width: 35rem; margin: 2.7rem 0 2.4rem; color: #fff; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(1rem, 1.05vw, 1.25rem); line-height: 1.3; }
.sf-cta__button { display: inline-flex; align-items: center; width: min(330px, 100%); height: 51px; padding: 0 1rem; color: var(--sf-gold); background: #fff; border: 1px solid var(--sf-gold); border-radius: 4px; font-family: 'DM Sans', Arial, sans-serif; font-size: 1rem; text-decoration: none; }
.sf-cta__button-divider { width: 1px; height: 82%; margin-left: auto; margin-right: 1rem; background: var(--sf-gold); }
.sf-cta__button img { width: 29px; height: auto; }
.sf-cta__button:hover, .sf-cta__button:focus-visible { color: #fff; background: var(--sf-gold); }
.sf-cta__button:hover img, .sf-cta__button:focus-visible img { filter: brightness(0) invert(1); }

.sf-footer { min-height: 434px; padding: 64px 0 40px; background: #000; }
.sf-footer__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.sf-footer__logo { display: block; width: 156px; height: 98px; object-fit: contain; }
.sf-footer__nav { display: flex; gap: clamp(1.6rem, 2.4vw, 3rem); margin: 35px 0 0; padding: 0; list-style: none; }
.sf-footer__nav a { color: #fff; font-family: 'Inter', Arial, sans-serif; font-size: 1.125rem; font-weight: 600; text-decoration: none; }
.sf-footer__nav a:hover, .sf-footer__nav a:focus-visible { color: #d9bd85; }
.sf-footer__social { display: flex; gap: .75rem; margin: 28px 0 0; padding: 0; list-style: none; }
.sf-footer__social a { position: relative; display: block; width: 50px; height: 50px; }
.sf-footer__social a img:first-child { position: absolute; inset: 0; width: 100%; height: 100%; }
.sf-footer__social a img:last-child { position: absolute; inset: 25%; width: 50%; height: 50%; }
.sf-footer__copyright { display: flex; align-items: center; justify-content: center; gap: .45rem; margin-top: 90px; color: #fff; font-family: 'Inter', Arial, sans-serif; font-size: 1.125rem; font-weight: 500; }
.sf-footer__copyright img { width: 20px; height: 20px; }
.sf-footer > .container > .d-flex { align-items: flex-start !important; }
.sf-footer .site-footer__logo { width: 156px; height: 98px; object-fit: contain; }
.sf-footer .site-footer__nav { margin-top: 35px; gap: clamp(1.6rem, 2.4vw, 3rem); }
.sf-footer .site-footer__nav a { font-size: 1.125rem; font-weight: 600; }
.sf-footer .site-footer__social { margin-top: 28px; gap: .75rem; }
.sf-footer .site-footer__social a,
.sf-footer .site-footer__social li > span { width: 50px; height: 50px; }
.sf-footer .site-footer__copyright { margin-top: 90px; color: #fff; font-size: 1.125rem; }

[data-sf-reveal] { opacity: 0; transform: translateY(1.25rem); transition: opacity 700ms ease, transform 700ms cubic-bezier(.22, .7, .2, 1); }
[data-sf-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1199.98px) {
  .smart-factories-page { --sf-container: min(960px, calc(100% - 3rem)); }
  .smart-factory-header .navbar { min-height: 86px; }
  .sf-hero { min-height: 480px; }
  .sf-hero__content { bottom: 4rem; }
  .sf-capability-card.is-prev { left: 12%; }
  .sf-capability-card.is-next { left: 88%; }
  .sf-process-node { width: 300px; height: 300px; }
  .sf-process-chain { height: 340px; }
  .sf-process-chain__orbit { width: 300px; height: 300px; }
  .sf-process-chain__bridge { width: 300px; height: 300px; }
  .sf-process-chain__bridge--left { left: 165px; }
  .sf-process-chain__bridge--right { left: 495px; }
  .sf-footer__nav { gap: 1.25rem; }
  .sf-footer__nav a { font-size: .95rem; }
}

@media (max-width: 767.98px) {
  .smart-factories-page { --sf-container: calc(100% - 2rem); }
  .sf-hero { height: 31rem; min-height: 0; }
  .sf-hero__content { bottom: 2.25rem; }
  .sf-hero h1 { font-size: clamp(2.15rem, 9vw, 3.1rem); }
  .sf-breadcrumb .container { min-height: 44px; font-size: .78rem; }
  .sf-capabilities { padding: 4.75rem 0 3.5rem; }
  .sf-section-heading p { margin-top: 1rem; font-size: .95rem; line-height: 1.4; }
  .sf-capability-carousel { width: 100%; height: 25rem; margin-top: 2.4rem; margin-left: 0; }
  .sf-capability-stage { width: 100%; margin-left: 0; }
  .sf-capability-lines { display: none; }
  .sf-capability-card, .sf-capability-card.is-active, .sf-capability-card.is-prev, .sf-capability-card.is-next { left: 50%; top: 0; width: 100%; height: 22rem; opacity: 0; transform: translateX(-50%) scale(.92); }
  .sf-capability-card.is-active { opacity: 1; transform: translateX(-50%) scale(1); }
  .sf-capability-card.is-active img { width: 100%; height: 100%; margin: 0; }
  .sf-capability-card p { top: auto; bottom: 0; font-size: 1.1rem; }
  .sf-carousel-arrow--previous { left: .1rem; }
  .sf-carousel-arrow--next { right: .1rem; }
  .sf-systems { padding: 4.5rem 0 5rem; }
  .sf-process-chain { height: 27rem; margin-top: 2.75rem; }
  .sf-process-chain__orbit { width: 285px; height: 285px; top: 1rem; }
  .sf-process-chain__bridge { display: none; }
  .sf-process-node, .sf-process-node--left, .sf-process-node--right, .sf-process-node--center { top: 1rem; left: 50%; right: auto; width: 285px; height: 285px; transform: translateX(-50%) scale(.78); }
  .sf-process-node.is-active { transform: translateX(-50%) scale(1); }
  .sf-process-node:not(.is-active) { opacity: 0; pointer-events: none; }
  .sf-cta { height: 32rem; }
  .sf-cta__content { top: 12%; }
  .sf-cta p { margin: 1.6rem 0 1.8rem; font-size: .95rem; }
  .sf-footer { min-height: 0; padding: 3rem 0 2rem; }
  .sf-footer__top { flex-direction: column; align-items: center; }
  .sf-footer__nav { justify-content: center; flex-wrap: wrap; margin-top: 0; }
  .sf-footer__social { margin-top: 0; }
  .sf-footer__copyright { margin-top: 3rem; font-size: .78rem; text-align: center; }
  .sf-footer .site-footer__logo { width: 156px; height: 98px; }
  .sf-footer .site-footer__nav { margin-top: 0; }
  .sf-footer .site-footer__social { margin-top: 0; }
  .sf-footer .site-footer__copyright { margin-top: 3rem; font-size: .78rem; }
}

@media (prefers-reduced-motion: reduce) {
  .sf-capability-card, .sf-process-node, .sf-process-chain__orbit, .sf-process-chain__bridge, [data-sf-reveal] { transition: none; }
}

/* ==========================================================
   Quality & certifications page — Figma frame 1261:3925
   All selectors are scoped so the new page cannot change existing routes.
   ========================================================== */
.quality-certifications-page {
  --qc-ink: #352b46;
  --qc-gold: #7e6131;
  --qc-lilac: #eae4f1;
  background: #fff;
  color: var(--qc-ink);
}
.quality-certifications-page .industries-site-header { position: relative; z-index: 10; background: #fff; }
.quality-certifications-page .navbar__logo { width: clamp(4.6rem, 5.25vw, 6.3rem); height: auto; }
.qc-hero { position: relative; height: clamp(32rem, 47.7vw, 57.25rem); overflow: hidden; background: #111018; }
.qc-hero__image, .qc-cta__image { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.qc-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 7, 14, .02) 46%, rgba(9, 7, 15, .5) 100%); }
.qc-hero__content { position: absolute; right: 0; bottom: clamp(4rem, 8.85vw, 10.6rem); left: 0; z-index: 1; }
.qc-hero h1 { margin: 0; color: #fff; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.1rem, 3.1vw, 3.75rem); font-weight: 400; line-height: 1.12; letter-spacing: -.025em; }
.qc-breadcrumb { display: flex; align-items: center; min-height: clamp(3.25rem, 2.72vw, 3.25rem); background: var(--qc-gold); color: #fff; }
.qc-breadcrumb .container { display: flex; align-items: center; gap: clamp(.55rem, .72vw, .85rem); font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.72rem, .82vw, 1rem); }
.qc-breadcrumb a { color: #fff; text-decoration: none; }
.qc-breadcrumb a:hover, .qc-breadcrumb a:focus-visible { text-decoration: underline; }
.qc-certifications { padding: clamp(4.5rem, 6.6vw, 8rem) 0 clamp(4rem, 5.2vw, 6.25rem); }
.qc-section-heading { max-width: 72rem; margin: 0 auto; text-align: center; }
.qc-section-heading h2, .qc-statement h2 { margin: 0; color: var(--qc-ink); font-family: 'Playfair Display', Georgia, serif; font-weight: 400; letter-spacing: -.025em; }
.qc-section-heading h2 { font-size: clamp(1.75rem, 2.6vw, 3.125rem); line-height: 1.15; }
.qc-section-heading p { max-width: 66rem; margin: clamp(1rem, 1.25vw, 1.5rem) auto 0; color: #393939; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.82rem, 1.15vw, 1.375rem); font-weight: 300; line-height: 1.35; }
.qc-certificate-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, 1.1vw, 1.32rem); width: min(100%, 93.2rem); margin: clamp(2.5rem, 3.75vw, 4.5rem) auto 0; }
.qc-certificate-card { position: relative; display: flex; min-height: clamp(22rem, 25.35vw, 30.4rem); flex-direction: column; align-items: center; justify-content: flex-start; overflow: hidden; padding: clamp(1.35rem, 1.65vw, 2rem) 1rem 1.25rem; border: 1px solid rgba(108, 61, 154, .5); border-radius: clamp(.65rem, .88vw, 1.05rem); background: var(--qc-lilac); text-align: center; transition: background-color .5s ease-out; }
.qc-certificate-card::after { position: absolute; z-index: 0; top: 69.45%; left: -12.3%; width: 116.5%; height: 57.5%; background: url('../images/quality-certification-card-bg.svg') center / 100% 100% no-repeat; content: ''; transition: top .5s ease-out, background-image .5s ease-out; }
.qc-certificate-card__image { position: absolute; z-index: 1; overflow: hidden; transition: opacity .5s ease-out, transform .5s ease-out; }
.qc-certificate-card__image img { position: absolute; max-width: none; object-fit: contain; object-position: center; transition: opacity .5s ease-out, transform .5s ease-out; }
.qc-certificate-card:nth-child(1) .qc-certificate-card__image,
.qc-certificate-card:nth-child(2) .qc-certificate-card__image { top: .62%; left: -5.67%; width: 112.5%; height: 57.56%; }
.qc-certificate-card:nth-child(1) .qc-certificate-card__image img,
.qc-certificate-card:nth-child(2) .qc-certificate-card__image img,
.qc-certificate-card:nth-child(3) .qc-certificate-card__image img,
.qc-certificate-card:nth-child(4) .qc-certificate-card__image img { inset: 0; width: 100%; height: 100%; }
.qc-certificate-card:nth-child(3) .qc-certificate-card__image,
.qc-certificate-card:nth-child(4) .qc-certificate-card__image { top: 7.19%; left: .28%; width: 97.4%; height: 49.67%; }
.qc-certificate-card h3 { position: absolute; z-index: 1; top: 64.32%; right: 0; left: 0; margin: 0; color: var(--qc-ink); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(.9rem, 1.225vw, 1.47rem); font-weight: 400; line-height: 1.15; text-align: center; }
.qc-certificate-card > p { position: absolute; z-index: 1; top: 72.08%; right: 0; left: 0; margin: 0; color: var(--qc-ink); font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.72rem, .802vw, .962rem); line-height: 1.25; text-align: center; }
.qc-certificate-card__hover { position: absolute; z-index: 2; top: clamp(1.35rem, 1.72vw, 2.05rem); right: clamp(1rem, 1.4vw, 1.65rem); left: clamp(1rem, 1.4vw, 1.65rem); color: #fff; opacity: 0; pointer-events: none; transform: translateY(.5rem); transition: opacity .5s ease-out, transform .5s ease-out; }
.qc-certificate-card__hover span { display: block; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.2rem, 1.3vw, 1.56rem); line-height: 1.15; }
.qc-certificate-card__hover ul { margin: clamp(1rem, 1.25vw, 1.5rem) 0 0; padding: 0; list-style: none; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.78rem, 1.04vw, 1.25rem); font-weight: 500; line-height: 1.7; }
.qc-certificate-card:hover, .qc-certificate-card:focus-visible { background-color: var(--qc-ink); }
.qc-certificate-card:hover::after, .qc-certificate-card:focus-visible::after { top: 60.6%; background-image: url('../images/quality-certification-card-bg-hover.svg'); }
.qc-certificate-card:hover .qc-certificate-card__image, .qc-certificate-card:hover h3, .qc-certificate-card:hover > p, .qc-certificate-card:focus-visible .qc-certificate-card__image, .qc-certificate-card:focus-visible h3, .qc-certificate-card:focus-visible > p { opacity: 0; transform: translateY(-.5rem); }
.qc-certificate-card:hover .qc-certificate-card__hover, .qc-certificate-card:focus-visible .qc-certificate-card__hover { opacity: 1; transform: none; }
.qc-certificate-card:focus-visible { outline: 2px solid #c7a260; outline-offset: 3px; }
.qc-load-more { display: flex; justify-content: center; margin-top: clamp(2rem, 2.55vw, 3rem); }
.qc-load-more[hidden] { display: none !important; }
.qc-load-more .gold-btn { min-height: 2.65rem; padding: .35rem .75rem; color: var(--qc-gold); border-color: var(--qc-gold); font-size: .72rem; }
.qc-load-more .gold-btn__divider { height: 1.35rem; margin-left: .75rem; background: var(--qc-gold); }
.qc-load-more .gold-btn img { width: 1rem; }
.qc-load-more .gold-btn.is-loading { position: relative; min-width: 7.25rem; cursor: progress; }
.qc-load-more .gold-btn.is-loading > :not(.visually-hidden) { visibility: hidden; }
.qc-load-more .gold-btn.is-loading::after { position: absolute; top: 50%; left: 50%; width: .95rem; height: .95rem; border: 2px solid var(--qc-gold); border-right-color: transparent; border-radius: 50%; content: ''; transform: translate(-50%, -50%); animation: qc-card-load-spin .65s linear infinite; }
@keyframes qc-card-load-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .quality-certifications-page .qc-load-more .gold-btn.is-loading::after { animation: none; } }
.qc-statement { padding: clamp(5rem, 8.1vw, 9.75rem) 0 clamp(4.5rem, 7.1vw, 8.5rem); text-align: center; }
.qc-statement h2 { max-width: 65rem; margin: 0 auto; color: #dddcdc; font-size: clamp(1.5rem, 2.55vw, 3rem); line-height: 1.12; }
.qc-statement .character-heading__character { color: #dddcdc; }
.qc-values { padding: 0 0 clamp(5rem, 8.1vw, 9.75rem); }
.qc-values > .container { width: 100%; max-width: 88.5rem; margin-inline: auto; box-sizing: border-box; padding-right: clamp(1rem, 2.35vw, 2.8rem); padding-left: clamp(1rem, 2.35vw, 2.8rem); }
/* Bootstrap's .col-lg-6 sets a 50% flex basis.  The Figma component is a
   two-column composition, so use an explicit grid at desktop widths; this
   prevents the right accordion from wrapping below the image at intermediate
   viewport sizes while retaining Bootstrap markup and breakpoints. */
.qc-values .row { --bs-gutter-x: 0; display: grid; grid-template-columns: minmax(0, 48%) minmax(0, 1fr); align-items: stretch; gap: clamp(1rem, 1.35vw, 1.625rem); }
.qc-values .col-lg-6:first-child, .qc-values .col-lg-6:last-child { width: auto; max-width: none; min-width: 0; flex: none; }
.qc-values__image { display: block; width: 100%; height: clamp(23rem, 31.4vw, 37.6875rem); border-radius: clamp(.6rem, .8vw, .9375rem); object-fit: cover; object-position: center; }
.qc-accordion { display: flex; height: 100%; margin-left: 0; flex-direction: column; gap: clamp(.75rem, 1.15vw, 1.4375rem); }
.qc-accordion__item { overflow: hidden; border: 1px solid #dddcdc; border-radius: clamp(.6rem, .8vw, .956rem); background: #fff; transition: background-color .35s ease, border-color .35s ease; }
.qc-accordion__item.is-active { border-color: var(--qc-ink); background: var(--qc-ink); }
.qc-accordion__trigger { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; padding: clamp(1rem, 1.5vw, 1.8rem) clamp(1rem, 1.15vw, 1.375rem); color: var(--qc-ink); border: 0; background: transparent; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1rem, 1.593vw, 1.912rem); line-height: 1.15; text-align: left; }
.qc-accordion__item.is-active .qc-accordion__trigger { color: #fff; }
.qc-accordion__icon { position: relative; display: block; width: 1.2rem; height: 1.2rem; flex: 0 0 1.2rem; }
.qc-accordion__icon::before, .qc-accordion__icon::after { position: absolute; top: 50%; left: 50%; width: .8rem; height: 1px; background: currentColor; content: ''; transform: translate(-50%, -50%); transition: transform .3s ease; }
.qc-accordion__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.qc-accordion__item.is-active .qc-accordion__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.qc-accordion__panel { padding: 0 clamp(1rem, 1.15vw, 1.375rem) clamp(1rem, 1.5vw, 1.8rem); color: #fff; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.78rem, .9375vw, 1.125rem); line-height: 1.35; }
.qc-accordion__item.is-active .qc-accordion__panel { padding-top: clamp(.5rem, .52vw, .625rem); }
.qc-accordion__panel p { margin: 0; max-width: 34rem; }
.qc-accordion__item:not(.is-active) .qc-accordion__panel { color: var(--qc-ink); }
.qc-cta { position: relative; height: clamp(30rem, 34vw, 41rem); overflow: hidden; background: #12101a; }
.qc-cta__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 8, 16, .78) 0%, rgba(10, 8, 16, .22) 55%, rgba(10, 8, 16, .05) 100%); }
.qc-cta__content { position: absolute; z-index: 1; top: 50%; right: 0; left: 0; transform: translateY(-50%); }
.qc-cta h2 { margin: 0; color: #fff; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2rem, 3.1vw, 3.75rem); font-weight: 400; line-height: 1.08; }
.qc-cta p { max-width: 25rem; margin: clamp(1.25rem, 1.8vw, 2.2rem) 0 clamp(1.35rem, 2vw, 2.5rem); color: #fff; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.78rem, .94vw, 1.15rem); line-height: 1.35; }
.qc-cta .gold-btn { color: #fff; border-color: #c7a260; }
.qc-cta .gold-btn__divider { background: #c7a260; }
.qc-cta .gold-btn img { filter: brightness(0) invert(1); }
.qc-footer { min-height: clamp(15rem, 14vw, 17rem); }

@media (max-width: 991.98px) {
  .qc-hero { height: clamp(30rem, 62vw, 44rem); }
  .qc-certificate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 48rem; }
  .qc-certificate-card { min-height: 25rem; }
  .qc-values > .container { width: 100%; }
  .qc-values .row { --bs-gutter-x: 0; --bs-gutter-y: 1.25rem; grid-template-columns: minmax(0, 1fr); }
  .qc-values .col-lg-6:first-child, .qc-values .col-lg-6:last-child { width: 100%; flex: 0 0 100%; max-width: 100%; }
  .qc-values__image { height: 28rem; }
  .qc-accordion { gap: .8rem; margin-left: 0; }
}
@media (min-width: 992px) and (max-width: 1324.98px) {
  .qc-values > .container { width: 100%; }
  .qc-values .row { min-height: auto; grid-template-columns: minmax(0, 48%) minmax(0, 1fr); gap: clamp(1rem, 1.9vw, 1.625rem); }
  .qc-values__image { height: auto; aspect-ratio: 634 / 603; }
  .qc-accordion { height: auto; min-height: 100%; }
}
@media (max-width: 575.98px) {
  .quality-certifications-page .navbar__logo { width: 5rem; }
  .qc-hero { height: 30rem; }
  .qc-hero__image { object-position: 62% center; }
  .qc-hero__content { bottom: 2.25rem; }
  .qc-hero h1 { font-size: 2.2rem; }
  .qc-breadcrumb { min-height: 3.4rem; }
  .qc-certifications { padding: 3.75rem 0 3.5rem; }
  .qc-section-heading p { font-size: .83rem; }
  .qc-certificate-grid { grid-template-columns: 1fr; max-width: 20rem; margin-top: 2.75rem; }
  .qc-certificate-card { min-height: 22rem; }
  .qc-statement { padding: 4.5rem 0; }
  .qc-statement h2 { font-size: 1.6rem; }
  .qc-values { padding-bottom: 4.5rem; }
  .qc-values__image { height: 18rem; }
  .qc-cta { height: 31rem; }
  .qc-cta__image { object-position: 67% center; }
  .qc-cta__content { top: 66%; }
  .qc-cta p { max-width: 19rem; }
  .qc-footer { min-height: 17rem; }
}
@media (prefers-reduced-motion: reduce) {
  .qc-accordion__item, .qc-accordion__icon::before, .qc-accordion__icon::after, .qc-certificate-card, .qc-certificate-card__image, .qc-certificate-card__image img, .qc-certificate-card h3, .qc-certificate-card > p, .qc-certificate-card__hover { transition: none; }
}

/* Final values-component guard: Bootstrap's stepped .container and .col-lg-6
   rules must not collapse this Figma composition into a 960px boxed layout. */
.quality-certifications-page .qc-values > .container {
  width: 100% !important;
  max-width: 88.5rem !important;
}
.quality-certifications-page .qc-values .row {
  display: grid !important;
  grid-template-columns: minmax(0, 48%) minmax(0, 1fr) !important;
  gap: clamp(1rem, 1.35vw, 1.625rem) !important;
}
.quality-certifications-page .qc-values .col-lg-6 {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: none !important;
}
.quality-certifications-page .qc-values__image {
  transition: opacity .28s ease, transform .28s ease;
}
.quality-certifications-page .qc-values__image.is-changing {
  opacity: .35;
  transform: scale(.992);
}
@media (max-width: 991.98px) {
  .quality-certifications-page .qc-values .row {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.25rem !important;
  }
  .quality-certifications-page .qc-values .col-lg-6 {
    width: 100% !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .quality-certifications-page .qc-values__image { transition: none; }
}

/* Quality & Certifications — measured Figma alignment (frame 1261:3925). */
.quality-certifications-page .qc-certificate-card,
.quality-certifications-page .qc-certificate-card::before,
.quality-certifications-page .qc-certificate-card::after,
.quality-certifications-page .qc-certificate-card__image,
.quality-certifications-page .qc-certificate-card__image img,
.quality-certifications-page .qc-certificate-card__hover {
  box-sizing: border-box;
}
.quality-certifications-page .qc-certificate-card {
  min-height: 0;
  height: auto;
  aspect-ratio: 358.3522338 / 486.640625;
}
.quality-certifications-page .qc-certificate-card:nth-child(1) .qc-certificate-card__image,
.quality-certifications-page .qc-certificate-card:nth-child(2) .qc-certificate-card__image {
  top: .616%; left: -5.67%; width: 112.47%; height: 57.56%;
}
.quality-certifications-page .qc-certificate-card:nth-child(3) .qc-certificate-card__image,
.quality-certifications-page .qc-certificate-card:nth-child(4) .qc-certificate-card__image {
  top: 7.19%; left: .279%; width: 97.4%; height: 49.73%;
}
.quality-certifications-page .qc-certificate-card:nth-child(1) .qc-certificate-card__image img {
  inset: auto; left: 22.12%; top: -7.85%; width: 55.55%; height: 129.99%; object-fit: fill;
}
.quality-certifications-page .qc-certificate-card:nth-child(2) .qc-certificate-card__image img {
  inset: auto; left: -.05%; top: 1.3%; width: 100.17%; height: 108.13%; object-fit: fill;
}
.quality-certifications-page .qc-certificate-card:nth-child(3) .qc-certificate-card__image img {
  inset: auto; left: -2.63%; top: -8.22%; width: 105.37%; height: 158%; object-fit: fill;
}
.quality-certifications-page .qc-certificate-card:nth-child(4) .qc-certificate-card__image img {
  inset: auto; left: 4.86%; top: -6.2%; width: 90.39%; height: 135.54%; object-fit: fill;
}
.quality-certifications-page .qc-certificate-card__hover {
  top: 6.78%; right: 7.53%; bottom: auto; left: 7.53%;
  text-align: left;
}
.quality-certifications-page .qc-certificate-card__hover span {
  color: #000;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.25rem, 1.3vw, 1.5625rem);
  font-weight: 400;
  line-height: 1.16;
}
.quality-certifications-page .qc-certificate-card__hover ul { margin: 1.125rem 0 0; color: #000; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.8rem, 1.04vw, 1.25rem); font-weight: 500; line-height: 1.7; }
.quality-certifications-page .qc-certificate-card:hover .qc-certificate-card__hover span,
.quality-certifications-page .qc-certificate-card:hover .qc-certificate-card__hover ul,
.quality-certifications-page .qc-certificate-card:focus-visible .qc-certificate-card__hover span,
.quality-certifications-page .qc-certificate-card:focus-visible .qc-certificate-card__hover ul { color: #fff; }
.quality-certifications-page .qc-certificate-card:hover::after,
.quality-certifications-page .qc-certificate-card:focus-visible::after { top: 60.62%; left: -3.07%; width: 106.89%; height: 50.9%; }

@media (min-width: 1200px) {
  .quality-certifications-page .industries-site-header { height: 102px; }
  .quality-certifications-page .navbar { height: 102px; padding-top: 0 !important; padding-bottom: 0 !important; }
  .quality-certifications-page .navbar > .container,
  .quality-certifications-page .qc-hero__content,
  .quality-certifications-page .qc-breadcrumb .container,
  .quality-certifications-page .qc-cta__content {
    width: 100%; max-width: none; padding-right: 4.9vw; padding-left: 4.9vw;
  }
  .quality-certifications-page .navbar > .container { height: 100%; }
  .quality-certifications-page .qc-hero { height: 47.708333vw; max-height: 57.25rem; }
  .quality-certifications-page .qc-hero__content { bottom: 3.54vw; }
  .quality-certifications-page .qc-breadcrumb { height: 52px; min-height: 52px; }

  .quality-certifications-page .qc-certifications { padding-top: 132px; padding-bottom: 83px; }
  .quality-certifications-page .qc-section-heading h2 { font-size: 3.75rem; line-height: 1; }
  .quality-certifications-page .qc-section-heading p { max-width: 66rem; margin-top: 25px; font-size: 1.125rem; line-height: 1.5556; }
  .quality-certifications-page .qc-certificate-grid { margin-top: 90px; }
  .quality-certifications-page .qc-load-more { margin-top: 60.64px; }
  .quality-certifications-page .qc-load-more .gold-btn { width: 214px; height: 51px; min-height: 51px; padding: 0 17px; font-size: 1.25rem; }
  .quality-certifications-page .qc-load-more .gold-btn__divider { height: 42px; margin-left: auto; }
  .quality-certifications-page .qc-load-more .gold-btn img { width: 1.75rem; }

  .quality-certifications-page .qc-statement { margin-top: 66px; padding: 26px 0 81px; }
  .quality-certifications-page .qc-statement .container { max-width: 82.5rem; padding-right: 0; padding-left: 0; }
  .quality-certifications-page .qc-statement h2 { max-width: 82.5rem; font-size: 3.75rem; line-height: 1.11; }

  .quality-certifications-page .qc-values { padding-bottom: 211px; }
  .quality-certifications-page .qc-values > .container { max-width: 82.8125rem !important; padding: 0 !important; }
  .quality-certifications-page .qc-values .row { display: grid !important; grid-template-columns: 634px minmax(0, 1fr) !important; align-items: start; gap: 26px !important; min-height: 632.69px; padding: 14.722px; box-sizing: border-box; }
  .quality-certifications-page .qc-values .col-lg-6 { width: auto !important; max-width: none !important; flex: none !important; }
  .quality-certifications-page .qc-values__image { width: 634px; height: 603px; max-width: 100%; border-radius: 15px; }
  .quality-certifications-page .qc-accordion { height: 603.246px; gap: 23px; padding: 0; justify-content: center; overflow: visible; }
  .quality-certifications-page .qc-accordion__item { box-sizing: border-box; flex: 0 0 125px; height: 125px; display: flex; flex-direction: column; justify-content: center; border-radius: 15.291px; }
  .quality-certifications-page .qc-accordion__item.is-active { flex-basis: 181px; min-height: 181px; height: 181px; justify-content: flex-start; gap: 10px; padding: 43px 22px; }
  .quality-certifications-page .qc-accordion__trigger { height: 39px; min-height: 39px; padding: 0 22px; font-size: 1.9114rem; line-height: 1.27; }
  .quality-certifications-page .qc-accordion__item.is-active .qc-accordion__trigger { padding: 0; }
  .quality-certifications-page .qc-accordion__panel,
  .quality-certifications-page .qc-accordion__item.is-active .qc-accordion__panel { padding: 0; font-size: 1.125rem; line-height: 1.28; }

  .quality-certifications-page .qc-cta { height: 33.541667vw; max-height: 40.25rem; }
  .quality-certifications-page .qc-cta__content { top: 27.795%; transform: none; }
  .quality-certifications-page .qc-cta h2 { font-size: 3.75rem; line-height: 1; }
  .quality-certifications-page .qc-cta p { max-width: 34.56rem; margin-top: 29px; font-size: 1.125rem; line-height: 1.3; }

  .quality-certifications-page .qc-footer { position: relative; height: 434px; min-height: 434px; padding: 0 !important; background: #000; color: #fff; }
  .quality-certifications-page .qc-footer__main { position: absolute; top: 64px; right: 147px; left: 159px; display: grid; grid-template-columns: 156px minmax(0, 1fr) 262px; align-items: center; height: 98px; }
  .quality-certifications-page .qc-footer__brand img { display: block; width: 156px; height: 98px; object-fit: contain; }
  .quality-certifications-page .qc-footer__nav { display: flex; justify-content: center; gap: 50px; }
  .quality-certifications-page .qc-footer__nav a { color: #fff; font-family: 'DM Sans', Arial, sans-serif; font-size: 1.125rem; font-weight: 500; text-decoration: none; }
  .quality-certifications-page .qc-footer__social { display: flex; justify-content: flex-end; gap: 20px; }
  .quality-certifications-page .qc-footer__social a { display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; }
  .quality-certifications-page .qc-footer__social img { width: 22px; height: 22px; object-fit: contain; }
  .quality-certifications-page .qc-footer__copyright { position: absolute; top: 217px; left: 50%; display: flex; align-items: center; gap: 5px; color: #fff; transform: translateX(-50%); white-space: nowrap; }
  .quality-certifications-page .qc-footer__copyright img { width: 20px; height: 20px; }
  .quality-certifications-page .qc-footer__copyright span { font-family: 'DM Sans', Arial, sans-serif; font-size: 1.125rem; font-weight: 500; }
}

@media (max-width: 1199.98px) {
  .quality-certifications-page .qc-footer { min-height: 24rem; padding: 3rem 1.25rem 2rem; background: #000; color: #fff; }
  .quality-certifications-page .qc-footer__main { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2rem; }
  .quality-certifications-page .qc-footer__brand img { width: 9.5rem; height: auto; }
  .quality-certifications-page .qc-footer__nav, .quality-certifications-page .qc-footer__social { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem; }
  .quality-certifications-page .qc-footer__nav a { color: #fff; text-decoration: none; }
  .quality-certifications-page .qc-footer__social a { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; }
  .quality-certifications-page .qc-footer__social img { width: 1.25rem; height: 1.25rem; }
  .quality-certifications-page .qc-footer__copyright { display: flex; align-items: center; justify-content: center; gap: .35rem; margin-top: 3rem; color: #fff; text-align: center; }
  .quality-certifications-page .qc-footer__copyright img { width: 1.25rem; }
}
/* Quality & Certifications — proportional desktop scaling.
   Figma is authored at 1920px. Between the mobile/tablet breakpoint and that
   reference width, retain the same composition but scale measured values with
   the viewport instead of keeping the 1920px pixel dimensions. */
@media (min-width: 1200px) and (max-width: 1919.98px) {
  .quality-certifications-page .industries-site-header,
  .quality-certifications-page .navbar { height: 5.3125vw; }
  .quality-certifications-page .navbar { min-height: 5.3125vw; }
  .quality-certifications-page .navbar > .container,
  .quality-certifications-page .qc-hero__content,
  .quality-certifications-page .qc-breadcrumb .container,
  .quality-certifications-page .qc-cta__content {
    width: 90vw; max-width: 90vw; margin-right: auto; margin-left: auto;
    padding-right: 0; padding-left: 0;
  }
  .quality-certifications-page .qc-breadcrumb { height: 2.708333vw; min-height: 2.708333vw; }

  .quality-certifications-page .qc-certifications { padding-top: 6.875vw; padding-bottom: 4.322917vw; }
  .quality-certifications-page .qc-section-heading h2 { font-size: 3.125vw; }
  .quality-certifications-page .qc-section-heading p { margin-top: 1.302083vw; font-size: .9375vw; }
  .quality-certifications-page .qc-certificate-grid { width: 77.666667vw; max-width: 77.666667vw; margin-top: 4.6875vw; }
  .quality-certifications-page .qc-load-more { margin-top: 3.158333vw; }
  .quality-certifications-page .qc-load-more .gold-btn { width: 11.145833vw; height: 2.65625vw; min-height: 2.65625vw; padding-right: .885417vw; padding-left: .885417vw; font-size: 1.041667vw; }
  .quality-certifications-page .qc-load-more .gold-btn__divider { height: 2.1875vw; margin-left: auto; }
  .quality-certifications-page .qc-load-more .gold-btn img { width: 1.458333vw; }

  .quality-certifications-page .qc-statement { margin-top: 3.4375vw; padding-top: 1.354167vw; padding-bottom: 4.21875vw; }
  .quality-certifications-page .qc-statement .container,
  .quality-certifications-page .qc-statement h2 { max-width: 68.75vw; }
  .quality-certifications-page .qc-statement h2 { font-size: 3.125vw; }

  .quality-certifications-page .qc-values { padding-bottom: 10.989583vw; }
  .quality-certifications-page .qc-values > .container { width: 69.010417vw; max-width: 69.010417vw !important; }
  .quality-certifications-page .qc-values .row { grid-template-columns: 33.020833vw minmax(0, 1fr) !important; gap: 1.354167vw !important; min-height: 32.952604vw; padding: .766771vw; }
  .quality-certifications-page .qc-values__image { width: 33.020833vw; height: 31.40625vw; border-radius: .78125vw; }
  .quality-certifications-page .qc-accordion { height: 31.418021vw; gap: 1.197917vw; }
  .quality-certifications-page .qc-accordion__item { flex-basis: 6.510417vw; height: 6.510417vw; border-radius: .796406vw; }
  .quality-certifications-page .qc-accordion__item.is-active { flex-basis: 9.427083vw; min-height: 9.427083vw; height: 9.427083vw; gap: .520833vw; padding: 2.239583vw 1.145833vw; }
  .quality-certifications-page .qc-accordion__trigger { height: 2.03125vw; min-height: 2.03125vw; padding-right: 1.145833vw; padding-left: 1.145833vw; font-size: 1.592833vw; }
  .quality-certifications-page .qc-accordion__item.is-active .qc-accordion__trigger { padding-right: 0; padding-left: 0; }
  .quality-certifications-page .qc-accordion__panel,
  .quality-certifications-page .qc-accordion__item.is-active .qc-accordion__panel { font-size: .9375vw; }

  .quality-certifications-page .qc-cta { height: 33.541667vw; }
  .quality-certifications-page .qc-cta h2 { font-size: 3.125vw; }
  .quality-certifications-page .qc-cta p { max-width: 28.8vw; margin-top: 1.510417vw; font-size: .9375vw; }

  .quality-certifications-page .qc-footer { height: 22.604167vw; min-height: 22.604167vw; }
  .quality-certifications-page .qc-footer__main { top: 3.333333vw; right: 7.65625vw; left: 8.28125vw; height: 5.104167vw; grid-template-columns: 8.125vw minmax(0, 1fr) 13.645833vw; }
  .quality-certifications-page .qc-footer__brand img { width: 8.125vw; height: 5.104167vw; }
  .quality-certifications-page .qc-footer__nav { gap: 2.604167vw; }
  .quality-certifications-page .qc-footer__nav a { font-size: .9375vw; }
  .quality-certifications-page .qc-footer__social { gap: 1.041667vw; }
  .quality-certifications-page .qc-footer__social a { width: 2.604167vw; height: 2.604167vw; }
  .quality-certifications-page .qc-footer__social img { width: 1.145833vw; height: 1.145833vw; }
  .quality-certifications-page .qc-footer__copyright { top: 11.302083vw; gap: .260417vw; }
  .quality-certifications-page .qc-footer__copyright img { width: 1.041667vw; height: 1.041667vw; }
  .quality-certifications-page .qc-footer__copyright span { font-size: .9375vw; }
}

/* QC buttons: keep the label and divider visible in the filled hover state. */
.quality-certifications-page .gold-btn {
  box-sizing: border-box;
}
.quality-certifications-page .gold-btn > span:first-child {
  display: inline-flex;
  align-items: center;
  color: inherit;
  opacity: 1;
  visibility: visible;
}
.quality-certifications-page .gold-btn .gold-btn__divider {
  display: block;
  width: 2px;
  flex: 0 0 2px;
  height: 1.35rem;
  margin-left: .75rem;
  background-color: currentColor;
  opacity: .9;
  visibility: visible;
}
.quality-certifications-page .qc-load-more .gold-btn .gold-btn__divider {
  height: clamp(1.35rem, 2.1875vw, 2.625rem);
  margin-left: auto;
}
.quality-certifications-page .qc-cta .gold-btn .gold-btn__divider {
  background: currentColor;
}
.quality-certifications-page .gold-btn:hover > span:first-child,
.quality-certifications-page .gold-btn:focus-visible > span:first-child {
  color: #fff;
}
.quality-certifications-page .gold-btn:hover .gold-btn__divider,
.quality-certifications-page .gold-btn:focus-visible .gold-btn__divider {
  background-color: #fff !important;
  opacity: 1;
}

/* ---------- Research & Development page (Figma 1261:4164, page-scoped) ---------- */
.research-development-page { --rd-purple:#352b46; --rd-gold:#7e6131; --rd-ink:#352b46; overflow-x:hidden; }
.research-development-page .rd-hero { position:relative; height:clamp(28rem,47.708vw,57.25rem); overflow:hidden; background:#1f192c; }
.research-development-page .rd-hero__image { position:absolute; width:113.52%; height:134.75%; max-width:none; left:-10.72%; top:-17.39%; object-fit:cover; }
.research-development-page .rd-hero__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(53,43,70,.34) 0%,rgba(53,43,70,.08) 48%,rgba(53,43,70,0) 78%),linear-gradient(0deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.15) 45%,transparent 62%); }
.research-development-page .rd-hero__content { position:relative; height:100%; display:flex; align-items:flex-end; padding-bottom:clamp(3rem,8.45vw,10.15rem); }
.research-development-page .rd-hero h1 { margin:0; color:#fff; font-family:'Playfair Display',serif; font-weight:500; font-size:clamp(2.4rem,3.125vw,3.75rem); line-height:1.07; letter-spacing:-.02em; }
.research-development-page .rd-breadcrumb { height:clamp(2.6rem,2.708vw,3.25rem); background:var(--rd-gold); color:#fff; }
.research-development-page .rd-breadcrumb .container { height:100%; display:flex; align-items:center; }
.research-development-page .rd-breadcrumb ol { display:flex; flex-wrap:wrap; gap:.6rem; list-style:none; padding:0; margin:0; font:300 clamp(.8rem, .9375vw,1.125rem)/1.2 'DM Sans',sans-serif; }
.research-development-page .rd-breadcrumb li:not(:last-child)::after { content:'-'; margin-left:.6rem; color:#fff; }
.research-development-page .rd-breadcrumb a { color:#fff; text-decoration:none; }
.research-development-page .rd-platforms { background:#fff; padding:clamp(5rem,6.875vw,8.25rem) 0 clamp(5.5rem,6.25vw,7.5rem); }
.research-development-page .rd-platforms > .container { width:100%; max-width:none; padding-left:0; padding-right:0; }
.research-development-page .rd-section-heading { text-align:center; }
.research-development-page .rd-section-heading h2 { margin:0; color:var(--rd-ink); font:500 clamp(2rem,2.604vw,3.125rem)/1.16 'Playfair Display',serif; letter-spacing:-.025em; }
.research-development-page .rd-section-heading p { max-width:58rem; margin:1.15rem auto 0; color:#352b46; font:300 clamp(1rem,1.302vw,1.5625rem)/1.35 'DM Sans',sans-serif; }
.research-development-page .rd-platforms__showcase { position:relative; width:75.73vw; max-width:none; margin:clamp(3.5rem,5.5vw,6.6rem) auto 0; }
.research-development-page .rd-platforms__swiper { width:100%; overflow:hidden; user-select:none; transform:translateX(clamp(0px,.52vw,.625rem)); }
.research-development-page .rd-platforms__grid { width:100%; margin:0; display:flex; }
.research-development-page .rd-platform-card.swiper-slide { flex-shrink:0; height:auto !important; aspect-ratio:449.355 / 569; }
.research-development-page .rd-platforms__arrow { position:absolute; z-index:3; top:50%; display:flex; align-items:center; justify-content:center; width:clamp(3.25rem,4vw,4.5rem); height:clamp(4rem,5.2vw,5.75rem); padding:0; border:0; background:transparent; pointer-events:auto; cursor:pointer; touch-action:manipulation; transform:translateY(-50%); }
.research-development-page .rd-platforms__arrow img { display:block; width:12px; height:21px; }
.research-development-page .rd-platforms__arrow--left img { transform:scaleX(-1); }
.research-development-page .rd-platforms__arrow--left { left:clamp(-6rem,-4.74vw,-2rem); }
.research-development-page .rd-platforms__arrow--right { right:clamp(-9rem,-7.6vw,-3rem); }
.research-development-page .rd-platform-card { height:clamp(28rem,29.635vw,35.56rem); overflow:hidden; border:1px solid rgba(108,61,154,.5); border-radius:15px; background:var(--rd-purple); box-shadow:0 1rem 2rem rgba(53,43,70,.1); }
.research-development-page .rd-platform-card__image { width:100%; height:77.85%; overflow:hidden; }
.research-development-page .rd-platform-card img { display:block; width:100%; height:100%; object-fit:contain; }
.research-development-page .rd-platform-card--cad img { position:relative; width:175.55%; max-width:none; height:99.92%; left:-50.47%; top:.08%; object-fit:cover; }
.research-development-page .rd-platform-card h3 { margin:0; padding:clamp(1.5rem,2.135vw,2.56rem) clamp(1.1rem,1.72vw,2.06rem); color:#fff; text-align:left; font:700 clamp(1.1rem,1.302vw,1.5625rem)/1.25 'Playfair Display',serif; }
.research-development-page .rd-footprint { position:relative; min-height:clamp(30rem,39.531vw,47.44rem); overflow:hidden; color:#fff; }
.research-development-page .rd-footprint__image,.research-development-page .rd-footprint__shade { position:absolute; }
.research-development-page .rd-footprint__image { width:99.31%; height:169%; max-width:none; left:1%; top:-30.49%; object-fit:cover; object-position:center; }
.research-development-page .rd-footprint__shade { inset:0; width:100%; height:100%; }
.research-development-page .rd-footprint__shade { background:rgba(53,43,70,.72); }
.research-development-page .rd-footprint__line { position:absolute; z-index:1; width:auto; height:2px; opacity:.72; pointer-events:none; transform:rotate(90deg); transform-origin:left top; }
.research-development-page .rd-footprint__line--main { width:11.82vw; left:30.36%; top:69.95%; }
.research-development-page .rd-footprint__line--left { width:18.98vw; left:56.25%; top:51.9%; }
.research-development-page .rd-footprint__line--right { width:12.45vw; left:81.2%; top:68.5%; }
.research-development-page .rd-footprint__line--bottom { width:17.81vw; left:6.46%; top:55%; }
.research-development-page .rd-footprint::after { content:none; }
.research-development-page .rd-footprint__content { position:relative; z-index:2; width:100%; max-width:none; height:100%; padding-top:clamp(3.5rem,4.17vw,5rem); padding-left:0; padding-right:0; }
.research-development-page .rd-footprint .rd-section-heading h2,.research-development-page .rd-footprint .rd-section-heading p { color:#fff; }
.research-development-page .rd-footprint .rd-section-heading p { max-width:58rem; margin-top:.85rem; }
.research-development-page .rd-metrics { position:absolute; inset:0; width:100%; height:100%; margin:0; display:block; }
.research-development-page .rd-metric { position:absolute; min-height:0; padding:0; text-align:left; border:0; }
.research-development-page .rd-metric:nth-child(1) { left:9.11%; top:47.43%; }
.research-development-page .rd-metric:nth-child(2) { left:58.85%; top:43.35%; }
.research-development-page .rd-metric:nth-child(3) { left:32.92%; top:63.11%; }
.research-development-page .rd-metric:nth-child(4) { left:84.22%; top:61.13%; }
.research-development-page .rd-metric strong { display:block; font:500 clamp(3.5rem,4.55vw,5.46rem)/.9 'DM Sans',sans-serif; }
.research-development-page .rd-metric__plus { display:inline; margin:0; color:var(--rd-gold); }
.research-development-page .rd-metric > span { display:block; margin-top:1.25rem; font:300 clamp(1.1rem,1.624vw,1.95rem)/1.2 'DM Sans',sans-serif; }
.research-development-page .rd-pulse { position:absolute; z-index:3; width:clamp(2.75rem,3.125vw,3.75rem); height:clamp(2.75rem,3.125vw,3.75rem); animation:rd-pulse-rotate 3.5s linear infinite; }
.research-development-page .rd-pulse img { position:absolute; max-width:none; height:auto; }
.research-development-page .rd-pulse img:nth-child(1) { inset:0; width:100%; }
.research-development-page .rd-pulse img:nth-child(2) { left:19.444%; top:19.444%; width:61.111%; }
.research-development-page .rd-pulse img:nth-child(3) { left:36.111%; top:36.111%; width:27.778%; }
.research-development-page .rd-pulse img:nth-child(1) { animation:rd-pulse-outer 3.5s linear infinite; transform-origin:center; }
.research-development-page .rd-pulse img:nth-child(2) { animation:rd-pulse-mid 3.5s linear infinite; transform-origin:center; }
.research-development-page .rd-pulse img:nth-child(3) { animation:rd-pulse-dot 3.5s linear infinite; transform-origin:center; }
.research-development-page .rd-pulse--1 { left:4.90%; top:50.33%; }.research-development-page .rd-pulse--2 { left:28.91%; top:66.00%; }.research-development-page .rd-pulse--3 { left:54.63%; top:48.00%; }.research-development-page .rd-pulse--4 { left:79.63%; top:64.40%; }
@keyframes rd-pulse-rotate { 0%,85.714% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes rd-pulse-outer { 0%,14.286%,71.429%,100% { opacity:1; transform:scale(1); } 24.286%,81.429% { opacity:.3; transform:scale(1.2); } 34.286%,91.429% { opacity:1; transform:scale(1); } }
@keyframes rd-pulse-mid { 0%,7.143%,64.286%,100% { opacity:1; transform:scale(1); } 17.143%,74.286% { opacity:.3; transform:scale(1.2); } 27.143%,84.286% { opacity:1; transform:scale(1); } }
@keyframes rd-pulse-dot { 0%,57.143%,100% { opacity:1; transform:scale(1); } 10%,67.143% { opacity:.3; transform:scale(1.2); } 20%,77.143% { opacity:1; transform:scale(1); } }
.research-development-page .rd-values { background:#fff; padding:clamp(5rem,6.5vw,7.8rem) 0 clamp(6rem,8vw,9.6rem); }
.research-development-page .rd-values .rd-section-heading h2 { max-width:74rem; margin-inline:auto; }
.research-development-page .rd-values__layout { width:min(69.01vw,82.8125rem); margin:clamp(4rem,8.333vw,10rem) auto 0; padding:clamp(.55rem,.767vw,.92rem); display:grid; grid-template-columns:1fr 1fr; gap:clamp(1rem,1.354vw,1.625rem); box-sizing:border-box; }
.research-development-page .rd-values__figure { margin:0; min-height:clamp(30rem,41.46vw,49.75rem); border-radius:15px; overflow:hidden; }
.research-development-page .rd-values__figure img { display:block; width:100%; height:100%; object-fit:contain; transition:opacity .3s ease; }
.research-development-page .rd-values__figure img.is-changing { opacity:.3; }
.research-development-page .rd-accordion { display:flex; flex-direction:column; gap:clamp(.65rem,1.2vw,1.45rem); min-height:100%; }
.research-development-page .rd-accordion__item { position:relative; overflow:hidden; border:1px solid #dddcdc; border-radius:15px; background:#fff; transition:background .35s ease,color .35s ease; }
.research-development-page .rd-accordion__item.is-active { flex:1 1 auto; background:var(--rd-purple); color:#fff; }
.research-development-page .rd-accordion__item button { position:relative; display:flex; align-items:center; width:100%; min-height:clamp(4.5rem,6.51vw,7.8rem); padding:1rem clamp(1rem,1.15vw,1.4rem); border:0; background:transparent; color:var(--rd-ink); text-align:left; font:500 clamp(1.4rem,1.593vw,1.9rem)/1.15 'Playfair Display',serif; }
.research-development-page .rd-accordion__item.is-active button { color:#fff; }
.research-development-page .rd-accordion__item button b { margin-left:auto; font:300 1.6rem/1 'DM Sans',sans-serif; }
.research-development-page .rd-accordion__item button em { position:absolute; top:.7rem; left:clamp(1rem,1.15vw,1.4rem); right:auto; color:var(--rd-gold); font:500 .65rem/1 'DM Sans',sans-serif; letter-spacing:.08em; font-style:normal; }
.research-development-page .rd-accordion__item--upcoming button em { left:clamp(.8rem,1.05vw,1.25rem); right:auto; }
.research-development-page .rd-accordion__item--upcoming button > span { transform:translateY(.3rem); }
.research-development-page .rd-accordion__panel { padding:0 clamp(1rem,1.15vw,1.4rem) clamp(1.4rem,1.8vw,2.15rem); font:300 clamp(1rem, .9375vw,1.125rem)/1.45 'DM Sans',sans-serif; }
.research-development-page .rd-accordion__panel p { margin:0; }
.research-development-page .rd-cta { position:relative; min-height:clamp(30rem,33.54vw,40.25rem); overflow:hidden; color:#fff; }
.research-development-page .rd-cta__image,.research-development-page .rd-cta__shade { position:absolute; }
.research-development-page .rd-cta__image { width:143.04%; height:224%; max-width:none; left:-23.21%; top:-50.45%; object-fit:cover; object-position:center; }
.research-development-page .rd-cta__shade { inset:0; width:100%; height:100%; }
.research-development-page .rd-cta__shade { background:linear-gradient(90deg,rgba(53,43,70,.96) 0%,rgba(53,43,70,.78) 38%,rgba(53,43,70,.05) 72%); }
.research-development-page .rd-cta__content { position:relative; z-index:1; padding-top:clamp(5rem,6.55vw,7.85rem); }
.research-development-page .rd-cta h2 { margin:0; color:#fff; font:700 clamp(2.5rem,3.125vw,3.75rem)/1.05 'Playfair Display',serif; }
.research-development-page .rd-cta p { max-width:30rem; margin:1.4rem 0 2rem; color:#fff; font:300 clamp(1rem,.9375vw,1.125rem)/1.4 'DM Sans',sans-serif; }
.research-development-page .rd-cta__button { display:inline-flex; align-items:center; justify-content:center; width:clamp(12rem,17.1875vw,20.625rem); min-height:clamp(2.6rem,2.656vw,3.2rem); padding:0 1rem; border:1px solid var(--rd-gold); background:#fff; color:var(--rd-gold); text-decoration:none; font:500 clamp(.9rem,1.04vw,1.25rem)/1 'DM Sans',sans-serif; }
.research-development-page .rd-cta__button .rd-cta__divider { width:1px; height:1.55rem; margin:0 1.15rem; }
.research-development-page .rd-cta__button img { width:1.5rem; height:auto; }
.research-development-page .site-footer { min-height:clamp(24rem,22.6vw,27.1rem); }
/* R&D Proven Process photo: 20% wider than the shared Engineering Solutions size. */
.research-development-page .expertise-internal-process__photo { width:min(20.208vw,24.24rem); }
@media (max-width: 991.98px) {
  .research-development-page .expertise-internal-process__photo,
  .research-development-page .expertise-internal-process__photo.is-middle,
  .research-development-page .expertise-internal-process__photo.is-bottom,
  .research-development-page .expertise-internal-process__photo.is-beyond { width:min(57.6vw,24rem); }
  .research-development-page .rd-platforms__showcase { width:min(90vw,45rem); }
  .research-development-page .rd-metrics { position:relative; inset:auto; display:grid; width:90vw; height:auto; margin:3rem auto 0; grid-template-columns:repeat(2,1fr); row-gap:3rem; }
  .research-development-page .rd-metric,.research-development-page .rd-metric:nth-child(1),.research-development-page .rd-metric:nth-child(2),.research-development-page .rd-metric:nth-child(3),.research-development-page .rd-metric:nth-child(4) { position:relative; inset:auto; }
  .research-development-page .rd-metric:nth-child(2) { border-right:0; }
  .research-development-page .rd-values__layout { width:min(90vw,46rem); grid-template-columns:1fr; }
  .research-development-page .rd-values__figure { min-height:28rem; }
}
@media (max-width: 575.98px) {
  .research-development-page .rd-hero { height:32rem; }
  .research-development-page .rd-hero h1 { font-size:2.15rem; }
  .research-development-page .rd-platforms,.research-development-page .rd-values { padding-block:4rem; }
  .research-development-page .rd-footprint { min-height:45rem; }
  .research-development-page .rd-metrics { grid-template-columns:1fr 1fr; }
  .research-development-page .rd-metric { padding-inline:.5rem; }
  .research-development-page .rd-metric strong { font-size:3rem; }
  .research-development-page .rd-metric > span { font-size:1rem; }
  .research-development-page .rd-pulse { display:none; }
  .research-development-page .rd-cta { min-height:31rem; }
}
@media (prefers-reduced-motion: reduce) {
  .research-development-page .rd-pulse,.research-development-page .rd-pulse img,.research-development-page .rd-values__figure img { animation:none; transition:none; }
  .research-development-page .expertise-internal-process * { transition-duration:0.01ms !important; }
}

/* ---------- Central Engineering page (Figma node 1261:4432) ---------- */
.central-engineering-page {
  --ce-ink:#352b46;
  --ce-gold:#7e6131;
  --ce-lilac:#eee8f3;
  --ce-page-gutter:clamp(1.25rem,4.95vw,5.94rem);
  background:#fff;
  color:#171717;
  font-family:'DM Sans',Arial,sans-serif;
}
.central-engineering-page .ce-site-header { position:sticky; top:0; z-index:50; }
.central-engineering-page .ce-shell { padding-inline:var(--ce-page-gutter); }
.central-engineering-page .ce-hero { position:relative; height:clamp(34rem,47.708vw,57.25rem); overflow:hidden; background:#111018; }
.central-engineering-page .ce-hero__image { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center 48%; }
.central-engineering-page .ce-hero__shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(15,12,22,.08) 24%,rgba(15,12,22,.2) 58%,rgba(0,0,0,.83) 100%); }
.central-engineering-page .ce-hero__content { position:absolute; z-index:1; inset:auto 0 clamp(3.25rem,5vw,6rem); }
.central-engineering-page .ce-hero h1 { max-width:58rem; margin:0; color:#fff; font:500 clamp(2.4rem,3.125vw,3.75rem)/1.2 'Playfair Display',Georgia,serif; letter-spacing:-.02em; }
.central-engineering-page .ce-breadcrumb { position:relative; z-index:2; height:clamp(2.75rem,2.708vw,3.25rem); min-height:0; margin-top:clamp(-.45rem,-.365vw,-.2rem); background:var(--ce-gold); }
.central-engineering-page .ce-breadcrumb .container-fluid { display:flex; align-items:center; height:100%; }
.central-engineering-page .ce-breadcrumb .industries-breadcrumb__list { gap:clamp(.45rem,.62vw,.75rem); color:#fff; font-size:clamp(.72rem,.9375vw,1.125rem); }
.central-engineering-page .ce-breadcrumb .industries-breadcrumb__list li+li::before { margin-right:clamp(.45rem,.62vw,.75rem); }
.central-engineering-page .ce-breadcrumb a { text-decoration:none; }

.central-engineering-page .ce-story { position:relative; height:clamp(68rem,91.3vw,109.5rem); overflow:hidden; background:#fff; }
.central-engineering-page .ce-story__curves { position:absolute; z-index:0; top:10%; left:-5%; width:110%; max-width:none; height:auto; opacity:.85; pointer-events:none; }
.central-engineering-page .ce-story__intro { position:absolute; z-index:1; inset:0 0 auto; height:60%; }
.central-engineering-page .ce-story__intro>.row { height:100%; }
.central-engineering-page .ce-story__copy { position:relative; z-index:2; align-self:flex-start; padding-top:6.8vw; }
.central-engineering-page .ce-story__copy h2 { max-width:35rem; margin:0 0 clamp(1.25rem,1.7vw,2rem); color:var(--ce-ink); font:500 clamp(2rem,2.604vw,3.125rem)/1.13 'Playfair Display',Georgia,serif; letter-spacing:-.02em; }
.central-engineering-page .ce-story__copy p { max-width:35rem; margin:0 0 clamp(1.4rem,2vw,2.4rem); padding-left:clamp(.75rem,1vw,1.2rem); border-left:1px dashed #a69aaf; color:#393939; font:300 clamp(.95rem,1.146vw,1.375rem)/1.4 'DM Sans',Arial,sans-serif; }
.central-engineering-page .ce-story__product-wrap { position:relative; height:100%; }
.central-engineering-page .ce-story__product { position:absolute; top:8%; right:-1.5%; width:min(57vw,68rem); height:auto; max-width:none; object-fit:contain; }
.central-engineering-page .ce-button { display:inline-flex; align-items:center; gap:0; min-height:clamp(2.25rem,2.656vw,3.1875rem); padding:0 clamp(.8rem,1vw,1.2rem); border:1px solid var(--ce-gold); border-radius:3px; background:#fff; color:var(--ce-gold); font:500 clamp(.72rem,1.04vw,1.25rem)/1 'DM Sans',Arial,sans-serif; text-decoration:none; transition:background .25s ease,color .25s ease; }
.central-engineering-page .ce-button:hover,.central-engineering-page .ce-button:focus-visible { background:var(--ce-gold); color:#fff; }
.central-engineering-page .ce-button__divider { display:block; width:1px; height:clamp(1.8rem,2.2vw,2.65rem); margin:0 clamp(.65rem,1vw,1.2rem); background:currentColor; opacity:.8; }
.central-engineering-page .ce-button img { display:block; width:clamp(1.15rem,1.46vw,1.75rem); height:auto; transition:filter 200ms ease; }
/* Gold arrow turns white on the gold hover fill, matching .gold-btn. */
.central-engineering-page .ce-button:hover img,.central-engineering-page .ce-button:focus-visible img { filter:brightness(0) invert(1); }

.central-engineering-page .ce-connected { position:absolute; z-index:2; inset:55.5% 0 auto; }
.central-engineering-page .ce-connected__heading { max-width:62rem; margin:0 auto; }
.central-engineering-page .ce-connected__heading h2 { margin:0; color:var(--ce-ink); font:500 clamp(1.7rem,2.604vw,3.125rem)/1.15 'Playfair Display',Georgia,serif; }
.central-engineering-page .ce-connected__heading p { max-width:56rem; margin:clamp(.35rem,.52vw,.625rem) auto 0; color:#393939; font:300 clamp(.9rem,1.146vw,1.375rem)/1.35 'DM Sans',Arial,sans-serif; }
.central-engineering-page .ce-cards { position:relative; width:min(75.7vw,91rem); margin:clamp(3.75rem,4.68vw,5.625rem) auto 0; }
.central-engineering-page .ce-cards__viewport { overflow:hidden; }
.central-engineering-page .ce-cards__track { display:flex; align-items:stretch; justify-content:space-between; gap:clamp(.85rem,2.76vw,3.3125rem); }
.central-engineering-page .ce-card { flex:0 0 calc((100% - 5.52vw) / 3); min-width:0; height:clamp(24rem,29.635vw,35.5625rem); overflow:hidden; border:1px solid rgba(108,61,154,.5); border-radius:15px; background:var(--ce-ink); color:#fff; }
.central-engineering-page .ce-card__image { height:77.85%; overflow:hidden; background:var(--ce-ink); }
.central-engineering-page .ce-card__image img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; }
.central-engineering-page .ce-card h3 { display:flex; align-items:center; height:22.15%; margin:0; padding:0 clamp(1rem,1.7vw,2rem); color:#fff; font:700 clamp(.95rem,1.302vw,1.5625rem)/1.18 'Playfair Display',Georgia,serif; }
.central-engineering-page .ce-cards__arrow { position:absolute; z-index:3; top:50%; display:grid; place-items:center; width:clamp(2.5rem,3.65vw,4.375rem); height:clamp(2.5rem,3.65vw,4.375rem); padding:0; border:0; background:transparent; color:#161616; transform:translateY(-50%); cursor:pointer; }
.central-engineering-page .ce-cards__arrow--prev { left:clamp(-6rem,-5vw,-2rem); }
.central-engineering-page .ce-cards__arrow--next { right:clamp(-6rem,-5vw,-2rem); }
.central-engineering-page .ce-cards__arrow span { position:relative; display:block; width:1.15rem; height:1px; background:currentColor; }
.central-engineering-page .ce-cards__arrow span::after { position:absolute; top:-.27rem; width:.48rem; height:.48rem; border-top:1px solid currentColor; border-right:1px solid currentColor; content:""; }
.central-engineering-page .ce-cards__arrow--prev span::after { left:0; transform:rotate(-135deg); }
.central-engineering-page .ce-cards__arrow--next span::after { right:0; transform:rotate(45deg); }

.central-engineering-page .ce-principles { min-height:40.16vw; padding-top:5.5vw; background:#fff; }
.central-engineering-page .ce-promise { max-width:82rem; min-height:6.25vw; margin:0 auto; color:#999; text-align:center; font:500 clamp(1.65rem,2.604vw,3.125rem)/1.16 'Playfair Display',Georgia,serif; }
.central-engineering-page .ce-promise span { display:inline; color:#999; }
.central-engineering-page .ce-promise .is-animating { animation:ce-letter-color 480ms ease-in-out both; animation-delay:var(--ce-letter-delay,0ms); }
@keyframes ce-letter-color { from { color:#999; } to { color:#352b46; } }
.central-engineering-page .ce-principles__panel { position:relative; width:100%; min-height:23.23vw; margin:5.2vw 0 0; padding:4.167vw 0 2.5vw; overflow:hidden; background:rgba(108,61,154,.14); }
.central-engineering-page .ce-principles__panel>.row { position:relative; z-index:1; }
.central-engineering-page .ce-principle { position:relative; display:flex; flex-direction:column; align-items:center; box-sizing:border-box; padding:0 clamp(.45rem,.8vw,.95rem); text-align:center; }
.central-engineering-page .ce-principle__icon { display:grid; place-items:center; width:4.9vw; height:4.9vw; flex:0 0 auto; }
.central-engineering-page .ce-principle__ruler { display:flex; flex-direction:column; justify-content:center; gap:clamp(2px,.21vw,4px); width:clamp(1.75rem,2.3vw,2.75rem); height:clamp(2rem,2.4vw,2.875rem); }
.central-engineering-page .ce-principle__ruler i { display:block; width:100%; height:4px; border:1px solid var(--ce-gold); border-radius:3px; }
.central-engineering-page .ce-principle__icon>img { width:2.92vw; height:2.92vw; max-width:3.5rem; max-height:3.5rem; object-fit:contain; }
.central-engineering-page .ce-principle h3 { width:100%; max-width:100%; margin:clamp(.35rem,.73vw,.875rem) 0 clamp(.35rem,1.2vw,1.5rem); color:var(--ce-ink); font:400 clamp(.8rem,1.406vw,1.6875rem)/1.15 'Playfair Display',Georgia,serif; }
.central-engineering-page .ce-principle p { max-width:min(15rem,14.85vw); margin:0; color:#27232d; font:300 clamp(.64rem,.9375vw,1.125rem)/1.22 'DM Sans',Arial,sans-serif; }
.central-engineering-page .ce-principle:nth-child(1) p { max-width:min(13.8rem,11.51vw); }
.central-engineering-page .ce-principle:nth-child(2) p { max-width:min(17.8rem,14.85vw); }
.central-engineering-page .ce-principle:nth-child(3) p,.central-engineering-page .ce-principle:nth-child(4) p { max-width:min(16.6rem,13.8vw); }
.central-engineering-page .ce-principle:nth-child(5) p { max-width:min(15rem,12.5vw); }
.central-engineering-page .ce-principle:nth-child(6) p { max-width:min(16rem,13.33vw); }
.central-engineering-page .ce-principles__connector { position:absolute; z-index:0; top:24%; left:15.625%; width:65.625%; max-width:none; height:auto; opacity:.9; pointer-events:none; }
.central-engineering-page .ce-transition-space { height:8.65vw; min-height:3rem; }
@media (min-width:1200px) {
  /* The Figma connector uses slightly uneven tracks; align text columns to those exact dividers. */
  .central-engineering-page .ce-principles__panel>.row { display:flex; box-sizing:border-box; padding-left:1.667vw; }
  .central-engineering-page .ce-principles__panel>.row>.ce-principle { flex:0 0 auto; width:auto; }
  .central-engineering-page .ce-principles__panel>.row>.ce-principle:nth-child(1) { width:14.195%; }
  .central-engineering-page .ce-principles__panel>.row>.ce-principle:nth-child(2) { width:15.996%; }
  .central-engineering-page .ce-principles__panel>.row>.ce-principle:nth-child(3) { width:16.684%; }
  .central-engineering-page .ce-principles__panel>.row>.ce-principle:nth-child(4) { width:16.843%; }
  .central-engineering-page .ce-principles__panel>.row>.ce-principle:nth-child(5) { width:17.161%; }
  .central-engineering-page .ce-principles__panel>.row>.ce-principle:nth-child(6) { width:19.121%; }
}

.central-engineering-page .ce-industries { position:relative; height:33.55vw; min-height:24rem; max-height:40.25rem; overflow:hidden; background:#100f18; color:#fff; }
.central-engineering-page .ce-industries__image { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; }
.central-engineering-page .ce-industries__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.68) 26%,rgba(0,0,0,.08) 57%,rgba(0,0,0,0) 100%); }
.central-engineering-page .ce-industries__content { position:absolute; z-index:1; inset:20.5% 0 auto; }
.central-engineering-page .ce-industries h2 { margin:0 0 clamp(.75rem,1.1vw,1.3rem); color:#fff; font:500 clamp(2rem,2.604vw,3.125rem)/1.18 'Playfair Display',Georgia,serif; }
.central-engineering-page .ce-industries p { max-width:34rem; margin:0 0 clamp(1.25rem,1.8vw,2.15rem); color:#fff; font:400 clamp(.82rem,1.04vw,1.25rem)/1.3 'DM Sans',Arial,sans-serif; }

.central-engineering-page .ce-footer { min-height:22.6vw; padding:clamp(2rem,3.33vw,4rem) 0 clamp(1.6rem,2.4vw,2.9rem); background:#050505; color:#fff; }
.central-engineering-page .ce-footer__main { min-height:8.3vw; }
.central-engineering-page .ce-footer__brand img { display:block; width:clamp(7.5rem,8.12vw,9.75rem); height:auto; object-fit:contain; }
.central-engineering-page .ce-footer__nav { display:flex; align-items:center; justify-content:center; gap:clamp(1rem,2.25vw,2.7rem); }
.central-engineering-page .ce-footer__nav a { color:#fff; font:600 clamp(.72rem,.94vw,1.125rem)/1 'Inter',Arial,sans-serif; text-decoration:none; }
.central-engineering-page .ce-footer__social { display:flex; justify-content:flex-end; gap:clamp(.5rem,.73vw,.875rem); margin:0; padding:0; list-style:none; }
.central-engineering-page .ce-footer__social a { position:relative; display:grid; place-items:center; width:clamp(1.75rem,2.58vw,3.1rem); aspect-ratio:1; }
.central-engineering-page .ce-footer__social a>img:first-child { position:absolute; inset:0; width:100%; height:100%; }
.central-engineering-page .ce-footer__social .ce-footer__social-icon { position:relative; z-index:1; width:38%; height:38%; object-fit:contain; }
.central-engineering-page .ce-footer__copyright { display:flex; align-items:center; justify-content:center; gap:.4rem; margin:4.6vw 0 0; color:#fff; font:500 clamp(.72rem,.94vw,1.125rem)/1 'DM Sans',Arial,sans-serif; }
.central-engineering-page .ce-footer__copyright img { width:clamp(1rem,1.04vw,1.25rem); max-width:100%; height:auto; }

@media (max-width:1199.98px) {
  .central-engineering-page .ce-story { height:auto; min-height:0; padding-bottom:5rem; overflow:hidden; }
.central-engineering-page .ce-story__curves { top:24%; width:145%; left:-22%; }
  .central-engineering-page .ce-story__intro { position:relative; height:auto; padding-top:4.5rem; }
  .central-engineering-page .ce-story__copy { padding-top:0; }
  .central-engineering-page .ce-story__product-wrap { min-height:clamp(20rem,42vw,32rem); }
  .central-engineering-page .ce-story__product { top:0; right:0; width:min(58vw,52rem); }
  .central-engineering-page .ce-connected { position:relative; inset:auto; margin-top:2rem; }
  .central-engineering-page .ce-cards { width:min(84vw,70rem); margin-top:3rem; }
  .central-engineering-page .ce-card { flex-basis:calc((100% - 2rem) / 3); height:clamp(20rem,37vw,30rem); }
  .central-engineering-page .ce-principles { min-height:0; padding-top:4rem; padding-bottom:4rem; }
  .central-engineering-page .ce-promise { min-height:0; }
  .central-engineering-page .ce-principles__panel { min-height:0; margin-top:3rem; padding:2.5rem 1.25rem; }
  .central-engineering-page .ce-principle { min-height:12rem; padding-block:1rem; }
  .central-engineering-page .ce-principle__icon { width:4.5rem; height:4.5rem; }
  .central-engineering-page .ce-principle__icon>img { width:2.75rem; height:2.75rem; }
  .central-engineering-page .ce-principle p,.central-engineering-page .ce-principle:nth-child(n) p { max-width:min(100%,18rem); }
  .central-engineering-page .ce-principle:nth-child(3)::after { display:none; }
  .central-engineering-page .ce-principles__connector { display:none; }
  .central-engineering-page .ce-transition-space { height:4rem; }
  .central-engineering-page .ce-industries { height:clamp(27rem,48vw,39rem); }
  .central-engineering-page .ce-footer { min-height:0; }
  .central-engineering-page .ce-footer__main { min-height:0; row-gap:2rem; }
  .central-engineering-page .ce-footer__copyright { margin-top:3rem; }
}
@media (max-width:767.98px) {
  .central-engineering-page { --ce-page-gutter:1.25rem; }
  .central-engineering-page .ce-shell { padding-inline:1.25rem; }
  .central-engineering-page .ce-site-header { position:relative; }
  .central-engineering-page .ce-hero { height:clamp(34rem,112vw,45rem); }
  .central-engineering-page .ce-hero__image { object-position:58% center; }
  .central-engineering-page .ce-hero__content { bottom:3rem; }
  .central-engineering-page .ce-hero h1 { font-size:clamp(2.2rem,8vw,3rem); }
  .central-engineering-page .ce-story__intro { padding-top:3.5rem; }
  .central-engineering-page .ce-story__copy h2 { font-size:2.25rem; }
  .central-engineering-page .ce-story__copy p { font-size:1rem; }
  .central-engineering-page .ce-story__product-wrap { min-height:15rem; }
  .central-engineering-page .ce-story__product { right:-.75rem; width:94vw; }
.central-engineering-page .ce-story__curves { top:28%; left:-22%; width:145%; }
  .central-engineering-page .ce-connected { margin-top:1rem; }
  .central-engineering-page .ce-connected__heading h2 { font-size:1.9rem; }
  .central-engineering-page .ce-connected__heading p { max-width:32rem; }
  .central-engineering-page .ce-cards { width:100%; margin-top:2rem; }
  .central-engineering-page .ce-cards__track { justify-content:flex-start; gap:.9rem; }
  .central-engineering-page .ce-card { flex-basis:80%; height:clamp(22rem,95vw,29rem); }
  .central-engineering-page .ce-card h3 { font-size:1.1rem; }
  .central-engineering-page .ce-cards__arrow--prev { left:-.55rem; }
  .central-engineering-page .ce-cards__arrow--next { right:-.55rem; }
  .central-engineering-page .ce-promise { font-size:1.65rem; }
  .central-engineering-page .ce-principles__panel { margin-top:2rem; padding:1rem .65rem; }
  .central-engineering-page .ce-principle { min-height:11.5rem; padding-inline:.5rem; }
  .central-engineering-page .ce-principle:nth-child(3)::after { display:block; }
  .central-engineering-page .ce-principle:nth-child(2n)::after { display:none; }
  .central-engineering-page .ce-principle h3 { font-size:.95rem; }
  .central-engineering-page .ce-principle p { font-size:.72rem; }
  .central-engineering-page .ce-industries { height:32rem; }
  .central-engineering-page .ce-industries__image { object-position:63% center; }
  .central-engineering-page .ce-industries__shade { background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.4) 75%,rgba(0,0,0,.14)); }
  .central-engineering-page .ce-industries__content { inset:15% 0 auto; }
  .central-engineering-page .ce-industries h2 { font-size:2.25rem; }
  .central-engineering-page .ce-footer { padding:2.5rem 0 1.5rem; }
  .central-engineering-page .ce-footer__main { text-align:center; }
  .central-engineering-page .ce-footer__brand img { margin:0 auto; }
  .central-engineering-page .ce-footer__nav { flex-wrap:wrap; gap:1rem 1.35rem; }
  .central-engineering-page .ce-footer__social { justify-content:center; }
  .central-engineering-page .ce-footer__copyright { margin-top:2rem; font-size:.72rem; }
}
@media (prefers-reduced-motion:reduce) {
  .central-engineering-page .ce-promise .is-animating { animation:none; color:var(--ce-ink); }
  .central-engineering-page .ce-cards__track { transition:none; }
}

/* ---------- Research & Development footprint uses the shared trust composition ---------- */
.research-development-page .expertise-trust { min-height:min(39.531vw,47.44rem); }
.research-development-page .expertise-trust__image { top:-30.49%; left:1%; width:99.31%; height:169%; object-fit:cover; }
.research-development-page .expertise-trust__heading { top:12.4%; }
.research-development-page .expertise-trust__heading p { width:min(44.1vw,53rem); margin-top:min(.85vw,1rem); }
.research-development-page .expertise-stat--engineers { top:47.43%; left:4.90%; }
.research-development-page .expertise-stat--engineers { --expertise-stat-line:min(17.81vw,21.38rem); }
.research-development-page .expertise-stat--programmes { top:66%; left:28.91%; }
.research-development-page .expertise-stat--programmes { --expertise-stat-line:min(11.82vw,14.19rem); }
.research-development-page .expertise-stat--facilities { top:48%; left:54.63%; }
.research-development-page .expertise-stat--facilities { --expertise-stat-line:min(18.99vw,22.78rem); }
.research-development-page .expertise-stat--customers { top:64.4%; left:79.63%; }
.research-development-page .expertise-stat--customers { --expertise-stat-line:min(12.45vw,14.94rem); }
@media (max-width:991.98px) {
  .research-development-page .expertise-trust { min-height:39.531vw; }
  .research-development-page .expertise-trust__heading p { width:min(78vw,36rem); }
}

/* ---------- Research & Media landing page (Figma Media Landing Page) ---------- */
.research-media-page {
  --research-media-purple: #352b46;
  --research-media-gold: #7e6131;
  margin: 0;
  overflow-x: hidden;
  color: var(--research-media-purple);
  background: #fff;
}
.research-media-page .sitemap-site-header { height: 5.3125vw; min-height: 0; }
.research-media-page .sitemap-site-header .navbar { height: 100%; min-height: 0; padding-top: 0 !important; padding-bottom: 0 !important; }
.research-media-page .sitemap-site-header .navbar > .container { height: 100%; }
.research-media-hero { position: relative; height: clamp(34rem, 47.7vw, 57.25rem); overflow: hidden; background: #0b0814; }
.research-media-hero__image,
.research-media-careers__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.research-media-hero__image { object-position: center center; }
.research-media-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(53,43,70,.03) 32%, rgba(0,0,0,.62) 100%); }
.research-media-hero__content { position: absolute; inset: auto auto clamp(6.2rem,10.4vw,12.5rem) 4.9vw; width: min(62vw,1087px); }
.research-media-hero h1 { margin: 0; color: #fff; font-family: 'Playfair Display',Georgia,serif; font-size: clamp(2.2rem,3.125vw,3.75rem); font-weight: 500; line-height: 1.22; }
.research-media-breadcrumb { position: relative; z-index: 2; height: 2.708333vw; margin-top: -.36vw; background: var(--research-media-gold); color: #fff; }
.research-media-breadcrumb__inner { display: flex; align-items: center; gap: .7rem; height: 100%; padding-inline: 4.9vw; font-family: 'DM Sans',Arial,sans-serif; font-size: clamp(.8rem,.94vw,1.125rem); font-weight: 300; }
.research-media-breadcrumb a { color: inherit; text-decoration: none; }

.research-media-news { margin-top: 6.25vw; padding-bottom: 0; }
.research-media-news__heading,
.research-media-blogs__inner > h2,
.research-media-events__inner > h2 { margin: 0; color: var(--research-media-purple); font-family: 'Playfair Display',Georgia,serif; font-size: clamp(1.75rem,2.6vw,3.125rem); font-weight: 500; line-height: 1.34; text-align: center; }
.research-media-news__layout { display: grid; grid-template-columns: minmax(0,1.845fr) minmax(0,1fr); gap: 2.98%; width: 89vw; max-width: 1707px; margin: 3.125vw 4.8vw 0 6.25vw; }
.research-media-feature-column { min-width: 0; }
.research-media-feature { position: relative; min-width: 0; aspect-ratio: 1074 / 666; overflow: hidden; border-radius: clamp(.75rem,1.05vw,1.25rem); background: var(--research-media-purple); color: #fff; }
.research-media-feature__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 31%; }
.research-media-feature__shade { position: absolute; inset: 20% 0 0; background: linear-gradient(180deg,transparent 8%,rgba(0,0,0,.76) 100%); }
.research-media-feature__copy { position: absolute; right: 5.6%; bottom: 8.5%; left: 5.6%; }
.research-media-feature__category,
.research-media-blog-card__category { margin: 0 0 .6rem; color: #b38d45; font-family: 'Inter',Arial,sans-serif; font-size: clamp(.65rem,.87vw,1rem); font-weight: 700; letter-spacing: .025em; }
.research-media-feature h3 { max-width: 82%; margin: 0 0 .55rem; color: #fff; font-family: 'Playfair Display',Georgia,serif; font-size: clamp(1.55rem,2.6vw,3.125rem); font-weight: 500; line-height: 1.14; }
.research-media-feature__summary { max-width: 76%; margin: 0; color: #fff; font-family: 'DM Sans',Arial,sans-serif; font-size: clamp(.82rem,1.04vw,1.25rem); font-weight: 300; line-height: 1.45; }
.research-media-round-link { display: inline-flex; align-items: center; justify-content: center; width: clamp(2.25rem,2.67vw,3.2rem); height: clamp(2.25rem,2.67vw,3.2rem); border: 0; border-radius: 50%; background: var(--research-media-gold); color: #fff; font: 400 clamp(1.2rem,1.45vw,1.75rem)/1 'DM Sans',Arial,sans-serif; text-decoration: none; transition: background-color .2s ease,transform .2s ease; }
.research-media-feature__copy > .research-media-round-link { position: absolute; right: 0; bottom: 0; }
.research-media-round-link:hover,
.research-media-round-link:focus-visible { transform: translateX(2px); background: #9a7940; color: #fff; }
.research-media-related { min-width: 0; padding-top: .1rem; }
.research-media-related > h3 { margin: 0 0 clamp(.65rem,.94vw,1.125rem); color: var(--research-media-purple); font-family: 'Playfair Display',Georgia,serif; font-size: clamp(1.15rem,1.4vw,1.7rem); font-weight: 500; line-height: 1.25; }
.research-media-related__list { display: grid; gap: clamp(1rem,1.12vw,1.35rem); }
.research-media-related-card { position: relative; display: grid; grid-template-columns: 34% minmax(0,1fr); gap: 6.4%; min-height: clamp(7.5rem,8.3vw,9.95rem); overflow: hidden; align-items: center; }
.research-media-related-card::after { position: absolute; top: 0; bottom: 0; left: 22.2%; width: 12.4%; background: linear-gradient(90deg,rgba(255,255,255,0),#fff 96%); content: ''; pointer-events: none; }
.research-media-related-card > img { width: 100%; height: 100%; min-height: inherit; border-radius: .5rem; object-fit: cover; }
.research-media-related-card__copy { min-width: 0; padding-right: .4rem; }
.research-media-related-card h4 { margin: 0 0 .5rem; color: var(--research-media-purple); font-family: 'DM Sans',Arial,sans-serif; font-size: clamp(.82rem,1.3vw,1.56rem); font-weight: 300; line-height: 1.2; }
.research-media-related-card a { color: var(--research-media-gold); font-family: 'DM Sans',Arial,sans-serif; font-size: clamp(.7rem,.83vw,1rem); text-decoration: none; }
.research-media-related-card a span { padding-left: .25rem; font-size: 1.15em; }

.research-media-blogs { margin-top: 6.25vw; }
.research-media-blogs__inner { width: 82.1vw; max-width: 1576px; margin-inline: auto; text-align: center; }
.research-media-blog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3.17%; margin: 3.6vw 0 0; text-align: left; }
.research-media-blog-card { min-width: 0; min-height: 30.05vw; max-height: 577px; overflow: hidden; border: 1px solid #c4c0c7; border-radius: clamp(.75rem,1.12vw,1.34rem); background: var(--research-media-purple); color: #fff; }
.research-media-blog-card__image-link { position: relative; display: block; width: 100%; aspect-ratio: 492 / 277; overflow: hidden; background: #171320; }
.research-media-blog-card__image-link > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.research-media-blog-card__image-link:hover > img,
.research-media-blog-card__image-link:focus-visible > img { transform: scale(1.035); }
.research-media-blog-card__image-link .research-media-round-link { position: absolute; top: clamp(1rem,1.8vw,2.15rem); right: clamp(1rem,1.8vw,2.15rem); }
.research-media-blog-card__body { padding: clamp(1.25rem,1.78vw,2.15rem) clamp(1.25rem,1.82vw,2.2rem) 1.25rem; }
.research-media-blog-card__category { margin-bottom: .65rem; font-size: clamp(.65rem,.87vw,1rem); }
.research-media-blog-card h3 { margin: 0 0 .65rem; color: #fff; font-family: 'Playfair Display',Georgia,serif; font-size: clamp(1.2rem,1.31vw,1.57rem); font-weight: 500; line-height: 1.3; }
.research-media-blog-card__body > p:last-child { margin: 0; color: rgba(255,255,255,.9); font-family: 'DM Sans',Arial,sans-serif; font-size: clamp(.78rem,.97vw,1.16rem); font-weight: 300; line-height: 1.45; }
.research-media-button { position: relative; display: inline-flex; align-items: center; min-width: 11.145833vw; height: 2.65625vw; padding: 0 1.25vw; border: 1px solid var(--research-media-gold); border-radius: 4px; background: #fff; color: var(--research-media-gold); font-family: 'DM Sans',Arial,sans-serif; font-size: 1.041667vw; font-weight: 500; text-decoration: none; transition: color .2s ease,background-color .2s ease; }
.research-media-button--wide { min-width: 13.489583vw; }
.research-media-button--compact { min-width: 10.55vw; }
.research-media-button__divider { position: absolute; top: 10%; right: 26.5%; width: 1px; height: 80%; background: var(--research-media-gold); }
.research-media-button > img { position: absolute; right: 8%; width: clamp(1.25rem,1.5vw,1.8rem); height: auto; }
.research-media-button:hover,
.research-media-button:focus-visible { background: var(--research-media-gold); color: #fff; }
.research-media-button:hover .research-media-button__divider,
.research-media-button:focus-visible .research-media-button__divider { background: #fff; }
.research-media-button:hover > img,
.research-media-button:focus-visible > img { filter: brightness(0) invert(1); }
.research-media-feature-column > .research-media-button { display: flex; width: fit-content; margin-top: .625vw; margin-left: 69.3%; }
.research-media-blogs__inner > .research-media-button { margin-top: 4.48vw; }

.research-media-events { margin-top: 6.25vw; }
.research-media-events__inner { text-align: center; }
.research-media-event-list { display: grid; gap: 2vw; width: 79.8vw; max-width: 1532px; margin: 2.92vw auto 0; text-align: left; }
.research-media-event-card { position: relative; height: 18.9vw; max-height: 363px; min-height: 15rem; overflow: hidden; border: 1px solid #c9c6cb; border-radius: clamp(.75rem,1.04vw,1.25rem); background: #fff; color: var(--research-media-purple); }
.research-media-event-card--dark { background: var(--research-media-purple); color: #fff; }
.research-media-event-card__image { position: absolute; inset: 0 auto 0 0; width: 42%; height: 100%; object-fit: cover; object-position: center 42%; }
.research-media-event-card__shade { position: absolute; inset: 0 auto 0 30%; width: 30%; background: linear-gradient(90deg,transparent 0%,#fff 94%); opacity: .99; }
.research-media-event-card--dark .research-media-event-card__shade { background: linear-gradient(90deg,transparent 0%,var(--research-media-purple) 94%); }
.research-media-event-card__date { position: absolute; top: 23%; left: 35.7%; width: 13%; margin: 0; color: inherit; font-family: 'Playfair Display',Georgia,serif; font-size: clamp(1.7rem,2.35vw,2.82rem); line-height: 1.24; }
.research-media-event-card__details { position: absolute; top: 18%; left: 54.5%; width: 31%; }
.research-media-event-card__details h3 { margin: 0 0 clamp(.65rem,.9vw,1.1rem); font-family: 'Playfair Display',Georgia,serif; font-size: clamp(1.05rem,1.4vw,1.7rem); font-weight: 500; line-height: 1.2; }
.research-media-event-card__details p,
.research-media-event-card__location { margin: 0; font-family: 'DM Sans',Arial,sans-serif; font-size: clamp(.78rem,.94vw,1.125rem); font-weight: 300; line-height: 1.45; }
.research-media-event-card__location { position: absolute; top: 61%; left: 35.9%; width: 17%; opacity: .82; }
.research-media-event-card__location span { position: relative; display: inline-block; width: .72em; height: .72em; margin: 0 .5em .1em 0; border: 1px solid currentColor; border-radius: 65% 65% 65% 0; transform: rotate(-45deg); }
.research-media-event-card__location span::after { position: absolute; top: 28%; left: 28%; width: 32%; height: 32%; border: 1px solid currentColor; border-radius: 50%; content: ''; }
.research-media-event-card__action { position: absolute; bottom: 24%; left: 66.8%; display: inline-flex; align-items: center; justify-content: center; width: clamp(2.5rem,2.5vw,3rem); height: clamp(2.5rem,2.5vw,3rem); border-radius: 50%; background: var(--research-media-gold); color: #fff; font: 400 1.25rem/1 'DM Sans',sans-serif; text-decoration: none; }
.research-media-event-card__action:hover { color: #fff; background: #9a7940; }
.research-media-events__inner > .research-media-button { margin-top: 2.35vw; }

.research-media-careers { position: relative; height: 37.55vw; max-height: 721px; min-height: 28rem; margin-top: 6.25vw; overflow: hidden; background: #08070c; color: #fff; }
.research-media-careers__image { object-position: center 52%; }
.research-media-careers__shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.96),rgba(0,0,0,.76) 26%,rgba(0,0,0,.1) 58%,rgba(0,0,0,.03)); }
.research-media-careers__content { position: absolute; top: 15.65%; left: 5.05%; width: min(32vw,613px); }
.research-media-careers h2 { margin: 0 0 clamp(1rem,1.25vw,1.5rem); color: #fff; font-family: 'Playfair Display',Georgia,serif; font-size: clamp(2rem,2.6vw,3.125rem); font-weight: 700; line-height: 1.2; }
.research-media-careers__content > p { max-width: 457px; margin: 0 0 clamp(1.25rem,1.56vw,1.875rem); color: #fff; font-family: 'DM Sans',Arial,sans-serif; font-size: clamp(.95rem,1.15vw,1.375rem); font-weight: 300; line-height: 1.4; }
.research-media-button--light { color: var(--research-media-gold); }

.research-media-page .research-media-footer { position: relative; height: 22.6vw; min-height: 0; max-height: 434px; overflow: hidden; background: #000; color: #fff; }
.research-media-footer__inner { position: relative; width: 84%; height: 100%; margin-inline: auto; }
.research-media-footer__brand { position: absolute; top: 14.5%; left: 0; display: block; width: clamp(7.25rem,8.18vw,9.82rem); }
.research-media-footer__brand img { display: block; width: 100%; height: auto; }
.research-media-page .research-media-footer .site-footer__nav { position: absolute; top: 22.6%; left: 30%; gap: clamp(1rem,2.5vw,3rem); }
.research-media-page .research-media-footer .site-footer__nav a { font-size: clamp(.8rem,.94vw,1.125rem); }
.research-media-page .research-media-footer .site-footer__social { position: absolute; top: 21%; right: 0; gap: clamp(.5rem, .9vw, 1.1rem); }
.research-media-page .research-media-footer .site-footer__social a,
.research-media-page .research-media-footer .site-footer__social li > span { width: clamp(2.1rem,2.58vw,3.1rem); height: clamp(2.1rem,2.58vw,3.1rem); }
.research-media-page .research-media-footer .site-footer__copyright { position: absolute; top: 49.8%; left: 50%; margin: 0; transform: translateX(-50%); color: #fff; font-size: clamp(.75rem,.94vw,1.125rem); white-space: nowrap; }

@media (max-width: 1199.98px) {
  .research-media-breadcrumb { height: 2.7rem; margin-top: -.35rem; }
  .research-media-button { min-width: 12rem; min-height: 44px; height: auto; padding-block: .65rem; font-size: .95rem; }
  .research-media-button--wide { min-width: 14rem; }
  .research-media-button--compact { min-width: 11.5rem; }
  .research-media-feature-column > .research-media-button { margin-top: .75rem; margin-left: auto; }
  .research-media-page .sitemap-site-header { height: 76px; min-height: 76px; }
  .research-media-page .sitemap-site-header .navbar > .container { min-height: 76px; }
  .research-media-news { margin-top: 4rem; padding-bottom: 3.5rem; }
  .research-media-news__layout { grid-template-columns: minmax(0,1.25fr) minmax(15rem,.75fr); gap: 1.5rem; width: 92%; margin: 2.5rem auto 0; }
  .research-media-feature { min-height: 28rem; aspect-ratio: auto; }
  .research-media-related-card { min-height: 7.25rem; gap: 1rem; }
  .research-media-related-card h4 { font-size: .9rem; }
  .research-media-blog-grid { gap: 1.25rem; margin-top: 2.5rem; }
  .research-media-blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .research-media-blog-card { min-height: 31rem; max-height: none; }
  .research-media-blog-card__body { padding: 1.5rem; }
  .research-media-event-list { width: 90%; margin-top: 2.5rem; }
  .research-media-event-card { height: 21rem; max-height: none; }
  .research-media-event-card__date { left: 34%; width: 17%; }
  .research-media-event-card__location { left: 34%; width: 19%; }
  .research-media-event-card__details { left: 55%; width: 34%; }
  .research-media-event-card__action { left: 68%; }
  .research-media-page .research-media-footer { height: auto; min-height: 18rem; max-height: none; }
  .research-media-footer__inner { display: grid; grid-template-columns: minmax(0,1fr) auto; align-content: start; gap: 1.5rem; width: 88%; height: auto; padding: 2.5rem 0; }
  .research-media-footer__brand,
  .research-media-page .research-media-footer .site-footer__nav,
  .research-media-page .research-media-footer .site-footer__social,
  .research-media-page .research-media-footer .site-footer__copyright { position: static; transform: none; }
  .research-media-page .research-media-footer .site-footer__nav { grid-column: 1; flex-wrap: wrap; gap: .8rem 1.1rem; }
  .research-media-page .research-media-footer .site-footer__social { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .research-media-page .research-media-footer .site-footer__copyright { grid-column: 1 / -1; margin: 0; text-align: center; }
}
@media (max-width: 767.98px) {
  .research-media-page main { width: 100vw !important; max-width: 100vw !important; }
  .research-media-page main > section { width: 100vw; max-width: 100vw; overflow-x: clip; }
  .research-media-page .navbar-toggler { display: block; margin-left: auto; border: 1px solid rgba(32,24,45,.22); }
  .research-media-page .navbar-toggler-icon { background: linear-gradient(#20182d 0 0) top/100% 2px no-repeat,linear-gradient(#20182d 0 0) center/100% 2px no-repeat,linear-gradient(#20182d 0 0) bottom/100% 2px no-repeat; }
  .research-media-page main,
  .research-media-news,
  .research-media-blogs,
  .research-media-events { width: 100%; max-width: 100vw; }
  .research-media-hero { height: min(82svh,42rem); min-height: 32rem; }
  .research-media-hero__image { object-position: 60% center; }
  .research-media-hero__content { right: 1.25rem; bottom: 5rem; left: 1.25rem; width: auto; }
  .research-media-hero h1 { max-width: 100%; overflow-wrap: anywhere; font-size: clamp(1.25rem,6.5vw,2.25rem); line-height: 1.25; }
  .research-media-hero h1 > span:nth-of-type(2) { display: block; }
  .research-media-breadcrumb__inner { padding-inline: 1.25rem; }
  .research-media-news { margin-top: 3rem; padding-bottom: 0; }
  .research-media-news__heading,
  .research-media-blogs__inner > h2,
  .research-media-events__inner > h2 { box-sizing: border-box; width: 100%; max-width: 100%; padding-inline: 1rem; font-size: clamp(1.7rem,7vw,2.35rem); overflow-wrap: anywhere; white-space: normal; }
  .research-media-news__layout { box-sizing: border-box; display: flex; flex-direction: column; gap: 2rem; width: calc(100vw - 2.5rem) !important; max-width: calc(100vw - 2.5rem) !important; margin: 2rem 1.25rem 0 !important; }
  .research-media-feature-column,
  .research-media-feature,
  .research-media-related { box-sizing: border-box; flex: 0 0 100%; width: 100% !important; max-width: 100% !important; }
  .research-media-feature-column,
  .research-media-feature { box-sizing: border-box; }
  .research-media-feature { width: 100% !important; min-height: 31rem; }
  .research-media-feature__copy { bottom: 7%; }
  .research-media-feature h3 { max-width: 88%; font-size: clamp(1.65rem,7vw,2.2rem); }
  .research-media-feature__summary { max-width: 90%; font-size: .95rem; }
  .research-media-feature-column > .research-media-button { margin-inline: auto; }
  .research-media-related-card { width: 100%; min-width: 0; min-height: 7.5rem; grid-template-columns: minmax(0,33%) minmax(0,1fr); gap: .85rem; }
  .research-media-related-card > img { min-width: 0; }
  .research-media-related-card__copy { min-width: 0; overflow-wrap: anywhere; }
  .research-media-related-card h4 { font-size: .94rem; }
  .research-media-blogs,
  .research-media-events,
  .research-media-careers { margin-top: 4.5rem; }
  .research-media-blogs__inner { box-sizing: border-box; width: 100vw !important; max-width: 100vw !important; margin-inline: 0; padding-inline: 1.25rem; }
  .research-media-blog-grid { box-sizing: border-box; width: 100% !important; grid-template-columns: minmax(0,1fr); gap: 1.25rem; margin: 2rem 0 0; }
  .research-media-blog-grid > .research-media-blog-card { box-sizing: border-box; min-width: 0; width: 100% !important; max-width: 100% !important; flex: none; }
  .research-media-blog-card { box-sizing: border-box; min-height: 0; overflow-x: clip; }
  .research-media-blog-card__image-link { aspect-ratio: 1.78; }
  .research-media-blog-card__body { padding: 1.35rem 1.45rem 1.6rem; }
  .research-media-blog-card h3 { font-size: 1.3rem; }
  .research-media-blog-card h3,
  .research-media-blog-card__body > p { max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
  .research-media-blog-card__body > p:last-child { font-size: .95rem; }
  .research-media-blogs__inner > .research-media-button { margin-top: 2rem; }
  .research-media-events__inner { box-sizing: border-box; width: 100%; padding-inline: 1.25rem; }
  .research-media-event-list { box-sizing: border-box; width: 100% !important; max-width: 100%; margin: 2rem 0 0; gap: 1rem; }
  .research-media-event-card { width: 100% !important; max-width: 100%; box-sizing: border-box; height: auto; min-height: 29rem; padding-top: 13rem; }
  .research-media-event-card__image { width: 100%; height: 13.5rem; }
  .research-media-event-card__shade { inset: 7rem 0 auto; width: 100%; height: 6.5rem; background: linear-gradient(180deg,transparent,#fff 92%); }
  .research-media-event-card--dark .research-media-event-card__shade { background: linear-gradient(180deg,transparent,var(--research-media-purple) 92%); }
  .research-media-event-card__date { top: 13.5rem; left: 1.25rem; width: 28%; font-size: 1.65rem; }
  .research-media-event-card__details { top: 15rem; left: 37%; width: 58%; }
  .research-media-event-card__details h3 { font-size: 1.2rem; }
  .research-media-event-card__details p { font-size: .86rem; }
  .research-media-event-card__location { top: auto; bottom: 1.2rem; left: 1.25rem; width: 62%; font-size: .85rem; }
  .research-media-event-card__action { right: 1.25rem; bottom: 1rem; left: auto; }
  .research-media-events__inner > .research-media-button { margin-top: 1.75rem; }
  .research-media-careers { min-height: 32rem; height: 75vw; max-height: 38rem; }
  .research-media-careers__image { object-position: 68% center; }
  .research-media-careers__shade { background: linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.55) 64%,rgba(0,0,0,.2)); }
  .research-media-careers__content { top: 13%; right: 1.25rem; left: 1.25rem; width: auto; }
  .research-media-careers h2 { font-size: 2.3rem; }
  .research-media-careers__content > p { max-width: 23rem; font-size: 1rem; }
  .research-media-page .research-media-footer { height: auto; min-height: 0; max-height: none; padding: 2.5rem 0 1.5rem; }
  .research-media-footer__inner { display: flex; flex-direction: column; align-items: flex-start; gap: 1.65rem; width: auto; height: auto; margin-inline: 1.25rem; }
  .research-media-footer__brand,
  .research-media-page .research-media-footer .site-footer__nav,
  .research-media-page .research-media-footer .site-footer__social,
  .research-media-page .research-media-footer .site-footer__copyright { position: static; transform: none; }
  .research-media-footer__brand { width: 8rem; }
  .research-media-page .research-media-footer .site-footer__nav { flex-wrap: wrap; gap: .8rem 1.1rem; }
  .research-media-page .research-media-footer .site-footer__social { margin-top: 0; }
  .research-media-page .research-media-footer .site-footer__copyright { margin: 0; text-align: left; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .research-media-page *, .research-media-page *::before, .research-media-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Keep deliberately oversized artwork and slider tracks from expanding the
   mobile layout viewport on the three routes verified with horizontal scroll. */
@media (max-width: 767.98px) {
  html.mobile-overflow-guard { overflow-x: hidden; }

  body.joint-page,
  body.expertise-page,
  body.research-development-page,
  body.smart-factories-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
  }

  .sf-footer .site-footer__nav {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    gap: .8rem 1rem;
  }
}

@media (min-width: 576px) and (max-width: 991.98px) {
  .contact-page .contact-enquiry__heading {
    max-width: min(86vw, 61.35vw);
    white-space: normal;
  }

  .joint-page .joint-cta {
    width: 100%;
    height: clamp(28rem, 65vw, 40rem);
    min-height: 0;
    aspect-ratio: auto;
  }

  .research-development-page .expertise-trust__stats {
    position: absolute;
    inset: auto 5% 2rem;
    display: grid;
    width: auto;
    height: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem 2rem;
    padding: 0;
  }

  .research-development-page .expertise-trust__stats .expertise-stat {
    position: relative;
    inset: auto;
    min-width: 0;
    min-height: 9rem;
    padding-left: clamp(3rem, 5vw, 4rem);
  }

  .research-development-page .rd-platforms__arrow--left { left: 0; }
  .research-development-page .rd-platforms__arrow--right { right: 0; }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .joint-page .joint-cta {
    width: 100%;
    height: clamp(30rem, 42vw, 40rem);
    min-height: 0;
    aspect-ratio: auto;
  }
}

@media (max-width: 1199.98px) {
  html.mobile-overflow-guard { overflow-x: hidden; }
}

@media (max-width: 575.98px) {
  .joint-page .joint-cta {
    width: 100%;
    min-height: 0;
  }

  .research-development-page .rd-platforms__arrow--left { left: 0; }
  .research-development-page .rd-platforms__arrow--right { right: 0; }

  .research-development-page .expertise-trust__stats {
    position: absolute;
    inset: auto 1rem 2rem;
    display: grid;
    width: auto;
    height: auto;
    grid-template-columns: 1fr;
    gap: .65rem;
    padding: 0;
  }

  .research-development-page .expertise-trust__stats .expertise-stat {
    position: relative;
    inset: auto;
    min-width: 0;
    min-height: 6.75rem;
    padding-left: 2.8rem;
  }
}

/* ---------- Shared sitemap dropdown menu (hover on desktop, explicit toggle on touch) ---------- */
.navbar .nav-item.dropdown { position: relative; }
.navbar .dropdown-toggle::after { display: none; }

.navbar .nav-item.dropdown::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 1.25rem;
}

.navbar .nav-item.dropdown > .dropdown-menu {
  position: absolute;
  inset: calc(100% + 1.25rem) auto auto 0;
  z-index: 1030;
  display: none;
  width: fit-content;
  min-width: 14.1rem;
  max-width: min(22rem, calc(100vw - 2rem));
  margin: 0;
  padding: .72rem 0;
  border: 0;
  border-radius: 12px;
  background: rgba(55, 46, 65, .84);
  box-shadow: none;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

.navbar .nav-item.dropdown:hover > .dropdown-menu,
.navbar .nav-item.dropdown:focus-within > .dropdown-menu,
.navbar .nav-item.dropdown.is-open > .dropdown-menu { display: block; }

.navbar .dropdown-item {
  padding: .43rem 1.25rem;
  color: #fff;
  font-family: 'Inter', Arial, sans-serif;
  font-size: .94rem;
  line-height: 1.35;
  white-space: normal;
  transition: background-color .18s ease, color .18s ease;
}

.navbar .dropdown-item:hover,
.navbar .dropdown-item:focus,
.navbar .dropdown-item.active {
  color: #fff;
  background: transparent;
}

.navbar .dropdown-submenu-toggle {
  display: none;
  width: 2.25rem;
  height: 2.25rem;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #7e6131;
  background: transparent;
}

.navbar .dropdown-submenu-toggle span {
  width: .48rem;
  height: .48rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .2s ease;
}

.navbar .nav-item.dropdown.is-open > .dropdown-submenu-toggle span {
  transform: rotate(225deg) translate(-1px, -1px);
}

@media (max-width: 1199.98px) {
  .navbar-expand-xl .navbar-nav .nav-item.dropdown {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .navbar-expand-xl .navbar-nav .nav-item.dropdown > .nav-link { grid-column: 1; grid-row: 1; }
  .navbar-expand-xl .navbar-nav .nav-item.dropdown > .dropdown-submenu-toggle { display: inline-flex; grid-column: 2; grid-row: 1; }

  .navbar-expand-xl .navbar-nav .nav-item.dropdown > .dropdown-menu {
    position: static;
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: .25rem 0 .45rem;
    padding: .4rem 0;
    border-radius: 10px;
    background: rgba(55, 46, 65, .94);
  }

  .navbar-expand-xl .navbar-nav .nav-item.dropdown::after { display: none; }
  .navbar-expand-xl .navbar-nav .dropdown-item { padding-left: 1rem; padding-right: 1rem; }
}

@media (hover: none) and (min-width: 1200px) {
  .navbar .dropdown-submenu-toggle { display: inline-flex; }
}

/* ---------- Home-only corrective cascade (must follow legacy component CSS) ---------- */
.home-page .accordion-industries__panel-inner--media .home-primary-cta {
  display: inline-flex;
  width: clamp(10.75rem, 11.174vw, 214.543px);
  height: clamp(2.55rem, 2.663vw, 51.129px);
  min-height: clamp(2.55rem, 2.663vw, 51.129px);
  padding: 0 !important;
}

.home-page .accordion-industries__panel-inner--media .home-primary-cta > .home-primary-cta__label {
  width: auto;
  padding-left: clamp(.75rem, .89vw, 17.09px);
}

.home-page .accordion-industries__panel-inner--media .home-primary-cta > img {
  width: clamp(1.35rem, 1.462vw, 28.071px);
  height: auto;
  margin: 0 clamp(.75rem, .917vw, 17.6px) 0 clamp(.55rem, .576vw, 11.05px);
  padding: 0;
  border: 0;
}

/* Each Home CTA has an intentional section-specific width in the source
   design. Keep those proportions; the shared component standardises only
   the controls that actually share the same internal flex layout. */
.home-page .navbar__cta.home-primary-cta {
  width: clamp(8.5rem, 10.55vw, 12.66rem);
  min-width: 0;
}

.home-page .sustainability__cta.home-primary-cta {
  width: clamp(10.75rem, 11.174vw, 214.543px);
  min-width: 0;
}

/* CMS image exports must be fully visible in every carousel slot. Position
   and sizing are reset only on Home so the cards move without clipping or
   stretching their source artwork. */
.home-page .expertise-carousel__slide img,
.home-page .expertise-carousel__slide--active img,
.home-page .expertise-carousel__slide--near-left img,
.home-page .expertise-carousel__slide--near-right img,
.home-page .expertise-carousel__slide--left img,
.home-page .expertise-carousel__slide--right img {
  position: relative;
  top: auto;
  left: auto;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  transform: none;
}

@media (min-width: 992px) {
  .home-page .accordion-industries__panel-inner--media {
    height: auto;
    aspect-ratio: 1622 / 559;
  }

  .home-page .accordion-industries__panel-inner--media > .col-lg-6:last-child {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .home-page .accordion-industries__panel-inner--media > .col-lg-6:last-child .accordion-industries__image {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center;
  }
}
button.automotive-segment-arrow {display:none;}
/* ---------- QC JNV-QC-013 (2026-10-11): header logo layout shift ----------
   Templates ship a 1x1 placeholder logo (square) until WordPress returns the
   real 525x330 logo, so the header changed height after load and pushed the
   page (CLS 0.22 on Quality & Certifications). Reserve the logo's shape up
   front; object-fit keeps any future logo undistorted inside the same box. */
body > header .navbar__logo {
  aspect-ratio: 525 / 330;
  object-fit: contain;
}

/* ==========================================================================
   GLOBAL HEADER / FOOTER LOCK (QC JNV-QC-024, 2026-10-11)
   The header and footer are one global, CMS-driven component on every page.
   Older page-specific rules (about/awards/esg, contact, smart factories,
   quality & certifications, sitemap pages) still restyled parts of it, so the
   chrome looked different per page. The rules below re-assert the standard
   design (the same values as the base .navbar / .navbar__logo / .navbar__cta /
   .site-footer rules) with a selector that outranks every page-scoped rule.
   Do not add page-scoped header/footer styles; change these instead.
   ========================================================================== */
html body > header.jnv-global-header { color: #1a1a1a !important; }

html body > header.jnv-global-header .navbar {
  height: auto !important;
  min-height: 0 !important;
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
  color: inherit !important;
}

html body > header.jnv-global-header .navbar > .container {
  width: 100% !important;
  max-width: 1728px !important;
  height: auto !important;
  min-height: 0 !important;
  margin-right: auto !important;
  margin-left: auto !important;
  padding-right: clamp(1rem, 4.91vw, 6rem) !important;
  padding-left: clamp(1rem, 4.91vw, 6rem) !important;
}

html body > header.jnv-global-header .navbar-brand {
  height: auto !important;
  margin-right: 1rem !important;
  padding-top: .3125rem !important;
  padding-bottom: .3125rem !important;
}

html body > header.jnv-global-header .navbar__logo {
  display: block !important;
  width: auto !important;
  height: clamp(2.5rem, 3.54vw, 68px) !important;
}

/* Menu link colours: one normal colour and one brand-gold active/hover colour. */
html body > header.jnv-global-header [data-sitemap-nav] > li > .nav-link { color: #000 !important; }
html body > header.jnv-global-header [data-sitemap-nav] > li > .nav-link:hover,
html body > header.jnv-global-header [data-sitemap-nav] > li > .nav-link:focus-visible,
html body > header.jnv-global-header [data-sitemap-nav] > li > .nav-link.active { color: #7e6131 !important; }

/* The header "Contact Us" button uses the GLOBAL CTA BUTTON rules below (QC-027). */

/* Footer details that page rules changed (contact page hid the divider rule). */
html body > footer.jnv-global-footer .site-footer__logo { object-fit: fill !important; }
html body > footer.jnv-global-footer .site-footer__rule {
  display: block !important;
  border: none !important;
  border-top: 1px solid rgba(255, 255, 255, 0.15) !important;
  margin: clamp(1.5rem, 3.13vw, 40px) 0 clamp(1rem, 1.56vw, 24px) !important;
}
html body > footer.jnv-global-footer .site-footer__copyright {
  margin: 0 !important;
  font-family: 'Inter', Arial, sans-serif !important;
  font-size: clamp(0.75rem, 0.73vw, 14px) !important;
  color: #999 !important;
  text-align: center !important;
}
html body > footer.jnv-global-footer .site-footer__social a { font: inherit !important; }

/* Mobile menu (hamburger) button. `.about-page` and `.expertise-internal-page`
   rules reset the icon background to none, so the three lines were invisible
   on About, Awards, ESG and Engineering Solutions. Same values as the base
   .navbar-toggler-icon rule. */
html body > header.jnv-global-header .navbar-toggler {
  padding: .25rem .75rem !important;
  border: 1px solid rgba(0, 0, 0, .15) !important;
  border-radius: 6px !important;
  background: transparent !important;
}
html body > header.jnv-global-header .navbar-toggler-icon {
  display: inline-block !important;
  width: 1.5em !important;
  height: 1.5em !important;
  vertical-align: middle !important;
  background: linear-gradient(#20182d 0 0) top/100% 2px no-repeat,
              linear-gradient(#20182d 0 0) center/100% 2px no-repeat,
              linear-gradient(#20182d 0 0) bottom/100% 2px no-repeat !important;
}

/* ==========================================================================
   GLOBAL CTA BUTTON (QC JNV-QC-027, 2026-10-12)
   Every call-to-action on the site is the same component: label | divider |
   arrow inside a 1px gold outline. Before this block there were 12 CTA
   classes with ~20 variants: different fonts (DM Sans/Inter, 12-20px), fixed
   widths with absolutely positioned parts (text-to-divider gaps of 11-76px,
   the header arrow overflowing the border), transparent or white fills and
   five different hover behaviours.
   Now: width follows the label; spacing, font, divider, arrow and hover are
   identical everywhere. `:not(#jnv-cta)` only raises specificity so this one
   rule beats the older page-scoped CTA rules (outer margins are untouched).
   To change the CTA design, edit the variables below.
   ========================================================================== */
:root {
  --jnv-cta-height: clamp(2.25rem, 2.664vw, 3.196rem); /* original header CTA height */
  --jnv-cta-font-size: clamp(0.95rem, 1.04vw, 1.25rem);
  --jnv-cta-pad-left: clamp(1rem, 1.25vw, 1.5rem);
  --jnv-cta-gap-text: clamp(0.6875rem, 0.82vw, 0.985rem);
  /* Arrow sits centred in a narrow cell right of the divider (client reference). */
  --jnv-cta-gap-arrow: clamp(0.375rem, 0.445vw, 0.535rem);
  --jnv-cta-pad-right: clamp(0.3125rem, 0.37vw, 0.445rem);
  --jnv-cta-arrow: clamp(1.25rem, 1.55vw, 1.86rem);
  /* Divider is inset from the top/bottom border, not full height. */
  --jnv-cta-divider-height: 84%;
  --jnv-cta-gold: #7e6131;
}

html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta) {
  position: relative !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: var(--jnv-cta-height) !important;
  min-height: 0 !important;
  padding: 0 var(--jnv-cta-pad-right) 0 var(--jnv-cta-pad-left) !important;
  border: 1px solid var(--jnv-cta-gold) !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--jnv-cta-gold) !important;
  font-family: 'Inter', Arial, sans-serif !important;
  font-size: var(--jnv-cta-font-size) !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  vertical-align: middle;
  cursor: pointer;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease !important;
}

/* Contact form submit sits in a CSS grid: keep it text-width, left aligned. */
html body .contact-enquiry__form > .contact-enquiry__submit:not(#jnv-cta) { justify-self: start !important; }

/* Home sustainability: the full-size circles layer (inset 0, z-index 2) sat on
   top of the "Know More" CTA and swallowed its hover/click. Let clicks pass
   through the empty layer; the circles themselves stay interactive. */
.home-page .sustainability__circles { pointer-events: none; }
.home-page .sustainability__circles > * { pointer-events: auto; }

/* Old variants drew extra dividers/fills with pseudo-elements (e.g. legacy__cta::after). */
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta)::before,
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta)::after { content: none !important; display: none !important; }

/* Label */
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta) > span:not([aria-hidden]):not([class*="divider"]) {
  position: static !important;
  inset: auto !important;
  display: block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  transform: none !important;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap !important;
  transition: color .25s ease !important;
}

/* Divider: 1px, vertically centred, inset from the border */
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta) > [class*="divider"] {
  position: static !important;
  inset: auto !important;
  display: block !important;
  flex: 0 0 1px !important;
  align-self: center !important;
  width: 1px !important;
  height: var(--jnv-cta-divider-height) !important;
  margin: 0 0 0 var(--jnv-cta-gap-text) !important;
  padding: 0 !important;
  border: 0 !important;
  background: var(--jnv-cta-gold) !important;
  opacity: 1 !important;
  transform: none !important;
  object-fit: cover !important;
  transition: background-color .25s ease !important;
}

/* Arrow */
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta) > img:not([class*="divider"]) {
  position: static !important;
  inset: auto !important;
  display: block !important;
  flex: 0 0 auto !important;
  width: var(--jnv-cta-arrow) !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 0 0 var(--jnv-cta-gap-arrow) !important;
  padding: 0 !important;
  border: 0 !important; /* old variant drew its divider as the arrow's border-left */
  transform: none !important;
  filter: none !important;
  opacity: 1 !important;
  transition: filter .25s ease !important;
}

/* One hover / keyboard-focus effect for every CTA */
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):hover,
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):focus-visible {
  border-color: var(--jnv-cta-gold) !important;
  background: var(--jnv-cta-gold) !important;
  color: #fff !important;
}
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):focus-visible { outline: 2px solid var(--jnv-cta-gold) !important; outline-offset: 3px !important; }
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):hover > [class*="divider"],
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):focus-visible > [class*="divider"] { background: #fff !important; }
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):hover > img[class*="divider"],
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):focus-visible > img[class*="divider"],
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):hover > img:not([class*="divider"]),
html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta):focus-visible > img:not([class*="divider"]) { filter: brightness(0) invert(1) !important; }

/* ===========================================================================
   GLOBAL HEADER RESPONSIVE RANGE (QC JNV-QC-028, 2026-10-15)
   The CMS menu has six primary items plus a CTA.  At 1200--1279px there is
   not enough reliable horizontal space once browser zoom, translated labels,
   or page padding are considered.  Do not squeeze or selectively hide links:
   use the same accessible hamburger navigation from phones through tablets
   and small desktops.  Desktop hover menus begin at 1280px.
   =========================================================================== */
@media (max-width: 1279.98px) {
  html body > header.jnv-global-header .navbar {
    padding-top: .75rem !important;
    padding-bottom: .75rem !important;
  }

  html body > header.jnv-global-header .navbar > .container {
    align-items: center !important;
  }

  html body > header.jnv-global-header .navbar__logo {
    height: clamp(2.25rem, 7vw, 3.25rem) !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-toggler {
    display: block !important;
    margin-left: auto !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-collapse:not(.show) {
    display: none !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-collapse.show {
    display: flex !important;
    flex-basis: 100% !important;
    width: 100% !important;
    margin-top: .75rem !important;
    padding-top: .5rem !important;
    border-top: 1px solid rgba(126, 97, 49, .28) !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav {
    flex-direction: column !important;
    width: 100% !important;
    gap: 0 !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav > .nav-item {
    width: 100% !important;
    margin: 0 !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav > .nav-item > .nav-link {
    padding: .65rem 0 !important;
    font-size: 1rem !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav .nav-item.dropdown {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav .nav-item.dropdown > .nav-link {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav .nav-item.dropdown > .dropdown-submenu-toggle {
    display: inline-flex !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav .nav-item.dropdown > .dropdown-menu {
    position: static !important;
    display: none !important;
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: .1rem 0 .45rem !important;
    padding: .4rem 0 !important;
    border-radius: 10px !important;
    background: rgba(55, 46, 65, .94) !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav .nav-item.dropdown.is-open > .dropdown-menu {
    display: block !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar-nav .dropdown-item {
    padding: .55rem 1rem !important;
  }

  html body > header.jnv-global-header .navbar-expand-xl .navbar__cta {
    margin: .65rem 0 .2rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta), html body :is(.gold-btn, .navbar__cta, .about-contact__button, .ce-button, .esg-outline-button, .legacy__cta, .sustainability__cta, .contact__submit, .awards-esg__button, .contact-enquiry__submit, .sf-cta__button, .rd-cta__button):not(#jnv-cta) > * { transition: none !important; }
}
/* ================================================================
   Awards tabs / Load More spacing (body .awards-page). The retired Awards
   page's card rules were removed 2026-10-13; these remaining rules still
   apply to Awards-2, which reuses .awards-tabs and .awards-load-more.
   ================================================================ */

.awards-page .awards-tabs {
  max-width: 866px;
  margin: clamp(1.75rem, 1.458333vw, 1.75rem) auto clamp(2.5rem, 2.34375vw, 2.8125rem);
}

.awards-page .awards-load-more {
  margin-top: clamp(2.75rem, 2.864583vw, 3.4375rem);
}

@media (max-width: 575.98px) {
  .awards-page .awards-tabs {
    max-width: 100%;
    overflow-x: auto;
    justify-content: flex-start;
  }

  .awards-page .awards-tabs button {
    flex: 0 0 auto;
    min-width: 8rem;
    padding-right: .65rem;
    padding-left: .65rem;
    white-space: nowrap;
  }
}

/* ================================================================
   Awards-2 page (frontend/awards-2.html) — Figma 587:9733
   "Final Awards and Recognitions". Medal award cards fed by the Awards
   CPT (wp-api.js renderAwards). Values are the 1920px Figma geometry:
   section spacing in vw; card internals in container-query units (cqw =
   1% of the card width) so the card keeps its proportions in the
   3-column desktop grid and the single-column phone layout.
   Hero, breadcrumb, tabs, CTA and ESG banner reuse existing components.
   ================================================================ */
.awards2-page .awards2-notable {
  padding: clamp(4rem, 7.292vw, 8.75rem) 0 0;
}

.awards2-page .awards2-appreciation {
  padding: clamp(4rem, 8.943vw, 10.73rem) 0 clamp(3rem, 2.969vw, 3.5625rem);
}

.awards2-page .awards2-notable__inner,
.awards2-page .awards2-appreciation__inner {
  width: 100%;
  margin: 0 auto;
}

.awards2-page .awards2-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-right: auto;
  margin-left: auto;
}

/* Notable row: 3 x 476.6px cards, 50px gaps (1529.8px). */
.awards2-page .awards2-grid--notable {
  width: min(79.68vw, 1530px);
  gap: min(2.604vw, 50px);
  margin-top: clamp(2rem, 2.734vw, 3.28rem);
}

/* Appreciation row: 3 x 477px cards, 72px gaps (1575px). */
.awards2-page .awards2-grid--appreciation {
  width: min(82.03vw, 1575px);
  gap: min(3.75vw, 72px);
}

/* The card is only the size container; cqw on the card itself would resolve
   against the viewport, so background/radius/padding live on __inner. */
.awards2-card {
  container-type: inline-size;
  min-width: 0;
}

.awards2-card__inner {
  height: 100%;
  border-radius: 4.765cqw;
  background: #eae4f1;
  text-align: center;
}

.awards2-card--notable .awards2-card__inner {
  padding: 5.875cqw 7cqw 5.92cqw;
}

.awards2-card--appreciation .awards2-card__inner {
  padding: 3.983cqw 7cqw 9.22cqw;
}

.awards2-card p {
  margin: 0;
}

.awards2-card__category {
  color: #7e6131;
  font: 500 4.457cqw/1.3 'DM Sans', Arial, sans-serif;
}

/* 339.2px medal; title centred on it, year at 65% of its height. */
.awards2-card__medal {
  position: relative;
  width: 71.17cqw;
  aspect-ratio: 1;
  margin: 0 auto;
}

.awards2-card--notable .awards2-card__medal {
  margin-top: 2.17cqw;
}

.awards2-card__medal img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.awards2-card__title {
  position: absolute;
  top: 50.1%;
  left: 50%;
  width: 59.6%; /* Figma title box 202px on the 339px medal: up to 3 lines clear the year */
  margin: 0;
  transform: translate(-50%, -50%);
  color: #352b46;
  /* Figma's light "The Seasons Bold" face; Playfair 500 matches its visual weight. */
  font: 500 4.616cqw/1.27 'Playfair Display', Georgia, serif;
  text-wrap: balance;
}

/* Titles over 45 characters (set by wp-api.js): 90% size, tighter leading,
   so a 4-line name still clears the year. */
.awards2-card__title--long {
  font-size: 4.15cqw;
  line-height: 1.2;
}

.awards2-card__year {
  position: absolute;
  top: 65.3%;
  right: 0;
  left: 0;
  color: #352b46;
  font: 500 4.196cqw/1.3 'DM Sans', Arial, sans-serif;
}

.awards2-card__by {
  margin-top: 2.056cqw !important;
  color: #000;
  font: 500 4.288cqw/1.3 'DM Sans', Arial, sans-serif;
}

.awards2-card__entity {
  color: #7e6131;
  font: 500 4.288cqw/1.3 'DM Sans', Arial, sans-serif;
}

.awards2-card--notable .awards2-card__entity {
  margin-top: 1.97cqw !important;
}

.awards2-card--appreciation .awards2-card__entity {
  margin-top: 4.78cqw !important;
  font-size: 4.193cqw;
}

/* Tabs: shared tab component; 866px rule (1px black, 5/5 dashes), 13px dot. */
.awards2-page .awards2-tabs {
  width: min(45.104vw, 866px);
  max-width: none;
  margin: clamp(1.75rem, 2.669vw, 3.2rem) auto clamp(2rem, 2.917vw, 3.5rem);
  border-bottom: 0;
  background: linear-gradient(to right, #000 50%, transparent 50%) left bottom / 10px 1px repeat-x;
}

.awards2-page .awards2-tabs button {
  padding: 0 .25rem clamp(.9rem, 1.133vw, 1.36rem);
  color: #dddcdc;
  font: 500 clamp(1rem, 1.302vw, 1.5625rem)/1.3 'DM Sans', Arial, sans-serif;
}

.awards2-page .awards2-tabs button.is-active {
  color: #7e6131;
}

.awards2-page .awards2-tabs button.is-active::after {
  bottom: 0;
  width: clamp(.5rem, .677vw, .8125rem);
  height: clamp(.5rem, .677vw, .8125rem);
  background: #7e6131;
  transform: translate(-50%, 50%);
}

.awards2-page .awards2-load-more {
  display: flex;
  justify-content: center;
  margin-top: clamp(2rem, 2.448vw, 2.94rem);
}

/* Until WordPress content arrives (or if it fails) the status line speaks;
   empty card prototypes, tabs and the button stay invisible. */
html:not([data-jnv-cms="ready"]) .awards2-page :is(.awards2-grid, .awards2-tabs, .awards2-load-more) {
  visibility: hidden;
}

@media (max-width: 991.98px) {
  .awards2-page .awards2-grid--notable,
  .awards2-page .awards2-grid--appreciation {
    grid-template-columns: 1fr;
    width: min(calc(100% - 2rem), 30rem);
    gap: 2rem;
  }

  .awards2-page .awards2-tabs {
    width: min(calc(100% - 2rem), 866px);
  }

  /* Match the main Awards page's single-card tablet presentation while the
     About page retains its existing Bootstrap panel and tab behaviour. */
  .about-awards__grid > .awards2-card {
    width: min(100%, 30rem);
    margin-right: auto;
    margin-left: auto;
  }
}

@media (max-width: 575.98px) {
  .awards2-page .awards2-tabs {
    overflow-x: auto;
    justify-content: flex-start;
  }

  .awards2-page .awards2-tabs button {
    flex: 0 0 auto;
    min-width: 8rem;
    padding-right: .65rem;
    padding-left: .65rem;
    white-space: nowrap;
  }
}

/* ================================================================
   ESG & Sustainability — Figma 489:3816 alignment (2026-10-13).
   Desktop values are the 1920px Figma geometry in vw (px / 19.2).
   Practice: orbit swiper positioned by script.js (initEsgPracticeCarousel)
   from the dotted outline. Efforts: slider (image + cards per slide,
   initEsgEffortsSlider); this block also styles its new markup on
   tablet / phone.
   ================================================================ */

/* Efforts swiper structure (all widths): the track moves sideways; one slide =
   panel + heading + cards + image, so they all swipe together (script.js
   initEsgEffortsSlider). Each slide clips at its own edge. */
.esg-page .esg-efforts {
  position: relative;
  display: block;
  min-height: 0;
  overflow: hidden;
  background: #fff;
}
/* Section h2 stays for the CMS / screen readers; each slide shows the heading visually. */
.esg-page .esg-efforts__copy {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.esg-page .esg-efforts__viewport { overflow: hidden; }
.esg-page .esg-efforts__slides { display: flex; will-change: transform; }
.esg-page .esg-efforts__slide { position: relative; flex: 0 0 100%; min-width: 0; overflow: hidden; }
.esg-page .is-dragging .esg-efforts__viewport { cursor: grabbing; user-select: none; }
.esg-page .esg-efforts__panel { background: #f0edf4; }
.esg-page .esg-efforts__slide-title { margin: 0; color: var(--esg-purple); font: 700 clamp(2.2rem, 2.6vw, 3.125rem)/1.04 'Playfair Display', Georgia, serif; }
.esg-page .esg-efforts__image { position: relative; overflow: hidden; }
.esg-page .esg-efforts__image img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.esg-page .esg-efforts__arrows {
  position: relative;
  z-index: 3;
  display: flex;
  justify-content: center;
  gap: .75rem;
  margin: 0;
}
.esg-page .esg-efforts__arrow {
  display: block;
  width: 64px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.esg-page .esg-efforts__arrow img { display: block; width: 100%; height: 100%; }
.esg-page .esg-efforts__arrow--next img { transform: scaleX(-1); }
.esg-page .esg-efforts__arrow:focus-visible { outline: 2px solid var(--esg-gold); outline-offset: 4px; }
/* One slide: arrows stay as designed but do nothing. */
.esg-page .esg-efforts__arrow:disabled { cursor: default; }
.esg-page .esg-effort-card p strong { font-weight: 600; }
/* Swipe: horizontal gestures go to the sliders, vertical ones still scroll the page. */
.esg-page .esg-efforts__viewport,
.esg-page .esg-practice__visual { touch-action: pan-y; }

/* Orbit swiper: script.js sets the position and size of every circle inline. */
.esg-page .is-esg-orbit-ready .esg-practice__orbit-item { animation: none !important; transition: none !important; }
.esg-page .is-esg-orbit-ready .esg-practice__orbit-item > span > img { position: absolute; max-width: none;width: 100% !important;
    height: 100% !important; border-radius: 50%; object-fit: cover; left: 0% !important; top: 0% !important; }


/* Tablet / phone: heading panel, then the active slide (cards, image). */
@media (max-width: 991.98px) {
  .esg-page .esg-efforts__slide { display: flex; flex-direction: column; }
  .esg-page .esg-efforts__panel { padding: 3.5rem clamp(1rem, 4vw, 2rem) 1.5rem; }
  .esg-page .esg-efforts__cards { display: grid; flex: 1 0 auto; align-content: start; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding: 0 clamp(1rem, 4vw, 2rem) 2.5rem; background: #f0edf4; }
  .esg-page .esg-efforts__image { min-height: 30rem; border-radius: 0; }
  .esg-page .esg-efforts__arrows { padding: 1.25rem 0 0; }
}
@media (max-width: 575.98px) {
  .esg-page .esg-efforts__cards { grid-template-columns: 1fr; }
  .esg-page .esg-efforts__image { min-height: 20rem; }
}

/* Desktop: Figma 1920 geometry */
@media (min-width: 992px) {
  /* Hero 1011px tall (header overlaps it), heading at x 94; breadcrumb 52px. */
  /* Overrides the shared hero height (936px), as the Awards page does. */
  .esg-page .esg-hero { height: 52.656vw !important; }
  .esg-page .esg-hero__content { max-width: none; margin: 0; padding: 0 4.896vw 7.188vw; }
  .esg-page .esg-breadcrumb { height: 52px !important; min-height: 52px !important; }
  .esg-page .esg-breadcrumb .container { max-width: none; padding-right: 4.896vw; padding-left: 4.896vw; }

  /* ESG as Operating Practice: section 924px; copy at (92, 120); swiper at (1013, 135). */
  .esg-page .esg-practice { height: 48.125vw; min-height: 0; }
  .esg-page .esg-practice__lines {
    top: 16.094vw;
    left: -9.063vw;
    width: 80.625vw;
    height: 55.99vw;
    opacity: 1;
    transform: scaleX(-1);
  }
  .esg-page .esg-practice__copy {
    top: 6.25vw;
    left: 4.792vw;
    width: 40vw;
    max-width: none;
    padding: 0;
  }
  .esg-page .esg-practice h2 { margin: 0; font-size: 3.125vw; line-height: 1.03; }
  .esg-page .esg-practice .esg-rule {
    top: 9.74vw;
    left: .26vw;
    width: 2px;
    height: 4.74vw;
    background: repeating-linear-gradient(to bottom, #352b46 0 6px, transparent 6px 12px);
  }
  .esg-page .esg-practice__copy p { max-width: 31.46vw; margin: 3.02vw 0 0 1.51vw; font-size: 1.302vw; line-height: 1.3; }
  /* Client PNG: button aligned with the dotted rule (x 94). */
  .esg-page .esg-practice__copy .esg-outline-button { margin: 1.85vw 0 0 .104vw; }
  .esg-page .esg-practice__visual {
    top: 7.031vw;
    left: 52.76vw;
    width: 58.906vw;
    height: 36.927vw;
  }
  .esg-page .esg-practice__outline { top: 0; left: 39.04%; width: 60.95%; height: auto; opacity: 1; }
  .esg-page .esg-practice__goal { top: 39.35%; left: 4.05%; gap: .62vw; }
  .esg-page .esg-practice__goal strong { font-size: 6.771vw; line-height: .8; }
  .esg-page .esg-practice__goal span { max-width: 6.61vw; font-size: .978vw; line-height: 1.2; }

  /* Environmental Efforts: panel 1157 x 827 (r 40) at x 0, image from x 908
     to past the right edge, cards at (84, 605), arrows at (915, 874). */
  .esg-page .esg-efforts { height: 47.19vw; }
  .esg-page .esg-efforts__viewport { position: absolute; top: 0; left: 0; width: 100%; height: 43.073vw; }
  .esg-page .esg-efforts__slides,
  .esg-page .esg-efforts__slide { height: 100%; }
  .esg-page .esg-efforts__panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 60.26vw;
    height: 100%;
    padding: 4.792vw 0 0 4.844vw;
    border-radius: 2.083vw;
  }
  .esg-page .esg-efforts__slide-title { font-size: 2.604vw; line-height: 1.04; }
  .esg-page .esg-efforts__cards {
    position: absolute;
    z-index: 2;
    top: 31.51vw;
    left: 4.375vw;
    display: flex;
    gap: .833vw;
  }
  .esg-page .esg-effort-card {
    display: flex;
    flex: 0 0 11.92vw;
    flex-direction: column;
    align-items: center;
    height: auto;
    min-height: 8.64vw;
    padding: .7vw .47vw .6vw;
    border: .8px solid var(--esg-purple);
    border-radius: .586vw;
  }
  .esg-page .esg-effort-card:nth-child(1) { flex-basis: 10.906vw; }
  .esg-page .esg-effort-card:nth-child(2) { flex-basis: 12.859vw; }
  .esg-page .esg-effort-card img { width: 1.15vw; height: 1.15vw; margin: 0 0 .85vw; }
  .esg-page .esg-effort-card p { font-size: .9375vw; line-height: 1.4; }
  .esg-page .esg-efforts__image {
    position: absolute;
    top: 0;
    left: 47.29vw;
    width: 60.26vw;
    height: 100%;
    min-height: 0;
    border-radius: 2.083vw;
  }
  .esg-page .esg-efforts__arrows { position: absolute; top: 45.52vw; left: 47.656vw; gap: .625vw; }
  .esg-page .esg-efforts__arrow { width: 3.333vw; height: 1.667vw; }

  /* Commitment: heading 1090 wide at y +115, circles 375.86 with 90.2 gaps. */
  .esg-page .esg-commitment { padding: 5.99vw 0 7.917vw; }
  .esg-page .esg-commitment h2 { max-width: 56.77vw; margin: 0 auto 7.24vw; line-height: 1.28; }
  .esg-page .esg-commitment__nodes { width: 68.13vw; margin: 0 auto; grid-template-columns: repeat(3, 19.576vw); gap: 4.698vw; }
  .esg-page .esg-node { padding: 1.5vw; }
  .esg-page .esg-node h3 { margin: 0 0 .21vw; font-size: 1.406vw; line-height: 1.3; white-space: nowrap; }
  .esg-page .esg-node p { max-width: 13.33vw; font-size: .9375vw; line-height: 1.3; }
  .esg-page .esg-commitment__connector { top: 0; width: 19.576vw; height: 19.576vw; transform: none; }
  .esg-page .esg-commitment__connector--one { left: 12.137vw; }
  .esg-page .esg-commitment__connector--two { left: 36.41vw; }

  /* Vision: 817px; copy at (99, 179); black to transparent shade, 838px. */
  .esg-page .esg-vision { min-height: 42.552vw; }
  .esg-page .esg-vision__shade { width: 43.65vw; background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0) 95.5%); }
  .esg-page .esg-vision__content { max-width: none; margin: 0; padding: 9.323vw 0 0 5.156vw; }
  .esg-page .esg-vision h2 { margin: 0; font-size: 2.604vw; line-height: 1.2; }
  .esg-page .esg-vision p { max-width: 23.8vw; margin: .9375vw 0 0; font-size: 1.146vw; line-height: 1.3; }
  .esg-page .esg-vision .esg-outline-button { margin: 1.93vw 0 0 -.26vw; }
}

/* ESG orbit on tablet / phone: the swiper places the large circle relative to
   the dotted ring (Figma ratios), so the ring is positioned to keep the large
   circle exactly where these layouts had it (tablet: left 37%, 42% wide;
   phone: left 41%, 42% wide), clear of the goal caption. */
@media (min-width: 576px) and (max-width: 991.98px) {
  .esg-page .esg-practice__outline { top: -10%; left: 49.5%; width: 74.4%; }
  /* Goal caption fully clear of the large circle (it used to sit under it). */
  .esg-page .esg-practice__goal { left: 3.5%; }
}
@media (max-width: 575.98px) {
  .esg-page .esg-practice__outline { top: .4%; left: 53.5%; width: 74.4%; }
  .esg-page .esg-practice__goal { left: 0; }
}

/* ================================================================
   Joint Venture page — typography synced to the site scale (2026-10-13).
   The page used an older scale (80px / weight 500 hero and CTA headings,
   60px section headings with negative tracking, 15-19px body). Values now
   follow the client Figma frame 489:4170 and the other pages (ESG,
   Awards-2): hero 60px bold, section headings 50px bold, intro DM Sans
   Light 22px, benefits 22px / DM Sans Light 18px, CTA copy 20px,
   breadcrumb DM Sans Light. Card text scales with the card (Figma 419px
   card: 18px copy, 27px title), so it is unchanged on desktop and no
   longer shrinks to ~10px on phones.
   ================================================================ */
.joint-page .joint-hero h1 {
  max-width: none;
  font: 700 clamp(2.45rem, 3.125vw, 3.75rem)/1.06 'Playfair Display', Georgia, serif;
  letter-spacing: normal;
}
.joint-page .joint-breadcrumb .container { font-weight: 300; }
.joint-page .joint-intro h2,
.joint-page .joint-statement h2,
.joint-page .joint-cta h2 {
  font-weight: 700;
  font-size: clamp(2.15rem, 2.604vw, 3.125rem);
  letter-spacing: normal;
}
.joint-page .joint-intro h2 { line-height: 1.2; }
.joint-page .joint-statement h2 { line-height: 1.28; }
/* Desktop: two lines like Figma (Playfair Bold runs wider than the Figma face, so 68vw rather than its 1152px). */
@media (min-width: 992px) { .joint-page .joint-statement h2 { max-width: 68vw; } }
.joint-page .joint-cta h2 { font-family: 'Playfair Display', Georgia, serif; line-height: 1.2; }
.joint-page .joint-intro p { font: 300 clamp(1rem, 1.1458vw, 1.375rem)/1.3 'DM Sans', Arial, sans-serif; }
.joint-page .joint-tabs button { font: 500 clamp(1rem, 1.0417vw, 1.25rem)/1.2 'DM Sans', Arial, sans-serif; }
.joint-page .joint-card { container-type: inline-size; }
.joint-page .joint-card__location { font-size: 4.296cqw; line-height: 1.23; }
.joint-page .joint-card h3 { font-weight: 700; font-size: 6.455cqw; line-height: 1.11; letter-spacing: normal; }
.joint-page .joint-card p { font-size: 4.296cqw; line-height: 1.23; }
.joint-page .joint-benefit h3 { font: 400 clamp(1.1rem, 1.1458vw, 1.375rem)/1.2 'Playfair Display', Georgia, serif; }
.joint-page .joint-benefit p { font: 300 clamp(.875rem, .9375vw, 1.125rem)/1.3 'DM Sans', Arial, sans-serif; }
.joint-page .joint-cta p { font: 400 clamp(1rem, 1.0417vw, 1.25rem)/1.3 'DM Sans', Arial, sans-serif; }

/* ================================================================
   ESG commitment circles — stacked, then spread on reveal (2026-10-13).
   The three circles wait stacked behind the middle one (a small peek so
   the stack reads; side circles slightly smaller, their text hidden) and
   slide out sideways the first time the section is
   reached; the dotted connectors fade in after. script.js
   initEsgCommitmentSpread adds .is-stack-ready, then .is-spread. Without
   JS or with reduced motion the circles simply show spread.
   --esg-node-shift = one column + the grid gap at each breakpoint.
   ================================================================ */
.esg-commitment__nodes { --esg-node-shift: calc(100% + clamp(2rem, 4.8vw, 5.8rem) - 12%); }
.esg-commitment__nodes .esg-node:nth-of-type(2) { z-index: 3; }
.esg-commitment__nodes.is-stack-ready:not(.is-spread) .esg-node:nth-of-type(1) { transform: translateX(var(--esg-node-shift)) scale(.88); }
.esg-commitment__nodes.is-stack-ready:not(.is-spread) .esg-node:nth-of-type(3) { transform: translateX(calc(-1 * var(--esg-node-shift))) scale(.88); }
.esg-commitment__nodes.is-stack-ready:not(.is-spread) .esg-node:not(:nth-of-type(2)) > * { opacity: 0; }
.esg-commitment__nodes.is-stack-ready:not(.is-spread) .esg-commitment__connector { opacity: 0; }
.esg-commitment__nodes.is-spread .esg-node { transition: transform 1.2s cubic-bezier(.22, 1, .36, 1); }
.esg-commitment__nodes.is-spread .esg-commitment__connector { transition: opacity .6s ease .8s; }
.esg-commitment__nodes.is-spread .esg-node > * { transition: opacity .5s ease .45s; }
@media (max-width: 991.98px) {
  .esg-commitment__nodes { --esg-node-shift: calc(100% + 1rem - 12%); }
}
@media (max-width: 575.98px) {
  /* Phone: circles sit in one column, so they stack and spread vertically. */
  .esg-commitment__nodes { --esg-node-shift: calc(100% + 2rem - 12%); }
  .esg-commitment__nodes.is-stack-ready:not(.is-spread) .esg-node:nth-of-type(1) { transform: translateY(var(--esg-node-shift)) scale(.88); }
  .esg-commitment__nodes.is-stack-ready:not(.is-spread) .esg-node:nth-of-type(3) { transform: translateY(calc(-1 * var(--esg-node-shift))) scale(.88); }
}
@media (min-width: 992px) {
  .esg-page .esg-commitment__nodes { --esg-node-shift: calc(100% + 4.698vw - 12%); }
}
@media (prefers-reduced-motion: reduce) {
  .esg-commitment__nodes .esg-node,
  .esg-commitment__nodes .esg-node > *,
  .esg-commitment__nodes .esg-commitment__connector { transform: none !important; opacity: 1 !important; transition: none !important; }
}

/* ================================================================
   Joint Venture tabs — Figma 489:4292 (2026-10-13).
   Dashed rule 809px wide (black 5px dash / 5px gap) centred under the two
   tabs (356 + 344px wide, 72px apart, labels centred), with a 13px gold dot
   under the active tab. The dot position comes from script.js
   (initJointVentureTabs sets --joint-tab-dot on the rule) and slides when
   the tab changes. Technology & Strategic Partnerships cards reuse the Joint
   Ventures card; the panel's text box only shows when it has no cards.
   ================================================================ */
.joint-page .joint-tabs__rule {
  position: relative;
  width: min(100%, 40rem);
  height: 1px;
  border: 0;
  background: repeating-linear-gradient(90deg, #000 0 5px, transparent 5px 10px);
}
.joint-page .joint-tabs__rule::after {
  position: absolute;
  top: 50%;
  left: var(--joint-tab-dot, 50%);
  width: clamp(9px, .677vw, 13px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: #7e6131;
  content: '';
  transform: translate(-50%, -50%);
  transition: left .45s cubic-bezier(.22, 1, .36, 1);
}
@media (min-width: 992px) {
  .joint-page .joint-tabs { gap: 3.75vw; }
  .joint-page .joint-tabs button { text-align: center; white-space: nowrap; }
  .joint-page .joint-tabs button:first-child { min-width: 18.542vw; }
  .joint-page .joint-tabs button:last-child { min-width: 17.917vw; }
  .joint-page .joint-tabs__rule { width: 42.135vw; }
}
@media (prefers-reduced-motion: reduce) {
  .joint-page .joint-tabs__rule::after { transition: none; }
}

/* Technology & Strategic Partnerships cards (ACF joint_partners.technology_cards). */
.joint-page .joint-technology-panel.has-cards {
  width: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  text-align: left;
}
.joint-page .joint-technology-panel.has-cards > p { display: none; }
.joint-page .joint-technology-panel:not(.has-cards) .joint-cards--technology { display: none; }
/* Any logo: contained in the card's logo area (the Joint Ventures logos keep
   their per-card Figma crops). */
.joint-page .joint-cards--technology .joint-card__logo img {
  top: 18%;
  left: 10%;
  width: 80%;
  height: 64%;
  object-fit: contain;
}

/* Joint Venture card arrow = link to the partner website (ACF arrow_link on
   both card repeaters). Without a link it stays a plain decorative circle. */
.joint-page a.joint-card__arrow { text-decoration: none; }
.joint-page a.joint-card__arrow:not([href]) { cursor: default; }
.joint-page a.joint-card__arrow[href]:hover { color: #fff; }
.joint-page a.joint-card__arrow[href]:focus-visible { outline: 2px solid #7e6131; outline-offset: 3px; }

/* ================================================================
   Group of Companies page (group-companies.html, Figma 333:2309).
   Built on the Joint Venture page components (body.joint-page: hero,
   breadcrumb, intro, cards, statement, benefits, CTA), so only the
   differences from the Joint Venture page live here: no tabs (intro copy
   1157px wide, 98px above the cards), 120px above the CTA, a 2 x 2 card grid (419px cards, 50px gaps, 888px
   wide at 1920), any company logo contained in the card's logo area, card
   copy 307px wide, and benefit icons without the white disc.
   ================================================================ */
.group-companies-page .joint-intro { max-width: none; margin-bottom: clamp(3rem, 5.104vw, 6.125rem); }
/* 120px of white between the benefits band and the CTA banner. */
.group-companies-page .joint-cta { margin-top: clamp(3rem, 6.25vw, 7.5rem); }
.group-companies-page .group-companies-cards .joint-card p { width: 73.3%; }
.group-companies-page .group-companies-cards .joint-card .joint-card__logo img {
  top: 22%;
  left: 8%;
  width: 84%;
  height: 56%;
  object-fit: contain;
}
.group-companies-page .joint-benefit__icon { background: none; }
@media (min-width: 992px) {
  /* Intro copy runs 1157px wide (2 lines) as in Figma. */
  .group-companies-page .joint-intro p { max-width: 60.26vw; }
  .group-companies-page .group-companies-cards {
    width: 46.25vw;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.604vw;
  }
}

/* ================================================================
   About Us page — typography synced to the site scale (2026-10-13).
   The page used older sizes (Trust heading 36px / 600 with negative
   tracking, 13-16px body copy, 52px / 600 Awards heading, 13px Awards tabs,
   regular-weight History statement, Inter breadcrumb). Values now follow the
   other pages (Joint Venture, ESG, Awards-2): hero 60px bold, section
   headings 50px bold, intro copy DM Sans Light 22px, small copy DM Sans
   Light 18px, card titles Playfair, breadcrumb DM Sans Light. Scoped to the
   About page only: Awards-2 shares .about-page / .about-awards /
   .about-breadcrumb, and the contact banner is shared with other pages.
   ================================================================ */
body.about-page:not(.awards-page) .about-hero h1 {
  font: 700 clamp(2.45rem, 3.125vw, 3.75rem)/1.06 'Playfair Display', Georgia, serif;
  letter-spacing: normal;
}
body.about-page:not(.awards-page) .about-breadcrumb .container,
body.about-page:not(.awards-page) .about-breadcrumb .container > * {
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 300;
}
body.about-page:not(.awards-page) .about-trust .about-display,
body.about-page:not(.awards-page) .about-awards .about-display,
body.about-page:not(.awards-page) .about-contact h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.15rem, 2.604vw, 3.125rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: normal;
}
body.about-page:not(.awards-page) .about-history__intro {
  font-size: clamp(2.15rem, 2.604vw, 3.125rem);
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: normal;
}
body.about-page:not(.awards-page) .about-trust__copy {
  font: 300 clamp(1rem, 1.1458vw, 1.375rem)/1.3 'DM Sans', Arial, sans-serif;
}
body.about-page:not(.awards-page) .about-purpose__statement p { font-weight: 300; }
body.about-page:not(.awards-page) .about-timeline__content h3 {
  font: 700 clamp(1.25rem, 1.406vw, 1.6875rem)/1.2 'Playfair Display', Georgia, serif;
}
body.about-page:not(.awards-page) .about-timeline__content p {
  font: 300 clamp(.875rem, .9375vw, 1.125rem)/1.3 'DM Sans', Arial, sans-serif;
}
body.about-page:not(.awards-page) .about-awards__tabs button {
  font: 500 clamp(1rem, 1.302vw, 1.5625rem)/1.3 'DM Sans', Arial, sans-serif;
}
body.about-page:not(.awards-page) .about-award-card h3 {
  font: 500 clamp(1.1rem, 1.146vw, 1.375rem)/1.27 'Playfair Display', Georgia, serif;
}
body.about-page:not(.awards-page) .about-award-card span,
body.about-page:not(.awards-page) .about-award-card small {
  font: 500 clamp(.875rem, 1.0417vw, 1.25rem)/1.3 'DM Sans', Arial, sans-serif;
}
body.about-page:not(.awards-page) .about-awards__empty {
  font: 300 clamp(.875rem, .9375vw, 1.125rem)/1.3 'DM Sans', Arial, sans-serif;
}
body.about-page:not(.awards-page) .about-contact p {
  font: 400 clamp(1rem, 1.0417vw, 1.25rem)/1.3 'DM Sans', Arial, sans-serif;
}
body.about-page:not(.awards-page) .about-timeline__content small {
  font: 500 clamp(.8rem, .833vw, 1rem)/1.3 'DM Sans', Arial, sans-serif;
}

/* ================================================================
   Site-wide typography sync (2026-10-13). One scale on every page:
   hero titles Playfair 700 60px; section / banner headings Playfair 700
   50px; no negative tracking on headings; intro and body copy DM Sans
   Light (300) 22px, small copy Light 18px; CTA banner copy DM Sans 400
   20px; breadcrumbs DM Sans Light 18px. The rules below only correct the
   pages and sections that still used older values (measured at 1920).
   Layout, colours and spacing are untouched.
   ================================================================ */

/* Breadcrumbs */
nav[aria-label="Breadcrumb"] .container,
nav[aria-label="Breadcrumb"] .container *,
nav[aria-label="Breadcrumb"] .container-fluid,
nav[aria-label="Breadcrumb"] .container-fluid * {
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 300;
}
.qc-breadcrumb .container,
.sitemap-breadcrumb .container { font-size: clamp(.72rem, .9375vw, 1.125rem); }
.qc-breadcrumb .container *,
.sitemap-breadcrumb .container * { font-size: inherit; }

/* Hero titles */
.industries-page .industries-hero__title,
.smart-factories-page .sf-hero h1,
.research-development-page .rd-hero h1,
.central-engineering-page .ce-hero h1,
.quality-certifications-page .qc-hero h1,
.board-page .board-hero h1,
.group-company-page .group-company-hero h1,
.sitemap-page .sitemap-page__hero h1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.45rem, 3.125vw, 3.75rem);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: normal;
}

/* Section and banner headings */
.home-page .expertise-trust h2,
.home-page .sustainability__heading,
.expertise-page .expertise-overview h2,
.expertise-page .expertise-process h2,
.industries-page .expertise-trust h2,
.research-development-page .expertise-trust h2,
.expertise-internal-page .expertise-internal-technology h2,
.expertise-internal-process h2,
.smart-factories-page .sf-capabilities h2,
.smart-factories-page .sf-capabilities .expertise-internal-heading h2,
.smart-factories-page .sf-systems h2,
.smart-factories-page .sf-cta h2,
.research-development-page .rd-platforms h2,
.research-development-page .rd-cta h2,
.quality-certifications-page .qc-certifications h2,
.quality-certifications-page .qc-cta h2,
.central-engineering-page .ce-story h2,
.central-engineering-page .ce-industries h2,
.industries-page .industry-products__title,
.industries-page .industry-leaders h2,
.automotive-page .automotive-network__title,
.automotive-page .automotive-growth h2,
.about-contact h2,
.group-company-page .group-companies h2,
.group-company-page .group-company-cta h2,
.awards2-page .awards-esg h2,
.esg-page .esg-practice h2,
/* Animated statement headings (same as the Joint Venture / ESG / About statements). */
.group-company-page .group-statement h2,
.contact-page .contact-enquiry__heading,
.expertise-internal-page .expertise-internal-materials h2,
.research-development-page .rd-values h2,
.quality-certifications-page .qc-statement h2,
.central-engineering-page .ce-promise,
.industries-page .industry-sectors__intro,
.automotive-page .automotive-capabilities .section-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.15rem, 2.604vw, 3.125rem);
  font-weight: 700;
  letter-spacing: normal;
}

/* Card / block titles: keep their sizes, drop the negative tracking. */
.board-page .board-directory h3,
.contact-page .contact-enquiry h3,
.industries-page .industry-sectors h3,
.group-company-page .group-companies h3 { letter-spacing: normal; }

/* Intro and body copy: DM Sans Light */
.home-page .industries__intro,
.home-page .accordion-industries__copy,
.home-page .leaders__copy,
.research-development-page .rd-values p,
.quality-certifications-page .qc-values p,
.industries-page .industry-leaders p,
.contact-page .contact-enquiry p { font-weight: 300; }
.home-page .sustainability__copy,
.automotive-page .automotive-network__copy,
.automotive-page .industry-leaders p,
.sitemap-page .sitemap-page__copy {
  font: 300 clamp(1rem, 1.1458vw, 1.375rem)/1.3 'DM Sans', Arial, sans-serif;
}
.automotive-page .automotive-growth .industry-leaders__heading p,
.industries-page .industry-sectors p,
.industries-page .industry-product p,
.group-company-page .joint-benefits p,
.awards2-page .about-awards__empty {
  font: 300 clamp(.875rem, .9375vw, 1.125rem)/1.3 'DM Sans', Arial, sans-serif;
}

/* CTA banner copy: DM Sans 400 20px */
.about-contact p,
.quality-certifications-page .qc-cta p,
.group-company-page .group-company-cta p {
  font: 400 clamp(1rem, 1.0417vw, 1.25rem)/1.3 'DM Sans', Arial, sans-serif;
}

/* ================================================================
   Responsive fixes (2026-10-14 audit, 31 routes x 1920-320px).
   ================================================================ */
/* Home Ecosystem: at 320px the longest location ("Northville, Michigan,
   USA") could not wrap and pushed the page 14px wider than the screen. */
@media (max-width: 399.98px) {
  .ecosystem__location { min-width: 0; white-space: normal; }
}
/* Expertise page carousel: below ~1100px the five side-by-side cards became
   too narrow for their title + copy + arrow (titles cut off, copy running
   into the arrow). Tablets now get the same single-card layout phones use
   (one card centred, arrows to move). Home carousel unaffected. */
@media (min-width: 768px) and (max-width: 1099.98px) {
  .expertise-overview__carousel .expertise-carousel__viewport {
    width: min(100% - 2rem, 480px);
    height: min(120vw, 480px);
    aspect-ratio: auto;
    overflow: hidden;
    transform: none;
  }
  .expertise-overview__carousel .expertise-carousel__slide:not(.expertise-carousel__slide--active) {
    visibility: hidden;
    pointer-events: none;
  }
  .expertise-overview__carousel .expertise-carousel__slide--active {
    left: 8%;
    top: 0;
    width: 84%;
    height: 86%;
    border-radius: 22px;
  }
  .expertise-overview__carousel .expertise-carousel__controls {
    left: 50%;
    bottom: 2%;
    transform: translateX(-50%);
  }
}

/* Home "A Legacy of Engineering" below 992px: the desktop composition
   (absolutely placed heading/copy/button over a vw-scaled collage) was
   squeezed into a ~320px box on phones (8-10px copy, button on the
   collage, empty dark band). Tablets and phones now stack it: heading,
   copy, button, then the collage on its dark band. Desktop unchanged. */
@media (max-width: 991.98px) {
  .home-page .legacy {
    height: auto;
    margin-top: 0;
    padding: clamp(3rem, 8vw, 4.5rem) 0 0;
  }
  .home-page .legacy > .container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: auto;
    padding-left: clamp(1rem, 4vw, 2rem);
    padding-right: clamp(1rem, 4vw, 2rem);
  }
  .home-page .legacy__heading {
    position: static;
    order: 1;
    font-size: clamp(2.15rem, 2.604vw, 3.125rem);
  }
  .home-page .legacy__body {
    position: relative;
    top: auto;
    left: auto;
    order: 2;
    max-width: 40rem;
    margin-top: 1rem;
    padding-left: 1rem;
  }
  .home-page .legacy__body-rule { height: 100%; }
  .home-page .legacy__body p {
    margin: 0;
    font: 300 clamp(1rem, 1.1458vw, 1.375rem)/1.35 'DM Sans', Arial, sans-serif;
  }
  .home-page .legacy__cta {
    position: relative;
    top: auto;
    left: auto;
    order: 3;
    width: 15rem;
    height: 3rem;
    margin-top: 1.5rem;
    font-size: 1rem;
  }
  .home-page .legacy__band {
    position: relative;
    top: auto;
    height: auto;
    margin-top: 1.5rem;
    background: linear-gradient(180deg, transparent 0 58%, #21182d 58% 92%, transparent 92%);
  }
  .home-page .legacy__visual {
    position: relative;
    top: auto;
    left: auto;
    width: min(100%, 44rem);
    height: auto;
    aspect-ratio: 1362 / 849;
    margin: 0 auto;
  }
}

/* Home "Sustainable Solutions" on phones: the three circles were pinned at
   a fixed 15rem from the top, so with the heading on 4 lines they covered
   the copy and the "Know More" button. Copy and circles now flow, circles
   below the button, same three-circle arrangement. */
@media (max-width: 767.98px) {
  .home-page .sustainability { --sust-circle: clamp(9rem, 38vw, 12rem); height: auto; }
  .home-page .sustainability__inner { height: auto; padding: 2.5rem 1.5rem 2.5rem; }
  .home-page .sustainability__copy-block {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
  }
  .home-page .sustainability__circles {
    position: relative;
    inset: auto;
    height: calc(var(--sust-circle) * 1.87);
    margin-top: 2rem;
  }
  .home-page .sustainability__circle { width: var(--sust-circle); }
  .home-page .sustainability__circle--environment { top: 0; left: 0; }
  .home-page .sustainability__circle--governance { top: 0; left: auto; right: 0; }
  .home-page .sustainability__circle--social { top: calc(var(--sust-circle) * .87); left: calc(50% - var(--sust-circle) / 2); }
}

/* Old Group of Companies page (group-of-company.html): the benefits strip
   kept its fixed 22.5rem desktop height once the grid wrapped to 3 / 2
   columns, so the last benefits slid under the CTA banner. */
@media (max-width: 991.98px) {
  .joint-benefits.group-benefits { height: auto; }
}

/* Engineering Solutions "materials" below 992px: the image + tabs grid kept
   its desktop height (32.95vw = ~105px at 320) and the section relied on a
   fixed 58rem minimum, so on small phones the last tabs slid under the CTA.
   Both now size to their content. */
@media (max-width: 991.98px) {
  .expertise-internal-materials__layout { height: auto; }
  .expertise-internal-materials { min-height: 0; padding-bottom: clamp(2.5rem, 6vw, 4rem); }
}

/* ESG "Operating Practice" on phones is a compact side-by-side miniature
   (~190px tall); its heading keeps the miniature size there (the site-wide
   50px heading overflowed it). Bold weight from the site scale kept. */
@media (max-width: 575.98px) {
  .esg-page .esg-practice h2 { font-size: clamp(.7rem, 3.125vw, 1.1rem); line-height: 1.05; }
}

/* R&D "R&D Footprint" below 992px: the R&D overrides kept a tiny
   min-height (39.531vw) and absolutely placed stats, so on tablets and
   phones the four stats sat on top of the heading and copy. Heading and
   stats now flow (heading, then the stats grid), section grows to fit. */
@media (max-width: 991.98px) {
  .research-development-page .expertise-trust { min-height: 0; }
  .research-development-page .expertise-trust__image { top: 0; height: 100%; object-fit: cover; }
  .research-development-page .expertise-trust__heading {
    position: relative;
    top: auto;
    padding: clamp(3rem, 8vw, 4.5rem) 1rem 0;
  }
  .research-development-page .expertise-trust__heading p { margin-right: auto; margin-left: auto; }
  .research-development-page .expertise-trust__stats {
    position: relative;
    inset: auto;
    padding: 2.5rem clamp(1rem, 5vw, 2.5rem) 3rem;
  }
}

/* Automotive "Growth Towards New Mobility" cards below 1200px: the copy was
   pinned at 77.8% from the top, so the longest text ran past the bottom of
   the card (clipped by 6-44px from 1024px down). Anchor it to the card's
   bottom edge instead. */
@media (max-width: 1199.98px) {
  .automotive-growth-card__copy { top: auto; bottom: 5%; }
}

/* Chrome responsive-device emulation (and large touch displays) can report
   hover:none above the desktop breakpoint. The submenu button is then needed,
   but it must sit beside its link rather than becoming a second line below it.
   The normal desktop layout remains logo left / menu + Contact Us right. */
@media (hover: none) and (min-width: 1280px) {
  html body > header.jnv-global-header .navbar .nav-item.dropdown {
    display: inline-flex !important;
    align-items: center !important;
  }

  html body > header.jnv-global-header .navbar .nav-item.dropdown > .nav-link {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
  }

  html body > header.jnv-global-header .navbar .dropdown-submenu-toggle {
    display: inline-flex !important;
    width: 1rem !important;
    height: 1rem !important;
    margin: 0 0 0 .28rem !important;
    padding: 0 !important;
    align-self: center !important;
  }

  html body > header.jnv-global-header .navbar .dropdown-submenu-toggle span {
    width: .36rem !important;
    height: .36rem !important;
  }
}

/* ================================================================
   Railways page (industries-railways.html, 2026-10-15). Built on the
   Automotive components (body .automotive-page .railways-page). Products
   come from the Product Range CPT as Railways > Category > Product, so the
   range has a single platform: its platform tab row (2W/4W on Automotive)
   is not shown and the category buttons lead the showcase.
   ================================================================ */
.automotive-platforms[data-product-range-count="1"] .automotive-platform-tabs { display: none; }
.railways-page .automotive-platforms[data-product-range-count="1"] { padding-top: clamp(3rem, 4.2vw, 5rem); }

/* Product cards (Automotive + Railways): when a category has fewer products
   than the four card slots, the cards keep their normal width and are centred
   instead of starting from the left (script.js sets data-product-count).
   One product: existing .is-single-product rules. Phones keep the 2-column grid. */
@media (min-width: 768px) {
  .automotive-product-carousel[data-product-count="2"] .automotive-product-list,
  .automotive-product-carousel[data-product-count="3"] .automotive-product-list { justify-content: center; }
  .automotive-product-carousel[data-product-count="2"] .automotive-product-list { grid-template-columns: repeat(2, minmax(0, calc((100% - 3 * clamp(1rem, 3.25vw, 3.9rem)) / 4))); }
  .automotive-product-carousel[data-product-count="3"] .automotive-product-list { grid-template-columns: repeat(3, minmax(0, calc((100% - 3 * clamp(1rem, 3.25vw, 3.9rem)) / 4))); }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .automotive-product-carousel[data-product-count="2"] .automotive-product-list { grid-template-columns: repeat(2, minmax(0, calc((100% - 3rem) / 4))); }
  .automotive-product-carousel[data-product-count="3"] .automotive-product-list { grid-template-columns: repeat(3, minmax(0, calc((100% - 3rem) / 4))); }
}

/* Quality & Certifications card refresh. Every selector is scoped to this
   page, so these rules cannot affect another page or a shared card component. */
.quality-certifications-page .qc-certificate-card {
  min-height: 0;
  height: auto;
  aspect-ratio: 359 / 383;
  padding: 0;
  border-color: #7347a0;
  border-radius: .9375rem;
  background: #f1ecf6;
}

.quality-certifications-page .qc-certificate-card::after {
  top: auto;
  bottom: -1.4%;
  left: -1.5%;
  width: 103%;
  height: 28%;
  background-position: center bottom;
}

.quality-certifications-page .qc-certificate-card__image,
.quality-certifications-page .qc-certificate-card:nth-child(n) .qc-certificate-card__image {
  top: 14.5%;
  left: 50%;
  width: 70%;
  height: auto;
  aspect-ratio: 1;
  overflow: visible;
  transform: translateX(-50%);
}

.quality-certifications-page .qc-certificate-card__image img,
.quality-certifications-page .qc-certificate-card:nth-child(n) .qc-certificate-card__image img {
  position: static;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: none;
}

.quality-certifications-page .qc-certificate-card h3 {
  top: 40.25%;
  right: 26%;
  left: 26%;
  color: #201838;
  font-size: clamp(1rem, 1.32vw, 1.2rem);
  line-height: 1.08;
}

.quality-certifications-page .qc-certificate-card > p {
  top: auto;
  right: 10%;
  bottom: 8.6%;
  left: 10%;
  color: #111;
  font-size: clamp(.72rem, .88vw, .86rem);
  line-height: 1.3;
}

.quality-certifications-page .qc-certificate-card:hover,
.quality-certifications-page .qc-certificate-card:focus-visible {
  border-color: #392e4b;
  background-color: #392e4b;
}

.quality-certifications-page .qc-certificate-card:hover::after,
.quality-certifications-page .qc-certificate-card:focus-visible::after {
  top: auto;
  bottom: -1.4%;
  left: -1.5%;
  width: 103%;
  height: 28%;
  background-image: url('../images/quality-certification-card-bg-hover.svg');
}

.quality-certifications-page .qc-certificate-card__hover {
  top: 16.5%;
  right: 7.53%;
  left: 7.53%;
  color: #fff;
  text-align: left;
}

.quality-certifications-page .qc-certificate-card__hover span {
  color: #fff;
  font-size: clamp(1.2rem, 1.3vw, 1.56rem);
  line-height: 1.15;
}

.quality-certifications-page .qc-certificate-card__hover ul {
  margin-top: 1.125rem;
  color: #fff;
  font-size: clamp(.78rem, 1.04vw, 1.25rem);
  font-weight: 500;
  line-height: 1.7;
}

/* Approval Letters: dynamic content cards. A PDF is optional; when supplied,
   only that card becomes a new-tab link. This is intentionally page-scoped. */
.quality-certifications-page .qc-approval-letters[hidden] { display: none !important; }
.quality-certifications-page .qc-approval-letters { padding: 0 0 clamp(4.5rem, 6.3vw, 7.5rem); }
.quality-certifications-page .qc-approval-letters__heading { max-width: 49rem; margin: 0 auto; text-align: center; }
.quality-certifications-page .qc-approval-letters__heading h2 { margin: 0; color: var(--qc-ink); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.8rem, 2.6vw, 3.125rem); font-weight: 400; line-height: 1.15; letter-spacing: -.025em; }
.quality-certifications-page .qc-approval-letters__heading p { margin: clamp(.85rem, 1.1vw, 1.25rem) auto 0; color: #393939; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.82rem, 1.05vw, 1.125rem); font-weight: 300; line-height: 1.35; }
.quality-certifications-page .qc-approval-letters__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: clamp(1rem, 1.7vw, 1.7rem); width: min(100%, 37.75rem); margin: clamp(2rem, 2.75vw, 3.3rem) auto 0; }
.quality-certifications-page .qc-approval-letter { display: flex; min-height: 8.65rem; flex-direction: column; align-items: flex-start; padding: .72rem .62rem .6rem; color: var(--qc-ink); border: 1px solid #8b5abe; border-radius: .35rem; background: #fff; font-family: 'DM Sans', Arial, sans-serif; font-size: clamp(.78rem, .9vw, .98rem); font-weight: 500; line-height: 1.25; text-decoration: none; transition: border-color .25s ease, background-color .25s ease, color .25s ease, transform .25s ease; }
.quality-certifications-page .qc-approval-letter:not(.is-static):hover, .quality-certifications-page .qc-approval-letter:not(.is-static):focus-visible { color: #fff; border-color: var(--qc-ink); background: var(--qc-ink); transform: translateY(-.15rem); }
.quality-certifications-page .qc-approval-letter:focus-visible { outline: 2px solid #c7a260; outline-offset: 3px; }
.quality-certifications-page .qc-approval-letter.is-static { cursor: default; }
.quality-certifications-page .qc-approval-letter__icon { display: block; width: 3.1rem; height: 3.1rem; margin: .05rem auto .55rem; color: var(--qc-gold); }
.quality-certifications-page .qc-approval-letter__icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; }
.quality-certifications-page .qc-approval-letter__title { display: block; width: 100%; }
.quality-certifications-page .qc-approval-letter__text { display: block; width: 100%; color: #111; font-weight: 400; }
.quality-certifications-page .qc-approval-letter:not(.is-static):hover .qc-approval-letter__icon, .quality-certifications-page .qc-approval-letter:not(.is-static):focus-visible .qc-approval-letter__icon { color: #e6cb91; }

@media (min-width: 1200px) {
  .quality-certifications-page .qc-certificate-grid { gap: .9375vw; }
}

@media (max-width: 575.98px) {
  .quality-certifications-page .qc-certificate-card { border-radius: .85rem; }
  .quality-certifications-page .qc-certificate-card h3 { right: 17%; left: 17%; font-size: clamp(.95rem, 5vw, 1.3rem); }
  .quality-certifications-page .qc-certificate-card > p { right: 7%; left: 7%; bottom: 7.5%; font-size: clamp(.7rem, 3.7vw, .92rem); }
  .quality-certifications-page .qc-certificate-card__hover { top: 15%; }
  .quality-certifications-page .qc-approval-letters { padding-bottom: 4.5rem; }
  .quality-certifications-page .qc-approval-letters__grid { grid-template-columns: 1fr; max-width: 20rem; }
  .quality-certifications-page .qc-approval-letter { min-height: 8rem; }
}

/* Industries logo carousel: one logo per visible cell. The second set is a
   runtime duplicate of the ACF repeater data, allowing a seamless loop as
   logos are added without wrapping them into a second row. */
.industries-page .industry-leaders__track { display: flex; width: max-content; min-width: 100%; animation-duration: var(--industry-leaders-loop-duration, 23s); }
.industries-page .industry-leaders__set { display: flex; width: max-content; flex: 0 0 auto; height: 100%; }
.industries-page .industry-leaders__logo { width: 20vw; min-width: 0; flex: 0 0 20vw; }
.industries-page .industry-leaders__logo img { max-width: 100%; max-height: 92px; width: auto; height: auto; }
.industries-page .industry-leaders__set .industry-leaders__logo:first-child { border-left: 1px dashed rgba(126, 97, 49, 0.48); }
