/* 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-size: clamp(0.8rem, 0.73vw, 0.875rem);
  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) ============ */

/* Shared YouTube layer: the self-hosted media remains underneath while a
   YouTube player starts or seeks.  This prevents YouTube's transient spinner
   and player chrome from becoming part of the page design. */
iframe[data-youtube-video] {
  border: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 120ms linear;
}

iframe[data-youtube-video].is-playing {
  opacity: 1;
}

.jnv-youtube-media {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  container-type: size;
}

.jnv-youtube-media__fallback {
  position: absolute !important;
  inset: 0;
}

.jnv-youtube-media__frame {
  position: absolute !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  width: max(100cqw, 177.7778cqh) !important;
  height: max(100cqh, 56.25cqw) !important;
  max-width: none !important;
  transform: translate(-50%, -50%);
}

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

.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__youtube {
  top: 50%;
  right: auto;
  bottom: auto;
  left: 50%;
  width: max(100cqw, 177.7778cqh);
  height: max(100cqh, 56.25cqw);
  max-width: none;
  /* YouTube renders its own fixed 16:9 player inside the responsive iframe.
     A small overscan removes the player's pillar bars while the hero clips the
     extra pixels at its existing edges. */
  transform: translate(-50%, -50%) scale(1.15);
}

/* The self-hosted source remains underneath the YouTube layer.  It keeps the
   banner populated while a YouTube embed is buffering or restarting. */
.hero__youtube.is-playing {
  opacity: 1;
}

@supports not (width: 1cqw) {
  .hero__youtube {
    width: 100%;
    height: 56.25vw;
    min-height: 100%;
  }

  .jnv-youtube-media__frame {
    width: 100% !important;
    height: 56.25vw !important;
    min-height: 100% !important;
  }
}

.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__youtube {
  border: 0;
  pointer-events: none;
}

.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: nowrap;
}

.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(32rem, 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;
}

.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: fill;
}

.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,
.expertise-internal-showcase__card iframe {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border: 0;
  pointer-events: none;
}

.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); }

/* Engineering Solutions only: match the approved landscape Proven Process
   media without changing the shared R&D process treatment. */
@media (min-width: 992px) {
  .expertise-internal-process[data-internal-process="engineering-solutions"] .expertise-internal-process__photo {
    width: min(23.9vw, 28.7rem);
    height: min(15.75vw, 18.9rem);
    transform: translateX(-50%) rotate(-5deg);
  }

  .expertise-internal-process[data-internal-process="engineering-solutions"] .expertise-internal-process__photo:hover {
    transform: translateX(-50%) rotate(-5deg) scale(1.025);
  }
}

.expertise-internal-process__photo img,
.expertise-internal-process__photo video,
.expertise-internal-process__photo iframe {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
  pointer-events: none;
}

.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(0,0,0,.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(0,0,0,.96) 0%,rgba(0,0,0,.78) 38%,rgba(0,0,0,.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); }

/* ==========================================================================
   Client feedback round 2026-10-22 ("Changes to be incorporated" PDF).
   Targeted overrides appended at the end of the live stylesheet; every rule
   names the page/section it changes. Values are fluid (vw) so the layout
   keeps scaling from the 1920px Figma frames.
   ========================================================================== */

/* GLOBAL - gold breadcrumb bar thinner on every page (Figma 52px at 1920,
   was 65px; the 52px floor made it look heavy at laptop widths). */
:root { --shared-breadcrumb-height: clamp(2.5rem, 2.7083vw, 3.25rem); }
.sf-breadcrumb,
.sf-breadcrumb .container,
.qc-breadcrumb {
  min-height: clamp(2.5rem, 2.7083vw, 3.25rem);
}
/* Pages whose older rules fixed the bar at 52-53px (ESG, Contact, Awards,
   placeholder pages). */
