/* Final, isolated development-milestones chapter. */
body .timeline-section {
  padding: 96px clamp(24px, 5vw, 88px) 104px;
  background: #edf3f6 !important;
}

body .timeline-section > .section-heading {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 380px;
  max-width: 1260px;
  margin: 0 auto;
  padding: 62px clamp(52px, 6vw, 96px) 62px;
  overflow: hidden;
  background: #0a4167;
}

body .timeline-section > .section-heading::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: auto;
  height: auto;
  content: "";
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(90deg, #07395cf2 0%, #0b4269dd 34%, #0a416638 69%, #0a416608 100%),
    url("assets/timeline-ecosystem-journey.png?v=7") center / cover no-repeat;
  box-shadow: none;
}

body .timeline-section > .section-heading::before {
  position: relative;
  z-index: 1;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  order: 2;
  margin-top: 24px;
  content: "2011 — 2024";
  color: #68b38d;
  font-family: "DM Sans", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
}
body .timeline-section > .section-heading .eyebrow,
body .timeline-section > .section-heading h2 { position: relative; z-index: 1; }
body .timeline-section > .section-heading .eyebrow { order: 0; color: #68b38d; }
body .timeline-section > .section-heading h2 {
  order: 1;
  max-width: 590px;
  margin: 18px 0 0;
  color: #fff;
  font-size: clamp(32px, 3.75vw, 52px);
  line-height: 1.16;
}

body .timeline-section .timeline {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas: "start global" "domestic domestic" "digital today";
  gap: 16px;
  max-width: 1260px;
  min-height: 0;
  margin: 52px auto 0;
  padding: 0;
  border: 0;
}
body .timeline-section .timeline::before,
body .timeline-section .timeline article::before,
body .timeline-section .timeline article::after { display: none !important; content: none; }
body .timeline-section .timeline article,
body .timeline-section .timeline article:nth-child(even),
body .timeline-section .timeline article:nth-child(odd),
body .timeline-section .timeline article + article {
  display: block;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
}
body .timeline-section .timeline article:nth-child(1) { grid-area: start; }
body .timeline-section .timeline article:nth-child(2) { grid-area: global; }
body .timeline-section .timeline article:nth-child(3) { grid-area: domestic; }
body .timeline-section .timeline article:nth-child(4) { grid-area: digital; }
body .timeline-section .timeline article:nth-child(5) { grid-area: today; }

body .timeline-section .timeline article .timeline-paper,
body .timeline-section .timeline article:nth-child(odd) .timeline-paper,
body .timeline-section .timeline article:nth-child(even) .timeline-paper {
  position: relative;
  display: grid;
  grid-template-columns: 124px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  gap: 0 24px;
  box-sizing: border-box;
  min-height: 178px;
  height: auto;
  padding: 30px 34px 28px;
  border: 1px solid #b7cbd5;
  border-top: 4px solid #17749c;
  border-radius: 0;
  background: #fbfcfd;
  box-shadow: none;
  clip-path: none !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
body .timeline-section .timeline article .timeline-paper::before {
  position: absolute;
  top: 28px;
  left: 34px;
  display: block;
  width: 30px;
  height: 3px;
  content: "";
  background: #68b38d;
}
body .timeline-section .timeline article:nth-child(2) .timeline-paper { border-top-color: #1e769f; background: #ffffff; }
body .timeline-section .timeline article:nth-child(3) .timeline-paper {
  grid-template-columns: 160px minmax(230px, .82fr) minmax(0, 1.18fr);
  align-items: center;
  min-height: 194px;
  border-color: #105c88;
  border-top-color: #287da5;
  background: linear-gradient(101deg, #0a4c76 0%, #125e89 42%, #f3f8fa 42%, #f3f8fa 100%);
}
body .timeline-section .timeline article:nth-child(3) .timeline-paper::before { background: #68b38d; }
body .timeline-section .timeline article:nth-child(4) .timeline-paper { border-top-color: #287b9e; background: #e9f2f6; }
body .timeline-section .timeline article:nth-child(5) .timeline-paper { border-top-color: #287da5; background: #eaf2f6; }

body .timeline-section .timeline time {
  align-self: start;
  display: block;
  margin: 17px 0 0;
  color: #12628e;
  font-family: "DM Sans", sans-serif;
  font-size: clamp(30px, 2.6vw, 40px);
  font-weight: 700;
  letter-spacing: -.055em;
  line-height: 1;
}
body .timeline-section .timeline h3 {
  align-self: end;
  margin: 0;
  padding: 0;
  color: #113d5d;
  font-size: clamp(19px, 1.65vw, 24px);
  line-height: 1.35;
}
body .timeline-section .timeline p {
  grid-column: 2;
  max-width: none;
  margin: 9px 0 0;
  color: #5d7686;
  font-size: 14px;
  line-height: 1.7;
}
body .timeline-section .timeline article:nth-child(3) time { color: #68b38d; }
body .timeline-section .timeline article:nth-child(3) h3 { color: #fff; }
body .timeline-section .timeline article:nth-child(3) p { grid-column: 3; margin: 0; color: #577384; }

@media (max-width: 720px) {
  body .timeline-section { padding: 70px 20px 76px; }
  body .timeline-section > .section-heading { min-height: 370px; padding: 42px 28px 48px; }
  body .timeline-section > .section-heading::after { background: linear-gradient(180deg, #07395ce8 0%, #0a41649e 50%, #0a416616 100%), url("assets/timeline-ecosystem-journey.png?v=7") 67% center / cover no-repeat; }
  body .timeline-section > .section-heading h2 { font-size: clamp(31px, 9vw, 44px); }
  body .timeline-section .timeline { grid-template-columns: 1fr; grid-template-areas: none; gap: 12px; margin-top: 34px; }
  body .timeline-section .timeline article:nth-child(n) { grid-area: auto; }
  body .timeline-section .timeline article .timeline-paper,
  body .timeline-section .timeline article:nth-child(3) .timeline-paper {
    grid-template-columns: 94px minmax(0, 1fr);
    min-height: 0;
    padding: 25px 22px;
    background: #f8fbfc;
  }
  body .timeline-section .timeline article .timeline-paper::before { top: 22px; left: 22px; }
  body .timeline-section .timeline article:nth-child(3) time,
  body .timeline-section .timeline article:nth-child(3) h3,
  body .timeline-section .timeline article:nth-child(3) p { color: inherit; }
  body .timeline-section .timeline time { margin-top: 15px; font-size: 28px; }
  body .timeline-section .timeline p,
  body .timeline-section .timeline article:nth-child(3) p { grid-column: 2; margin-top: 8px; }
}

/* Keep the contact chapter on one uninterrupted white surface. */
body .contact { background: #ffffff !important; }

/* Company-introduction heading: remove the left decorative rule. */
body #about.intro > div:first-child {
  border-left: 0 !important;
  padding-left: 0 !important;
}
body #about.intro > div:first-child::before { left: 0 !important; }

/* Match the raster logo's white canvas to the full header surface. */
body .site-header,
body .brand { background: #ffffff !important; }
body .brand img {
  width: auto;
  height: 72px;
  object-fit: contain;
}
@media (max-width: 800px) {
  body .brand img { width: auto; height: 58px; }
}

/* Development timeline: shift all marker accents from green to blue. */
body .timeline-section > .section-heading::before,
body .timeline-section > .section-heading .eyebrow { color: #58a7d1; }
body .timeline-section .timeline article:nth-child(n) .timeline-paper::before {
  display: none;
}
body .timeline-section .timeline article:nth-child(3) time { color: #65b0d8; }
body .timeline-section .timeline time::after {
  display: none;
}

/* Brand marquee: only blue, white and blue-grey card treatments. */
body .product-marquee article:nth-child(4n + 1),
body .product-marquee article:nth-child(4n) {
  border-color: #135d8d;
  background: linear-gradient(145deg, #0d5686 0%, #317fa7 100%);
  color: #ffffff;
}
body .product-marquee article:nth-child(4n + 2) {
  border-color: #2a77a0;
  background: linear-gradient(145deg, #185f8b 0%, #468eb3 100%);
  color: #ffffff;
}
body .product-marquee article:nth-child(4n + 3) {
  border-color: #3c83a7;
  background: linear-gradient(145deg, #286f96 0%, #5a9cba 100%);
  color: #ffffff;
}
body .product-marquee article:nth-child(4n + 1) b,
body .product-marquee article:nth-child(4n) b { color: #ffffff; }
body .product-marquee article:nth-child(4n + 1) span,
body .product-marquee article:nth-child(4n) span { color: #deedf5; }
body .product-marquee article:nth-child(4n + 2) b,
body .product-marquee article:nth-child(4n + 3) b { color: #ffffff; }
body .product-marquee article:nth-child(4n + 2) span,
body .product-marquee article:nth-child(4n + 3) span { color: #deedf5; }
body .product-marquee article:hover { border-color: #2d85b4; }

/* Match the key chapter titles to the company-profile heading scale. */
body .solutions .section-heading h2,
body .business-section .section-heading h2,
body .strength-section .section-heading h2,
body .culture-heading h2 {
  font-size: clamp(38px, 4vw, 62px);
  line-height: 1.12;
  letter-spacing: -.04em;
}
@media (max-width: 800px) {
  body .solutions .section-heading h2,
  body .business-section .section-heading h2,
  body .strength-section .section-heading h2,
  body .culture-heading h2 { font-size: clamp(34px, 10vw, 46px); }
}

/* Header navigation shares the same navy as the company name. */
body .site-header nav a { color: #06295a; opacity: 1; }

/* Corporate culture: one manifesto and two supporting statements. */
body .culture-section {
  padding: 112px clamp(24px, 7vw, 128px);
  background: #e8f0f4;
}
body .culture-heading {
  max-width: 1160px;
  margin: 0 auto;
}
body .culture-heading h2 {
  max-width: 680px;
  color: #103d5d;
  font-size: clamp(32px, 3.4vw, 52px);
  line-height: 1.15;
  letter-spacing: -.04em;
}
body .culture-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
  grid-template-rows: repeat(2, minmax(174px, 1fr));
  gap: 14px;
  max-width: 1160px;
  min-height: 398px;
  margin: 54px auto 0;
}
body .culture-grid::before { display: none; }
body .culture-grid div,
body .culture-grid div:nth-child(2),
body .culture-grid div:nth-child(3) {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 0;
  margin: 0;
  padding: 38px 46px;
  border: 1px solid #bfd0da;
  border-radius: 0;
  background: #f9fbfc;
  box-shadow: none;
  transform: none;
}
body .culture-grid .culture-lead {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-items: flex-start;
  padding: 48px 44px;
  overflow: hidden;
  border: 0;
  background: linear-gradient(145deg, #073b64 0%, #0e5d89 100%);
}
body .culture-grid .culture-lead::before {
  position: absolute;
  right: -26px;
  bottom: -42px;
  content: "VALUES";
  color: #ffffff12;
  font-family: "DM Sans", sans-serif;
  font-size: clamp(64px, 8vw, 122px);
  font-weight: 700;
  letter-spacing: -.08em;
  pointer-events: none;
}
body .culture-grid .culture-lead::after { display: none; }
body .culture-grid .culture-lead span { position: relative; color: #a7e2c4; }
body .culture-grid .culture-lead h3 {
  position: relative;
  max-width: 370px;
  margin: 23px 0 0;
  color: #fff;
  font-size: clamp(30px, 3vw, 43px);
  line-height: 1.22;
}
body .culture-grid .culture-lead p {
  position: relative;
  max-width: 370px;
  margin: 20px 0 0;
  color: #d5e7ef;
  line-height: 1.75;
}
body .culture-grid div:nth-child(2) { grid-column: 2; grid-row: 1; border-left: 5px solid #237ca7; }
body .culture-grid div:nth-child(3) { grid-column: 2; grid-row: 2; border-left: 5px solid #1b9870; background: #f5faf8; }
body .culture-grid div:nth-child(2)::before,
body .culture-grid div:nth-child(3)::before {
  position: absolute;
  top: 22px;
  right: 34px;
  color: #bfd1da;
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
}
body .culture-grid div:nth-child(2)::before { content: "MISSION"; }
body .culture-grid div:nth-child(3)::before { content: "VISION"; color: #9ac7b4; }
body .culture-grid span { color: #237ca7; }
body .culture-grid div:nth-child(3) span { color: #2d85b4; }
body .culture-grid h3 {
  max-width: 660px;
  margin: 15px 40px 0 0;
  color: #123d5d;
  font-size: clamp(21px, 1.7vw, 28px);
  line-height: 1.35;
}

@media (max-width: 780px) {
  body .culture-section { padding: 76px 24px; }
  body .culture-grid { grid-template-columns: 1fr; grid-template-rows: none; min-height: 0; gap: 12px; margin-top: 38px; }
  body .culture-grid .culture-lead,
  body .culture-grid div:nth-child(2),
  body .culture-grid div:nth-child(3) { grid-column: 1; grid-row: auto; min-height: 230px; padding: 36px 30px; }
  body .culture-grid .culture-lead { min-height: 300px; }
  body .culture-grid .culture-lead h3 { font-size: clamp(29px, 8vw, 39px); }
}

/* Culture orbit: the principle is central; mission and vision support it. */
body .culture-section { background: #eef3f6; }
body .culture-grid {
  position: relative;
  display: block;
  max-width: 1120px;
  min-height: 500px;
  margin-top: 56px;
}
body .culture-grid::before {
  position: absolute;
  top: 50%;
  left: 37%;
  display: block;
  width: 24%;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, #2d789b, #5aabd2);
}
body .culture-grid div,
body .culture-grid div:nth-child(2),
body .culture-grid div:nth-child(3) {
  box-sizing: border-box;
  border-radius: 0;
  box-shadow: none;
}
body .culture-grid .culture-lead {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: 0;
  display: flex;
  width: min(46%, 480px);
  min-height: 0;
  padding: 64px 52px;
  border: 7px solid #dfe8ed;
  border-radius: 50%;
  background:
    linear-gradient(135deg, #073b64d9 0%, #0a4167d1 54%, #0a4167ab 100%),
    url("assets/culture-client-dialogue.png?v=1") center / cover no-repeat;
  box-shadow: 0 16px 30px #0a41671c;
}
body .culture-grid .culture-lead::before {
  right: auto;
  bottom: auto;
  left: 42px;
  content: "01";
  color: #ffffff1f;
  font-size: 86px;
}
body .culture-grid .culture-lead span { color: #ffffff; }
body .culture-grid .culture-lead h3 { max-width: 320px; font-size: clamp(27px, 2.65vw, 40px); }
body .culture-grid .culture-lead p { max-width: 315px; }
body .culture-grid div:nth-child(2),
body .culture-grid div:nth-child(3) {
  position: absolute;
  right: 0;
  display: flex;
  width: 50%;
  min-height: 198px;
  padding: 38px 46px 38px 74px;
  overflow: hidden;
  border: 1px solid #bed0d9;
  border-left: 0;
  background: #ffffff;
}
body .culture-grid div:nth-child(2) { top: 18px; border-radius: 104px 0 0 104px; }
body .culture-grid div:nth-child(3) { bottom: 18px; border-radius: 104px 0 0 104px; background: #f6faf9; }
body .culture-grid div:nth-child(2)::after,
body .culture-grid div:nth-child(3)::after {
  display: none;
}
body .culture-grid div:nth-child(2)::before,
body .culture-grid div:nth-child(3)::before { top: 28px; right: 38px; }
body .culture-grid h3 { margin: 15px 32px 0 0; font-size: clamp(20px, 1.65vw, 27px); }

@media (max-width: 820px) {
  body .culture-grid { display: grid; grid-template-columns: 1fr; min-height: 0; gap: 14px; }
  body .culture-grid::before { display: none; }
  body .culture-grid .culture-lead,
  body .culture-grid div:nth-child(2),
  body .culture-grid div:nth-child(3) {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    min-height: 0;
    border-radius: 0;
  }
  body .culture-grid .culture-lead { min-height: 310px; border-radius: 50% 50% 0 0; }
  body .culture-grid div:nth-child(2),
  body .culture-grid div:nth-child(3) { padding: 34px 38px 34px 70px; }
}

/* Closing statement: a clean navy-to-blue treatment without green cast. */
body .statement {
  background: #0a4167;
}
body .statement p { color: #9fd3eb; }

/* Core-business cards: a unified blue and blue-grey hierarchy. */
body .business-grid {
  background: #82aac2;
  border-color: #82aac2;
}
body .business-grid article:nth-child(1) {
  background-image: linear-gradient(145deg, #0a4d7d 0%, #236e99 100%);
}
body .business-grid article:nth-child(2) {
  background-image: linear-gradient(145deg, #125b88 0%, #357fa7 100%);
}
body .business-grid article:nth-child(3) {
  background-image: linear-gradient(145deg, #1b6895 0%, #458cb0 100%);
}
body .business-grid article:nth-child(4) {
  background-image: linear-gradient(145deg, #27799f 0%, #569bbb 100%);
}
body .business-grid article span { color: #cce8f6; }

/* Keep the hero service descriptor crisp over the navy background. */
body .hero .eyebrow { color: #ffffff; }
body .timeline-section > .section-heading .eyebrow { color: #68b38d; }

/* Cool the circuit artwork to blue-grey so no green cast reaches the section. */
body .business-section {
  background-color: #d7e4eb;
  background-image:
    linear-gradient(90deg, #f4f8fa99 0%, #d9e8f0a3 48%, #9fc1d49c 100%),
    url("assets/core-business-circuit-blue.png?v=1");
  background-blend-mode: normal;
}
@media (max-width: 800px) {
  body .business-section {
    background-image:
      linear-gradient(180deg, #f4f8fa99 0%, #d9e8f0a3 58%, #9fc1d49c 100%),
      url("assets/core-business-circuit-blue.png?v=1");
  }
}

/* Give the corporate-culture statement a stronger display scale. */
body .culture-heading h2 {
  font-size: clamp(40px, 4.15vw, 62px);
  line-height: 1.1;
  letter-spacing: -.04em;
}
@media (max-width: 800px) {
  body .culture-heading h2 { font-size: clamp(35px, 9.7vw, 46px); }
}

/* Slightly soften the application-focus title. */
body .solutions .section-heading h2 {
  font-size: clamp(36px, 3.75vw, 58px);
  line-height: 1.12;
}
@media (max-width: 800px) {
  body .solutions .section-heading h2 { font-size: clamp(32px, 9.4vw, 44px); }
}

/* Corporate culture: one full-bleed collaboration image with clear content layers. */
body .culture-section { background: #eaf1f5; }
body .culture-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(340px, .94fr);
  grid-template-rows: repeat(2, minmax(220px, 1fr));
  gap: 1px;
  min-height: 520px;
  overflow: hidden;
  border: 1px solid #b9cfdb;
  background: url("assets/culture-client-dialogue.png?v=2") center / cover no-repeat;
  box-shadow: 0 18px 38px #123f5d14;
}
body .culture-grid::before { display: none; }
body .culture-grid .culture-lead {
  position: relative;
  z-index: 1;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  grid-column: 1;
  grid-row: 1 / span 2;
  width: auto;
  min-height: 0;
  padding: clamp(42px, 5vw, 72px) clamp(36px, 5vw, 64px);
  border: 0;
  border-radius: 0;
  background: linear-gradient(110deg, #063b63c5 0%, #0c5176b8 58%, #0a41675c 100%);
  box-shadow: none;
}
body .culture-grid .culture-lead::before { left: auto; right: 34px; bottom: 26px; color: #ffffff14; }
body .culture-grid .culture-lead h3 { max-width: 430px; margin: 28px 0 0; font-size: clamp(31px, 3.1vw, 46px); line-height: 1.18; }
body .culture-grid .culture-lead p { max-width: 385px; margin-top: auto; color: #dcecf4; }
body .culture-grid div:nth-child(2),
body .culture-grid div:nth-child(3) {
  position: relative;
  right: auto;
  bottom: auto;
  width: auto;
  min-height: 0;
  padding: 46px 54px;
  overflow: hidden;
  border: 0;
  border-left: 4px solid #2d85b4;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: blur(6px);
}
body .culture-grid div:nth-child(2) {
  top: auto;
  grid-column: 2;
  grid-row: 1;
  background: #fbfdfeb8;
}
body .culture-grid div:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
  background: #e7f0f5b8;
}
body .culture-grid div:nth-child(2)::before,
body .culture-grid div:nth-child(3)::before { top: 34px; right: 42px; color: #2d85b4; }
body .culture-grid div:nth-child(2)::after,
body .culture-grid div:nth-child(3)::after { display: none; }
body .culture-grid h3 { max-width: 570px; margin: 18px 0 0; font-size: clamp(21px, 1.75vw, 28px); }
body .culture-grid div:nth-child(3) span { color: #2d85b4; }

@media (max-width: 820px) {
  body .culture-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    min-height: 0;
    gap: 1px;
  }
  body .culture-grid .culture-lead,
  body .culture-grid div:nth-child(2),
  body .culture-grid div:nth-child(3) {
    grid-column: 1;
    grid-row: auto;
    width: 100%;
    min-height: 220px;
    border-radius: 0;
  }
  body .culture-grid .culture-lead { min-height: 360px; }
  body .culture-grid div:nth-child(2),
  body .culture-grid div:nth-child(3) { padding: 38px 34px; }
}

/* English milestone cards share their row height despite longer copy. */
@media (min-width: 721px) {
  html[lang="en"] body .timeline-section .timeline article:nth-child(4),
  html[lang="en"] body .timeline-section .timeline article:nth-child(5) { display: flex; }
  html[lang="en"] body .timeline-section .timeline article:nth-child(4) .timeline-paper,
  html[lang="en"] body .timeline-section .timeline article:nth-child(5) .timeline-paper {
    flex: 1 1 auto;
    height: 100%;
  }
}