.esg-page .esg-breadcrumb,
.awards2-page .awards-breadcrumb,
.awards2-page .about-breadcrumb,
.esg-breadcrumb,
.awards-breadcrumb,
.contact-breadcrumb,
.sitemap-breadcrumb {
  display: flex;
  align-items: center;
  height: clamp(2.5rem, 2.7083vw, 3.25rem) !important;
  min-height: clamp(2.5rem, 2.7083vw, 3.25rem) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.esg-breadcrumb .container,
.awards-breadcrumb .container,
.contact-breadcrumb .container,
.sitemap-breadcrumb .container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* HOME, EXPERTISE (+ sub-pages), INDUSTRIES (+ Automotive, Railways): the
   Playfair headings were too heavy; medium weight like the design.
   !important because several older page rules set 700 with higher
   specificity. Animated headings inherit the weight from their heading. */
body:is(.home-page, .industries-page, .smart-factories-page, .research-development-page, .quality-certifications-page, .central-engineering-page) :is(h1, h2, h3):not(.visually-hidden),
body.home-page .ecosystem__card-caption strong,
body.research-development-page .rd-platform-card h3,
body.central-engineering-page .ce-card h3 {
  font-weight: 500 !important;
}
body:is(.home-page, .industries-page, .smart-factories-page, .research-development-page, .quality-certifications-page, .central-engineering-page) :is(h1, h2, h3) :is(span, em):not(.visually-hidden) {
  font-weight: inherit !important;
}

/* EXPERTISE landing - Integrated Expertise intro breaks after "to deliver"
   (two lines like the design). */
.expertise-page .expertise-overview .expertise-section-heading p {
  max-width: min(57.4vw, 69rem);
}

/* EXPERTISE landing - card strip: bigger/expanded cards, rounder corners,
   blur on the side cards and copy that scales with each card so it no longer
   overlaps the product artwork (Figma 204:5544). */
.expertise-page .expertise-overview__carousel .expertise-carousel__viewport {
  width: min(1717px, 89.44vw);
}
.expertise-page .expertise-overview__carousel .expertise-carousel__slide {
  container-type: inline-size;
  border-radius: clamp(20px, 1.6vw, 31px);
}
.expertise-page .expertise-overview__carousel .expertise-carousel__slide--left,
.expertise-page .expertise-overview__carousel .expertise-carousel__slide--right {
  filter: blur(clamp(3px, 0.42vw, 8px));
}
.expertise-page .expertise-overview__carousel .expertise-carousel__slide--near-left,
.expertise-page .expertise-overview__carousel .expertise-carousel__slide--near-right {
  filter: blur(clamp(0.6px, 0.09vw, 1.8px));
}
.expertise-page .expertise-overview__carousel .expertise-card__copy {
  top: 7.5%;
  left: 6.5%;
  width: 68%;
}
.expertise-page .expertise-overview__carousel .expertise-card__copy strong {
  margin-bottom: 3cqw;
  font-size: 8.2cqw;
  line-height: 1.06;
}
.expertise-page .expertise-overview__carousel .expertise-card__copy > span {
  font-size: 4.7cqw;
  line-height: 1.28;
}

/* EXPERTISE landing - "From Vision to Production": spacing from the design
   (arrows -> heading 130px, copy -> circles 77px, circles -> next section
   154px at 1440) and a slower, smoother step-out animation. */
.expertise-page .expertise-overview {
  padding-bottom: clamp(3.4rem, 4.03vw, 4.9rem);
}
.expertise-page .expertise-process {
  padding-bottom: clamp(3rem, 9.2vw, 11rem);
}
.expertise-page .expertise-process__chain {
  margin-top: clamp(3rem, 4.3vw, 5.2rem);
}
.expertise-page .expertise-process__step {
  transition: left 2600ms cubic-bezier(.45, .05, .2, 1),
    opacity 1800ms ease,
    transform 2600ms cubic-bezier(.45, .05, .2, 1),
    box-shadow 1800ms ease;
}
.expertise-page .expertise-process__orbit,
.expertise-page .expertise-process__bridge {
  transition: opacity 1800ms ease;
}
@media (prefers-reduced-motion: reduce) {
  .expertise-page .expertise-process__step,
  .expertise-page .expertise-process__orbit,
  .expertise-page .expertise-process__bridge { transition: none; }
}

/* EXPERTISE landing - background curves start right of the "From bold
   ideas..." heading instead of running through its text. */
.expertise-page .expertise-gallery__curves {
  left: -6.4%;
}

/* HOME - JNV Ecosystem: heading -> tabs spacing, short centred rule under
   the tabs and a location column so every pin lines up (Figma 204:515). */
.ecosystem__tabs {
  margin-top: clamp(1.4rem, 2.55vw, 3.1rem);
  gap: clamp(1.5rem, 13vw, 15.6rem);
}
.ecosystem__tabs-line {
  width: min(42.2vw, 811px);
  margin-right: auto;
  margin-left: auto;
}
.ecosystem__list-item {
  display: grid;
  grid-template-columns: minmax(0, 55%) minmax(0, 45%);
  justify-content: stretch;
  gap: 0;
}
.ecosystem__list-item .ecosystem__logo {
  justify-self: center;
}
.ecosystem__list-item .ecosystem__location {
  justify-self: start;
  align-items: flex-start;
  min-width: 0;
  white-space: normal;
  text-align: left;
}
.ecosystem__list-item .ecosystem__location-pin {
  margin-top: 0.4em;
}

@media (min-width: 992px) {
  /* HOME - Powering Leaders: tighter space above the heading; the copy breaks
     after "partnerships and" like the design. */
  .leaders.section-pad {
    margin-top: -1.4vw;
  }
  .leaders__copy {
    width: min(47vw, 902px);
  }
  /* HOME - A Legacy of Engineering: more room under the partner logo strip
     (Figma 138px at 1440, was 65px). */
  .leaders.section-pad {
    height: calc(clamp(16rem, 24vw, 28.125rem) + 5.07vw);
  }
}

/* ENGINEERING SOLUTIONS + SMART FACTORIES - technology slider arrows: thin
   chevrons like the design (were a heavy serif glyph). */
.expertise-internal-showcase__arrow {
  width: 2.2rem;
  height: 2.2rem;
  font-size: 0;
}
.expertise-internal-showcase__arrow span {
  display: none;
}
.expertise-internal-showcase__arrow::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.78rem;
  height: 0.78rem;
  border-bottom: 1.5px solid currentColor;
  border-left: 1.5px solid currentColor;
  content: '';
  transform: translate(-30%, -50%) rotate(45deg);
}
.expertise-internal-showcase__arrow--next::before {
  transform: translate(-70%, -50%) rotate(-135deg);
}

/* ENGINEERING SOLUTIONS - materials image gets the rounded corners of the
   design. */
.expertise-internal-page .expertise-internal-materials__image,
.expertise-internal-page .expertise-internal-materials__image img {
  border-radius: min(1.05vw, 1.25rem);
  overflow: hidden;
}

@media (min-width: 992px) {
  /* ENGINEERING SOLUTIONS + R&D - Proven Process: title and copy columns sit
     where the design puts them (title x 181, copy x 1052 of 1440), the heading
     block moves down a little and its supporting line wraps in two lines. */
  .expertise-internal-process .expertise-internal-process__row {
    right: 6.1%;
    left: 12.57%;
    grid-template-columns: minmax(0, 1fr) 25.6%;
  }
  .expertise-internal-process .expertise-internal-process__row p {
    max-width: none;
  }
  .expertise-internal-process__heading {
    top: calc(var(--process-unit) * 0.0952);
  }
  .expertise-internal-process__heading p {
    max-width: min(47.2vw, 57rem);
    margin-right: auto;
    margin-left: auto;
    font-size: clamp(0.95rem, 1.15vw, 1.375rem);
    line-height: 1.32;
  }
}

/* SMART FACTORIES - hero heading and breadcrumb share the 71px left edge of
   the design and the heading sits lower (72px above the breadcrumb at 1440). */
.smart-factories-page {
  --sf-container: min(1732px, 90.2vw);
}
.sf-hero__content {
  bottom: clamp(2.5rem, 5vw, 6rem);
}
/* SMART FACTORIES - section copy: design size, tighter two-line wrap, more room
   under the headings. */
.smart-factories-page .sf-section-heading p {
  margin-top: clamp(1rem, 1.7vw, 2rem);
  font-size: clamp(1rem, 1.15vw, 1.375rem);
  line-height: 1.32;
}
@media (min-width: 992px) {
  .smart-factories-page .sf-section-heading p {
    max-width: 58.4vw;
  }
  /* SMART FACTORIES - capability slider and its three tab bars span the design
     width (90.3vw) centred on the page; labels wrap in two lines. */
  .smart-factories-page .expertise-internal-showcase {
    width: min(90.3vw, 108.31rem);
  }
  .smart-factories-page .expertise-internal-showcase__labels {
    right: 0;
    left: 0;
    width: 100%;
    column-gap: min(5vw, 6rem);
  }
  .smart-factories-page .expertise-internal-showcase__arrow--prev { left: 0; }
  .smart-factories-page .expertise-internal-showcase__arrow--next { right: 0; }
  .smart-factories-page .expertise-internal-showcase__labels > button strong {
    display: block;
    max-width: 10em;
    margin-inline: auto;
    text-wrap: balance;
  }
}
/* SMART FACTORIES - process circles move out slower and smoother. */
.smart-factories-page .sf-process-node {
  transition: left 2600ms cubic-bezier(.45, .05, .2, 1),
    right 2600ms cubic-bezier(.45, .05, .2, 1),
    opacity 1800ms ease,
    transform 2600ms cubic-bezier(.45, .05, .2, 1),
    box-shadow 1800ms ease;
}
.smart-factories-page .sf-process-chain__orbit,
.smart-factories-page .sf-process-chain__bridge {
  transition: opacity 1800ms ease;
}
@media (prefers-reduced-motion: reduce) {
  .smart-factories-page .sf-process-node,
  .smart-factories-page .sf-process-chain__orbit,
  .smart-factories-page .sf-process-chain__bridge { transition: none; }
}

/* R&D - hero image is shown whole (it was scaled up 113% and cropped at the
   left and right) and the heading sits lower, 72px above the breadcrumb. */
.research-development-page .rd-hero__image {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.research-development-page .rd-hero__content {
  padding-bottom: clamp(2.5rem, 5vw, 6rem);
}

/* R&D - "JNV's R&D spans ..." statement breaks after "autonomy," like the
   design. */
.research-development-page .rd-values .rd-section-heading h2 {
  max-width: min(53vw, 66rem);
}

/* R&D - focus-area accordion: heading and copy sizes follow the design at
   every width (the fixed 22px / 16px minimums were too big below 1440px). */
.research-development-page .rd-accordion__item button {
  font-size: clamp(1.05rem, 1.593vw, 1.9rem);
}
.research-development-page .rd-accordion__panel {
  font-size: clamp(0.82rem, 0.9722vw, 1.125rem);
}
/* R&D - image keeps the rounded corners of the design (contain left the
   corners invisible). */
.research-development-page .rd-values__figure img {
  object-fit: cover;
}
/* R&D - "Upcoming" tag is a gold pill with white text, as in the design. */
.research-development-page .rd-accordion__item button em {
  top: 0.6rem;
  padding: 0.18em 0.55em;
  border-radius: 2px;
  background: var(--rd-gold);
  color: #fff;
  font: 500 clamp(0.58rem, 0.66vw, 0.75rem)/1.15 'Playfair Display', Georgia, serif;
  letter-spacing: 0.02em;
  text-transform: lowercase;
}
.research-development-page .rd-accordion__item button em::first-letter {
  text-transform: uppercase;
}
.research-development-page .rd-accordion__item--upcoming button > span {
  transform: translateY(0.55rem);
}

/* QUALITY & CERTIFICATIONS - section intro breaks into two balanced lines
   like the design (it ran across the full container width), and the spacing
   around the certificate grid / Load More button matches the design. */
.quality-certifications-page .qc-section-heading p {
  max-width: min(max(54vw, 46rem), 66rem);
}
@media (min-width: 992px) {
  .quality-certifications-page .qc-certificate-grid {
    margin-top: clamp(2rem, 2.9vw, 3.5rem);
  }
  .quality-certifications-page .qc-load-more {
    margin-bottom: clamp(1.5rem, 1.7vw, 2rem);
  }
}
/* QUALITY & CERTIFICATIONS - hover list on a certificate card (up to 7
   companies) stays inside the card at laptop widths instead of being cut. */
.quality-certifications-page .qc-certificate-card__hover ul {
  line-height: 1.5;
}
@media (max-width: 1279.98px) and (min-width: 992px) {
  .quality-certifications-page .qc-certificate-card__hover ul {
    font-size: clamp(.7rem, .9vw, .8rem);
    line-height: 1.4;
  }
}

/* CENTRAL ENGINEERING - capability cards: room around the strip so the
   bottom corners and the border are not clipped by the viewport. */
.central-engineering-page .ce-cards__viewport {
  padding-block: 3px;
  margin-block: -3px;
}
/* CENTRAL ENGINEERING - arrows are thin chevrons like the design. */
.central-engineering-page .ce-cards__arrow {
  font-size: 0;
}
.central-engineering-page .ce-cards__arrow span {
  display: none;
}
.central-engineering-page .ce-cards__arrow::before {
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  margin: auto;
  border-bottom: 1.5px solid currentColor;
  border-left: 1.5px solid currentColor;
  content: '';
  transform: translateX(25%) rotate(45deg);
}
.central-engineering-page .ce-cards__arrow--next::before {
  transform: translateX(-25%) rotate(-135deg);
}
/* CENTRAL ENGINEERING - benefit strip: smaller headings and copy so six
   columns align on one baseline (Figma 22px titles / 15px copy at 1440). */
@media (min-width: 992px) {
  .central-engineering-page .ce-principles h3 {
    font-size: clamp(1rem, 1.35vw, 1.5rem);
  }
  .central-engineering-page .ce-principles p {
    font-size: clamp(.72rem, .82vw, .95rem);
  }
}

/* CENTRAL ENGINEERING - on laptop widths the three cards plus gaps were wider
   than the strip, so the third card was cut at the right edge. Card width now
   subtracts the real gap. */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .central-engineering-page .ce-card {
    flex-basis: calc((100% - 2 * clamp(.85rem, 2.76vw, 3.3125rem)) / 3);
  }
}

/* INDUSTRIES landing - sector cards: description text uses the card width
   (was squeezed to 45%, so "Aerospace & Defence" met the arrow and the copy
   stacked in 5 short lines) and the title keeps clear of the arrow. */
.industries-page .industry-card__copy p {
  max-width: 62%;
}
.industries-page .industry-card__copy h3 {
  padding-right: clamp(2.4rem, 3.2vw, 4rem);
  font-size: clamp(1.1rem, 1.46vw, 1.75rem);
}
/* INDUSTRIES landing - "One Group. Multiple Products." descriptions: a wider
   text column so they sit on one line where the width allows. */
@media (min-width: 992px) {
  .industries-page .industry-product p {
    max-width: none;
  }
  .industries-page .industry-product {
    padding-right: 0;
  }
}

/* AUTOMOTIVE + RAILWAYS - product card strip: thin chevron arrows level with
   the product artwork (Figma 204:4317), instead of a heavy glyph beside the
   text cards. */
.automotive-page .automotive-product-arrow {
  top: calc(50% - clamp(7rem, 16.7vw, 16rem));
  font-size: 0;
}
.automotive-page .automotive-product-arrow span {
  display: none;
}
.automotive-page .automotive-product-arrow::before {
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  border-bottom: 1.5px solid currentColor;
  border-left: 1.5px solid currentColor;
  content: '';
  transform: translateX(25%) rotate(45deg);
}
.automotive-page .automotive-product-arrow--next::before {
  transform: translateX(-25%) rotate(-135deg);
}
@media (max-width: 767.98px) {
  .automotive-page .automotive-product-arrow {
    top: 50%;
  }
}
/* RAILWAYS - product arrows removed (client): each category shows all of its
   products at once. */
.railways-page .automotive-product-arrow {
  display: none;
}

/* AUTOMOTIVE + RAILWAYS - "Growth Towards New Mobility" is a carousel with
   three cards visible; the rest slide in with the arrows (it wrapped into a
   second row of cards). Tablets and phones keep their existing scroll row. */
.automotive-growth__arrow {
  font-size: 0;
}
.automotive-growth__arrow span {
  display: none;
}
.automotive-growth__arrow::before {
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  border-bottom: 1.5px solid currentColor;
  border-left: 1.5px solid currentColor;
  content: '';
  transform: translateX(25%) rotate(45deg);
}
.automotive-growth__arrow--next::before {
  transform: translateX(-25%) rotate(-135deg);
}
@media (min-width: 992px) {
  .automotive-growth__cards {
    --growth-gap: clamp(1.5rem, 2.6vw, 3.125rem);
    display: flex;
    flex-wrap: nowrap;
    gap: var(--growth-gap);
    overflow-x: hidden;
    scroll-behavior: smooth;
    scrollbar-width: none;
  }
  .automotive-growth__cards > [class*="col-"] {
    flex: 0 0 calc((100% - 2 * var(--growth-gap)) / 3);
    width: calc((100% - 2 * var(--growth-gap)) / 3);
  }
}

/* ==========================================================================
   BANNERS - every page banner follows the Home banner (2026-10-23).
   Home: banner height = 48.75vw (--shared-hero-height), heading at the
   container's left padding (4.91vw), 3rem above the bottom edge (1.5rem on
   tablet/phone), max 60% wide, Playfair Display 500, size
   clamp(1.5rem, 3.13vw, 3.756rem), line-height 1.25, no letter-spacing;
   the picture covers the whole banner box.
   ========================================================================== */
body[class] :is(.industries-hero, .about-hero, .awards-hero, .board-hero, .group-company-hero, .joint-hero,
                .contact-hero, .esg-hero, .sf-hero, .rd-hero, .qc-hero, .ce-hero) {
  position: relative;
  height: var(--shared-hero-height) !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  overflow: hidden;
}
/* Banner content block pinned to the bottom, same inset as Home. */
body[class] :is(.industries-hero__content, .about-hero__content, .awards-hero__content, .board-hero__content,
                .group-company-hero__content, .joint-hero__content, .contact-hero__content, .esg-hero__content,
                .sf-hero__content, .rd-hero__content, .qc-hero__content, .ce-hero__content) {
  position: absolute !important;
  inset: auto 0 0 0 !important;
  z-index: 2;
  display: block !important;
  width: 100% !important;
  max-width: 1728px !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 0 clamp(1rem, 4.91vw, 6rem) 1.5rem !important;
  transform: none !important;
}
@media (min-width: 992px) {
  body[class] :is(.industries-hero__content, .about-hero__content, .awards-hero__content, .board-hero__content,
                  .group-company-hero__content, .joint-hero__content, .contact-hero__content, .esg-hero__content,
                  .sf-hero__content, .rd-hero__content, .qc-hero__content, .ce-hero__content) {
    padding-bottom: 3rem !important;
  }
}
/* Banner heading typography = Home heading. */
body[class] :is(.industries-hero__content, .about-hero__content, .awards-hero__content, .board-hero__content,
                .group-company-hero__content, .joint-hero__content, .contact-hero__content, .esg-hero__content,
                .sf-hero__content, .rd-hero__content, .qc-hero__content, .ce-hero__content) h1 {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  width: auto !important;
  max-width: 60% !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(1.5rem, 3.13vw, 3.756rem) !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  letter-spacing: normal !important;
  text-align: left;
}
/* Pictures that were drawn larger than the banner (cropped / offset) now
   cover the banner box exactly. */
body[class] :is(.awards-hero__image, .board-hero__image, .esg-hero__image) {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: none !important;
}

/* ==========================================================================
   Client feedback round 2 (2026-10-23, "more feedback and changes.pdf").
   ========================================================================== */

/* SITE-WIDE - navigation bar stays at the top while scrolling. The header is
   already out of the page flow (absolute), so fixed keeps the layout as is. */
html body > header.jnv-global-header {
  position: fixed !important;
  top: 0 !important;
  right: 0;
  left: 0;
  z-index: 1030 !important;
}
html body > header:not(.jnv-global-header) {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: #fff;
}
html { scroll-padding-top: 5.5rem; }

/* SITE-WIDE - heading weight medium on the remaining pages (About, Group
   Companies, Joint Ventures, Awards, ESG, Board, Contact). */
body:is(.about-page, .group-company-page, .joint-page, .esg-page, .board-page, .leaders-page, .contact-page, .awards2-page) :is(h1, h2, h3):not(.visually-hidden) {
  font-weight: 500 !important;
}
body:is(.about-page, .group-company-page, .joint-page, .esg-page, .board-page, .leaders-page, .contact-page, .awards2-page) :is(h1, h2, h3) :is(span, em):not(.visually-hidden) {
  font-weight: inherit !important;
}

/* ABOUT / GROUP COMPANIES / JOINT VENTURES / ESG - closing statement
   ("breather line") fits two lines. */
.joint-page .joint-statement h2,
.group-company-page .group-statement h2,
.group-companies-page .joint-statement h2,
.esg-page .esg-commitment h2 {
  max-width: min(86vw, 84rem) !important;
  margin-inline: auto;
  text-wrap: balance;
}

/* GROUP COMPANIES + JOINT VENTURES - no curved-line artwork behind the cards,
   benefit icons without the white disc, single card centred. */
.joint-card__pattern { display: none !important; }
.joint-page .joint-benefit__icon { background: none; }
.joint-page .joint-cards > .joint-card:only-child { grid-column: 1 / -1; justify-self: center; width: calc((100% - 2.5rem) / 3); }
.group-companies-page .joint-cards > .joint-card:only-child { width: 100%; max-width: 100%; }

/* JOINT VENTURES - partner names no longer run into the description (names
   were 700 weight / 6.5cqw and wrapped to 3 lines over the copy). */
.joint-page .joint-card h3 {
  width: 60%;
  font-weight: 500 !important;
  font-size: 5.3cqw;
  line-height: 1.16;
  text-wrap: balance;
}
.joint-page .joint-card p { top: 29%; }

/* BANNERS - the parallax scale made the picture larger than the banner, so
   its edges were cut (About, Expertise, Engineering Solutions, Industries).
   The picture now fills the banner box exactly. */
body :is(.about-hero__image, .industries-hero__image) {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  transform: none !important;
  object-fit: cover !important;
}

/* AWARDS (Awards page + About awards) - smaller, regular-weight medal text so
   long names clear the year; entity / awarded-by lines stay on one line. */
.awards2-card__title { font-weight: 400 !important; font-size: 3.9cqw; line-height: 1.22; width: 62%; }
.awards2-card__title--long { font-size: 3.5cqw; line-height: 1.18; }
.awards2-card__year { font-size: 3.9cqw; }
.awards2-card__category, .awards2-card__by, .awards2-card__entity { white-space: nowrap; }
.awards2-card__by, .awards2-card__entity { font-size: 3.8cqw !important; }
body.about-page:not(.awards-page) .about-award-card h3 { font-weight: 400; }

/* CONTACT - FAQ questions on one line (smaller type); heading medium. */
.contact-faq__row { font-size: clamp(.9rem, 1.12vw, 1.3rem); }
.contact-faq__question { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.contact-faq__row.is-open .contact-faq__question { white-space: normal; }

/* LAPTOP 992-1099px - Expertise landing: the card strip fell back to one big
   card (phone layout) between 768 and 1099px. The five-card strip now scales
   down to 992px (card text is sized per card, so it stays readable). */
@media (min-width: 992px) and (max-width: 1099.98px) {
  .expertise-page .expertise-overview__carousel .expertise-carousel__viewport {
    width: min(1717px, 89.44vw);
    height: auto;
    aspect-ratio: 1564 / 557.037;
    overflow: visible;
    transform: translateX(clamp(0px, 0.15625vw, 3px));
  }
  .expertise-page .expertise-overview__carousel .expertise-carousel__slide:not(.expertise-carousel__slide--active):not(.expertise-carousel__slide--hidden) {
    visibility: visible;
    pointer-events: auto;
  }
  .expertise-page .expertise-overview__carousel .expertise-carousel__slide--active {
    left: 39.7%;
    top: 0.27%;
    width: 20.46%;
    height: 85.39%;
    border-radius: clamp(20px, 1.6vw, 31px);
  }
  .expertise-page .expertise-overview__carousel .expertise-carousel__controls {
    left: 44.5%;
    bottom: 0;
    transform: none;
  }
}

/* LAPTOP 992-1199px - Home "Sustainable Solutions": heading no longer runs
   into the Environment circle. */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .home-page .sustainability__heading { font-size: clamp(1.5rem, 2.3vw, 2.2rem); }
}

/* AUTOMOTIVE + RAILWAYS - growth cards: the curved line artwork no longer
   shows through the product capsule (capsule is filled). */
.automotive-growth-card__art--lightweight,
.automotive-growth-card__art--sealing,
.automotive-growth-card__art--thermal { background: #fefefe; }

/* GROUP OF COMPANIES (older page) - card names no longer run into the
   description at laptop widths: text scales with the card width. */
.group-company-page .group-card { container-type: inline-size; }
.group-company-page .group-card h3 { width: 64%; font-size: 5.4cqw; line-height: 1.16; }
.group-company-page .group-card p { top: 29%; font-size: 4cqw; }
.group-company-page .group-card__location { font-size: 3.8cqw; }

/* AWARDS + ESG banners - supporting paragraph wraps into two even lines. */
.awards-esg p,
.esg-vision p {
  text-wrap: balance;
}
.esg-vision p { max-width: min(46rem, 60vw); }
