@charset "UTF-8";

/* Underground solution styles, combined in their original cascade order. */

/* ===== Source: css/base.css ===== */
:root{
  --blue: #1d5dbf;
  --blue-deep: #0b3f8f;
  --cyan: #3cc8ff;
  --ink: #101827;
  --text: #253047;
  --muted: #6c778c;
  --line: #dfe7f2;
  --soft: #f5f8fc;
  --panel: #ffffff;
  --radius: 8px;
  --site-safe-width: 1360px;
  --site-gutter: 72px;
  --site-button-width: 144px;
  --site-button-height: 48px;
  --site-button-radius: 6px;
  --site-button-font-size: 16px;
  --site-primary-banner-height: 670px;
}
*{
  box-sizing: border-box;
}
html{
  scroll-behavior: smooth;
}
a.is-disabled-link{
  cursor: default;
  pointer-events: none;
}
body{
  margin: 0;
  color: var(--text);
  background: #ffffff;
  font-family: "Microsoft YaHei", "PingFang SC", "Segoe UI", Arial, sans-serif;
  overflow-x: hidden;
}
a{
  color: inherit;
  text-decoration: none;
}
img{
  display: block;
  width: 100%;
}
img.is-image-failed{
  min-height: 80px;
  background: var(--blue);
  color: transparent;
  font-size: 0;
  object-fit: cover;
}
.container{
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
  margin: 0 auto;
}
.button{
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 134px;
  height: 44px;
  padding: 0 24px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 700;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.button::before{
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-120%);
  background: linear-gradient(110deg, transparent, rgba(255, 255, 255, 0.34), transparent);
  transition: transform 520ms ease;
}
.button:hover::before{
  transform: translateX(120%);
}
.button:hover{
  transform: translateY(-2px);
}
.contact-float{
  color: #0b1118;
  font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  position: fixed;
  z-index: 90;
  right: 10px;
  bottom: 50px;
  display: flex;
  flex-direction: column;
  width: 84px;
  padding-bottom: 96px;
  gap: 20px;
  border: 0;
  background: transparent;
  box-shadow: none;
  scale: .9;
  transform: scale(.65);
  transform-origin: right bottom;
}
.contact-float-main{
  width: 100%;
  padding: 25px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
  border-radius: 62px;
  background: #ffffff;
  box-shadow: 0 0 8px rgba(0, 40, 82, 0.1);
}
.contact-item{
  position: relative;
  width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: #005dbe;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  font: inherit;
  text-decoration: none;
  transition: background 160ms ease;
}
.contact-divider{
  display: block;
  width: 36px;
  height: 1px;
  line-height: 0;
}
.contact-divider img{
  display: block;
  width: 100%;
  height: 1px;
}
.contact-icon{
  position: relative;
  z-index: 2;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact-icon img,
.contact-online-icon img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.contact-float-main .contact-icon img{
  transition: filter 180ms ease, transform 180ms ease;
}
.contact-float-main .contact-item:hover .contact-icon img,
.contact-float-main .contact-item:focus-visible .contact-icon img{
  filter: brightness(0) saturate(100%) invert(24%) sepia(98%) saturate(2340%) hue-rotate(197deg) brightness(94%) contrast(104%);
}
.contact-icon svg{
  width: 34px;
  height: 34px;
  color: currentColor;
  filter: drop-shadow(0 1px 2px rgba(255, 255, 255, 0.12));
}
.contact-icon svg path,
.contact-icon svg circle{
  fill: currentColor;
}
.contact-icon svg path[fill="none"]{
  fill: none;
}
.contact-label{
  position: relative;
  z-index: 2;
  display: block;
  width: 20px;
  margin-top: 10px;
  color: #525d6d;
  font-size: 20px;
  font-weight: 400;
  line-height: 22px;
  text-align: center;
  word-break: break-word;
}
.contact-online{
  width: 100%;
  height: auto;
  min-height: 168px;
  padding: 8px 2px 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  border-radius: 62px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(16,31,55,.1);
  color: #536174;
}
.contact-online-icon{
  width: 60px;
  height: 60px;
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #ffffff;
}
.contact-panel{
  position: absolute;
  top: 50%;
  right: 102px;
  min-width: 188px;
  padding: 16px 18px;
  color: var(--ink);
  border: 1px solid rgba(29, 93, 191, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.16);
  opacity: 0;
  pointer-events: none;
  transform: translate(12px, -50%);
  transition: opacity 180ms ease, transform 180ms ease;
}
.qr-item .contact-panel{
  width: 148px;
  min-width: 148px;
  height: 148px;
  padding: 6px;
  border: 0;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 16px 42px rgba(0, 40, 82, 0.16);
  text-align: center;
  transform: translate(12px, -50%) scale(1.25);
  transform-origin: right center;
}
.qr-item .contact-panel::after{
  display: block;
  border-color: transparent;
  background: #ffffff;
  box-shadow: 6px -6px 16px rgba(0, 40, 82, 0.04);
}
.phone-item .contact-panel{
  right: 68px;
  width: 193px;
  min-width: 193px;
  height: 111px;
  padding: 32px 0 0 32px;
  border: 0;
  border-radius: 0;
  background: url("../assets/float-phone-panel-bg.svg?v=20260810-svg-1") center / 100% 100% no-repeat;
  box-shadow: none;
  text-align: left;
  transform: translate(12px, -50%) scale(1.5);
  transform-origin: right center;
}
.phone-item .contact-panel::after{
  display: none;
}
.contact-panel::after{
  content: "";
  position: absolute;
  right: -7px;
  top: 50%;
  width: 12px;
  height: 12px;
  border-top: 1px solid rgba(29, 93, 191, 0.12);
  border-right: 1px solid rgba(29, 93, 191, 0.12);
  background: rgba(255, 255, 255, 0.96);
  transform: translateY(-50%) rotate(45deg);
}
.contact-panel strong{
  display: block;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.4;
  white-space: nowrap;
}
.qr-item .contact-panel strong{
  font-size: 18px;
  font-weight: 700;
}
.contact-panel em{
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  line-height: 1.5;
  white-space: nowrap;
}
.qr-item .contact-panel em{
  margin-top: 10px;
  color: #667085;
  font-size: 13px;
  white-space: normal;
}
.phone-item .contact-panel em{
  margin: 0;
  color: #636e82;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  white-space: nowrap;
}
.phone-item .contact-panel strong{
  margin-top: 7px;
  color: #005dbe;
  font-size: 16px;
  font-weight: 700;
  line-height: 26px;
  white-space: nowrap;
}
.contact-item:hover,
.contact-item:focus-visible{
  background: transparent;
}
.contact-online:hover,
.contact-online:focus-visible{
  background: #fff;
}
.contact-online .contact-panel{
  display: none;
}
.online-chat-panel{
  position: fixed;
  z-index: 91;
  right: 118px;
  bottom: 50px;
  width: 450px;
  height: min(720px, calc(100vh - 100px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: #001a3d;
  border: 1px solid rgba(166, 178, 199, 0.22);
  border-radius: 10px;
  background: #eef4fb;
  box-shadow: 0 16px 46px rgba(13, 35, 68, 0.18);
  opacity: 0;
  pointer-events: none;
  text-align: left;
  transform: translateX(14px);
  transform-origin: right bottom;
  transition: opacity 180ms ease, transform 180ms ease;
}
.online-chat-panel.is-open{
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}
.online-chat-head{
  height: 68px;
  min-height: 68px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  background: #ffffff;
  box-shadow: 0 7px 18px rgba(20, 39, 69, 0.13);
}
.online-chat-head-icon{
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #238cff;
  box-shadow: 0 8px 18px rgba(35, 140, 255, 0.24);
}
.online-chat-head-icon svg{
  width: 23px;
  height: 23px;
  fill: #ffffff;
}
.online-chat-title{
  color: #636e82;
  font-size: 20px;
  line-height: 1;
  white-space: nowrap;
}
.online-chat-close{
  position: relative;
  width: 28px;
  height: 28px;
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
  appearance: none;
  cursor: pointer;
}
.online-chat-close::before,
.online-chat-close::after{
  content: "";
  position: absolute;
  left: 13px;
  top: 2px;
  width: 2px;
  height: 24px;
  border-radius: 2px;
  background: #5f6878;
}
.online-chat-close::before{
  transform: rotate(45deg);
}
.online-chat-close::after{
  transform: rotate(-45deg);
}
.online-chat-body{
  flex: 1;
  min-height: 0;
  padding: 0 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow-y: auto;
  background: #eef4fb;
}
.online-chat-default,
.online-chat-thread{
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.online-chat-thread[hidden]{
  display: none;
}
.online-chat-thread{
  padding-top: 4px;
}
.online-chat-card{
  display: block;
  margin-top: 18px;
  padding: 22px 16px 20px;
  border-radius: 10px;
  background: #ffffff;
}
.online-chat-card strong{
  display: block;
  color: #001a3d;
  font-size: 13px;
  line-height: 26px;
}
.online-chat-rule{
  display: block;
  height: 1px;
  margin: 8px 0 12px;
  background: #e0e5ee;
}
.online-chat-support{
  display: block;
  padding: 14px 14px 18px;
  border-radius: 8px;
  background: #eef5ff;
}
.online-chat-support > span{
  position: relative;
  display: block;
  padding-left: 34px;
  color: #30435f;
  font-size: 15px;
  line-height: 26px;
}
.online-chat-support > span + span{
  margin-top: 10px;
}
.online-chat-support b{
  position: absolute;
  left: 0;
  top: 2px;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  background: #80aaff;
  font-size: 16px;
  line-height: 1;
}
.online-chat-support em{
  color: #285dff;
  font-style: normal;
}
.online-chat-support > .online-chat-qr{
  width: 96px;
  height: 96px;
  margin: 14px 0 0 48px;
  padding-left: 0;
  background: url("../assets/float-wechat-assistant-qr.png") center / cover no-repeat;
}
.online-chat-session-title{
  margin-top: 8px;
  color: #8a94a6;
  font-size: 15px;
  line-height: 22px;
  text-align: center;
}
.online-chat-session-time{
  margin-top: -8px;
  color: #8a94a6;
  font-size: 15px;
  line-height: 22px;
  text-align: center;
}
.online-chat-message-list{
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.online-chat-message{
  display: flex;
}
.online-chat-message.assistant{
  justify-content: flex-start;
}
.online-chat-message.user{
  justify-content: flex-end;
}
.online-chat-message-stack{
  max-width: 78%;
}
.online-chat-message.user .online-chat-message-stack{
  display: flex;
  justify-content: flex-end;
}
.online-chat-sender{
  margin-bottom: 8px;
  color: #002766;
  font-size: 15px;
  line-height: 22px;
}
.online-chat-message-bubble{
  max-width: 100%;
  padding: 14px 16px;
  border-radius: 10px;
  font-size: 15px;
  line-height: 22px;
  white-space: pre-wrap;
  word-break: break-word;
}
.online-chat-message.assistant .online-chat-message-bubble{
  color: #001a3d;
  background: #ffffff;
  box-shadow: 0 2px 10px rgba(20, 39, 69, 0.06);
}
.online-chat-message.user .online-chat-message-bubble{
  color: #ffffff;
  background: linear-gradient(180deg, #3a86ff 0%, #245fd9 100%);
  border-radius: 10px 10px 4px 10px;
  box-shadow: 0 8px 18px rgba(47, 104, 255, 0.18);
}
.online-chat-message-bubble-image{
  padding: 8px;
}
.online-chat-message-bubble-image img{
  display: block;
  width: min(200px, 100%);
  height: auto;
  border-radius: 6px;
}
.online-chat-tabs{
  height: 50px;
  min-height: 50px;
  padding: 7px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #eef4fb;
}
.online-chat-mode{
  height: 34px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8b96a8;
  border: 1px solid #d9e2ee;
  border-radius: 9px;
  background: #f7faff;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  appearance: none;
}
.online-chat-mode.is-selected{
  color: #ffffff;
  border-color: #2f68ff;
  background: #2f68ff;
  box-shadow: 0 4px 12px rgba(47, 104, 255, 0.18);
}
.online-chat-input{
  height: 72px;
  min-height: 72px;
  margin: 0 12px 12px;
  padding: 0 12px 0 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid #d8e0ec;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 4px 12px rgba(19, 43, 78, 0.08);
}
.online-chat-textarea{
  flex: 1;
  height: 100%;
  padding: 18px 0;
  border: 0;
  outline: none;
  resize: none;
  background: transparent;
  color: #001a3d;
  font-size: 15px;
  line-height: 20px;
  overflow-y: auto;
  white-space: pre-wrap;
  font: inherit;
  appearance: none;
}
.online-chat-textarea::placeholder{
  color: #9aa4b4;
}
.online-chat-send{
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #2f68ff;
  position: relative;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(47, 104, 255, 0.22);
}
.online-chat-send svg{
  display: block;
  width: 19px;
  height: 19px;
  color: #ffffff;
}
.online-chat-send:focus-visible{
  outline: 2px solid rgba(47, 104, 255, 0.28);
  outline-offset: 2px;
}
.contact-item:hover .contact-panel,
.contact-item:focus-visible .contact-panel,
.qr-item:focus .contact-panel{
  opacity: 1;
  transform: translate(0, -50%);
}
.mini-qr{
  display: block;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  background: url("../assets/float-wechat-assistant-qr.png") center / cover no-repeat;
  border: 0;
  outline: 0;
  box-shadow: none;
}
.mini-qr.official-qr{
  background-image: url("../assets/float-official-account-qr.jpeg");
}
.qr-item:hover .contact-panel,
.qr-item:focus-visible .contact-panel,
.qr-item:focus .contact-panel{
  transform: translate(0, -50%) scale(1.25);
}
.phone-item:hover .contact-panel,
.phone-item:focus-visible .contact-panel,
.phone-item:focus .contact-panel{
  transform: translate(0, -50%) scale(1.5);
}
.back-top{
  position: absolute;
  top: calc(100% - 76px);
  left: 4px;
  width: 76px;
  height: 76px;
  min-height: 76px;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 0 8px rgba(0, 40, 82, 0.1);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.back-top.is-visible{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.back-top img{
  display: block;
  width: 36px;
  height: 36px;
  max-width: none;
  transition: transform 180ms ease;
}
.back-top:hover,
.back-top:focus-visible{
  background: #ffffff;
  box-shadow: 0 0 12px rgba(0, 40, 82, 0.16);
}
.back-top:hover img,
.back-top:focus-visible img{
  transform: translateY(-2px);
}
.back-top:focus-visible{
  outline: 2px solid #006dff;
  outline-offset: 3px;
}
.section{
  padding: 108px 0;
}
.section-head{
  display: grid;
  grid-template-columns: minmax(260px, 420px) minmax(0, 1fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 42px;
}
.section-head .section-kicker{
  grid-column: 1 / -1;
  margin-bottom: -18px;
}
.section-head span{
  justify-self: end;
  max-width: 560px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}
.reveal{
  opacity: 0;
  transform: translateY(34px);
  transition: opacity 720ms ease, transform 720ms cubic-bezier(0.2, 0.8, 0.2, 1);
  transition-delay: var(--delay, 0ms);
}
.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}
@media (max-width: 1100px){
.section-head span{
    justify-self: start;
  }
}
@media (max-width: 700px){
:root{
    --site-gutter: 40px;
  }
.container{
    width: calc(100% - 40px);
  }
.section{
    padding: 76px 0;
  }
.contact-float{
    right: 10px;
    bottom: 20px;
    display: flex;
    transform: scale(.65);
  }
.online-chat-panel{
    right: 12px;
    bottom: 20px;
    width: min(450px, calc(100% - 24px));
    height: min(720px, calc(100svh - 40px));
  }
}
@media (prefers-reduced-motion: reduce){
*,
  *::before,
  *::after{
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}
/* Consistent module headings across all website pages and breakpoints. */
body main h2:not(:where(article h2, dialog h2, [role="dialog"] h2)),
body main h2:not(:where(article h2, dialog h2, [role="dialog"] h2)) > strong {
  font-size: 36px !important;
}

/* Shared dimensions for public-facing content actions; visual variants stay page-owned. */
:is(
  .button,
  .stories-hero-button,
  .home-cta-button,
  .home-service-consult,
  .notrack-banner-button,
  .op-more-cta > a,
  .trial-form button
) {
  box-sizing: border-box;
  width: var(--site-button-width) !important;
  min-width: var(--site-button-width) !important;
  max-width: var(--site-button-width) !important;
  height: var(--site-button-height) !important;
  min-height: var(--site-button-height) !important;
  max-height: var(--site-button-height) !important;
  padding-inline: 16px !important;
  border-radius: var(--site-button-radius) !important;
  font-size: var(--site-button-font-size) !important;
  line-height: 1.5 !important;
}

/* ===== Source: css/layout.css ===== */
.figma-home .proto-footer{
  background: #f3f3f3;
}
.figma-home .proto-footer-search{
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
  margin: 0 auto;
  padding: 32px 0 20px;
  border-bottom: 1px solid #9fa3a8;
  display: flex;
  justify-content: flex-end;
}
.figma-home .proto-footer-search label{
  position: relative;
  width: 196px;
  height: 28px;
}
.figma-home .proto-footer-search input{
  width: 100%;
  height: 100%;
  padding: 0 34px 0 16px;
  border: 2px solid #333942;
  border-radius: 999px;
  background: transparent;
  color: #1d2530;
  font-size: 12px;
  outline: none;
}
.figma-home .proto-footer-search span{
  position: absolute;
  top: 7px;
  right: 13px;
  width: 12px;
  height: 12px;
  border: 2px solid #333942;
  border-radius: 50%;
}
.figma-home .proto-footer-search span::after{
  content: "";
  position: absolute;
  right: -6px;
  bottom: -4px;
  width: 7px;
  height: 2px;
  background: #333942;
  transform: rotate(45deg);
}
.figma-home .proto-footer-nav{
  display: grid;
  grid-template-columns: repeat(5, max-content);
  justify-content: end;
  align-self: end;
  column-gap: 90px;
  row-gap: 28px;
}
.figma-home .proto-footer-nav h3{
  margin: 0 0 18px;
  color: #1d2530;
  font-size: 15px;
  font-weight: 600;
}
.figma-home .proto-footer-nav a{
  position: relative;
  display: block;
  margin: 0 0 10px;
  padding-left: 11px;
  color: #4f5866;
  font-size: 12px;
  line-height: 1.35;
  white-space: nowrap;
}
.figma-home .proto-footer-nav a::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 4px;
  height: 4px;
  background: #006dff;
}
.figma-home .proto-footer-nav{
  display: none !important;
}
.case-center-section + .compact-footer .copyright{
  height: 54px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 860px){
.figma-home .proto-solution-grid,
  .figma-home .proto-solution-slide,
  .figma-home .proto-product-grid,
  .figma-home .proto-case-grid,
  .figma-home .proto-news-grid,
  :is(.figma-home, .about-site) .proto-footer-main,
  .figma-home .proto-footer-nav{
    grid-template-columns: 1fr;
  }
}
.copyright,
.footer p,
.compact-footer p,
.figma-home .proto-hero p,
.figma-home .proto-title p{
  text-indent: 0;
}
.logo{
  color: #ffffff;
  font-size: 23px;
  font-weight: 700;
  letter-spacing: 7px;
}
.footer{
  color: #0f172a;
  background: #f3f4f6;
}
.footer-grid a::before{
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 6px;
  height: 6px;
  background: #1d5dbf;
  content: "";
}
.footer-qr .mini-qr{
  width: 116px;
  height: 116px;
  margin: 0;
  border-width: 8px;
  outline: 0;
}
.footer-grid{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(26px, 3vw, 54px);
  padding: 0;
}
.footer-grid h4{
  margin: 0 0 24px;
  color: #111827;
  font-size: 22px;
  font-weight: 800;
}
.footer-grid a{
  position: relative;
  display: block;
  margin-bottom: 13px;
  padding-left: 18px;
  color: rgba(17, 24, 39, 0.58);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.42;
  transition: color 180ms ease, transform 180ms ease;
}
.footer-grid a:hover{
  color: #1d5dbf;
  transform: translateX(4px);
}
.compact-footer{
  position: relative;
  margin-top: 0;
  overflow: hidden;
  background: #f3f4f6;
}
.footer.compact-footer{
  background: #f3f4f6;
}
.compact-footer .copyright{
  position: relative;
  z-index: 1;
  display: block;
}
@media (max-width: 1100px){
  .intro-grid,
  .section-head,
  .trial-panel,
  .video-showcase{
    grid-template-columns: 1fr;
  }
  .service-list,
  .footer-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px){
  .service-list,
  .trial-form,
  .footer-grid,
  .news-card{
    grid-template-columns: 1fr;
  }
.footer-grid h4{
    margin-bottom: 14px;
    font-size: 19px;
  }
.footer-grid a{
    margin-bottom: 10px;
    font-size: 14px;
  }
}
.fh-header{
  position: fixed;
  z-index: 80;
  top: 0;
  left: 0;
  right: 0;
  height: 64px;
  color: rgba(26, 26, 26, 0.9);
  background: rgba(255, 255, 255, .72);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  border-bottom: 1px solid rgba(230, 230, 230, .65);
  opacity: 1;
}
.fh-header-inner{
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
  height: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) 160px 35px;
  align-items: center;
  gap: 8px;
}
.fh-header-inner::after{
  content: "EN";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  width: 29px;
  height: 32px;
  color: #ffffff;
  background: #005dbe;
  border-radius: 6px;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;
  font-size: 14px;
  line-height: 21px;
}
.fh-header-inner:has(.fh-language)::after{
  display: none;
}
.fh-language{
  position: relative;
  z-index: 2;
  grid-column: 4;
  justify-self: end;
}
.fh-language-trigger{
  width: 29px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  color: #ffffff;
  background: #005dbe;
  cursor: pointer;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;
  font-size: 14px;
  line-height: 21px;
}
.fh-language-menu{
  position: absolute;
  top: 100%;
  right: 0;
  width: 172px;
  display: grid;
  gap: 2px;
  padding: 6px;
  border: 1px solid #dce9f5;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(16, 48, 92, 0.16);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}
.fh-language-menu span,
.fh-language-menu button{
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 32px;
  padding: 0 10px;
  border: 0;
  border-radius: 4px;
  color: #334155;
  background: transparent;
  cursor: pointer;
  font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  font-size: 14px;
  line-height: 20px;
  text-align: left;
}
.fh-language-menu span.is-active,
.fh-language-menu button.is-active,
.fh-language-menu button:hover,
.fh-language-menu button:focus-visible{
  color: #005dbe;
  background: #edf6ff;
  font-weight: 600;
}
.fh-language:hover .fh-language-menu,
.fh-language:focus-within .fh-language-menu,
.fh-language.is-open .fh-language-menu{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.fh-logo{
  display: inline-flex;
  align-items: center;
  color: inherit;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 2px;
}
.fh-logo{
  width: 132px;
  height: 34px;
  color: #005dbe;
  letter-spacing: 0;
}
.fh-logo::before{
  content: none;
}
.fh-logo::after{
  content: none;
}
.fh-logo img{
  display: block;
  width: 132px;
  height: 34px;
  object-fit: contain;
}
.fh-nav{
  display: flex;
  justify-content: center;
  gap: 10px;
  color: rgba(26, 26, 26, 0.9);
  font-size: 16px;
  white-space: nowrap;
}
.fh-nav a{
  position: relative;
  min-width: 96px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  font-weight: 400;
  transition: color 180ms ease;
}
.fh-nav a.has-mega{
  padding-right: 0;
}
.fh-nav a.has-mega::before{
  content: "";
  position: absolute;
  top: 50%;
  right: 18px;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  opacity: 0;
  transform: translateY(-65%) rotate(45deg);
  transition: opacity 180ms ease, transform 180ms ease;
}
.fh-nav a:hover,
.fh-nav a.active-page,
.fh-nav a.is-mega-active{
  color: #1a1a1a;
}
.fh-nav a.active-page{
  font-weight: 700;
}
.fh-nav a.has-mega:hover::before,
.fh-nav a.has-mega:focus-visible::before{
  position: static;
  flex: 0 0 auto;
  order: 1;
  margin-left: 0;
  opacity: 1;
  transform: rotate(45deg);
}
.fh-nav a.has-mega.is-mega-active::before{
  position: static;
  flex: 0 0 auto;
  order: 1;
  margin-left: 0;
  opacity: 1;
  transform: rotate(225deg);
}
.fh-nav a.has-mega:hover,
.fh-nav a.has-mega:focus-visible,
.fh-nav a.has-mega.is-mega-active{
  gap: 6px;
}
.fh-nav a::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: transparent;
}
.fh-nav a:hover::after,
.fh-nav a.active-page::after,
.fh-nav a.is-mega-active::after{
  background: #005dbe;
}
.fh-mega-menu{
  position: fixed;
  z-index: 79;
  top: 64px;
  left: 0;
  right: 0;
  color: #1a1a1a;
  overflow: hidden;
  isolation: isolate;
  background: #ffffff;
  border-top: 1px solid #e6e6e6;
  border-bottom: 1px solid #e6e6e6;
  box-shadow: 0 24px 56px rgba(16, 31, 55, 0.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-10px);
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}
.fh-mega-menu::before,
.fh-mega-menu::after{
  display: none;
}
.fh-mega-menu.is-open{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.fh-mega-inner{
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
  margin: 0 auto;
  padding: 38px 0 46px;
}
.fh-mega-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 46px 64px;
}
.fh-mega-menu.is-solution-menu .fh-mega-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  row-gap: 76px;
}
@media (min-width: 1181px) {
  .fh-mega-menu.is-solution-menu .fh-mega-grid {
    grid-template-columns: repeat(10, minmax(0, 1fr));
    column-gap: 40px;
  }
  .fh-mega-menu.is-solution-menu .fh-mega-item:nth-child(1),
  .fh-mega-menu.is-solution-menu .fh-mega-item:nth-child(2) { grid-column: span 5; }
  .fh-mega-menu.is-solution-menu .fh-mega-item:nth-child(n + 3) { grid-column: span 2; }
}
.fh-mega-menu.is-product-menu{
  max-height: calc(100vh - 64px);
  overflow-x: hidden;
  overflow-y: auto;
}
.fh-mega-menu.is-product-menu .fh-mega-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}
.fh-mega-menu.is-product-menu .fh-mega-inner{
  padding: 32px 0 40px;
}
.fh-mega-product-column{
  min-width: 0;
  padding: 0 32px;
}
.fh-mega-product-column:first-child{
  padding-left: 0;
}
.fh-mega-product-column:last-child{
  padding-right: 0;
}
.fh-mega-product-column h2{
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #d8dee5;
  color: #18212b;
  font-size: 23px;
  font-weight: 600;
  line-height: 1.3;
}
.fh-mega-product-column h2 span{
  margin-left: 2px;
  font-size: 15px;
  font-weight: 400;
  color: #697787;
}
.fh-mega-product-section + .fh-mega-product-section{
  margin-top: 24px;
}
.fh-mega-product-column.is-platform .fh-mega-product-section + .fh-mega-product-section{
  margin-top: 0;
}
.fh-mega-product-section h3{
  margin: 0 0 2px;
  padding-bottom: 0;
  color: #1a1a1a;
  font-size: 15px;
  font-weight: 600;
}
.fh-mega-product-column .fh-mega-sublist{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 10px;
}
.fh-mega-production-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.fh-mega-production-layout > div { min-width: 0; }
.fh-mega-production-layout .fh-mega-sublist { grid-template-columns: minmax(0, 1fr); }
.fh-mega-product-column .fh-mega-sublist a{
  position: relative;
  display: flex;
  box-sizing: border-box;
  width: 220px;
  max-width: 100%;
  min-width: 0;
  min-height: 43px;
  padding: 0;
  border: 0;
  border-radius: 0;
  align-items: center;
  background: #fff;
  font-size: 14px;
  line-height: 1.5;
}
.fh-mega-product-column .fh-mega-sublist a:is(:hover, :focus-visible, .is-current){
  background: transparent;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
@media (min-width: 1181px) {
  .fh-mega-menu.is-product-menu .fh-mega-grid {
    grid-template-columns: minmax(0, calc(40% + 80px)) minmax(0, calc(30% - 40px)) minmax(0, calc(30% - 40px));
  }
  .fh-mega-product-column:nth-child(2) .fh-mega-sublist { grid-template-columns: minmax(0, 1fr); }
  .fh-mega-product-column:nth-child(3) .fh-mega-sublist { grid-template-columns: minmax(0, 1fr); }
  .fh-mega-product-column:last-child { padding-right: 32px; }
}
.fh-mega-menu.is-solution-menu .fh-mega-inner{
  padding-top: 38px;
}
.fh-mega-menu.is-solution-menu .fh-mega-item{
  position: relative;
  min-height: 0;
  gap: 0;
  padding-top: 0;
  padding-bottom: 48px;
  border-top: 0;
  border-bottom: 0;
  transition: color 180ms ease, text-decoration-color 180ms ease;
}
.fh-mega-menu.is-solution-menu .fh-mega-item:nth-child(-n + 3)::after{
  content: "";
  position: absolute;
  right: 0;
  bottom: -14px;
  left: 0;
  height: 0;
  border-bottom: 1px solid #e5eaf1;
}
.fh-mega-item{
  min-height: 104px;
  display: grid;
  align-content: start;
  gap: 18px;
  padding-top: 18px;
  border-top: 1px solid #e5eaf1;
  color: rgba(26, 26, 26, 0.92);
  transition: color 180ms ease, transform 180ms ease;
}
.fh-mega-item strong{
  font-size: 20px;
  line-height: 1.35;
  font-weight: 600;
  white-space: nowrap;
}
.fh-mega-item span{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(26, 26, 26, 0.48);
  font-size: 15px;
}
.fh-mega-item span::after{
  content: "";
  width: 7px;
  height: 7px;
  border-top: 1.5px solid #d71920;
  border-right: 1.5px solid #d71920;
  transform: rotate(45deg);
}
.fh-mega-item:hover,
.fh-mega-item:focus-visible{
  color: rgba(26, 26, 26, 0.92);
  transform: none;
}
.fh-mega-item:hover span,
.fh-mega-item:focus-visible span{
  color: rgba(26, 26, 26, 0.48);
}
.fh-mega-menu.is-solution-menu .fh-mega-item:hover,
.fh-mega-menu.is-solution-menu .fh-mega-item:focus-visible,
.fh-mega-menu.is-solution-menu .fh-mega-item.is-current{
  color: #005dbe;
  background: transparent;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transform: none;
}
.fh-mega-item.is-disabled{
  cursor: default;
  color: rgba(26, 26, 26, 0.68);
  pointer-events: none;
  transform: none;
}
.fh-mega-menu.is-solution-menu .fh-mega-item.is-disabled{
  color: #a8adb5;
  text-decoration: none;
}
.fh-mega-item.is-disabled span{
  color: rgba(26, 26, 26, 0.42);
}
.fh-mega-item.is-disabled > span,
.fh-mega-sublist em{
  display: none;
}
.fh-mega-item.is-disabled span::after{
  display: none;
}
.fh-mega-item.is-disabled:hover{
  color: rgba(26, 26, 26, 0.68);
  transform: none;
}
.fh-mega-item.is-disabled:hover span{
  color: rgba(26, 26, 26, 0.42);
}
.fh-mega-product-card{
  min-height: 0;
  gap: 16px;
  cursor: default;
  transform: none;
}
.fh-mega-product-card:hover{
  transform: none;
}
.fh-mega-menu.is-product-menu .fh-mega-product-card{
  padding-top: 0;
  border-top: 0;
}
.fh-mega-menu.is-product-menu .fh-mega-product-card > strong{
  font-size: 18px;
  font-weight: 400;
  padding-bottom: 18px;
  border-bottom: 1px solid #e5eaf1;
}
.fh-mega-sublist{
  display: grid;
  gap: 9px;
}
.fh-mega-sublist a,
.fh-mega-sublist span{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  align-items: center;
  color: rgba(26, 26, 26, 0.42);
  font-size: 14px;
  line-height: 1.45;
}
.fh-mega-sublist span::after{
  display: none;
}
.fh-mega-sublist a{
  color: rgba(26, 26, 26, 0.92);
  text-decoration: none;
  transition: color 180ms ease, transform 180ms ease;
}
.fh-mega-sublist a:hover,
.fh-mega-sublist a:focus-visible,
.fh-mega-sublist a.is-current{
  color: #005dbe;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
  transform: none;
}
.fh-mega-sublist em{
  display: none;
  align-items: center;
  gap: 7px;
  color: rgba(26, 26, 26, 0.34);
  font-size: 12px;
  font-style: normal;
  white-space: nowrap;
}
.fh-mega-sublist a em{
  color: rgba(0, 93, 190, 0.72);
}
.fh-mega-sublist em::after{
  content: "";
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid rgba(26, 26, 26, 0.28);
  border-right: 1.5px solid rgba(26, 26, 26, 0.28);
  transform: rotate(45deg);
}
.fh-mega-sublist a em::after{
  border-color: #d71920;
}
.fh-search{
  position: relative;
  display: block;
  width: 160px;
}
.fh-search input{
  width: 100%;
  height: 32px;
  padding: 0 8px 0 36px;
  color: #1a1a1a;
  background: #ffffff;
  border: 1px solid #dddddd;
  border-radius: 6px;
  outline: 0;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;
  font-size: 14px;
  line-height: 21px;
}
.fh-search input::placeholder{
  color: #b7bbc1;
}
.fh-search span{
  position: absolute;
  top: 9px;
  left: 12px;
  width: 13px;
  height: 13px;
  color: #b7bbc1;
  border: 1.5px solid currentColor;
  border-radius: 50%;
}
.fh-search span::after{
  content: "";
  position: absolute;
  right: -5px;
  bottom: -3px;
  width: 6px;
  height: 1.5px;
  background: currentColor;
  transform: rotate(45deg);
}
@media (max-width: 1180px){
.fh-mega-menu.is-product-menu .fh-mega-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 0;
  }
.fh-mega-product-column:nth-child(3){
    padding-left: 0;
  }
.fh-header-inner{
    grid-template-columns: 150px 1fr 160px 35px;
  }
.fh-nav{
    display: none;
  }
.fh-mega-menu{
    top: 64px;
    display: block;
    max-height: calc(100vh - 64px);
    overflow-x: hidden;
    overflow-y: auto;
  }
.fh-mega-inner{
    padding: 28px 0 34px;
  }
.fh-mega-grid,
  .fh-mega-menu.is-solution-menu .fh-mega-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 36px;
  }
.fh-search{
    grid-column: 3;
    justify-self: end;
    width: 144px;
  }
.fh-header-inner::after{
    grid-column: 4;
  }
}
@media (max-width: 760px){
.fh-mega-production-layout { grid-template-columns: 1fr; }
.fh-mega-menu.is-product-menu .fh-mega-grid{
    grid-template-columns: 1fr;
  }
.fh-mega-product-column,
  .fh-mega-product-column:nth-child(3){
    padding: 0 0 24px;
    border-left: 0;
    border-bottom: 1px solid #e5eaf1;
  }
.fh-header{
    height: 64px;
  }
.fh-mega-menu{
    top: 64px;
    max-height: calc(100vh - 64px);
  }
.fh-mega-inner{
    width: calc(100% - 40px);
    padding: 22px 0 30px;
  }
.fh-mega-grid,
  .fh-mega-menu.is-solution-menu .fh-mega-grid{
    grid-template-columns: 1fr;
    gap: 20px;
  }
.fh-header-inner{
    width: calc(100% - 40px);
  }
.fh-header-inner{
    grid-template-columns: 1fr 44px 35px;
    gap: 18px;
  }
.fh-search{
    grid-column: 2;
    width: 44px;
  }
.fh-search input{
    padding-left: 0;
    color: transparent;
  }
.fh-search input::placeholder{
    color: transparent;
  }
.fh-header-inner::after{
    grid-column: 3;
  }
.fh-language{
    grid-column: 3;
  }
}


/* Homepage responsive overrides. These rules follow the page-specific desktop rebuilds. */
.fh-mobile-toggle{
  display: none;
}
@media (max-width: 1180px){
:is(.figma-home, .hero-navigation) .fh-header-inner{
    grid-template-columns: 150px minmax(0, 1fr) 44px 42px 35px;
  }
:is(.figma-home, .hero-navigation) .fh-search{
    grid-column: 3;
    width: 44px;
  }
:is(.figma-home, .hero-navigation) .fh-search input{
    padding-left: 0;
    color: transparent;
  }
:is(.figma-home, .hero-navigation) .fh-search input::placeholder{
    color: transparent;
  }
:is(.figma-home, .hero-navigation) .fh-mobile-toggle{
    grid-column: 4;
    justify-self: center;
    width: 38px;
    height: 38px;
    padding: 0;
    display: inline-grid;
    align-content: center;
    justify-items: center;
    gap: 5px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #1d2530;
    cursor: pointer;
  }
:is(.figma-home, .hero-navigation) .fh-mobile-toggle span{
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 1px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
  }
:is(.figma-home, .hero-navigation) .fh-header-inner::after{
    grid-column: 5;
  }
:is(.figma-home, .hero-navigation) .fh-header.is-mobile-open .fh-mobile-toggle span:nth-child(1){
    transform: translateY(7px) rotate(45deg);
  }
:is(.figma-home, .hero-navigation) .fh-header.is-mobile-open .fh-mobile-toggle span:nth-child(2){
    opacity: 0;
  }
:is(.figma-home, .hero-navigation) .fh-header.is-mobile-open .fh-mobile-toggle span:nth-child(3){
    transform: translateY(-7px) rotate(-45deg);
  }
:is(.figma-home, .hero-navigation) .fh-header.is-mobile-open .fh-nav{
    position: absolute;
    top: 100%;
    right: max(24px, calc(var(--site-gutter) / 2));
    left: max(24px, calc(var(--site-gutter) / 2));
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    padding: 10px;
    border: 1px solid #dce7f2;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 16px 36px rgba(16, 31, 55, 0.14);
  }
:is(.figma-home, .hero-navigation) .fh-header.is-mobile-open .fh-nav a{
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border-radius: 5px;
    font-size: 15px;
    white-space: nowrap;
  }
}
@media (max-width: 560px){
:is(.figma-home, .hero-navigation) .fh-header-inner{
    width: calc(100% - 32px);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    gap: 8px;
  }
:is(.figma-home, .hero-navigation) .fh-logo{
    width: 122px;
    margin-right: auto;
  }
:is(.figma-home, .hero-navigation) .fh-search{
    grid-column: auto;
    width: 36px;
  }
:is(.figma-home, .hero-navigation) .fh-search input{
    box-sizing: border-box;
  }
:is(.figma-home, .hero-navigation) .fh-mobile-toggle{
    grid-column: auto;
  }
:is(.figma-home, .hero-navigation) .fh-header-inner::after{
    display: none;
  }
:is(.figma-home, .hero-navigation) .fh-header.is-mobile-open .fh-nav{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* Keep the About page navigation above the history hero on desktop. */
@media (min-width: 1101px){
body:has(.about-page) .fh-header{
    z-index: 1000;
    isolation: isolate;
    visibility: visible;
    opacity: 1;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 1px 0 rgba(16, 24, 39, 0.09);
  }
body:has(.about-page) .fh-header-inner{
    position: relative;
    z-index: 1;
    display: grid;
    visibility: visible;
    opacity: 1;
  }
body:has(.about-page) .fh-logo,
  body:has(.about-page) .fh-nav,
  body:has(.about-page) .fh-search,
  body:has(.about-page) .fh-header-inner::after{
    visibility: visible;
    opacity: 1;
  }
body:has(.about-page) .fh-logo{
    display: inline-flex;
  }
body:has(.about-page) .fh-nav{
    display: flex;
  }
}


/* On narrow windows the fixed header must not mask the history backdrop. */
@media (max-width: 1240px){
body:has(.about-page) .fh-header{
    background: transparent !important;
    border-bottom-color: transparent;
    box-shadow: none;
  }
}

/* Consistent primary navigation typography on every page. */
body .fh-header .fh-nav > a { font-size: 14px; }

/* Shared desktop safe width for the primary header. */
body .fh-header .fh-header-inner { width: min(1360px, calc(100% - var(--site-gutter))); margin-inline: auto; }


/* Consistent search and language-control typography across page headers. */
.fh-header .fh-search input,
.fh-header .fh-search input::placeholder,
.fh-header .fh-language-trigger { font-size: 14px; }

/* Solution labels sized to match the supplied product-menu reference. */
.fh-mega-menu.is-solution-menu .fh-mega-item strong { font-size: 18px; font-weight: 400; }

/* Two mine scenes at left; five specialist solutions across three columns. */
@media (min-width: 1181px) {
  .fh-mega-menu.is-solution-menu .fh-mega-inner { padding-top: 32px; padding-bottom: 21px; }
}
.fh-mega-menu.is-solution-menu .fh-mega-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 40px; }
.fh-mega-solution-group, .fh-mega-solution-links { display: contents; }
.fh-mega-solution-links.has-mine-links a:nth-child(1) { grid-column: 1; grid-row: 1; }
.fh-mega-solution-links.has-mine-links a:nth-child(2) { grid-column: 1; grid-row: 2; }
.fh-mega-solution-links:not(.has-mine-links) a:nth-child(1) { grid-column: 2; grid-row: 1; }
.fh-mega-solution-links:not(.has-mine-links) a:nth-child(2) { grid-column: 3; grid-row: 1; }
.fh-mega-solution-links:not(.has-mine-links) a:nth-child(3) { grid-column: 4; grid-row: 1; }
.fh-mega-solution-links:not(.has-mine-links) a:nth-child(4) { grid-column: 2; grid-row: 2; }
.fh-mega-solution-links:not(.has-mine-links) a:nth-child(5) { grid-column: 3; grid-row: 2; }
.fh-mega-solution-links a { display: flex; align-items: center; min-height: 88px; padding: 8px 0 18px; color: #1a1a1a; font-size: 14px; font-weight: 400; line-height: 1.6; text-decoration: underline 2px #fff; text-underline-offset: 6px; border-bottom: 0; transition: color .18s; }
.fh-mega-solution-links.has-mine-links a:first-child,
.fh-mega-solution-links:not(.has-mine-links) a:nth-child(-n + 3) { border-bottom: 0; }
@media (min-width: 1181px) {
  .fh-mega-menu.is-solution-menu .fh-mega-grid {
    grid-template-columns: max-content repeat(2, minmax(0, 1fr)) max-content;
    row-gap: 10px;
  }
  .fh-mega-menu.is-solution-menu .fh-mega-solution-links a {
    min-height: 43px;
    align-items: flex-start;
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1.5;
  }
  .fh-mega-solution-links.has-mine-links a { padding-right: 60px; }
  .fh-mega-menu.is-solution-menu .fh-mega-grid::after {
    content: '';
    grid-column: 1;
    grid-row: 1 / 3;
    justify-self: end;
    width: 1px;
    margin-right: 10px;
    margin-block: 0 22px;
    background: #d8dee5;
    pointer-events: none;
  }
}
.fh-mega-solution-links.has-mine-links strong { color: inherit; font-size: inherit; font-weight: inherit; }
.fh-mega-solution-links a:hover, .fh-mega-solution-links a:focus-visible, .fh-mega-solution-links a.is-current {
  color: #005dbe;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.fh-mega-solution-links.has-mine-links a:is(:hover, :focus-visible, .is-current) strong { color: inherit; }
@media (max-width: 1180px) {
  .fh-mega-menu.is-solution-menu .fh-mega-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-mega-menu.is-solution-menu .fh-mega-grid .fh-mega-solution-links a { grid-column: auto; grid-row: auto; border-bottom: 0; }
  .fh-mega-solution-links:not(.has-mine-links) a:first-child { border-bottom: 0; }
}
@media (max-width: 760px) {
  .fh-mega-menu.is-solution-menu .fh-mega-grid { grid-template-columns: 1fr; }
  .fh-mega-solution-links a:not(:last-child) { border-bottom: 0; }
}
.fh-mega-solution-links a[aria-disabled="true"] {
  color: #98a2b3 !important;
  cursor: not-allowed;
  text-decoration: none;
}
.case-industry-tabs button.is-active{
  color: #006dce;
  font-weight: 700;
}
.case-industry-tabs button.is-active::after{
  background: #006dce;
}
.case-customer-tabs button.is-active{
  color: #ffffff;
  background: #005dbe;
  box-shadow: 0 10px 24px rgba(0, 93, 190, 0.24);
}


/* Keep the client showcase legible across desktop and mobile viewports. */

/* Final one-screen layout for the case page on mobile. */


/* Enterprise news detail page. */


/* Keep the desktop client showcase within the available viewport height. */


/* Keep the complete case experience inside one mobile viewport as well. */
.geo-hero{
  position: relative;
  margin-top: 68px;
  height: 550px;
  min-height: 550px;
  max-height: 550px;
  overflow: hidden;
  color: #101828;
  background: #79c8ef;
}
.geo-hero h1{
  width: min(900px, 100%);
  margin: 0 auto;
  font-size: clamp(23px, 3vw, 43px);
  line-height: 1.06;
  font-weight: 900;
  letter-spacing: 0;
  color: #111111;
}
.geo-logging-page .section-head{
  display: block;
  margin-bottom: 34px;
  text-align: center;
}
.geo-feature-card,
.geo-value-grid article{
  border-radius: 8px;
  border: 1px solid rgba(12, 73, 116, 0.1);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(13, 42, 68, 0.08);
}
.geo-feature-card span{
  display: inline-flex;
  color: #096bd8;
  font-size: 13px;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
}
.geo-feature-card p,
.geo-value-grid p{
  margin: 10px 0 0;
  color: #617088;
  font-size: 15px;
  line-height: 1.8;
}
.geo-advantages > .container{
  position: relative;
  z-index: 1;
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
}
.geo-logging-page .geo-advantages-title{
  position: absolute;
  top: -86px;
  left: 0;
  right: 0;
  text-align: center;
  white-space: nowrap;
}
.geo-advantage-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px;
}
/* .geo-advantage-grid-3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
} */
.geo-advantage-grid article{
  position: relative;
  box-sizing: border-box;
  height: 225px;
  min-width: 0;
  overflow: hidden;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 0 12.5px rgba(0, 72, 147, 0.15);
  transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 260ms ease;
}
@media (hover: hover){
.geo-advantage-grid article:hover{
    transform: translateY(-6px);
    box-shadow: 0 16px 32px rgba(0, 72, 147, 0.18);
  }
}
.geo-advantage-grid h3{
  position: absolute;
  top: 43px;
  left: 105px;
  margin: 0;
  color: #0d1b2f;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 20px;
  line-height: 28px;
  font-weight: 600;
}
.geo-advantage-grid p{
  position: absolute;
  top: 117px;
  left: 30px;
  right: 30px;
  width: auto;
  margin: 0;
  color: #617088;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 400;
  text-align: justify;
}
.geo-feature-card h3{
  margin: 0;
  color: #0d1b2f;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 24px;
  line-height: 1.5;
  font-weight: 600;
}
.geo-logging-page .geo-features .section-head{
  margin-bottom: 50px;
}
.geo-feature-card{
  display: flex;
  gap: 30px;
  align-items: flex-start;
  box-sizing: border-box;
  min-height: 228px;
  padding: 25px;
  overflow: hidden;
  border: 0;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 0 25px rgba(0, 72, 147, 0.15);
  transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1), background 220ms ease, color 220ms ease, box-shadow 260ms ease;
}
.geo-feature-card:nth-child(n + 3){
  padding: 30px 20px;
}
.geo-feature-card p{
  width: 100%;
  margin: 0;
  color: #617088;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 400;
}
@media (hover: hover){
.geo-feature-card:hover{
    transform: translateY(-6px);
    box-shadow: 0 16px 32px rgba(0, 72, 147, 0.18);
  }
.geo-feature-card:hover .geo-feature-base,
  .geo-feature-card:hover .geo-feature-cut{
    transform: scale(1.06);
  }
}
.geo-scenarios .geo-scenario-grid h3{
  color: #1a1a1a;
}
.geo-scenario-grid{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  row-gap: 54px;
  column-gap: 24px;
  width: 100%;
  margin: 0 auto;
  transform: none;
}
.geo-scenario-grid article{
  position: relative;
  display: grid;
  justify-items: center;
  align-content: start;
  min-height: 182px;
  padding: 0;
  text-align: center;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: transform 0.25s ease;
  will-change: transform;
}
.geo-scenario-grid article::before{
  content: none;
}
.geo-scenario-grid article::after{
  content: none;
}
.geo-scenario-grid article:hover{
  transform: translateY(-4px);
}
.geo-scenario-grid img{
  display: block;
  width: 98px;
  height: 98px;
  margin: 0 auto 20px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(37%) sepia(98%) saturate(2610%) hue-rotate(200deg) brightness(102%) contrast(103%);
  transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1), filter 260ms ease;
}
@media (hover: hover){
.geo-scenario-grid article:hover img{
    transform: scale(1.08);
    filter: brightness(0) saturate(100%) invert(37%) sepia(98%) saturate(2610%) hue-rotate(200deg) brightness(102%) contrast(103%) drop-shadow(0 10px 16px rgba(9, 107, 216, 0.16));
  }
}
.geo-scenario-grid div{
  min-height: 0;
  padding: 0;
}
.geo-scenario-grid h3{
  margin: 0;
  color: #0b68ee;
  font-size: 20px;
  line-height: 1.4;
  font-weight: 600;
  white-space: nowrap;
}
.geo-scenario-grid p{
  max-width: 410px;
  margin: 12px auto 0;
  color: #243244;
  font-size: 14px;
  line-height: 1.7;
  font-weight: 400;
}
.geo-value > .container{
  box-sizing: border-box;
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
  max-width: var(--site-safe-width);
  height: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-top: 69px;
}
.geo-logging-page .geo-value .section-head{
  margin: 0 0 67px;
}
.geo-value-grid{
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(4, 90px);
  gap: 20px;
  width: 588px;
}
.geo-value-grid article{
  box-sizing: border-box;
  min-height: 0;
  height: 90px;
  padding: 20px 45px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  border: 0;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: none;
  text-align: left;
}
.geo-value-grid strong{
  display: block;
  color: #1a1a1a;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 20px;
  line-height: normal;
  font-weight: 600;
  white-space: nowrap;
}
@media (max-width: 1180px){
.geo-value > .container{
    width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
    margin-right: auto;
    margin-left: auto;
  }
.geo-value > .container{
    height: auto;
    padding-top: 0;
  }
.geo-logging-page .geo-value .section-head{
    margin-bottom: 44px;
  }
.geo-value-grid{
    width: 100%;
  }
.geo-logging-page .geo-advantages-title{
    top: -56px;
  }
.geo-advantage-grid{
    grid-template-columns: repeat(2, minmax(0, 338px));
    justify-content: center;
  }
}
@media (max-width: 900px){
.geo-hero{
    height: 550px;
    min-height: 550px;
    max-height: 550px;
  }
.geo-hero h1{
    font-size: 21px;
  }
.geo-value-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, 90px);
  }
.geo-scenario-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 32px;
    width: 100%;
    margin: 0;
    transform: none;
  }
.geo-feature-card{
    min-height: 228px;
  }
}
@media (max-width: 640px){
.geo-value-grid{
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, 72px);
  }
.geo-scenario-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 16px;
  }
.geo-scenario-grid article{
    min-height: 140px;
    padding: 0 4px;
  }
.geo-scenario-grid img{
    width: 88px;
    height: 88px;
    margin-bottom: 14px;
  }
.geo-scenario-grid h3{
    font-size: 18px;
  }
.geo-logging-page .geo-advantages-title{
    top: -40px;
  }
.geo-advantage-grid{
    grid-template-columns: minmax(0, 338px);
    gap: 20px;
  }
.geo-hero h1{
    font-size: 17px;
  }
.geo-value-grid article{
    height: 72px;
    padding: 16px 24px;
  }
.geo-value > .container{
    height: auto;
    padding: 0;
  }
.geo-logging-page .geo-value .section-head{
    margin-bottom: 34px;
  }
.geo-value-grid{
    grid-auto-rows: 72px;
    gap: 14.4px;
    width: 100%;
    margin: 0 auto;
  }
.geo-value-grid strong{
    font-size: 16px;
    white-space: normal;
  }
.geo-feature-card,
  .geo-feature-card:nth-child(n + 3){
    flex-direction: column;
    gap: 20px;
    min-height: 0;
    padding: 20px;
  }
}
@media (max-width: 360px){
.geo-advantages .container{
    width: calc(100% - 24px);
  }
.geo-advantage-grid p{
    width: calc(100% - 60px);
    text-align: left;
  }
}
.header{
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  right: 0;
  height: 76px;
  color: #ffffff;
  background: linear-gradient(180deg, rgba(7, 18, 34, 0.72), rgba(7, 18, 34, 0.1));
  backdrop-filter: blur(14px);
  transition: background 240ms ease, box-shadow 240ms ease;
}
.header.is-scrolled{
  background: rgba(8, 20, 38, 0.88);
  box-shadow: 0 14px 34px rgba(4, 16, 34, 0.18);
}
.nav{
  display: flex;
  justify-content: center;
  gap: clamp(18px, 2.4vw, 38px);
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
}
.nav a{
  position: relative;
  transition: color 180ms ease;
}
.nav a::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -12px;
  height: 2px;
  transform: scaleX(0);
  background: var(--cyan);
  transition: transform 200ms ease;
}
.nav a:hover,
.nav a.is-active,
.nav a.active-page{
  color: #ffffff;
}
.nav a:hover::after,
.nav a.is-active::after,
.nav a.active-page::after{
  transform: scaleX(1);
}
.intro-grid{
  display: grid;
  grid-template-columns: minmax(300px, 470px) minmax(0, 1fr);
  gap: 96px;
  align-items: center;
}
.intro-grid h2,
.section-head h2{
  margin: 0;
  color: var(--ink);
  font-size: clamp(34px, 3.4vw, 48px);
  line-height: 1.25;
  font-weight: 700;
}
.intro-grid > p{
  margin: 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 2;
}
.solution-card{
  position: relative;
  min-height: 420px;
  overflow: hidden;
  border-radius: var(--radius);
  background: #071426;
  box-shadow: 0 24px 62px rgba(16, 31, 55, 0.12);
  transition: transform 240ms ease, box-shadow 240ms ease;
}
.solution-card img{
  height: 100%;
  object-fit: cover;
  transition: transform 520ms ease, filter 520ms ease;
}
.solution-card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 20%, rgba(4, 12, 24, 0.82));
}
.case-card a{
  color: var(--blue);
  font-weight: 700;
  font-size: 14px;
}
.solution-card:hover{
  transform: translateY(-8px);
  box-shadow: 0 32px 76px rgba(16, 31, 55, 0.2);
}
.solution-card:hover img{
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.05);
}
.product-card{
  position: relative;
  overflow: hidden;
  min-height: 218px;
  padding: 32px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.07);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.product-card::before{
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(29, 93, 191, 0.15), transparent 34%);
  transition: opacity 180ms ease;
}
.product-card span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 28px;
  color: var(--blue);
  border: 1px solid rgba(29, 93, 191, 0.18);
  border-radius: 6px;
  background: rgba(29, 93, 191, 0.07);
  font-weight: 800;
  transition: color 220ms ease, background 220ms ease, transform 220ms ease;
}
.product-card h3{
  margin: 0 0 10px;
  color: var(--ink);
  font-size: 21px;
}
.product-card p{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
.product-card:hover{
  border-color: rgba(29, 93, 191, 0.24);
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.14);
  transform: translateY(-8px);
}
.product-card:hover::before{
  opacity: 1;
}
.product-card:hover span{
  color: #ffffff;
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  transform: translateY(-4px);
}
.case-card{
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.08);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.case-card img{
  height: 254px;
  object-fit: cover;
  transition: transform 520ms ease, filter 520ms ease;
}
.case-card div{
  padding: 28px;
}
.case-card h3{
  margin: 0 0 12px;
  color: var(--ink);
  font-size: 20px;
}
.case-card p{
  min-height: 78px;
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
.case-card:hover{
  box-shadow: 0 30px 72px rgba(16, 31, 55, 0.16);
  transform: translateY(-8px);
}
.case-card:hover img{
  filter: saturate(1.08);
  transform: scale(1.05);
}
.service-list{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin: 54px 0 44px;
}
.service-list article{
  min-height: 230px;
  padding: 30px 26px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(12px);
  text-align: left;
  transition: transform 220ms ease, border-color 220ms ease, background 220ms ease;
}
.service-list span{
  color: var(--cyan);
  font-size: 13px;
  font-weight: 800;
}
.service-list h3{
  margin: 22px 0 14px;
  color: #ffffff;
  font-size: 22px;
}
.service-list p{
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
  line-height: 1.8;
}
.service-list article:hover{
  border-color: rgba(60, 200, 255, 0.42);
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(-8px);
}
.news-card{
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  overflow: hidden;
  min-height: 260px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.08);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.news-card img{
  height: 100%;
  object-fit: cover;
  transition: transform 520ms ease;
}
.news-card:hover{
  box-shadow: 0 28px 66px rgba(16, 31, 55, 0.15);
  transform: translateY(-8px);
}
.news-card:hover img{
  transform: scale(1.05);
}
.copyright{
  padding: 18px 0;
  color: rgba(17, 24, 39, 0.5);
  background: #f3f4f6;
  text-align: center;
  font-size: 12px;
}
.page-hero{
  position: relative;
  min-height: 680px;
  overflow: hidden;
  color: #ffffff;
  background: #071426;
}
.page-hero > img{
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  transform: scale(1.03) translateY(calc(var(--hero-shift, 0) * 1px));
}
.page-hero h1{
  max-width: 900px;
  margin: 0;
  color: #ffffff;
  font-size: clamp(54px, 5.8vw, 86px);
  line-height: 1.08;
}
.page-hero p:last-child{
  max-width: 760px;
  color: rgba(255, 255, 255, 0.76);
  font-size: 18px;
  line-height: 1.9;
}
.resources-page .page-hero{
  height: 50vh;
  min-height: 0;
  max-height: none;
  margin-top: 68px;
}
.resources-page .page-hero > img{
  width: 100%;
  height: 100%;
  transform: none;
  object-position: center bottom;
}
.resources-page .page-hero h1{
  width: min(900px, 100%);
  margin: 0 auto;
  color: #111111;
  font-size: clamp(23px, 3vw, 43px);
  font-weight: 900;
  line-height: 1.06;
  letter-spacing: 0;
}
.resources-page .page-hero p:last-child{
  width: min(1120px, 100%);
  max-width: none;
  margin: 30px auto 0;
  color: #222222;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.9;
}
.solution-filter{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: -18px;
  margin-bottom: 26px;
}
.solution-filter button{
  min-height: 42px;
  padding: 0 18px;
  color: var(--text);
  border: 1px solid rgba(29, 93, 191, 0.14);
  border-radius: 999px;
  background: #ffffff;
  font-family: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.solution-filter button:hover,
.solution-filter button.is-active{
  color: #ffffff;
  border-color: var(--blue);
  background: var(--blue);
  transform: translateY(-2px);
}
.matrix-card{
  position: relative;
  min-height: 360px;
  overflow: hidden;
  border-radius: var(--radius);
  color: #ffffff;
  background: #071426;
  box-shadow: 0 20px 54px rgba(16, 31, 55, 0.1);
  transition: transform 220ms ease, box-shadow 220ms ease, opacity 220ms ease;
}
.matrix-card.large{
  grid-column: span 1;
  min-height: 390px;
}
.matrix-card img{
  height: 100%;
  object-fit: cover;
  transition: transform 520ms ease;
}
.matrix-card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 16%, rgba(4, 12, 24, 0.86));
}
.matrix-card div{
  position: absolute;
  z-index: 1;
  left: 30px;
  right: 30px;
  bottom: 28px;
}
.matrix-card span,
.catalog-card span{
  color: var(--cyan);
  font-size: 13px;
  font-weight: 800;
}
.matrix-card h3{
  margin: 12px 0 12px;
  font-size: 25px;
  line-height: 1.28;
}
.matrix-card p{
  margin: 0;
  color: rgba(255, 255, 255, 0.74);
  line-height: 1.75;
}
.matrix-card em{
  display: inline-flex;
  margin-top: 20px;
  color: #ffffff;
  font-style: normal;
  font-weight: 800;
}
.matrix-card.is-hidden{
  display: none;
}
.matrix-card:hover{
  box-shadow: 0 32px 76px rgba(16, 31, 55, 0.18);
  transform: translateY(-8px);
}
.matrix-card:hover img{
  transform: scale(1.05);
}
.solution-mosaic-section .solution-filter button{
  color: rgba(255, 255, 255, 0.78);
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(14px);
}
.solution-mosaic-section .solution-filter button:hover,
.solution-mosaic-section .solution-filter button.is-active{
  color: #ffffff;
  border-color: rgba(122, 198, 255, 0.72);
  background: var(--blue);
  box-shadow: 0 18px 42px rgba(29, 93, 191, 0.28);
}
.solution-mosaic-section .refined-matrix .matrix-card,
.solution-mosaic-section .matrix-card{
  min-height: 0;
  height: 100%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(245, 248, 252, 0.08);
  box-shadow: 0 26px 72px rgba(0, 0, 0, 0.24);
}
.solution-mosaic-section .matrix-card.large{
  grid-column: span 2;
  grid-row: span 2;
  min-height: 0;
}
.solution-mosaic-section .matrix-card::after{
  background:
    linear-gradient(180deg, rgba(4, 11, 21, 0.08) 0%, rgba(4, 11, 21, 0.18) 34%, rgba(4, 11, 21, 0.9) 100%);
}
.solution-mosaic-section .matrix-card div{
  left: 28px;
  right: 28px;
  bottom: 26px;
}
.solution-mosaic-section .matrix-card.large div{
  left: 42px;
  right: 42px;
  bottom: 40px;
  max-width: 610px;
}
.solution-mosaic-section .matrix-card h3{
  margin: 10px 0 10px;
  font-size: clamp(21px, 1.5vw, 28px);
}
.solution-mosaic-section .matrix-card.large h3{
  font-size: clamp(34px, 3vw, 50px);
  line-height: 1.12;
}
.solution-mosaic-section .matrix-card p{
  max-width: 560px;
}
.solution-mosaic-section .matrix-card:not(.large) p{
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.solution-mosaic-section .matrix-card em{
  align-items: center;
  gap: 10px;
}
.solution-mosaic-section .matrix-card em::after{
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
  transform-origin: left center;
  transition: transform 220ms ease;
}
.solution-mosaic-section .matrix-card:hover{
  border-color: rgba(122, 198, 255, 0.42);
  box-shadow: 0 36px 96px rgba(0, 0, 0, 0.36);
}
.solution-mosaic-section .matrix-card:hover em::after{
  transform: scaleX(1.45);
}
.catalog-card,
.resource-card,
.timeline article,
.honor-grid article{
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.07);
}
.catalog-card{
  min-height: 230px;
  padding: 32px;
  transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease;
}
.catalog-card.featured{
  color: #ffffff;
  background: linear-gradient(135deg, var(--blue), var(--blue-deep));
}
.catalog-card.featured span,
.catalog-card.featured h3,
.catalog-card.featured p{
  color: #ffffff;
}
.catalog-card h3{
  margin: 18px 0 12px;
  color: var(--ink);
  font-size: 22px;
}
.catalog-card p{
  margin: 0;
  color: var(--muted);
  line-height: 1.75;
}
.catalog-card:hover,
.resource-card:hover{
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.14);
  transform: translateY(-8px);
}
.honor-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.resource-card{
  min-height: 320px;
  padding: 38px;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.resource-card.dark{
  color: #ffffff;
  background: #071426;
}
.resource-card span{
  color: var(--blue);
  font-weight: 800;
}
.resource-card.dark span,
.resource-card.dark h2,
.resource-card.dark p,
.resource-card.dark a{
  color: #ffffff;
}
.resource-card h2{
  margin: 18px 0 16px;
  color: var(--ink);
  font-size: 32px;
}
.resource-card p{
  color: var(--muted);
  line-height: 1.85;
}
.resource-card a{
  display: inline-flex;
  margin-top: 24px;
  color: var(--blue);
  font-weight: 700;
}
.product-overview-block{
  display: grid;
  grid-template-columns: minmax(360px, 0.58fr) minmax(0, 1.42fr);
  gap: 28px;
  align-items: stretch;
}
.overview-refined{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.overview-refined article{
  min-height: 330px;
  padding: 38px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 22px 58px rgba(16, 31, 55, 0.08);
}
.overview-refined strong{
  display: block;
  color: rgba(29, 93, 191, 0.26);
  font-size: 38px;
  line-height: 1;
}
.overview-refined h3{
  margin-top: 30px;
  font-size: 26px;
}
.overview-refined p{
  font-size: 16px;
  line-height: 1.9;
}
.timeline{
  display: grid;
  gap: 18px;
}
.timeline article,
.honor-grid article{
  padding: 30px;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.timeline span{
  color: var(--blue);
  font-weight: 800;
}
.timeline h3{
  margin: 14px 0 10px;
  color: var(--ink);
  font-size: 22px;
}
.timeline p{
  margin: 0;
  color: var(--muted);
  line-height: 1.78;
}
.honor-grid{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.honor-grid strong{
  display: block;
  color: var(--blue);
  font-size: 44px;
}
.honor-grid span{
  color: var(--muted);
}
.solution-overview-panel{
  display: grid;
  grid-template-columns: minmax(360px, 0.74fr) minmax(0, 1.26fr);
  gap: 44px;
  align-items: stretch;
  padding: 34px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 12% 18%, rgba(29, 93, 191, 0.08), transparent 28%),
    linear-gradient(135deg, #ffffff, #f6f9fd);
  box-shadow: 0 24px 70px rgba(16, 31, 55, 0.08);
}
.solution-overview-cards{
  display: grid;
  gap: 16px;
}
.solution-overview-cards article{
  position: relative;
  min-height: 128px;
  padding: 26px 30px 26px 34px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.9);
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.solution-overview-cards article::before{
  content: "";
  position: absolute;
  left: 0;
  top: 24px;
  bottom: 24px;
  width: 4px;
  border-radius: 999px;
  background: var(--blue);
}
.solution-overview-cards article:hover{
  border-color: rgba(29, 93, 191, 0.22);
  box-shadow: 0 24px 58px rgba(16, 31, 55, 0.1);
  transform: translateY(-5px);
}
.solution-overview-cards span{
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
}
.solution-overview-cards h3{
  margin: 12px 0 10px;
  color: var(--ink);
  font-size: 22px;
  line-height: 1.35;
}
.solution-overview-cards p{
  margin: 0;
  color: var(--muted);
  line-height: 1.78;
}
.solution-framework-map{
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.55fr);
  gap: 28px;
  align-items: stretch;
}
.framework-layer{
  position: relative;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px 20px;
  color: var(--ink);
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: linear-gradient(180deg, #ffffff, #f5f9ff);
  overflow: hidden;
}
.framework-layer::before{
  content: "";
  position: absolute;
  inset: auto 18px 102px 18px;
  height: 1px;
  background: rgba(29, 93, 191, 0.16);
}
.framework-layer span{
  position: absolute;
  left: 20px;
  top: 20px;
  color: rgba(29, 93, 191, 0.24);
  font-size: 34px;
  font-weight: 800;
}
.framework-layer strong{
  color: var(--blue);
  font-size: 20px;
  line-height: 1.3;
}
.framework-layer p{
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}
.framework-layer.highlight{
  color: #ffffff;
  border-color: rgba(29, 93, 191, 0.18);
  background: linear-gradient(145deg, var(--blue), var(--blue-deep));
  box-shadow: 0 24px 54px rgba(29, 93, 191, 0.22);
}
.framework-layer.highlight span,
.framework-layer.highlight strong,
.framework-layer.highlight p{
  color: #ffffff;
}
.framework-layer.highlight span{
  opacity: 0.32;
}
.capability-structure{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.capability-structure article{
  padding: 30px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.06);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.capability-structure article:hover{
  border-color: rgba(29, 93, 191, 0.24);
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.12);
  transform: translateY(-6px);
}
.capability-structure h3{
  margin: 0 0 22px;
  color: var(--ink);
  font-size: 26px;
}
.capability-structure dl{
  display: grid;
  gap: 0;
  margin: 0;
}
.capability-structure dt{
  width: fit-content;
  margin-top: 16px;
  padding: 4px 10px;
  color: var(--blue);
  border-radius: 999px;
  background: rgba(29, 93, 191, 0.08);
  font-size: 13px;
  font-weight: 800;
}
.capability-structure dt:first-child{
  margin-top: 0;
}
.capability-structure dd{
  margin: 8px 0 0;
  color: var(--muted);
  line-height: 1.75;
}
.solution-value-board{
  display: grid;
  grid-template-columns: minmax(300px, 0.52fr) minmax(0, 1.48fr);
  gap: 28px;
  align-items: stretch;
}
.value-board-list{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}
.value-board-list article{
  min-height: 260px;
  padding: 26px 20px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.06);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.value-board-list article:hover{
  border-color: rgba(29, 93, 191, 0.24);
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.12);
  transform: translateY(-6px);
}
.value-board-list strong{
  display: block;
  color: rgba(29, 93, 191, 0.28);
  font-size: 34px;
  line-height: 1;
}
.value-board-list h4{
  margin: 28px 0 14px;
  color: var(--ink);
  font-size: 20px;
  line-height: 1.35;
}
.value-board-list p{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
.typical-case-panel{
  display: grid;
  grid-template-columns: minmax(360px, 0.86fr) minmax(0, 1.14fr);
  gap: 28px;
  align-items: stretch;
}
.case-story-grid article,
.product-matrix{
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.06);
}
.case-story-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.case-story-grid article{
  min-height: 270px;
  padding: 26px 22px;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.case-story-grid article:hover{
  border-color: rgba(29, 93, 191, 0.24);
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.12);
  transform: translateY(-6px);
}
.case-story-grid span{
  color: rgba(29, 93, 191, 0.28);
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
}
.case-story-grid h4,
.product-matrix h4{
  margin: 24px 0 14px;
  color: var(--ink);
  font-size: 21px;
  line-height: 1.32;
}
.case-story-grid p{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
.product-matrix{
  padding: 28px 30px;
}
.product-matrix h4{
  margin: 0 0 18px;
}
.product-matrix div{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.product-matrix a,
.product-matrix span{
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  color: var(--blue);
  border: 1px solid rgba(29, 93, 191, 0.14);
  border-radius: 999px;
  background: rgba(29, 93, 191, 0.06);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}
.product-matrix a{
  color: #ffffff;
  background: var(--blue);
}
.product-related-panel{
  display: grid;
  grid-template-columns: minmax(360px, 0.82fr) minmax(0, 1.18fr);
  gap: 28px;
  align-items: stretch;
}
.related-info-grid{
  display: grid;
  gap: 18px;
}
.related-info-grid article{
  padding: 32px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: linear-gradient(135deg, #ffffff, #f6f9fd);
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.06);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.related-info-grid article:hover{
  border-color: rgba(29, 93, 191, 0.24);
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.12);
  transform: translateY(-6px);
}
.related-info-grid strong{
  color: rgba(29, 93, 191, 0.28);
  font-size: 36px;
  line-height: 1;
}
.related-info-grid h4{
  margin: 22px 0 14px;
  color: var(--ink);
  font-size: 25px;
  line-height: 1.3;
}
.related-info-grid p,
.related-info-grid li{
  color: var(--muted);
  line-height: 1.78;
}
.related-info-grid p{
  margin: 0;
}
.related-info-grid ul{
  display: grid;
  gap: 10px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}
.related-info-grid li{
  padding-left: 16px;
  border-left: 3px solid rgba(29, 93, 191, 0.28);
}
.overview-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.overview-grid article,
.scenario-strip article,
.case-feature,
.news-list a,
.capability-grid article{
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.07);
}
.overview-grid article{
  min-height: 210px;
  padding: 32px;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.overview-grid article:hover{
  border-color: rgba(29, 93, 191, 0.22);
  box-shadow: 0 28px 64px rgba(16, 31, 55, 0.12);
  transform: translateY(-6px);
}
.overview-grid strong{
  color: var(--blue);
  font-size: 14px;
}
.overview-grid h3{
  margin: 22px 0 12px;
  color: var(--ink);
  font-size: 24px;
}
.overview-grid p,
.scenario-strip p,
.case-feature p,
.capability-grid p{
  margin: 0;
  color: var(--muted);
  line-height: 1.75;
}
.refined-matrix .matrix-card{
  min-height: 390px;
}
.solution-process{
  display: grid;
  grid-template-columns: minmax(320px, 460px) minmax(0, 1fr);
  gap: clamp(44px, 5vw, 76px);
  align-items: start;
}
.solution-process h2{
  margin: 0 0 18px;
  color: var(--ink);
  font-size: clamp(36px, 3.8vw, 54px);
  line-height: 1.18;
}
.solution-process ol{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.solution-process li{
  position: relative;
  min-height: 168px;
  padding: 28px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.solution-process li::after{
  content: "";
  position: absolute;
  right: -34px;
  bottom: -34px;
  width: 100px;
  height: 100px;
  border: 18px solid rgba(29, 93, 191, 0.06);
  border-radius: 50%;
}
.solution-process li:hover{
  border-color: rgba(29, 93, 191, 0.22);
  box-shadow: 0 24px 58px rgba(16, 31, 55, 0.1);
  transform: translateY(-6px);
}
.solution-process li span,
.scenario-strip span,
.case-feature span{
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
}
.solution-process li p{
  margin: 14px 0 0;
  color: var(--muted);
  line-height: 1.75;
}
.solution-cta{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 42px;
  align-items: center;
  padding: 46px;
  color: #ffffff;
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(29, 93, 191, 0.95), rgba(11, 63, 143, 0.95)),
    url("../resources/image/theme/hero-premium.jpg") center / cover;
  box-shadow: 0 28px 76px rgba(16, 31, 55, 0.16);
}
.solution-cta .section-kicker,
.solution-cta h2,
.solution-cta p{
  color: #ffffff;
}
.solution-cta h2{
  max-width: 820px;
  margin: 0 0 16px;
  font-size: clamp(34px, 3.5vw, 52px);
  line-height: 1.18;
}
.solution-cta p{
  max-width: 780px;
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.85;
}
.solution-cta .button{
  white-space: nowrap;
  background: #ffffff;
  color: var(--blue);
}
.scenario-strip{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.scenario-strip article{
  padding: 32px;
}
.scenario-strip h3{
  margin: 18px 0 10px;
  color: var(--ink);
  font-size: 22px;
}
.case-hero-card{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  min-height: 430px;
  overflow: hidden;
  border: 1px solid rgba(29, 93, 191, 0.12);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 30px 86px rgba(16, 31, 55, 0.13);
  backdrop-filter: blur(12px);
}
.case-client-tabs button.is-active{
  color: var(--blue);
  background: #ffffff;
}
.case-client-tabs button.is-active::before{
  background: var(--blue);
}
@keyframes casePanelIn{
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.all-cases-tabs button.is-active{
  color: var(--blue);
}
.all-cases-tabs button.is-active::after{
  transform: scaleX(1);
}
.all-case-card{
  position: relative;
  min-height: 0;
  padding: 0;
  border: 1px solid rgba(29, 93, 191, 0.08);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(16, 31, 55, 0.06);
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease, opacity 180ms ease;
}
.all-case-card::after{
  display: none;
}
.all-case-card > img{
  width: 100%;
  height: 168px;
  object-fit: cover;
  transition: transform 420ms ease, filter 420ms ease;
}
.all-case-card strong{
  display: block;
  color: var(--ink);
  font-size: 20px;
  line-height: 1.2;
}
.all-case-card span{
  display: inline-flex;
  margin: 18px 0 16px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
}
.all-case-card h3{
  margin: 0 0 12px;
  color: var(--ink);
  font-size: 20px;
  line-height: 1.36;
}
.all-case-card p{
  margin: 0;
  color: var(--muted);
  line-height: 1.78;
}
.all-case-card:hover{
  border-color: rgba(29, 93, 191, 0.22);
  box-shadow: 0 28px 64px rgba(16, 31, 55, 0.12);
  transform: translateY(-6px);
}
.all-case-card:hover > img{
  filter: saturate(1.08);
  transform: scale(1.045);
}
.all-case-card.is-hidden{
  display: none;
}
.global-map-stats{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 46px;
}
.global-map-stats article{
  text-align: center;
}
.global-map-stats strong{
  display: block;
  color: var(--blue);
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1;
}
.global-map-stats span{
  display: block;
  margin: 16px 0 6px;
  color: var(--ink);
  font-weight: 800;
}
.global-map-stats em{
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
}
.global-map-panel{
  position: relative;
  min-height: 520px;
  overflow: hidden;
  border: 1px solid rgba(29, 93, 191, 0.08);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 76% 42%, rgba(29, 93, 191, 0.1), transparent 26%),
    linear-gradient(180deg, #f8fbff, #eef3f9);
}
.global-map-panel::before{
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.3;
  background-image:
    linear-gradient(rgba(29, 93, 191, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(29, 93, 191, 0.08) 1px, transparent 1px);
  background-size: 42px 42px;
}
.case-feature{
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.case-feature.large{
  grid-row: span 2;
}
.case-feature img{
  height: 250px;
  object-fit: cover;
}
.case-feature.large img{
  height: 430px;
}
.case-feature div{
  padding: 30px;
}
.case-feature h3{
  margin: 12px 0;
  color: var(--ink);
  font-size: 24px;
}
.case-feature a{
  display: inline-flex;
  margin-top: 20px;
  color: var(--blue);
  font-weight: 700;
}
.case-feature:hover{
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.14);
  transform: translateY(-8px);
}
.resource-feature .resource-card{
  min-height: 360px;
}
.news-list{
  display: grid;
  gap: 16px;
}
.news-list a{
  display: block;
  padding: 28px;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.news-list a:hover{
  box-shadow: 0 24px 54px rgba(16, 31, 55, 0.12);
  transform: translateY(-6px);
}
.news-list span{
  color: var(--blue);
  font-weight: 800;
}
.news-list strong{
  display: block;
  margin: 12px 0 8px;
  color: var(--ink);
  font-size: 19px;
}
.news-list em{
  color: var(--muted);
  font-style: normal;
}
.capability-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.capability-grid article{
  min-height: 220px;
  padding: 32px;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.capability-grid h3{
  margin: 0 0 16px;
  color: var(--ink);
  font-size: 22px;
}
.capability-grid article:hover{
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.14);
  transform: translateY(-8px);
}
.about-page{
  background: #ffffff;
}
.about-page p{
  text-indent: 2em;
}
.about-company-media{
  align-self: start;
}
.about-company-media img{
  display: block;
  width: 100%;
  height: 320px;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(16, 31, 55, 0.08);
}
.about-company-copy{
  padding-top: 0;
}
.about-company-copy p{
  margin: 0;
  /* color: #656d79; */
  font-size: 17px;
  line-height: 2.1;
  text-align: justify;
}
.about-honor-strip .container{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px;
  align-items: start;
  text-align: center;
}
.about-honor-figma{
  width: 100vw;
  margin: 54px 0 0 calc(50% - 50vw);
  height: auto;
  overflow: visible;
  background:
    linear-gradient(180deg, #f6fbff 0%, #e6f2ff 68%, #d7e8fb 100%);
}
.about-honor-figma img{
  display: block;
  width: 100%;
  max-width: 1920px;
  height: auto;
  margin: 0 auto;
  transition: filter 420ms ease;
}
.about-honor-figma:hover img{
  filter: saturate(1.05) contrast(1.015);
}
@media (min-width: 1921px){
.about-honor-figma img{
    mask-image: linear-gradient(90deg, transparent 0%, #000000 7%, #000000 93%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000000 7%, #000000 93%, transparent 100%);
  }
}
.about-page .about-history-intro{
  position: absolute;
  top: 121px;
  left: 0;
  z-index: 3;
  width: 720px;
  max-width: calc(100% - 48px);
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  line-height: 35.2px;
  text-align: left;
  text-indent: 0;
}
.about-history-hero{
  position: relative;
  width: 100vw;
  height: 580px;
  margin: 0 0 0 calc(50% - 50vw);
  overflow: hidden;
  color: #ffffff;
  background: #6d879d;
}
.about-history-hero > img{
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}
.about-history-nodes .active i{
  width: 13px;
  height: 13px;
  background: #f28b36;
  box-shadow: 0 0 0 5px rgba(242, 139, 54, 0.26);
}
.about-history-nodes .active em{
  color: #f28b36;
}
.about-history-dots button.active{
  background: #f28b36;
}
.about-history-hero.is-switching .about-history-content strong,
.about-history-hero.is-switching .about-history-content p:last-child{
  opacity: 0.28;
}
.about-contact-band-inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 80px;
}
@media (max-width: 1100px){
.about-company-media img{
    height: 280px;
  }
.about-history-hero{
    height: 390px;
  }
.about-contact-band-inner{
    gap: 28px;
  }
.about-honor-strip .container{
    gap: 24px;
  }
}
@media (max-width: 720px){
.about-company-copy{
    padding-top: 0;
  }
.about-company-copy p{
    line-height: 1.8;
  }
.about-company-media img{
    height: 220px;
  }
.about-honor-strip .container{
    grid-template-columns: 1fr;
    gap: 16px;
  }
.about-history-hero{
    height: 480px;
  }
.about-contact-band-inner{
    flex-direction: column;
    align-items: center;
    gap: 22px;
  }
}
.about-company-media{
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(16, 31, 55, 0.08);
}
.about-company-media img{
  box-shadow: none;
  transition: transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.about-company-media:hover img{
  transform: scale(1.035);
}
.company-intro-card,
.tech-lead-card,
.certificate-wall article,
.partner-panel{
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 24px 64px rgba(16, 31, 55, 0.08);
}
.company-intro-card{
  position: sticky;
  top: 110px;
  min-height: 430px;
  padding: 42px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.company-intro-card > span,
.tech-lead-card span,
.tech-card-grid span,
.certificate-wall span,
.partner-panel > div > span,
.team-grid span{
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.company-intro-card h3,
.tech-lead-card h3,
.partner-panel h3{
  margin: 18px 0 16px;
  color: var(--ink);
  font-size: clamp(28px, 2.7vw, 42px);
  line-height: 1.2;
}
.company-intro-card p,
.tech-lead-card p,
.tech-card-grid p,
.certificate-wall p,
.partner-panel p,
.team-grid p{
  margin: 0;
  color: var(--muted);
  line-height: 1.8;
}
.history-track{
  position: relative;
  display: grid;
  gap: 16px;
}
.history-track::before{
  content: "";
  position: absolute;
  left: 74px;
  top: 18px;
  bottom: 18px;
  width: 1px;
  background: linear-gradient(180deg, rgba(29, 93, 191, 0), rgba(29, 93, 191, 0.35), rgba(29, 93, 191, 0));
}
.history-track article{
  position: relative;
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 26px;
  padding: 26px 30px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 16px 42px rgba(16, 31, 55, 0.06);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.history-track article::before{
  content: "";
  position: absolute;
  left: 69px;
  top: 32px;
  width: 11px;
  height: 11px;
  border: 4px solid #ffffff;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 0 6px rgba(29, 93, 191, 0.1);
}
.history-track article:hover,
.team-grid article:hover,
.tech-card-grid article:hover,
.certificate-wall article:hover{
  border-color: rgba(29, 93, 191, 0.22);
  box-shadow: 0 30px 72px rgba(16, 31, 55, 0.13);
  transform: translateY(-7px);
}
.history-track time{
  color: var(--blue);
  font-size: 24px;
  font-weight: 800;
}
.history-track h3,
.team-grid h3,
.tech-card-grid h3,
.certificate-wall h3{
  margin: 0 0 10px;
  color: var(--ink);
  font-size: 21px;
}
.history-track p{
  margin: 0;
  color: var(--muted);
  line-height: 1.72;
}
.team-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 28px;
}
.team-grid article,
.tech-card-grid article{
  min-height: 214px;
  padding: 30px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.06);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.team-grid h3{
  margin-top: 18px;
}
.tech-lead-card{
  display: grid;
  grid-template-columns: minmax(420px, 1.12fr) minmax(320px, 0.88fr);
  gap: 46px;
  align-items: center;
  padding: 26px;
  overflow: hidden;
}
.tech-lead-card img{
  min-height: 430px;
  object-fit: cover;
  border-radius: var(--radius);
  background: #071426;
}
.tech-lead-card > div{
  padding-right: 34px;
}
.tech-card-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.tech-card-grid article{
  padding: 18px 18px 30px;
  overflow: hidden;
}
.tech-card-grid img{
  height: 236px;
  margin-bottom: 24px;
  object-fit: cover;
  border-radius: var(--radius);
  background: var(--soft);
  transition: transform 380ms ease;
}
.tech-card-grid article:hover img{
  transform: scale(1.035);
}
.tech-card-grid h3{
  margin-top: 14px;
}
.certificate-wall{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.certificate-wall article{
  position: relative;
  min-height: 210px;
  padding: 30px;
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.certificate-wall article::after{
  content: "";
  position: absolute;
  right: -34px;
  bottom: -34px;
  width: 108px;
  height: 108px;
  border: 18px solid rgba(29, 93, 191, 0.08);
  border-radius: 50%;
}
.certificate-wall h3{
  margin-top: 28px;
  font-size: 22px;
  line-height: 1.35;
}
.qualification-strip{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 28px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  overflow: hidden;
  background: rgba(29, 93, 191, 0.1);
}
.qualification-strip article{
  padding: 32px;
  background: #ffffff;
}
.qualification-strip strong{
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
  font-size: 38px;
  line-height: 1;
}
.qualification-strip span{
  color: var(--muted);
}
.partner-panel{
  display: grid;
  grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
  gap: 44px;
  margin-top: 28px;
  padding: 40px;
  align-items: center;
}
.qualification-strip,
.partner-panel{
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
}
.company-intro-card{
  min-height: 500px;
}
.history-track{
  align-content: start;
}
.history-track article{
  min-height: 116px;
  grid-template-columns: 118px minmax(0, 1fr);
  align-items: start;
}
.team-grid{
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
  margin-top: 32px;
}
.team-grid article{
  min-height: 236px;
}
.tech-lead-card{
  grid-template-columns: minmax(520px, 1.18fr) minmax(360px, 0.82fr);
  min-height: 520px;
  padding: 28px;
}
.tech-lead-card img{
  width: 100%;
  height: clamp(420px, 30vw, 520px);
  min-height: 0;
}
.tech-lead-card > div{
  max-width: 460px;
}
.tech-card-grid{
  grid-template-columns: repeat(3, minmax(280px, 1fr));
}
.tech-card-grid article{
  min-height: 430px;
}
.tech-card-grid img{
  height: clamp(210px, 17vw, 260px);
}
.certificate-wall article{
  min-height: 224px;
}
.partner-panel{
  grid-template-columns: minmax(360px, 0.64fr) minmax(560px, 1.36fr);
}
.product-architecture{
  display: grid;
  grid-template-columns: minmax(360px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(44px, 5vw, 78px);
  align-items: center;
}
.product-index-panel button.is-active{
  color: var(--blue);
  background: rgba(29, 93, 191, 0.06);
  transform: translateX(4px);
}
.product-index-panel button.is-active{
  box-shadow: inset 3px 0 0 var(--blue), 0 10px 24px rgba(29, 93, 191, 0.08);
}
.product-index-panel button.is-active span{
  background: var(--blue);
  box-shadow: 0 10px 24px rgba(29, 93, 191, 0.24);
}
.product-row{
  display: grid;
  grid-template-columns: 64px minmax(0, 0.92fr) minmax(360px, 0.78fr);
  gap: 30px;
  align-items: center;
  min-height: 392px;
  padding: 34px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 16px 42px rgba(16, 31, 55, 0.06);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease, opacity 220ms ease;
}
.product-tab-panel.is-active{
  animation: productPanelIn 260ms ease both;
}
.product-row.featured-row{
  border-color: rgba(29, 93, 191, 0.24);
  background: linear-gradient(135deg, #ffffff, #f4f8ff);
}
.product-row:hover{
  border-color: rgba(29, 93, 191, 0.22);
  box-shadow: 0 28px 68px rgba(16, 31, 55, 0.13);
  transform: translateY(-4px);
}
.product-row h3{
  margin: 0 0 14px;
  color: var(--ink);
  font-size: clamp(30px, 2.4vw, 40px);
  line-height: 1.18;
}
.product-row p{
  max-width: 680px;
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.9;
}
.product-row ul{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.product-row li{
  padding: 7px 10px;
  color: var(--blue);
  border-radius: 999px;
  background: rgba(29, 93, 191, 0.07);
  font-size: 12px;
  font-weight: 700;
}
@keyframes productPanelIn{
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 1100px){
  .honor-grid,
  .overview-grid,
  .solution-process,
  .scenario-strip,
  .capability-grid,
  .team-grid,
  .tech-card-grid,
  .certificate-wall,
  .qualification-strip,
  .product-architecture,
  .product-overview-block,
  .product-related-panel,
  .product-row{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
.matrix-card.large{
    grid-column: span 1;
  }
  .solution-process,
  .tech-lead-card,
  .partner-panel,
  .product-architecture,
  .product-overview-block,
  .product-related-panel,
  .solution-framework-map,
  .solution-value-board,
  .typical-case-panel,
  .product-row{
    grid-template-columns: 1fr;
  }
.company-intro-card{
    position: static;
    min-height: auto;
  }
  .qualification-strip,
  .partner-panel,
  .team-grid{
    width: min(860px, calc(100% - 72px));
    gap: 28px;
  }
.tech-lead-card{
    min-height: 0;
  }
.tech-lead-card > div{
    padding: 0 18px 18px;
    max-width: none;
  }
  .solution-cta,
  .case-hero-card,
  .solution-overview-panel{
    grid-template-columns: 1fr;
  }
.global-map-stats{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
.global-map-panel{
    min-height: 620px;
  }
.framework-layer{
    min-height: 220px;
  }
.value-board-list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
.value-board-list article{
    min-height: 220px;
  }
.case-story-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
.matrix-card.large{
    grid-column: span 1;
    min-height: 390px;
  }
.overview-refined{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
.overview-refined article{
    min-height: 280px;
    padding: 30px;
  }
.product-row{
    min-height: 0;
  }
.solution-mosaic-section .matrix-card.large{
    grid-column: span 2;
    grid-row: span 1;
  }
.solution-mosaic-section .matrix-card.large div{
    left: 34px;
    right: 34px;
    bottom: 34px;
  }
}
@media (max-width: 700px){
.page-hero{
    min-height: 620px;
  }
.page-hero h1{
    font-size: 42px;
  }
  .honor-grid,
  .overview-grid,
  .solution-process ol,
  .scenario-strip,
  .capability-grid,
  .team-grid,
  .tech-card-grid,
  .certificate-wall,
  .qualification-strip,
  .product-row{
    grid-template-columns: 1fr;
  }
  .qualification-strip,
  .partner-panel,
  .team-grid{
    width: calc(100% - 40px);
  }
.company-intro-card,
  .partner-panel,
  .team-grid article,
  .tech-card-grid article,
  .certificate-wall article{
    padding: 28px;
  }
.company-intro-card h3,
  .tech-lead-card h3,
  .partner-panel h3{
    font-size: 28px;
  }
.history-track::before,
  .history-track article::before{
    display: none;
  }
.history-track article{
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 24px;
  }
.tech-lead-card{
    padding: 16px;
  }
.tech-lead-card img{
    height: 280px;
    min-height: 0;
  }
.tech-card-grid img{
    height: 210px;
  }
.solution-filter{
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 6px;
  }
.solution-filter button{
    flex: 0 0 auto;
  }
.solution-mosaic-section .matrix-card.large{
    grid-column: span 1;
    grid-row: span 1;
  }
.solution-mosaic-section .refined-matrix .matrix-card,
  .solution-mosaic-section .matrix-card{
    min-height: 330px;
  }
.solution-mosaic-section .matrix-card.large{
    min-height: 420px;
  }
.solution-mosaic-section .matrix-card div,
  .solution-mosaic-section .matrix-card.large div{
    left: 24px;
    right: 24px;
    bottom: 24px;
  }
.solution-cta{
    padding: 30px;
  }
.case-hero-card{
    display: block;
  }
.all-case-card{
    min-height: 0;
    padding: 0;
  }
.all-case-card > img{
    height: 190px;
  }
.global-map-stats{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 14px;
  }
.global-map-panel{
    min-height: 560px;
  }
.solution-overview-panel{
    padding: 18px;
  }
.solution-overview-cards article{
    padding: 24px 24px 24px 28px;
  }
.solution-overview-cards h3{
    font-size: 20px;
  }
  .capability-structure{
    grid-template-columns: 1fr;
  }
.framework-layer{
    min-height: 190px;
  }
.capability-structure article{
    padding: 24px;
  }
.value-board-list{
    grid-template-columns: 1fr;
  }
.value-board-list article{
    min-height: 0;
    padding: 24px;
  }
.value-board-list h4{
    margin-top: 18px;
  }
  .product-matrix{
    padding: 24px;
  }
.case-story-grid{
    grid-template-columns: 1fr;
  }
.case-story-grid article{
    min-height: 0;
    padding: 24px;
  }
  .overview-refined article{
    min-height: 0;
    padding: 26px;
  }
.overview-refined{
    grid-template-columns: 1fr;
  }
.overview-refined h3{
    margin-top: 18px;
    font-size: 24px;
  }
.related-info-grid article{
    padding: 24px;
  }
.product-index-panel button.is-active{
    box-shadow: inset 0 -3px 0 var(--blue);
    transform: none;
  }
.product-row{
    padding: 24px;
  }
.product-row h3{
    font-size: 28px;
  }
.product-row p{
    font-size: 15px;
    line-height: 1.8;
  }
.certificate-wall article{
    min-height: 190px;
  }
.qualification-strip article{
    padding: 24px 28px;
  }
  .case-feature.large img,
  .case-feature img{
    height: 240px;
  }
}
.resources-page .section-head{
  display: block;
  margin-bottom: 34px;
}
.resources-page .section-head h2,
.resources-page .trial-panel h2{
  margin: 0;
  color: #4a4a4a;
  font-size: 29px;
  font-weight: 500;
  line-height: 1.1;
}
.resources-page .section-head h2 span,
.resources-page .trial-panel h2 span{
  color: #0b68ee;
  font-size: 31px;
  font-weight: 600;
}
.resources-page .trial-panel h2{
  margin-bottom: 18px;
}


/* 关于迪迈页面中资源模块的标题样式 */
.about-page .section-head{
  display: block;
  margin-bottom: 34px;
}
.about-page .news-more-head h3,
.about-page .trial-panel h2{
  margin: 0;
  color: #4a4a4a;
  font-size: 29px;
  font-weight: 500;
  line-height: 1.1;
}
.about-page .section-head h2{
  margin: 0;
  color: #1a1a1a;
  font-size: 29px;
  font-weight: 700;
  line-height: 1.1;
}
.about-page .section-head h2::after{
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px auto 0;
  background: #1d5dbf;
}
.about-page .section-head h2 span,
.about-page .news-more-head h3 span,
.about-page .trial-panel h2 span{
  color: #0b68ee;
  font-size: 31px;
  font-weight: 600;
}
.about-page .trial-panel h2{
  margin-bottom: 18px;
}
.about-page .resources-news{
  box-sizing: border-box;
  height: 590px;
  min-height: 590px;
  padding: 70px 0;
}
.about-page .resources-news .section-head{
  height: 56px;
  margin-bottom: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-page .resource-news-layout{
  grid-template-columns: minmax(0, 720fr) minmax(0, 680fr);
  gap: 40px;
}
.about-page .main-news{
  box-sizing: border-box;
  height: 360px;
  min-height: 0;
  grid-template-columns: minmax(0, 438fr) minmax(0, 373fr);
  border: 0.667px solid #dfe7f2;
  border-radius: 12px;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.08);
  transition: transform 260ms ease, box-shadow 260ms ease;
}
.about-page .main-news:hover,
.about-page .main-news:focus-within{
  box-shadow: 0 26px 56px rgba(16, 31, 55, 0.14);
  transform: translateY(-6px);
}
.about-page .main-news .news-copy{
  min-width: 0;
  padding: 54px 36px 56px 40px;
  display: flex;
  flex-direction: column;
}
.about-page .main-news .news-copy strong{
  margin: 0 0 14px;
  color: #1d5dbf;
  font-size: 28px;
  font-weight: 700;
  line-height: 37px;
}
.about-page .main-news .news-copy h3{
  height: 52px;
  margin: 0 0 14px;
  overflow: hidden;
  color: #101827;
  font-size: 20px;
  font-weight: 700;
  line-height: 26px;
}
.about-page .main-news .news-copy p{
  min-height: 0;
  height: 49px;
  margin: 0;
  overflow: hidden;
  color: #6c778c;
  font-size: 14px;
  line-height: 24.5px;
}
.about-page .main-news .about-news-more{
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: auto;
  color: #1d5dbf;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  transition: color 0.25s ease, transform 0.25s ease;
}
.about-page .main-news .about-news-more::after{
  content: "";
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background: currentColor;
  mask: url("../assets/icon-more.svg") center / contain no-repeat;
  -webkit-mask: url("../assets/icon-more.svg") center / contain no-repeat;
  transition: transform 0.25s ease;
}
.about-page .main-news .about-news-more:hover,
.about-page .main-news .about-news-more:focus-visible{
  color: #005dbe;
  transform: translateY(-2px);
}
.about-page .main-news .about-news-more:hover::after,
.about-page .main-news .about-news-more:focus-visible::after{
  transform: translateX(4px);
}
.about-page .main-news > img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.about-page .refined-news-list{
  height: 360px;
  gap: 30px;
}
.about-page .refined-news-list a{
  box-sizing: border-box;
  height: 100px;
  min-height: 0;
  padding: 20px 50px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 10px 16px;
  align-content: center;
  border: 0.667px solid rgba(29, 93, 191, 0.1);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 18px 46px rgba(16, 31, 55, 0.07);
}
.about-page .refined-news-list strong{
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: #101827;
  font-size: 18px;
  font-weight: 700;
  line-height: 25px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.about-page .refined-news-list span{
  grid-column: 2;
  grid-row: 1 / -1;
  align-self: center;
  color: #1d5dbf;
  font-size: 12px;
  font-weight: 500;
  line-height: 25px;
}
.about-page .refined-news-list em{
  grid-column: 1 / -1;
  grid-row: 2;
  min-width: 0;
  overflow: hidden;
  color: #6c778c;
  font-size: 14px;
  font-style: normal;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.news-mini-card{
  overflow: hidden;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(16, 31, 55, 0.07);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.news-mini-card img{
  height: 168px;
  object-fit: cover;
  transition: transform 520ms ease;
}
.news-mini-card > div{
  display: grid;
  gap: 12px;
  padding: 22px;
}
.news-mini-card span{
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}
.news-mini-card strong{
  color: var(--ink);
  font-size: 24px;
  line-height: 1;
}
.news-mini-card h4{
  min-height: 56px;
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.55;
}
.news-mini-card p{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
}
.news-mini-card:hover{
  border-color: rgba(29, 93, 191, 0.22);
  box-shadow: 0 28px 62px rgba(16, 31, 55, 0.13);
  transform: translateY(-8px);
}
.news-mini-card:hover img{
  transform: scale(1.05);
}
.trial-panel{
  display: grid;
  grid-template-columns: minmax(320px, 0.72fr) minmax(0, 1.28fr);
  gap: 72px;
  align-items: start;
  padding: 54px;
  border: 1px solid rgba(29, 93, 191, 0.1);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 18% 18%, rgba(29, 93, 191, 0.1), transparent 28%),
    #ffffff;
  box-shadow: 0 24px 62px rgba(16, 31, 55, 0.1);
}
.trial-panel h2{
  margin: 0 0 18px;
  color: var(--ink);
  font-size: clamp(36px, 3.8vw, 54px);
  line-height: 1.16;
}
.trial-panel p{
  margin: 0;
  color: var(--muted);
  line-height: 1.9;
}
.trial-form{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: 840px;
}
.trial-form label{
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
}
.trial-form label.full{
  grid-column: auto;
  align-items: start;
}
.trial-form span{
  color: var(--ink);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  text-align: right;
  white-space: nowrap;
}
.trial-form span::before{
  content: "*";
  margin-right: 2px;
  color: #ff2b1f;
  font-weight: 700;
}
.trial-form input,
.trial-form select,
.trial-form textarea{
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  outline: none;
  color: var(--text);
  background: rgba(255, 255, 255, 0.82);
  font: inherit;
  font-size: 18px;
  transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.trial-form input,
.trial-form select{
  height: 64px;
  padding: 0 22px;
}
.trial-form textarea{
  min-height: 140px;
  padding: 18px 22px;
  resize: vertical;
}
.trial-form input:focus,
.trial-form select:focus,
.trial-form textarea:focus{
  border-color: rgba(29, 93, 191, 0.42);
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(29, 93, 191, 0.08);
}
.trial-form button{
  width: calc(100% - 144px);
  height: 64px;
  margin-left: 144px;
  border: 0;
  border-radius: 6px;
  font-size: 18px;
  cursor: pointer;
}


/* About page trial application, matched to Figma frame 11564:3285. */
.about-page .trial-section{
  min-height: 580px;
  padding: 70px 0;
  background: #ebf5ff;
}
.about-page .trial-panel{
  height: 440px;
  grid-template-columns: minmax(0, 720fr) minmax(0, 690fr);
  gap: 30px;
  align-items: stretch;
  padding: 0;
  overflow: hidden;
  border: 0.667px solid rgba(29, 93, 191, 0.1);
  border-radius: 16px;
  background:
    radial-gradient(151.29% 320.31% at 91.08% 50%, rgba(29, 93, 191, 0.1) 0%, rgba(29, 93, 191, 0) 28%),
    #ffffff;
  box-shadow: 0 24px 62px rgba(16, 31, 55, 0.1);
  transition: transform 320ms ease, box-shadow 320ms ease, border-color 320ms ease;
}
.about-page .trial-panel:hover{
  border-color: rgba(29, 93, 191, 0.22);
  box-shadow: 0 30px 68px rgba(16, 31, 55, 0.14);
  transform: translateY(-4px);
}
.about-page .trial-intro{
  position: relative;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  padding: 56px 64px;
  border-radius: 16px;
  color: #ffffff;
  background: #1d5dbf;
  isolation: isolate;
}
.about-page .trial-artwork{
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  pointer-events: none;
  transition: transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.about-page .trial-intro:hover .trial-artwork{
  transform: scale(1.045);
}
.about-page .trial-intro h2,
.about-page .trial-intro p{
  position: relative;
  z-index: 2;
}
.about-page .trial-intro h2{
  margin: 0 0 28px;
  color: #ffffff;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.35;
}
.about-page .trial-intro h2 span{
  color: #ffffff;
  font-size: 30px;
  font-weight: 600;
}
.about-page .trial-intro p{
  width: min(100%, 455px);
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 18px;
  line-height: 2;
  text-indent: 0;
}
.about-page .trial-form{
  display: flex;
  flex-direction: column;
  gap: 25px;
  width: 100%;
  max-width: none;
  height: 100%;
  padding: 40px;
}
.about-page .trial-form-row{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.about-page .trial-form label{
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 0;
}
.about-page .trial-form label.full{
  align-items: start;
}
.about-page .trial-form span{
  color: #1e1e1e;
  font-size: 12px;
  font-weight: 600;
  line-height: 40px;
  text-align: right;
}
.about-page .trial-form span::before{
  margin-right: 1px;
  font-size: 11px;
}
.about-page .trial-form input,
.about-page .trial-form textarea{
  border: 1px solid #e7edf5;
  border-radius: 6px;
  color: #333333;
  background: rgba(255, 255, 255, 0.88);
  font-size: 12px;
}
.about-page .trial-form input{
  height: 40px;
  padding: 0 15px;
}
.about-page .trial-form textarea{
  height: 90px;
  min-height: 90px;
  padding: 12px 15px;
  resize: none;
}
.about-page .trial-form input::placeholder,
.about-page .trial-form textarea::placeholder{
  color: #a7afb9;
  opacity: 1;
}
.about-page .trial-form input:focus,
.about-page .trial-form textarea:focus{
  border-color: rgba(29, 93, 191, 0.45);
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(29, 93, 191, 0.08);
}
.about-page .trial-form button{
  width: calc(100% - 80px);
  height: 50px;
  min-height: 50px;
  margin: auto 0 0 80px;
  border-radius: 6px;
  background: #1d5dbf;
  box-shadow: none;
  font-size: 14px;
  font-weight: 500;
}
@media (max-width: 1100px){
.about-page .trial-section{
    min-height: 0;
    padding: 56px 0;
  }
.about-page .trial-panel{
    height: auto;
    grid-template-columns: 1fr;
    gap: 0;
  }
.about-page .trial-intro{
    min-height: 300px;
    padding: 48px;
  }
.about-page .trial-form{
    height: auto;
  }
}
@media (max-width: 700px){
.about-page .trial-section{
    padding: 40px 0;
  }
.about-page .trial-intro{
    min-height: 260px;
    padding: 34px 28px;
  }
.about-page .trial-intro h2{
    margin-bottom: 20px;
    font-size: 20px;
  }
.about-page .trial-intro h2 span{
    font-size: 26px;
  }
.about-page .trial-form{
    gap: 18px;
    padding: 28px 22px 30px;
  }
.about-page .trial-form-row{
    grid-template-columns: 1fr;
    gap: 18px;
  }
.about-page .trial-form label,
  .about-page .trial-form label.full{
    grid-template-columns: 1fr;
    gap: 6px;
  }
.about-page .trial-form span{
    line-height: 1.5;
    text-align: left;
  }
.about-page .trial-form textarea{
    height: 92px;
    min-height: 92px;
  }
.about-page .trial-form button{
    width: 100%;
    margin: 4px 0 0;
  }
}
.video-showcase{
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.55fr);
  gap: 28px;
  align-items: stretch;
}
.geo-features .section-head.reveal{
  opacity: 1;
  transform: none;
  transition: none;
}
@media (max-width: 1100px){
.nav{
    display: none;
  }
.trial-form{
    grid-template-columns: 1fr;
  }
.about-page .resources-news{
    height: auto;
    min-height: 0;
    padding: 56px 0;
  }
.about-page .resources-news .section-head{
    height: auto;
  }
.about-page .resource-news-layout{
    grid-template-columns: 1fr;
    gap: 20px;
  }
.about-page .refined-news-list{
    height: auto;
  }
.about-page .refined-news-list a{
    height: auto;
    min-height: 105px;
  }
}
@media (max-width: 700px){
.resources-page .section-head h2,
  .resources-page .trial-panel h2,
  .resources-page .section-head h2 span,
  .resources-page .trial-panel h2 span{
    font-size: 24px;
  }
.header{
    height: 66px;
  }
.logo{
    font-size: 18px;
  }
.about-page .main-news{
    height: auto;
    grid-template-columns: 1fr;
  }
.about-page .main-news .news-copy{
    min-height: 340px;
    padding: 36px 28px;
  }
.about-page .main-news > img{
    height: 300px;
  }
.news-mini-card h4{
    min-height: auto;
  }
.trial-panel{
    padding: 28px;
  }
.trial-form label{
    grid-template-columns: 1fr;
    gap: 8px;
  }
.trial-form span{
    text-align: left;
  }
.trial-form input,
  .trial-form select{
    height: 56px;
  }
.trial-form textarea{
    min-height: 128px;
  }
.trial-form button{
    width: 100%;
    margin-left: 0;
  }
.solution-card{
    min-height: 320px;
  }
.case-card img{
    height: 220px;
  }
}
.fh-dots button.is-active{
  background: var(--fh-blue);
  transform: scaleX(1.08);
}
.fh-case-tabs a.is-active{
  color: var(--fh-blue);
  background: #ffffff;
  font-weight: 700;
}
.fh-case-tabs a.is-active::before{
  content: "";
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-bottom: 14px solid #ffffff;
}
.fh-case-tabs a.is-active img{
  opacity: 1;
  transform: scale(1.02);
}
.fh-case-tabs a.is-active img{
  width: min(220px, 70%);
  height: 64px;
  max-width: 70%;
  max-height: 64px;
  padding: 8px 28px;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(38, 67, 108, 0.18);
}
@media (max-width: 760px){
.geo-hero{
    margin-top: 64px;
  }
.resources-page .page-hero{
    height: 50vh;
    min-height: 0;
    max-height: none;
    margin-top: 64px;
  }
.resources-page .page-hero h1{
    font-size: 17px;
  }
.resources-page .page-hero p:last-child{
    font-size: 15px;
    line-height: 1.72;
  }
}


/* About history: keep the desktop timeline legible on narrower PC windows. */
@media (min-width: 1101px) and (max-width: 1440px){
.about-history-hero{
    height: clamp(500px, 38vw, 560px);
  }
.about-page .about-history-intro{
    top: 108px;
    width: min(620px, 52%);
    font-size: 13px;
    line-height: 1.8;
  }
}
@media (min-width: 1101px) and (max-width: 1240px){
.about-page .about-history-intro{
    width: min(540px, 50%);
  }
}


/* Client case section rebuilt from Figma 12573:692. */
@media (min-width: 861px){
.case-industry-tabs button.is-active{
    color: #006dce;
    font-weight: 400;
  }
.case-customer-tabs button.is-active{
    position: relative;
    isolation: isolate;
    color: #101827;
    background: #ffffff;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
    /* box-shadow: 0 6px 18px rgba(16, 31, 55, 0.16); */
  }
.case-customer-tabs button.is-active .case-client-logo-chip{
    position: relative;
    z-index: 1;
    /* width: 140px;
    height: 55px;
    min-height: 0;
    overflow: hidden; */
  }
}



/* Desktop case page: reserve a fixed one-screen budget for the full module. */


/* Final responsive rules for the client-case page. */


/* Match the customer-row proportions used by the compact desktop panel. */


/* Final one-screen layout for the case page on mobile. */


/* Keep the trial form aligned with the current official site. */
.about-page .trial-panel {
  height: auto;
  min-height: 440px;
}

.about-page .trial-form {
  height: auto;
  gap: 14px;
}

.about-page .trial-form [data-form-message] {
  display: block;
  flex: 0 0 auto;
  min-height: 24px;
  margin: 0 0 0 80px;
  text-align: center;
  font-size: 12px;
  font-weight: 400;
  line-height: 24px;
  color: #259b79;
  overflow-wrap: anywhere;
}

.about-page .trial-form [data-form-message][data-state="error"] {
  color: #e45b4b;
}

.about-page .trial-form.was-validated input:invalid,
.about-page .trial-form.was-validated textarea:invalid {
  border-color: #ff7875;
  box-shadow: 0 0 0 3px rgba(255, 120, 117, .13);
}

@media (max-width: 700px) {
  .about-page .trial-form [data-form-message] {
    margin-left: 0;
  }
}

/* ===== Source: css/solutionlist-0916.css ===== */
.openpit-page {
  --op-blue: #1567e7;
  --op-ink: #0d1b2f;
  --op-muted: #617088;
  --op-width: var(--site-safe-width);
  margin: 0;
  color: var(--op-ink);
  background: #fff;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
}

.openpit-page *, .openpit-page *::before, .openpit-page *::after { box-sizing: border-box; }
.openpit-page main { overflow: hidden; }
.op-section-tab { position: absolute; z-index: 75; top: 0; left: max(24px, calc((100vw - var(--site-safe-width)) / 2 - 200px)); width: max-content; padding: 8px 0; border: 1px solid #e5edf6; border-radius: 6px; background: rgba(255,255,255,.96); box-shadow: 0 12px 28px rgba(16,48,92,.12); }
.op-section-tab a, .op-section-tab button { position: relative; display: flex; align-items: center; min-height: 38px; padding: 0 16px; border: 0; color: #445166; background: transparent; cursor: pointer; font: 14px/20px "PingFang SC", "Microsoft YaHei", sans-serif; text-align: left; text-decoration: none; white-space: nowrap; }
.op-section-tab a::before { content: ""; position: absolute; top: 7px; bottom: 7px; left: 0; width: 2px; background: transparent; }
.op-section-tab a:hover, .op-section-tab a:focus-visible, .op-section-tab a.is-active { color: #005dbe; font-weight: 600; }
.op-section-tab a.is-active::before { background: #005dbe; }
.op-section-tab button { margin-top: 4px; padding-top: 8px; border-top: 1px solid #e5edf6; color: #005dbe; font-weight: 600; }
.op-section-tab button::after { content: ""; width: 6px; height: 6px; margin-left: 7px; border-top: 1.5px solid currentColor; border-left: 1.5px solid currentColor; transform: rotate(45deg); }
.op-wrap { width: min(var(--op-width), calc(100% - 48px)); margin: 0 auto; }
.op-section-title { display: flex; align-items: center; gap: 10px; margin: 0; line-height: 45px; }
.op-section-title span { color: var(--op-blue); font-size: 32px; font-weight: 600; }
.op-section-title strong { color: #4a4a4a; font-size: 30px; font-weight: 400; }

.op-hero { position: relative; height: 550px; overflow: hidden; background: #76c4f2; }
.op-hero-base{ position: absolute; pointer-events: none; }
.op-hero-base { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.op-hero::after { display: none; }
.op-hero-copy { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
.op-hero h1 { margin: 0; color: #111; font-size: 40px; font-weight: 700; line-height: 1.4; }
.op-hero p { width: min(1120px, 100%); margin: 12px auto 0; color: #222; font-size: 18px; line-height: 34px; }

.op-challenges { position: relative; height: 606px; padding-top: 70px; background: #fff; }
.op-challenges::before { content: ""; position: absolute; inset: 0; background: url("../resources/image/theme/figma-openpit/layers/challenge-section-bg.png") center / cover no-repeat; }
.op-challenges .op-wrap { position: relative; }
.op-challenge-card { --challenge-bg-position: 0% center; position: relative; display: flex; flex-direction: column; padding: 46px 60px 26px; overflow: hidden; border-radius: 0; outline: 0; background: transparent; transition: color .28s ease, border-radius .28s ease, box-shadow .28s ease; }
.op-challenge-card:nth-child(2) { --challenge-bg-position: 33.333% center; }
.op-challenge-card:nth-child(3) { --challenge-bg-position: 66.667% center; }
.op-challenge-card:nth-child(4) { --challenge-bg-position: 100% center; }
.op-challenge-card::before { content: ""; position: absolute; inset: 0; background: url("../resources/image/theme/figma-openpit/layers/challenge-photo.png") var(--challenge-bg-position) / auto 100% no-repeat; opacity: 0; transform: scale(1.025); transition: opacity .3s ease, transform .55s ease; }
.op-challenge-card::after { content: ""; position: absolute; inset: 0; background: rgba(2,18,36,.58); opacity: 0; transition: opacity .3s ease; }
.op-challenge-grid:not(:hover) .op-challenge-card:focus-visible,
.op-challenge-card:hover { border-radius: 12px; color: #fff; box-shadow: 0 18px 38px rgba(0,72,147,.18); }
.op-challenge-grid:not(:hover) .op-challenge-card:focus-visible::before,
.op-challenge-card:hover::before { opacity: 1; transform: scale(1); }
.op-challenge-grid:not(:hover) .op-challenge-card:focus-visible::after,
.op-challenge-card:hover::after { opacity: 1; }
.op-challenge-card > * { position: relative; z-index: 1; }
.op-challenge-grid:not(:hover) .op-challenge-card:focus-visible .op-challenge-icon,
.op-challenge-card:hover .op-challenge-icon { opacity: 0; }
.op-challenge-grid:not(:hover) .op-challenge-card:focus-visible .op-challenge-icon.is-white,
.op-challenge-card:hover .op-challenge-icon.is-white { opacity: 1; }
.op-challenge-card h3 { height: 56px; margin: 25px 0 0; font-size: 20px; font-weight: 600; line-height: 28px; }
.op-challenge-card hr { display: block; width: 100%; min-height: 1px; height: 1px; margin: 25px 0 19px; padding: 0; border: 0; border-top: 1px solid #cbd8e8; opacity: 1; background: #cbd8e8; visibility: visible; transition: border-color .28s ease, background-color .28s ease; }
.op-challenge-card p { margin: 0; color: var(--op-muted); font-size: 14px; line-height: 25px; text-align: justify; transition: color .28s ease; }
.op-challenge-grid:not(:hover) .op-challenge-card:focus-visible hr,
.op-challenge-card:hover hr { border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.55); }
.op-challenge-grid:not(:hover) .op-challenge-card:focus-visible p,
.op-challenge-card:hover p { color: #fff; }

.op-overview { padding: 70px 0 0; background: #fff; }
.op-overview-text { margin-top: 41px; color: #1a1a1a; font-size: 18px; line-height: 34px; }
.op-overview-text p { margin: 0; text-indent: 2em; }
.op-overview-text p + p { margin-top: 0; } .op-overview-carousel { position: relative; z-index: 1; }
.op-overview-control { width: 40px; height: 40px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.op-overview-control img { display: block; width: 40px; height: 40px; }
.op-overview-control .is-active { display: none; }
.op-overview-control:hover .is-default,
.op-overview-control:focus-visible .is-default { display: none; }
.op-overview-control:hover .is-active,
.op-overview-control:focus-visible .is-active { display: block; }
.op-overview-control:focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: 50%; }
.op-overview-carousel { height: 352px; overflow: hidden; border-radius: 8px; }
.op-overview-track { display: flex; width: 200%; height: 100%; transition: transform .45s ease; }
.op-overview-track[data-page="business"] { transform: translateX(-50%); }


.op-value { height: 559px; padding-top: 70px; background: #fff; }
.op-value-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 35px; height: 430px; margin-top: 34px; }
.op-value-card { box-sizing: border-box; display: flex; align-items: center; justify-content: center; gap: 30px; height: 200px; min-width: 0; padding: 25px; overflow: hidden; border: 0; border-radius: 12px; background: #fff; box-shadow: 0 0 25px rgba(0,72,147,.15); }
.op-value-content { flex: 1 0 0; min-width: 0; }
.op-value-content-header { display: flex; align-items: center; gap: 15px; color: #1a1a1a; white-space: nowrap; }
.op-value-content strong { font-size: 30px; line-height: normal; font-weight: 600; }
.op-value-content h3 { margin: 0; font-size: 16px; line-height: normal; font-weight: 400; }
.op-value-content p { margin: 10px 0 0; color: #617088; font-size: 16px; line-height: 28.8px; }
.op-value-image-frame { position: relative; flex: 0 0 261px; width: 261px; height: 168px; overflow: hidden; border-radius: 10px; }
.op-value-media { position: absolute; display: block; max-width: none; pointer-events: none; }
.op-value-card.is-low-grade .op-value-media { top: -41px; right: 0; width: 314px; height: 252px; object-fit: cover; }
.op-value-card.is-dilution .op-value-media { top: -16px; left: -50px; width: 324px; height: 200px; object-fit: cover; transform: scaleX(-1); }
.op-value-card.is-loss .op-value-media { top: -8px; left: -23px; width: 306px; height: 184px; object-fit: cover; }
.op-value-card.is-cost .op-value-media { top: -14px; right: -5px; width: 267px; height: 214px; object-fit: cover; }

.op-cases { padding: 70px 0 40px; background: #fff; }
.op-case-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 40px; margin-top: 45px; }

.op-more { display: flex; flex-direction: column; overflow: hidden; padding: 0; color: #fff; background: #0564c9 url("../resources/image/theme/openpit-more-bg-frame127.png") center/cover no-repeat; }
.op-more-cta { margin: 40px 0; text-align: center; }
.op-more-cta h2 { margin: 0; font-size: 40px; line-height: 56px; font-weight: 600; }
.op-more-cta p { margin: 16px 0 30px; font-size: 18px; line-height: 25px; }
.op-more-cta a { width: 192px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; background: #fff; color: #005dbe; font-size: 16px; text-decoration: none; transition: transform .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.op-more-cta a:hover, .op-more-cta a:focus-visible { background: #fff; color: #005dbe; box-shadow: 0 10px 22px rgba(0, 40, 99, .3); transform: translateY(-3px) scale(1.025); }
.op-more-cta a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.op-more-clients { order: -1; margin: 0; padding: 40px 0; background: #fff; }
.op-cases .op-more-clients { width: 100vw; margin: 40px 0 0 calc(50% - 50vw); padding: 0; }
.op-cases .op-more-viewport { width: calc(100vw - 64px); }
.op-more-track { display: flex; width: max-content; animation: op-client-marquee 32s linear infinite; }
.op-more-group { display: flex; gap: 30px; padding-right: 30px; }
.op-more-clients:hover .op-more-track { animation-play-state: paused; }
@keyframes op-client-marquee { to { transform: translateX(-50%); } }

.openpit-page .compact-footer { min-height: 61px; padding: 0; display: flex; align-items: center; background: #f3f4f6; }
.openpit-page .compact-footer .copyright { color: #777e8a; font-size: 12px; text-align: center; }

@media (max-width: 1500px) {
  .op-wrap { width: min(var(--op-width), calc(100% - 64px)); }
  .op-value-grid { gap: 24px; }
  }

@media (min-width: 1101px) and (max-width: 1700px) {
  .op-section-tab { width: 42px; min-height: 139px; padding: 12px 0; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; border: 0; border-radius: 21px; background: #0b5ed7; box-shadow: 0 12px 28px rgba(0, 72, 147, .2); transition: width .2s ease, border-radius .2s ease, background-color .2s ease; }
  .op-section-tab::before { content: "页面导航"; color: #fff; font: 400 13px/1.3 "PingFang SC", "Microsoft YaHei", sans-serif; writing-mode: vertical-rl; letter-spacing: 1px; }
  .op-section-tab::after { content: ""; width: 7px; height: 7px; margin-top: 10px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: rotate(45deg); }
  .op-section-tab a, .op-section-tab button { display: none; }
  .op-section-tab:hover, .op-section-tab:focus-within { width: 132px; min-height: 0; padding: 8px 0; align-items: stretch; border: 1px solid #e5edf6; border-radius: 6px; background: rgba(255,255,255,.96); }
  .op-section-tab:hover::before, .op-section-tab:hover::after, .op-section-tab:focus-within::before, .op-section-tab:focus-within::after { display: none; }
  .op-section-tab:hover a, .op-section-tab:hover button, .op-section-tab:focus-within a, .op-section-tab:focus-within button { display: flex; }
}

@media (max-width: 1100px) {
  .openpit-page .fh-nav { display: none; }
  .op-section-tab { display: none; }
  .op-challenges, .op-overview, .op-value, .op-cases, .op-more { height: auto; }
  .op-challenges, .op-overview, .op-value, .op-cases { padding: 56px 0; }
    .op-challenge-card { min-height: 420px; }
        .op-value { height: auto; padding-bottom: 50px; }
  .op-value-grid { grid-template-columns: 1fr; height: auto; }
  .op-value-card { height: 200px; }
  .op-case-grid { grid-template-columns: 1fr; }
    .op-more { padding: 56px 0 50px; }
}

@media (max-width: 640px) {
  .op-wrap { width: calc(100% - 32px); }
  .openpit-page .fh-header-inner { width: calc(100% - 32px); }
  .openpit-page .fh-search { display: none; }
  .op-section-title { align-items: baseline; gap: 8px; line-height: 1.25; }
  .op-section-title span { font-size: 22px; }
  .op-section-title strong { font-size: 21px; }
  .op-hero { height: 550px; }
    .op-hero-copy { padding-top: 44px; }
  .op-hero h1 { font-size: 28px; }
  .op-hero p { margin-top: 12px; font-size: 15px; line-height: 27px; }
    .op-challenge-card { min-height: 390px; padding: 50px 42px; }
            .op-overview-carousel { height: auto; }
  .op-overview-track { height: auto; }
            .op-value-grid { grid-template-columns: 1fr; margin-top: 32px; }
  .op-value-card, .op-value-card.is-featured { gap: 16px; height: 200px; padding: 20px; }
  .op-value-content { width: auto; }
  .op-value-content strong { font-size: 24px; }
  .op-value-content h3 { font-size: 14px; }
  .op-value-content p { font-size: 13px; line-height: 1.6; }
  .op-value-image-frame { flex: 0 1 38%; width: 38%; height: auto; aspect-ratio: 261 / 168; }
  .op-case-grid { margin-top: 32px; }
                      .op-more-cta { padding: 0 20px; }
  .op-more-cta h2 { font-size: 30px; }
  .op-more-cta p { font-size: 15px; line-height: 24px; }
}

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

/* Open-pit page navigation card. */
.openpit-page .op-section-tab { box-shadow: none; }

/* Reduce the floating contact toolbar by 20% from its current size. */

/* ===== Source: css/solution-banner.css ===== */
/* Shared solution hero, matching the digital mining product banner. */
.openpit-page .op-hero { height: 86vh; min-height: 720px; max-height: 960px; margin-top: 0; background: #101a22; isolation: isolate; }
/* The upper 37.5% of the source banners contains baked-in headings. */
.openpit-page .op-hero-base { inset: auto 0 0; height: 160%; width: 100%; object-fit: cover; object-position: center bottom; }
.openpit-page .op-hero::after { display: block; content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,rgba(8,15,22,.85),rgba(8,15,22,.52) 44%,rgba(8,15,22,.12)); pointer-events: none; }
.openpit-page .op-hero-copy { position: absolute; top: auto; bottom: 70px; left: 0; right: 0; z-index: 2; width: min(var(--site-safe-width), calc(100% - var(--site-gutter))); height: auto; margin: 0 auto; padding: 0; overflow: visible; clip: auto; clip-path: none; white-space: normal; text-align: left; }
.openpit-page .op-hero h1 { margin: 0; max-width: 100%; font-family: inherit; font-size: 48px; font-weight: 400; line-height: 1.5; letter-spacing: normal; color: #fff; text-align: left; text-shadow: 0 2px 24px #0008; }
.openpit-page .op-hero-copy p { display: block; width: min(670px, 100%); margin: 24px 0 0; color: #fff; font-size: 16px; font-weight: 400; line-height: 1.8; text-align: left; text-indent: 0; text-shadow: 0 2px 12px #0008; }
@media(max-width:800px) {
 .openpit-page .op-hero-copy { left: 0; right: 0; bottom: 48px; width: calc(100% - 40px); }
 .openpit-page .op-hero h1 { font-size: clamp(24px,4.7vw,38px); text-wrap: balance; }
}

/* Video fills the banner without the crop used for the old image. */
.openpit-page .op-hero-video { inset: 0; height: 100%; width: 100%; object-fit: cover; object-position: center; }

@media(max-width:800px) { .openpit-page .op-hero-copy p { margin-top: 20px; font-size: 16px; line-height: 1.85; } }

/* ===== Source: css/openpit-challenges.css ===== */
/* White cards with inline icons, headings and fine dividers. */
#op-challenges { height: auto; padding: 120px 0; background: #f4f6f8; }
#op-challenges::before { display: none; }
#op-challenges .op-wrap { width: min(var(--site-safe-width),calc(100% - 192px)); }
#op-challenges .op-section-title { display: block; text-align: center; line-height: 1.3; }
#op-challenges .op-section-title span { display: none; }
#op-challenges .op-section-title strong { color: #182129; font-size: 36px; font-weight: 600; line-height: 1.3; }
#op-challenges .op-challenge-card { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: auto 1px auto; align-content: start; column-gap: 16px; padding: 28px; border-radius: 8px; background: #fff; box-shadow: none; color: #182129; }
#op-challenges .op-challenge-card::before, #op-challenges .op-challenge-card::after { display: none; }
#op-challenges .op-challenge-card h3 { height: auto; min-height: 0; margin: 0; padding-bottom: 0; text-align: left; font-size: 24px; line-height: 1.5; font-weight: 600; color: #182129; }
#op-challenges .op-challenge-card hr { visibility: hidden; display: block; grid-column: 1 / -1; margin: 0; width: 100%; height: 1px; border: 0; background: #dfe3e8; }
#op-challenges .op-challenge-card p { grid-column: 1 / -1; margin: 28px 0 0; color: #303942; font-size: 16px; line-height: 1.8; text-align: left; }
@media(max-width:1200px) {
  #op-challenges .op-wrap { width: calc(100% - 64px); }
}
@media(max-width:640px) {
  #op-challenges { padding: 120px 0; }
  #op-challenges .op-wrap { width: calc(100% - 40px); }
  #op-challenges .op-section-title strong { font-size: 36px; }
  #op-challenges .op-challenge-card { grid-template-rows: auto 1px auto; }
    #op-challenges .op-challenge-card p { margin-top: 24px; }
}

@media(max-width:640px) { #op-challenges .op-challenge-card { padding: 24px; } }

/* Exact spacing between the heading row and body copy. */
#op-challenges .op-challenge-card { grid-template-rows: auto auto; row-gap: 20px; }
#op-challenges .op-challenge-card hr { display: none; }
#op-challenges .op-challenge-card p { margin-top: 0; }

/* ===== Source: css/openpit-overview.css ===== */
/* Split overview follows the open-pit page's content and type scale. */
#op-overview { padding: 100px 0; background: #fff; }
#op-overview .op-overview-card { width: min(var(--site-safe-width), calc(100% - 192px)); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: 8px; overflow: hidden; background: #f4f6f8; }
.op-overview-photo { position: relative; min-height: 640px; }
.op-overview-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.op-overview-split-copy { display: flex; flex-direction: column; align-items: flex-start; padding: 48px; gap: 72px; }
.op-overview-content { margin-top: auto; }
#op-overview h2 { margin: 0 20px 48px; color: var(--blue); font-size: 36px; line-height: 1.3; font-weight: 700; text-align: center; }
#op-overview .op-overview-text { margin-top: 28px; color: #4b5667; font-size: 16px; line-height: 1.8; text-align: left; }
#op-overview .op-overview-text p { margin: 0; text-indent: 0; }
#op-overview .op-overview-text p + p { margin-top: 20px; }
@media (max-width: 1200px) {
  #op-overview .op-overview-card { width: calc(100% - 64px); }
  .op-overview-split-copy { padding: 36px; gap: 48px; }
}
@media (max-width: 800px) {
  #op-overview { padding: 64px 0; }
  #op-overview .op-overview-card { width: calc(100% - 40px); grid-template-columns: 1fr; }
  .op-overview-photo { min-height: 0; aspect-ratio: 4 / 3; }
  .op-overview-split-copy { padding: 28px 24px 32px; gap: 32px; }
  #op-overview h2 { font-size: 36px; margin-bottom: 32px; }
  #op-overview .op-overview-text { margin-top: 24px; }
}

/* ===== Source: css/openpit-value.css ===== */
#op-value { height: auto; padding: 100px 0; background: #fff; }
#op-value .op-wrap { width: min(var(--site-safe-width),calc(100% - 192px)); }
#op-value .op-section-title { display: block; text-align: center; }
#op-value .op-section-title span { display: none; }
#op-value .op-section-title strong { color: #182129; font-size: 44px; font-weight: 600; line-height: 1.3; }
#op-value .op-value-grid { display: flex; height: auto; gap: 40px; margin-top: 64px; overflow-x: auto; scrollbar-width: none; }
#op-value .op-value-grid::-webkit-scrollbar { display: none; }
#op-value .op-value-grid::after { content: ''; display: var(--value-spacer-display,none); flex: 0 0 var(--value-spacer-width,0px); }
#op-value .op-value-card { display: flex; flex-direction: column; justify-content: flex-start; align-items: stretch; flex: 0 0 calc((100% - 120px) / 3.15); gap: 0; height: auto; padding: 0; border: 1px solid #dfe3e8; border-radius: 8px; box-shadow: none; }
#op-value .op-value-image-frame { order: -1; flex: none; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 0; background: #f4f6f8; }
#op-value .op-value-media { position: static; width: 100%; height: 100%; object-fit: cover; transform: none; }
#op-value .op-value-content { flex: none; width: 100%; padding: 24px 20px 28px; text-align: center; }
#op-value .op-value-content-header { display: flex; flex-direction: row; justify-content: center; gap: 0; white-space: nowrap; }
#op-value .op-value-content h3 { order: 0; font-size: 24px; line-height: 1.4; font-weight: 400; color: #000; }
#op-value .op-value-content strong { font-size: 24px; line-height: 1.4; font-weight: 400; color: #000; }
#op-value .op-value-content p { margin: 12px 0 0; font-size: 16px; line-height: 1.8; color: #617088; }
.op-value-controls { display: flex; justify-content: flex-end; gap: 12px; margin-top: 32px; }
.op-value-controls[hidden] { display: none; }
.op-value-controls button { width: 64px; height: 36px; padding: 0; border: 1px solid #2868dd; border-radius: 999px; background: #fff; color: #2868dd; font-size: 28px; line-height: 1; cursor: pointer; }
.op-value-controls button:disabled { opacity: .3; cursor: default; }
.op-value-controls button:focus-visible, #op-value .op-value-grid:focus-visible { outline: 2px solid #2868dd; outline-offset: 3px; }
@media(max-width:1100px) { #op-value .op-wrap { width: calc(100% - 64px); } #op-value .op-value-card { flex-basis: calc((100% - 40px) / 2); } }
@media(max-width:640px) { #op-value { padding: 64px 0; } #op-value .op-wrap { width: calc(100% - 40px); } #op-value .op-section-title strong { font-size: 34px; } #op-value .op-value-grid { margin-top: 40px; } #op-value .op-value-card { flex-basis: 100%; } }

@media(max-width:1400px) { #op-value .op-value-content-header h3, #op-value .op-value-content-header strong { font-size: 20px; } }
@media(max-width:380px) { #op-value .op-value-content-header h3, #op-value .op-value-content-header strong { font-size: 18px; } }

.op-value-controls button { display: inline-flex; align-items: center; justify-content: center; }
.op-value-controls button svg { display: block; flex: none; }

/* Keep carousel navigation visible and aligned to the content's right edge. */
#op-value .op-value-controls { display: flex; width: 100%; justify-content: flex-end; align-items: center; gap: 12px; margin: 32px 0 0; }
#op-value .op-value-controls button { flex: 0 0 64px; height: 40px; visibility: visible; color: #536174; border-color: #b7bec7; background: #fff; }
#op-value .op-value-controls button:disabled { opacity: .45; }
#op-value .op-value-controls button:not(:disabled):hover { color: #005dbe; border-color: #005dbe; }

/* ===== Source: css/openpit-cta.css ===== */
/* Centered solution enquiry block. */
.openpit-page .op-more { padding: 0; background: #f4f6f8; color: #10191f; }
.openpit-page .op-more-cta { box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; align-items: center; height: 450px; flex: 0 0 450px; margin: 0; padding: 40px 24px; text-align: center; }
.openpit-page .op-more-cta h2 { margin: 0; font-size: 44px; line-height: 1.3; font-weight: 600; color: #10191f; }
.openpit-page .op-more-cta p { max-width: 900px; margin: 21px 0 37px; color: #617088; font-size: 16px; line-height: 1.8; }
.openpit-page .op-more-cta a { width: auto; min-width: 144px; height: 44px; padding: 0 24px; border-radius: 999px; background: #0b1319; color: #fff; font-size: 16px; }
.openpit-page .op-more-cta a:hover { background: #26333d; color: #fff; transform: none; box-shadow: none; }
.openpit-page .op-more-cta a:focus-visible { background: #26333d; color: #fff; outline: 2px solid #2868dd; outline-offset: 4px; transform: none; box-shadow: none; }
@media(max-width:640px) { .openpit-page .op-more-cta h2 { font-size: 34px; } }

.openpit-page .op-more { background: #000; color: #fff; }
.openpit-page main .op-more #op-more-title { color: #fff; }
.openpit-page .op-more-cta p { color: #c5cbd3; }
.openpit-page .op-more-cta a { background: #fff; color: #1a1a1a; }
.openpit-page .op-more-cta a:hover,
.openpit-page .op-more-cta a:focus-visible { background: #e7ebef; color: #1a1a1a; }

/* Match the home page copyright colors. */
.openpit-page .footer.compact-footer { background: #000; border-top: 1px solid #333; }
.openpit-page .compact-footer .copyright { background: #000; color: #a2afb9; }

/* ===== Source: css/openpit-cases.css ===== */
#op-cases { padding: 100px 0; background: #f4f6f8; }
#op-cases .op-wrap { width: min(var(--site-safe-width),calc(100% - 192px)); }
#op-cases h2 { margin: 0; color: #182129; text-align: center; font-size: 44px; font-weight: 600; line-height: 1.3; }
.op-client-list { display: grid; gap: 80px; margin-top: 64px; }
.op-client-row { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.op-client-image { overflow: hidden; border-radius: 8px; box-shadow: 0 18px 36px rgba(25,57,92,.12); }
.op-client-image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.op-client-heading { display: flex; align-items: center; gap: 20px; }
.op-client-heading img { width: 64px; height: 56px; object-fit: contain; }
.op-client-heading h3 { margin: 0; color: #182129; font-size: 28px; line-height: 1.4; font-weight: 600; }
.op-client-copy > p { margin: 24px 0 0; font-size: 16px; line-height: 1.8; color: #4b5667; }
.op-client-tags { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); width: 100%; gap: 8px; margin: 20px 0 32px; }
.op-client-tags span { display: flex; align-items: center; justify-content: center; min-width: 0; text-align: center; overflow-wrap: anywhere; padding: 6px 10px; border-radius: 8px; background: #e7edf5; color: #4b5667; font-size: 12px; line-height: 1.5; }
@media(max-width:1200px) { #op-cases .op-wrap { width: calc(100% - 64px); } .op-client-row { gap: 32px; }  }
@media(max-width:900px) { .op-client-row { grid-template-columns: 1fr; } .op-client-image img { aspect-ratio: 16 / 9; } }
@media(max-width:640px) { #op-cases { padding: 64px 0; } #op-cases .op-wrap { width: calc(100% - 40px); } #op-cases h2 { font-size: 34px; } .op-client-list { margin-top: 40px; gap: 56px; } .op-client-heading { gap: 12px; } .op-client-heading h3 { font-size: 24px; } .op-client-heading img { width: 48px; height: 48px; }    }

/* Two cases share one panel area, selected with pill tabs. */
.op-client-tabs { display: flex; width: fit-content; max-width: 100%; margin: 32px auto 0; padding: 6px; gap: 4px; border: 1px solid #dfe3e8; border-radius: 999px; background: #fff; }
.op-client-tabs button { border: 0; border-radius: 999px; background: transparent; color: #617088; padding: 14px 28px; font: inherit; font-size: 16px; line-height: 1.5; cursor: pointer; }
.op-client-tabs button[aria-selected="true"] { background: #0b1319; color: #fff; }
.op-client-tabs button:focus-visible { outline: 2px solid #2868dd; outline-offset: 2px; }
.op-client-row[hidden] { display: none; }
.op-client-row:focus-visible { outline: 2px solid #2868dd; outline-offset: 6px; }
.op-client-list { margin-top: 48px; }
@media(max-width:640px) { .op-client-tabs button { font-size: 14px; padding: 12px 14px; } .op-client-list { margin-top: 32px; } }

@media(min-width:1201px) { .op-client-row { grid-template-columns: minmax(0,calc((100% - 56px) * 11 / 21 + 100px)) minmax(0,1fr); } }

#op-cases .op-more-clients { margin-top: 64px; background: transparent; }
@media(max-width:640px) { #op-cases .op-more-clients { margin-top: 40px; } }

@media(min-width:901px) {
  .op-client-image { container-type: inline-size; }
  .op-client-image img { height: calc(75cqw - 100px); aspect-ratio: auto; }
}

/* Align the case introduction and results with the image edges. */
@media(min-width:901px) {
  .op-client-row { align-items: stretch; }
  .op-client-copy { display: flex; flex-direction: column; }
    .op-client-image img { min-height: 100%; }
}

#op-cases { padding-bottom: 120px; }

/* One white card frames the selected open-pit customer case. */
.op-cases-card .op-client-row { padding: 32px; background: #fff; border-radius: 8px; }
.op-cases-card .op-client-image { box-shadow: none; }
@media(max-width:640px) { .op-cases-card .op-client-row { padding: 20px; gap: 24px; } }

/* ===== Source: css/openpit-headings.css ===== */
/* Shared section heading treatment for the open-pit solution page. */
.openpit-page main :is(#op-challenge-title, #op-overview-title, #op-value-title, #op-cases-title, #op-more-title),
.openpit-page main :is(#op-challenge-title, #op-overview-title, #op-value-title, #op-cases-title, #op-more-title) strong {
  color: #1a1a1a;
  font-size: 36px;
  text-align: center;
}
.openpit-page main :is(#op-challenge-title, #op-overview-title, #op-value-title, #op-cases-title, #op-more-title) {
  width: 100%;
  justify-content: center;
  align-items: center;
}

/* ===== Source: css/solution-corners.css ===== */
/* Shared button and card corners across solution pages. */
.openpit-page :is(
  main button, .op-section-tab, .op-more-cta a,
  .op-challenge-card, .op-overview-card, .op-overview-panel,
  .op-overview-carousel, .op-mine-grid, 
  .op-value-card, .op-case-card, .op-more-card, .op-client-image,
  .op-client-tabs, .op-client-tags span, .op-case-tags span, .op-case-stat,
  .op-overview-eyebrow
) { border-radius: 6px !important; }

/* ===== Source: css/content-width.css ===== */
/* Shared content width for the five updated pages. */
body { --site-safe-width: 1360px; }

/* Home and About follow the solution page content grid and breakpoints. */
body.figma-home { --site-safe-width: 1300px; --site-gutter: 192px; }

body.about-site header.fh-header,
body.figma-home header.fh-header { --site-gutter: inherit; }
.about-site .about-page .container,
.about-site .fh-header .fh-header-inner{
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
  max-width: var(--site-safe-width);
  margin-inline: auto;
}
@media (max-width: 1200px) { body.figma-home { --site-gutter: 64px; }
}
@media (max-width: 640px) { body.figma-home { --site-gutter: 40px; }
}

.about-site .about-page .about-history-hero { width: 100%; margin-inline: 0; }

/* Homepage outer containers share one authoritative safe-width rule. */
body.figma-home .fh-header .fh-header-inner,
body.figma-home .fh-hero-copy,
body.figma-home main > section > .proto-wrap,
body.figma-home .proto-footer-main,
body.figma-home .proto-footer-nav,
body.figma-home .proto-footer-search {
  box-sizing: border-box;
  width: min(var(--site-safe-width), calc(100% - var(--site-gutter)));
  max-width: var(--site-safe-width);
  min-width: 0;
  margin-inline: auto;
}

/* ===== Source: css/underground-solution-reference.css ===== */
/* Underground content uses the shared open-pit solution layout. */
.underground-page #op-cases { padding-top: 70px; padding-bottom: 70px; }
.underground-page .ug-client-highlights li::marker { color: #005dbe; }
@media (min-width: 901px) {
  .underground-page #op-cases .op-client-image img { height: calc(75cqw - 170px); }
}
.underground-page .op-client-copy { display: flex; flex-direction: column; }
.underground-page .op-client-copy .op-client-tags { order: 1; margin: auto 0 0; padding-top: 24px; }
.underground-page .op-client-tags span { background: #F4F6F8; }
.underground-page .op-client-copy > p,
.underground-page .op-client-copy .ug-client-highlights { margin-top: 14px; }
.underground-page .op-client-tabs button[aria-selected="true"] { background: #005dbe; }
.underground-page #op-overview { padding-bottom: 0; }
.underground-page .ug-client-highlights { display: grid; gap: 5px; margin: 0; padding-left: 22px; list-style: disc; color: #4b5667; font-size: 16px; font-weight: 400; line-height: 1.8; }
.underground-page .ug-client-highlights li { display: list-item; padding-left: 2px; }
.underground-page .op-hero::after { background: linear-gradient(to right, rgba(8, 15, 22, 1) 0%, rgba(8, 15, 22, 0) 100%); }
.underground-page main { overflow: visible; }
.underground-page .op-section-tab--horizontal,
.underground-page .op-section-tab--horizontal:is(:hover, :focus-within) { position: sticky; top: 64px; left: auto; z-index: 75; display: flex; flex-direction: row; justify-content: center; align-items: stretch; width: 100%; min-height: 64px; box-sizing: border-box; padding: 0; border: 0; border-bottom: 1px solid rgba(230, 230, 230, .65); border-radius: 0; background: rgba(255, 255, 255, .72); -webkit-backdrop-filter: blur(20px) saturate(1.2); backdrop-filter: blur(20px) saturate(1.2); box-shadow: none; overflow-x: auto; transition: none; }
.underground-page .op-section-tab--horizontal::before,
.underground-page .op-section-tab--horizontal::after { display: none; }
.underground-page .op-section-tab--horizontal a { display: flex; flex: 0 0 106px; justify-content: center; align-items: center; min-height: 63px; box-sizing: border-box; margin: 0; padding: 0 16px; border: 0; color: #333; background: transparent; font-size: 14px; font-weight: 400; }
.underground-page .op-section-tab--horizontal a::before { top: auto; bottom: 0; left: 50%; width: 64px; height: 2px; transform: translateX(-50%); }
.underground-page .op-section-tab--horizontal a:is(:hover, :focus-visible, .is-active) { color: #005dbe; font-weight: 400; }
.underground-page .op-section-tab--horizontal a:focus-visible { outline: 2px solid #005dbe; outline-offset: -4px; }
@media (max-width: 760px) {
  .underground-page .op-section-tab--horizontal:is(nav, :hover, :focus-within) { justify-content: flex-start; }
  .underground-page .op-section-tab--horizontal a { flex-basis: 120px; }
}
/* Desktop hero copy position. */
@media (min-width: 801px) {
 .underground-page .op-hero-copy { top: 549px; bottom: auto; }
}
.underground-page .footer.compact-footer,
.underground-page .compact-footer .copyright { background: #0C0D0D; }
.underground-page .op-more { background: #b7d6ff url('../assets/underground-enquiry-blue-bg.png') center / cover no-repeat; }
.underground-page main .op-more #op-more-title { color: #182b46; }
.underground-page .op-more-cta p { color: #3c526e; }
.underground-page .footer.compact-footer { background: #f4f5f7; border-top: 1px solid #dce1e5; }
.underground-page .compact-footer .copyright { background: #f4f5f7; color: #59636d; }
.underground-page #op-challenges .challenge-slide { opacity: 0; }
.underground-page #op-challenges .challenge-slide.is-slide-visible { animation: underground-challenge-slide 800ms cubic-bezier(.22,1,.36,1) var(--challenge-slide-delay,0ms) both; }
.underground-page #op-challenges .challenge-slide:focus-within { opacity: 1; animation: none; }
@keyframes underground-challenge-slide {
  from { opacity: 0; translate: 0 48px; }
  to { opacity: 1; translate: 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .underground-page #op-challenges .challenge-slide { opacity: 1; translate: none; animation: none; }
}
.underground-page #op-overview .op-overview-card { border-radius: 8px !important; }
@media (min-width: 1201px) {
 .underground-page #op-challenges .op-challenge-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.underground-page #op-challenges .op-challenge-card { min-height: 0; row-gap: 10px; border-radius: 8px !important; }
.underground-page #op-challenges .op-challenge-card h3 { font-size: 20px; }
.underground-page #op-challenges .op-challenge-icon-pair { width: 48px; height: 48px; flex-basis: 48px; }
.underground-page #op-challenges .op-challenge-icon { width: 48px; height: 48px; }
.underground-page #op-challenges .op-challenge-heading { flex-direction: column; align-items: flex-start; text-align: left; gap: 16px; }
.underground-page #op-overview .op-overview-split-copy { gap: 32px; }
.underground-page #op-overview .op-overview-content { margin-top: 0; display: flex; flex: 1; width: 100%; }
.underground-page #op-overview .op-overview-text { margin-top: 0; display: flex; flex-direction: column; flex: 1; }
.underground-page #op-overview .op-overview-text > p { padding-top: 0; }
.underground-page #op-overview .op-overview-text :is(p, li, strong) { font-size: 14px; color: #334155; }
.underground-page #op-overview .op-overview-text > p,
.underground-page #op-overview .op-overview-text > p strong { font-weight: 400; }
.underground-page #op-overview h3 { margin: auto 0 20px; color: #182129; font-size: 24px; font-weight: 400; }
.underground-page .op-composition { display: grid; gap: 9px; list-style: none; padding: 0; margin: 20px 0 0; }
.underground-page .op-composition li { position: relative; padding-left: 16px; color: #4b5667; font-size: 14px; line-height: 1.8; }
.underground-page .op-composition li::before { content: ''; position: absolute; left: 0; top: .9em; width: 6px; height: 6px; border-radius: 50%; background: #1d5dbf; transform: translateY(-50%); }
.underground-page .op-composition strong { color: #182129; }
.underground-page #op-value .op-value-content { padding-left: 25px; padding-right: 25px; }
.underground-page #op-value .op-value-content-header { white-space: normal; }
.underground-page #op-value .op-value-card { min-height: 0; }
.underground-page #op-value .op-value-image-frame { width: calc(100% - 40px); margin: 20px 20px 0; border-radius: 6px; overflow: hidden; }
.underground-page #op-value .op-value-content h3 { margin: 0; }
.underground-page #op-value .op-value-content p { color: #2e3543; font-size: 14px; }
.underground-page #op-value .op-value-content-header :is(h3, strong) { font-size: 22px; }
.underground-page #op-value { padding: 90px 0; background: #FAFAFA; }
.underground-page #op-value .op-wrap { width: min(1220px, calc(100% - 80px)); }
.underground-page #op-value .op-section-title strong { font-size: 40px; font-weight: 700; color: #111b26; letter-spacing: .5em; }
.underground-page #op-value .ug-value-lead { margin: 18px 0 0; color: #637083; font-size: 16px; line-height: 1.7; text-align: center; }
.underground-page #op-value .ug-value-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 64px; }
.underground-page #op-value .ug-value-step { position: relative; display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 64px 24px 24px; border: 1px solid #dfe3e8; background: #fff; text-align: center; }
.underground-page #op-value .ug-value-step-label { position: absolute; top: 0; left: 50%; min-width: 82px; padding: 11px 16px; transform: translateX(-50%); background: #0d151e; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .5px; }
.underground-page #op-value .ug-value-step h3 { margin: 0; color: #17212e; font-size: 21px; font-weight: 700; line-height: 1.45; }
.underground-page #op-value .ug-value-step p { min-height: 54px; margin: 12px 0 22px; color: #637083; font-size: 14px; line-height: 1.9; }
.underground-page #op-value .ug-value-step img { display: block; width: 100%; aspect-ratio: 16 / 9; margin-top: auto; object-fit: cover; }
@media (max-width: 900px) {
  .underground-page #op-value .op-wrap { width: calc(100% - 64px); }
  .underground-page #op-value .ug-value-steps { grid-template-columns: 1fr; gap: 54px; max-width: 620px; margin-right: auto; margin-left: auto; }
  .underground-page #op-value .ug-value-step p { min-height: 0; }
}
@media (max-width: 640px) {
  .underground-page #op-value { padding: 64px 0 72px; }
  .underground-page #op-value .op-wrap { width: calc(100% - 40px); }
  .underground-page #op-value .op-section-title strong { font-size: 34px; }
  .underground-page #op-value .ug-value-steps { margin-top: 52px; }
  .underground-page #op-value .ug-value-step { padding: 60px 18px 18px; }
}
.underground-page .op-client-metric strong { font-size: 26px; }
.underground-page .ug-more-clients { padding: 0 0 100px; background: #f4f6f8; }
.underground-page .ug-more-clients .op-more-clients { margin: 0; background: transparent; }
.underground-page .ug-more-clients .op-more-viewport { width: min(var(--site-safe-width),calc(100% - 192px)); }
.underground-page .ug-more-clients .ug-client-track { width: 100%; animation: none; transform: none; }
.underground-page .ug-more-clients .ug-client-group { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; gap: 40px; }
.underground-page .ug-more-clients .op-more-card { width: auto; min-width: 0; background: #fff; border-radius: 8px; }
@media(max-width:1200px) { .underground-page .ug-more-clients .op-more-viewport { width: calc(100% - 64px); } }
@media(max-width:640px) {
 .underground-page .ug-more-clients { padding-bottom: 64px; }
 .underground-page .ug-more-clients .op-more-viewport { width: calc(100% - 40px); }
 .underground-page .ug-more-clients .ug-client-group { grid-template-columns: 1fr; gap: 20px; }
 .underground-page .op-client-metric strong { font-size: 22px; }
}

.underground-page .ug-client-group { padding: 0; }

.underground-page #op-challenges .op-challenge-grid { gap: 30px; }

/* Uniform spacing between module titles and their first content block. */
.underground-page main :is(#op-challenge-title, #op-overview-title, #op-value-title, #op-cases-title, #op-more-title) { margin-bottom: 0; }
.underground-page main :is(#op-challenge-title, #op-overview-title, #op-value-title, #op-cases-title, #op-more-title) + * { margin-top: 50px; }


.underground-page main #op-cases-title + .op-client-tabs { margin-top: 40px; }

/* 章节标题字距加宽 0.5em，与“方案概述”保持一致 */
.underground-page #op-cases-title,
.underground-page #op-coverage-title strong { letter-spacing: .5em; }

.underground-page #op-challenges {
  padding: 70px 0 0;
  background: #FAFAFA;
}
.underground-page #op-challenges .op-wrap { width: min(1300px, calc(100% - 80px)); }
.underground-page #op-challenges .op-section-title { display: block; text-align: center; }
.underground-page #op-challenges .op-section-title strong { color: #132841; font-size: 40px; font-weight: 700; line-height: 1.35; }
.underground-page #op-challenges .ug-challenge-layout { display: grid; grid-template-columns: minmax(0, 1.36fr) minmax(360px, 1fr); gap: 92px; align-items: start; margin-top: 46px; }
.underground-page #op-challenges .ug-challenge-intro { padding-top: 12px; }
.underground-page #op-challenges .ug-challenge-intro h3 { margin: 0 0 24px; color: #132841; font-size: 28px; font-weight: 700; line-height: 1.55; }
.underground-page #op-challenges .ug-challenge-intro p { max-width: 650px; margin: 0; color: #5d7187; font-size: 16px; line-height: 2.05; }
.underground-page #op-challenges .ug-challenge-list::before { content: '核心难点'; display: block; margin-bottom: 22px; color: #132841; font-size: 20px; font-weight: 700; }
.underground-page #op-challenges .ug-challenge-list { display: grid; gap: 14px; }
.underground-page #op-challenges .ug-challenge-item { display: flex; align-items: center; gap: 16px; min-height: 72px; padding: 13px 22px; border: 1px solid rgba(255,255,255,.82); border-radius: 999px; background: rgba(255,255,255,.82); box-shadow: 0 10px 30px rgba(34, 86, 137, .04); backdrop-filter: blur(8px); }
.underground-page #op-challenges .ug-challenge-item > span { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: #0669c8; color: #fff; }
.underground-page #op-challenges .ug-challenge-item svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.underground-page #op-challenges .ug-challenge-item strong { color: #263c55; font-size: 15px; font-weight: 600; line-height: 1.55; }
.underground-page #op-challenges .ug-overview-title { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.underground-page main #op-challenge-title + .ug-overview-story { margin-top: 0; }
.underground-page #op-challenges .ug-overview-story { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; min-height: 0; align-items: start; padding: 20px 0 30px; }
.underground-page #op-challenges .ug-overview-message h3 { max-width: none; margin: 0 auto; color: #090e15; font-size: 36px; font-weight: 700; line-height: 1.3; letter-spacing: normal; text-align: center; }
.underground-page #op-challenges .ug-overview-message h3 span { color: #2468e8; background: linear-gradient(90deg, #4c8cff, #3530c8); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.underground-page #op-challenges .ug-overview-summary { display: block; max-width: none; margin-top: 30px; }
.underground-page #op-challenges .ug-overview-spark { display: none; }
.underground-page #op-challenges .ug-overview-summary p { max-width: 1300px; margin: 0 auto; color: #333c49; font-size: 16px; font-weight: 400; line-height: 2; }
.underground-page #op-challenges .ug-overview-summary strong { font-weight: 400; }
.underground-page #op-challenges .ug-overview-solutions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; width: 100%; align-self: auto; padding-bottom: 0; transform: none; }
.underground-page #op-challenges .ug-overview-solutions > h3 { grid-column: 1 / -1; margin: 0 0 8px; color: #101820; font-size: 22px; font-weight: 500; line-height: 1.45; text-align: center; }
.underground-page #op-challenges .ug-solution-proof { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; align-items: center; min-height: 82px; margin-top: 0; padding: 12px 16px; border: 1px solid rgba(255,255,255,.8); border-radius: 8px; background: rgba(255,255,255,.78); box-shadow: none; backdrop-filter: blur(10px); }
.underground-page #op-challenges .ug-solution-proof > span { display: grid; width: 30px; height: 30px; place-items: center; background: transparent; color: var(--blue); font-size: 15px; }
.underground-page #op-challenges .ug-solution-proof p { margin: 0; color: #252e39; font-size: 15px; line-height: 1.55; }
.underground-page #op-challenges .ug-solution-proof strong { color: #111922; font-weight: 400; }
.underground-page #op-challenges .ug-overview-more { display: inline-flex; gap: 10px; align-items: center; margin-top: 24px; color: #1f2b38; font-size: 15px; font-weight: 600; }
.underground-page #op-challenges .ug-overview-more span { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid currentColor; border-radius: 50%; line-height: 1; }
.underground-page #op-challenges .ug-overview-more:hover { color: #005dbe; }
@media (max-width: 900px) {
  .underground-page #op-challenges .op-wrap { width: calc(100% - 64px); }
  .underground-page #op-challenges .ug-challenge-layout { grid-template-columns: 1fr; gap: 44px; }
  .underground-page #op-challenges .ug-overview-story { grid-template-columns: 1fr; gap: 30px; min-height: 0; }
  .underground-page #op-challenges .ug-overview-solutions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .underground-page #op-challenges { padding: 64px 0 0; }
  .underground-page #op-challenges .op-wrap { width: calc(100% - 40px); }
  .underground-page #op-challenges .op-section-title strong { font-size: 32px; }
  .underground-page #op-challenges .ug-challenge-layout { margin-top: 36px; }
  .underground-page #op-challenges .ug-challenge-intro h3 { font-size: 23px; }
  .underground-page #op-challenges .ug-challenge-intro p { font-size: 15px; }
  .underground-page #op-challenges .ug-challenge-item { min-height: 68px; padding: 12px 16px; border-radius: 18px; }
  .underground-page #op-challenges .ug-overview-story { gap: 30px; padding-top: 8px; }
  .underground-page #op-challenges .ug-overview-message h3 { font-size: 36px; }
  .underground-page #op-challenges .ug-overview-summary { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; margin-top: 30px; }
  .underground-page #op-challenges .ug-overview-spark { width: 40px; height: 40px; }
  .underground-page #op-challenges .ug-overview-summary p { font-size: 16px; }
  .underground-page #op-challenges .ug-overview-solutions > h3 { font-size: 22px; }
  .underground-page #op-challenges .ug-solution-proof { grid-template-columns: minmax(0, 1fr); min-height: 56px; padding: 8px 16px; border-radius: 8px; }
  .underground-page #op-challenges .ug-solution-proof > span { width: 29px; height: 29px; }
  .underground-page #op-challenges .ug-overview-solutions { grid-template-columns: minmax(0, 1fr); }
}



/* Appointment button hover and keyboard feedback. */
.underground-page .op-more-cta a { background: #005dbe; color: #fff; transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; }
@media (hover: hover) {
  .underground-page .op-more-cta a:hover { background: #005dbe; color: #fff; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0, 93, 190, .3); }
}
.underground-page .op-more-cta a:focus-visible { background: #005dbe; color: #fff; outline: 2px solid #70b7ff; outline-offset: 4px; }
.underground-page .op-more-cta a:active { transform: translateY(0); box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
  .underground-page .op-more-cta a { transition: none; }
  .underground-page .op-more-cta a:hover { transform: none; }
}

.underground-page main #op-more-title + p { margin-top: 25px; }
.underground-page .op-more-cta { height: 300px; flex-basis: 300px; }


/* Match the overview heading typography. */

/* Give the composition text more room while preserving responsive wrapping. */
@media (min-width: 1201px) {
  .underground-page #op-overview .op-overview-split-copy { padding-inline: 36px; }
}

/* Match the hero description width to the referenced title-width box. */
.underground-page .op-hero-copy p { width: min(576px, 100%); }
.underground-page #op-overview .ug-overview-card { display: grid; grid-template-columns: minmax(320px, .82fr) minmax(520px, 1.18fr); gap: 96px; min-height: 680px; padding: 72px 64px; background: #f7f7f7; border-radius: 48px !important; overflow: hidden; }
.underground-page #op-overview .ug-overview-description h3 { margin: 0 0 22px; font-size: 24px; font-weight: 500; color: #111; }
.underground-page #op-overview .ug-overview-preview .op-overview-photo { width: 100%; height: 300px; min-height: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 26px rgba(23, 36, 53, .14); }
.underground-page #op-overview .ug-overview-preview .op-overview-photo img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1000px) { .underground-page #op-overview .ug-overview-card { grid-template-columns: 1fr; gap: 40px; min-height: 0; padding: 40px; }   }
@media (max-width: 600px) { .underground-page #op-overview .ug-overview-card { padding: 24px 18px; border-radius: 28px !important; }    .underground-page #op-overview .ug-overview-preview .op-overview-photo { height: 220px; }   }

/* Keep the enlarged star and text exactly 8px apart at every breakpoint. */
.underground-page #op-challenges .ug-solution-proof { grid-template-columns: minmax(0, 1fr); gap: 0; }
.underground-page #op-challenges .ug-solution-proof > span { width: 24px; height: 30px; font-size: 24px; line-height: 1; }
/* Keep the underground solution overview copy aligned to the 1300px content width. */
.underground-page #op-challenges .ug-overview-summary p { max-width: 1300px; text-align: center; }

.underground-page main #op-challenges > .ug-section-overview-title { margin: 0; color: #090e15; font-size: 36px; font-weight: 700; line-height: 1.3; text-align: center; }

.underground-page #op-challenges .ug-overview-summary .ug-applicability-summary { margin-top: 16px; }

/* ===== Source: css/underground-scenarios-figma.css ===== */
/* Figma 205:3218 — classic business scenarios. */
.underground-page #op-overview { padding-top: 70px; padding-bottom: 70px; background: #FAFAFA; }
.underground-page main #op-overview > h2 { margin: 0 20px 70px; color: #1a1a1a; font-size: 22px !important; font-weight: 500; line-height: 1.45; }
.underground-page #op-overview .op-overview-card.ug-figma-scenes { position: relative; display: block; box-sizing: border-box; width: min(1300px, calc(100% - 64px)); max-width: 1300px; height: 670px; min-height: 0; padding: 0; border-radius: 14px !important; overflow: hidden; background: #fff; }
.ug-scene-navigation { position: absolute; left: 44px; top: 52px; width: 340px; display: flex; flex-direction: column; gap: 8px; }
.ug-scene-navigation button { box-sizing: border-box; display: flex; align-items: center; width: 340px; height: 50px; padding: 11px 24px; border: 0; border-radius: 0; background: transparent; color: #30343a; font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif; font-size: 18px; font-weight: 400; line-height: 28px; text-align: left; cursor: pointer; }
.ug-scene-navigation button { position: relative; transition: color .2s ease; }
.ug-scene-navigation button::before { content: ''; position: absolute; left: 0; top: 50%; width: 4px; height: 30px; border-radius: 2px; background: #005dbe; transform: translateY(-50%); opacity: 0; }
.ug-scene-navigation button[aria-selected="true"] { background: transparent; color: #005dbe; font-weight: 600; }
.ug-scene-navigation button[aria-selected="true"]::before { opacity: 1; }
.ug-scene-navigation button:hover { color: #005dbe; }
.ug-scene-preview { box-sizing: border-box; position: absolute; left: 518px; top: 52px; width: 646px; height: 526px; padding: 24px 32px 26px; border-radius: 14px; background: #f1f1f1; box-shadow: 0 24px 60px rgba(28,35,45,.05); }
.ug-scene-preview::before, .ug-scene-preview::after { content: ''; position: absolute; top: 60px; width: 92px; height: 406px; border-radius: 12px; pointer-events: none; }
.ug-scene-preview::before { right: calc(100% + 23px); background: linear-gradient(to left, #f1f1f1, rgba(241,241,241,0) 83.636%); }
.ug-scene-preview::after { left: calc(100% + 23px); background: linear-gradient(to right, #f1f1f1, rgba(241,241,241,0) 83.636%); }
.ug-scene-image { position: relative; width: 100%; height: 300px; border-radius: 12px; overflow: hidden; box-shadow: none; }
.ug-scene-image img { display: block; width: 100%; height: 100%; max-width: none; margin: 0; object-fit: cover; }
.underground-page #op-overview .ug-scene-description { width: 100%; margin: 30px 0 0; padding: 0; color: #000; font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif; font-size: 16px; font-weight: 400; line-height: 26px; text-indent: 0; }
.ug-scene-dots { position: absolute; top: 630px; left: 50%; transform: translateX(-50%); display: flex; gap: 14px; }
.ug-scene-dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 6px; background: #d9d9d9; cursor: pointer; }
.ug-scene-dots button[aria-current="true"] { background: #005dbe; }
.ug-scene-navigation button:focus-visible, .ug-scene-dots button:focus-visible { outline: 2px solid #005dbe; outline-offset: 4px; }
@media (max-width: 1250px) {
 .ug-scene-navigation { left: 24px; width: 30%; }
 .ug-scene-navigation button { width: 100%; font-size: 18px; padding-inline: 16px; }
 .ug-scene-preview { left: 38%; width: 58%; padding-inline: 24px; }
 .ug-scene-preview::before, .ug-scene-preview::after { display: none; }
}
@media (max-width: 760px) {
 .underground-page #op-overview .op-overview-card.ug-figma-scenes { width: calc(100% - 32px); height: auto; min-height: 0; padding: 0 0 36px; overflow: visible; }
 .ug-scene-navigation { position: static; width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-bottom: 24px; }
 .ug-scene-navigation button { height: auto; min-height: 54px; padding: 12px; font-size: 18px; line-height: 28px; }
 .ug-scene-preview { position: relative; left: auto; top: auto; width: 100%; height: auto; min-height: 440px; padding: 20px; }
 .ug-scene-image { height: auto; aspect-ratio: 582.25 / 300; }
 .ug-scene-image img { width: 100%; height: 100%; margin: 0; }
 .underground-page #op-overview .ug-scene-description { font-size: 16px; line-height: 26px; }
 .ug-scene-dots { position: static; transform: none; justify-content: center; margin-top: 30px; }
}

/* Simplify the underground scene preview decoration. */
.underground-page #op-overview .ug-scene-preview { box-shadow: none; }
.underground-page #op-overview .ug-scene-preview::before,
.underground-page #op-overview .ug-scene-preview::after,
.underground-page #op-overview .ug-scene-dots { display: none; }

/* Let the scene panel end after its description without excess blank space. */
.underground-page #op-overview .ug-scene-preview { height: auto; min-height: 0; background: transparent; }

/* Enlarge the scene artwork while keeping it within the content container. */
@media (min-width: 761px) {
  .underground-page #op-overview .ug-scene-preview {
    left: 36%;
    width: 62%;
    padding-inline: 16px;
  }
  .underground-page #op-overview .ug-scene-image {
    height: auto;
    aspect-ratio: 582.25 / 300;
  }
}

/* Give the scene content more breathing room at both outer edges. */
@media (min-width: 1251px) {
  .underground-page #op-overview .ug-scene-navigation { left: 68px; }
  .underground-page #op-overview .ug-scene-preview { width: calc(64% - 68px); }
}
@media (min-width: 761px) and (max-width: 1250px) {
  .underground-page #op-overview .ug-scene-navigation { left: 40px; }
  .underground-page #op-overview .ug-scene-preview { width: calc(64% - 40px); }
}

/* Soft elevation for the scene image only. */
.underground-page #op-overview .ug-scene-image { box-shadow: 0 12px 32px rgba(28, 45, 72, .14), 0 2px 8px rgba(28, 45, 72, .06); }

/* Consistent widescreen ratio for underground scene images. */
.underground-page #op-overview .ug-scene-image { height: auto; aspect-ratio: 16 / 9; }

/* Keep exactly 50px above and below the scene content. */
@media (min-width: 761px) {
  .underground-page #op-overview .op-overview-card.ug-figma-scenes {
    display: grid;
    grid-template-columns: minmax(0, 30fr) minmax(0, 64fr);
    column-gap: 6%;
    align-items: start;
    height: auto;
    padding: 50px 68px;
  }
  .underground-page #op-overview .ug-scene-navigation {
    position: static;
    width: 100%;
  }
  .underground-page #op-overview .ug-scene-navigation button { width: 100%; }
  .underground-page #op-overview .ug-scene-preview {
    position: static;
    width: 100%;
    padding: 0;
  }
}
@media (min-width: 761px) and (max-width: 1250px) {
  .underground-page #op-overview .op-overview-card.ug-figma-scenes { padding-inline: 40px; }
}
@media (max-width: 760px) {
  .underground-page #op-overview .op-overview-card.ug-figma-scenes { padding-block: 50px; }
}

/* Stable scene card heights across all tab selections. */
@media (min-width: 761px) {
  .underground-page #op-overview .op-overview-card.ug-figma-scenes { height: 600px; }
  .underground-page #op-overview .ug-scene-preview {
    height: 500px;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .underground-page #op-overview .ug-scene-image { flex: none; }
  .underground-page #op-overview .ug-scene-description {
    flex: 1;
    min-height: 0;
    overflow-y: visible;
  }
}

/* Center scene captions under the preview image. */
.underground-page #op-overview .ug-scene-description { text-align: center; }

/* Overview title and composition card spacing. */
.underground-page main #op-challenges > #op-overview { margin-top: 0; padding-top: 40px; }
.underground-page main #op-overview > #op-overview-title { margin-bottom: 40px; }
.underground-page main #op-overview > #op-overview-title + .op-overview-card { margin-top: 0; }

/* Space between the composition card and business loop heading. */
.underground-page main #op-challenges > #op-overview { padding-bottom: 70px; }
.underground-page #op-challenges > #op-overview + .op-wrap .ug-overview-story { padding-top: 0; }
.underground-page #op-challenges > #op-overview + .op-wrap .ug-overview-summary { margin-top: 0; }

/* Keep overview copy spacing explicit without stacking existing spacing. */
.underground-page main #op-challenges > .ug-section-overview-title + .op-wrap .ug-overview-story { padding-top: 40px; padding-bottom: 0; }
.underground-page main #op-challenges > .ug-section-overview-title + .op-wrap .ug-overview-summary { margin-top: 0; }
.underground-page main #op-challenges > #op-overview { padding-top: 50px; }

/* The story padding supplies the full heading-to-copy gap. */
.underground-page main #op-challenges > #op-challenge-title + .op-wrap { margin-top: 0; }

/* ===== Source: css/hero-navigation.css ===== */
body.hero-navigation .home-filter-defs { position: absolute; pointer-events: none; }
body.hero-navigation .fh-header { --site-gutter: 72px; font-family: "Microsoft YaHei", "PingFang SC", "Segoe UI", Arial, sans-serif; background: rgba(255,255,255,.72) !important; color: #1a1a1a; border-bottom: 1px solid rgba(230,230,230,.65); box-shadow: none; transition: background .3s,color .3s; }
body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) { background: rgba(12,13,13,.4) !important; color: #fff; border-bottom-color: #ffffff4d; }
body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-logo img { filter: url(#shared-hero-logo-white); }
body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-nav, body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-nav a { color: #fff; }
body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-search input { color: #fff; background: transparent; border-color: #ffffff45; }
body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-search input::placeholder { color: #ffffff80; }
body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-language-trigger { color: #fff; background: transparent; box-shadow: inset 0 0 0 1px #ffffff80; }
body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-mobile-toggle { color: #fff; }
body.hero-navigation .fh-header.is-hero-top:not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-nav a:is(:hover,:focus-visible,.active-page)::after { background: #fff; }

body.hero-navigation .fh-header { position: fixed; top: 0; left: 0; right: 0; }
body.hero-navigation .fh-header .fh-logo img { scale: .792; transform-origin: left center; }

/* Match the homepage header grid at every breakpoint. */
body.hero-navigation .fh-header .fh-header-inner {
  width: min(1360px, calc(100% - 192px));
  max-width: 1360px;
  margin-inline: auto;
}
body.hero-navigation .fh-header :is(a, button, input, [tabindex]):focus-visible {
  outline: 2px solid #65b9ed;
  outline-offset: 5px;
}
@media (max-width: 1200px) {
  body.hero-navigation .fh-header .fh-header-inner { width: calc(100% - 64px); }
}
@media (max-width: 640px) {
  body.hero-navigation .fh-header .fh-header-inner { width: calc(100% - 40px); }
}

body.hero-navigation .fh-header .fh-nav,
body.hero-navigation .fh-header .fh-nav > a { color: #1a1a1a; }

/* ===== Source: css/underground-reference-hero-height.css ===== */
/* Occupy 80% of the viewport, including the overlaid header. */
.underground-page .op-hero {
  height: 80vh;
  min-height: 0;
  max-height: none;
}
@supports (height: 100svh) {
  .underground-page .op-hero { height: 80svh; }
}

/* Reuse the homepage mask: a 50% black veil under a blue glow rising from the bottom 45%. */
.underground-page .op-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  pointer-events: none;
  background:
    linear-gradient(to top, rgba(29, 93, 191, .7) 0%, rgba(29, 93, 191, 0) 100%) bottom / 100% 45% no-repeat,
    rgba(0, 0, 0, .5);
}

/* Product and About banners occupy 80% of the viewport. */
.digital-software-page .geo-hero{
  height: 80vh;
  min-height: 0;
  max-height: none;
}

/* The homepage banner fills the whole first screen; the fixed header sits on top of it. */
.figma-home .fh-hero {
  height: 100vh;
  min-height: 0;
  max-height: none;
}
/* svh keeps the banner exactly one visible screen tall on mobile, where the address bar changes the viewport. */
@supports (height: 100svh) {
  .figma-home .fh-hero { height: 100svh; }
}

/* Align each banner's title and description group 70px above its bottom. */
.figma-home .fh-hero-copy,
.underground-page .op-hero-copy{
  top: auto;
  bottom: 70px;
}

/* Keep the underground hero copy in the same position as the homepage copy. */
.figma-home .fh-hero-copy,
.underground-page .op-hero-copy {
  top: 50%;
  right: 0;
  bottom: auto;
  left: 0;
  transform: translateY(-50%);
}
@media (min-width: 801px) {
  .figma-home .fh-hero-copy,
  .underground-page .op-hero-copy { transform: translateY(calc(-50% + 200px)); }
}

/* Match the homepage hero typography exactly. */
.underground-page .op-hero h1 {
  margin: 0;
  font-size: 48px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
}
.underground-page .op-hero-copy p {
  margin: 24px 0 0;
  font-size: 16px;
  line-height: 1.8;
}

/* Align the underground banner copy with the shared header. */
.underground-page .op-hero-copy { width: min(1360px, calc(100% - var(--site-gutter))); margin-inline: auto; }

/* Align the underground header and hero with the challenge content below. */
body.underground-page .fh-header .fh-header-inner,
.underground-page .op-hero-copy {
  width: min(var(--site-safe-width), calc(100% - 192px));
  margin-inline: auto;
}
@media (max-width: 1200px) {
  body.underground-page .fh-header .fh-header-inner,
  .underground-page .op-hero-copy { width: calc(100% - 64px); }
}
@media (max-width: 640px) {
  body.underground-page .fh-header .fh-header-inner,
  .underground-page .op-hero-copy { width: calc(100% - 40px); }
}

@media (max-width: 800px) {
  .underground-page .op-hero-copy { top: auto; bottom: 52px; transform: none; }
  .underground-page .op-hero h1 { font-size: clamp(24px, 4.7vw, 38px); }
  .underground-page .op-hero-copy p { margin-top: 0; font-size: 14px; line-height: 1.7; }
}
@media (max-height: 780px) and (min-width: 801px) {
  .underground-page .op-hero-copy { top: auto; bottom: 46px; transform: none; }
  .underground-page .op-hero h1 { font-size: 40px; line-height: 1.3; }
  .underground-page .op-hero-copy p { margin-top: 14px; font-size: 14px; line-height: 1.8; }
}

/* About banner typography matches the solution banner. */

/* Digital software banner copy follows the underground solution typography and placement. */

/* Shift the underground hero title and description upward together. */
.underground-page .op-hero-copy { translate: 0 -30px; }

/* ===== Source: css/underground-challenges.css ===== */
.underground-page .ug-operating-challenges { padding: 70px 0; background: #fff; }
.underground-page .ug-operating-challenges h2 { margin: 0 0 58px; text-align: center; color: #20252b; font-size: 36px; font-weight: 700; line-height: 1.4; letter-spacing: .5em; }
.underground-page .ug-operating-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 24px; row-gap: 48px; }
.underground-page .ug-operating-grid article { text-align: center; }
.underground-page .ug-operating-grid img { display: block; width: 58px; height: 58px; margin: 0 auto 24px; }
.underground-page .ug-operating-grid h3 { max-width: 280px; margin: 0 auto; color: #30343a; font-size: 18px; font-weight: 600; line-height: 1.65; }
@media (max-width: 900px) {
  .underground-page .ug-operating-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .underground-page .ug-operating-challenges { padding: 48px 0; }
  .underground-page .ug-operating-challenges h2 { font-size: 28px; margin-bottom: 32px; }
  .underground-page .ug-operating-grid { gap: 32px 16px; }
  .underground-page .ug-operating-grid img { margin-bottom: 16px; }
  .underground-page .ug-operating-grid h3 { font-size: 15px; }
}

/* Supporting copy for the four operating challenges. */
.underground-page .ug-operating-grid p { max-width: 280px; margin: 14px auto 0; color: #667180; font-size: 14px; font-weight: 400; line-height: 1.8; text-align: center; }

/* ===== Source: css/underground-value-layout.css ===== */
/* Open three-column value layout within the 1300px content container. */
.underground-page #op-value {
  height: auto;
  padding: 70px 0 0;
  background: #fff;
}
.underground-page #op-underground { padding-bottom: 0; }
.underground-page #op-cases { padding-top: 70px; }
body.underground-page main #op-value > .op-wrap {
  box-sizing: border-box;
  width: min(1300px, calc(100% - var(--site-gutter, 64px)));
  max-width: 1300px;
  min-width: 0;
  margin-inline: auto;
}
.underground-page #op-value .op-section-title strong {
  color: #20252b;
  font-size: 44px;
  font-weight: 700;
}
.underground-page main #op-value-title + .op-value-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 64px 68px;
  height: auto;
  width: 100%;
  max-width: 1300px;
  min-width: 0;
  margin-top: 58px;
  overflow: visible;
}
.underground-page #op-value .op-value-grid::after { display: none; }
.underground-page #op-value .op-value-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0;
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0 !important;
  background: transparent;
  box-shadow: none;
}
.underground-page #op-value .op-value-image-frame {
  display: block;
  order: -1;
  position: relative;
  flex: none;
  width: 100%;
  height: 168px;
  aspect-ratio: auto;
  margin: 0 0 24px;
  overflow: hidden;
  border-radius: 8px;
  background: #f3f6fa;
}
.underground-page #op-value .op-value-media {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
}
.underground-page #op-value .op-value-content {
  box-sizing: border-box;
  min-width: 0;
  overflow-wrap: anywhere;
  width: 100%;
  padding: 0;
  text-align: left;
}
.underground-page #op-value .op-value-content-header {
  justify-content: flex-start;
  white-space: normal;
}
.underground-page #op-value .op-value-content::before {
  display: none;
  content: none;
}
.underground-page #op-value .op-value-content-header h3 {
  margin: 0;
  color: #30343a;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.65;
  text-align: left;
}
.underground-page #op-value .op-value-content p {
  margin: 14px 0 0;
  color: #667180;
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
}
.underground-page #op-value .op-value-controls { display: none; }
@media (max-width: 1100px) {
  .underground-page main #op-value-title + .op-value-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 48px;
  }
}
@media (max-width: 640px) {
  .underground-page #op-value .op-section-title strong { font-size: 32px; }
  .underground-page main #op-value-title + .op-value-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    margin-top: 42px;
  }
  .underground-page #op-value .op-value-content p { margin-top: 14px; }
}

/* ===== 露天矿落地价值：四张卡片单行排列 ===== */
.openpit-page main #op-value-title + .op-value-grid.op-value-grid--four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 48px;
}
@media (max-width: 1100px) {
  .openpit-page main #op-value-title + .op-value-grid.op-value-grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .openpit-page main #op-value-title + .op-value-grid.op-value-grid--four {
    grid-template-columns: 1fr;
  }
}

/* ===== Source: css/section-title-spacing.css ===== */
/* Shared module heading spacing, matching the customer cases reference. */
body main h2.site-spaced-heading {
  letter-spacing: .5em !important;
  text-indent: .5em;
}
body main h2.site-spaced-heading > strong {
  letter-spacing: inherit !important;
}

/* ===== Source: css/underground-case-layout.css ===== */
.underground-page #op-cases { background: #fff; }
.underground-page #op-cases .op-client-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; padding: 0; overflow: hidden; background: #fff; box-shadow: none; }
.underground-page #op-cases .op-client-row[hidden] { display: none; }
.underground-page #op-cases .op-client-image { border-radius: 12px !important; overflow: hidden; }
.underground-page #op-cases .op-client-image img { width: 100%; height: 340px; min-height: 340px; aspect-ratio: auto; object-fit: cover; border-radius: 12px; }
.underground-page #op-cases .op-client-copy { padding: 0 32px; min-width: 0; }
.underground-page #op-cases .op-client-tags { order: 1; display: flex; flex-wrap: wrap; gap: 6px; width: 100%; margin: auto 0 0; padding: 28px 0 0; }
.underground-page #op-cases .op-client-tags span { flex: 0 0 auto; white-space: nowrap; background: #f3f4f6; color: #68717d; border-radius: 4px; font-size: 16px; }
.underground-page #op-cases .op-client-copy > p { margin-top: 18px; }
.ug-case-comparison { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 16px; margin-top: 14px; padding: 0; background: transparent; }
.ug-case-comparison h4 { margin: 0 0 10px; color: #30343a; font-size: 17px; font-weight: 500; }
.ug-case-comparison p { margin: 0; color: #78828f; font-size: 14px; line-height: 1.8; }
.underground-page #op-cases .ug-case-comparison .ug-client-highlights { margin: 0; padding-left: 18px; color: #4b5667; font-size: 16px; }
.underground-page .ug-client-logos { margin-top: 48px; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.underground-page .ug-client-logo-track { display: flex; width: max-content; animation: ug-client-logos 48s linear infinite; }
.underground-page .ug-client-logo-group { display: flex; align-items: center; gap: 18px; padding-right: 18px; }
.underground-page .ug-client-logo { display: flex; align-items: center; justify-content: center; flex: 0 0 200px; width: 200px; height: 80px; padding: 8px 12px; box-sizing: border-box; border: 1px solid #e8eef9; border-radius: 6px; background: #fff; }
.underground-page .ug-client-logo img { display: block; width: 128px; max-width: 100%; height: 40px; object-fit: contain; }
.underground-page .ug-client-logo img[src*="daye-uniform"] { width: 154px; height: 48px; }
.underground-page .ug-client-logo img[src*="makeng-uniform"],
.underground-page .ug-client-logo img[src*="daye-uniform"] { transform: scale(1.2); transform-origin: center; }
.underground-page .ug-client-logo img[src*="minmetals-uniform"] { transform: scale(1.2); transform-origin: center; }
.underground-page .ug-client-logo img[src*="jinyuan-uniform"] { width: 166px; height: 52px; transform: scale(1.2); transform-origin: center; }
.underground-page .ug-client-logo img[src*="western-gold-uniform"] { transform: scale(1.2); transform-origin: center; }
.underground-page .ug-client-name { max-width: 160px; color: #253047; font-size: 14px; font-weight: 600; line-height: 1.5; text-align: center; }
.underground-page .ug-client-logos:hover .ug-client-logo-track,
.underground-page .ug-client-logos:focus-within .ug-client-logo-track { animation-play-state: paused; }
@keyframes ug-client-logos { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .underground-page .ug-client-logos { overflow-x: auto; }
  .underground-page .ug-client-logo-track { animation: none; }
  .underground-page .ug-client-logo-group[aria-hidden] { display: none; }
}
@media (max-width: 900px) {
  .underground-page #op-cases .op-client-row { grid-template-columns: 1fr; }
  .underground-page #op-cases .op-client-image img { height: 260px; min-height: 0; }
}
@media (max-width: 540px) {
  .underground-page #op-cases .op-client-copy { padding: 24px 20px; }
  .ug-case-comparison { grid-template-columns: 1fr; padding: 0; }
  }

/* ===== Source: css/underground-architecture-figma.css ===== */
/* Figma PvUcGHGXCu8QpUsAmEP4R8, node 68:5254. Native HTML; no utility runtime. */

/* ===== Source: css/underground-content-width.css ===== */
/* One content grid for the underground solution page. */
body.underground-page { --site-safe-width: 1300px; --site-gutter: 192px; }
body.underground-page .fh-header-inner,
body.underground-page main .op-wrap,
body.underground-page main .op-hero-copy,
body.underground-page main .op-more-viewport,
body.underground-page main #op-overview .op-overview-card.ug-figma-scenes {
  box-sizing: border-box;
  width: min(1300px, calc(100% - var(--site-gutter)));
  max-width: 1300px;
  margin-inline: auto;
}
@media (max-width: 1200px) {
  body.underground-page { --site-gutter: 64px; }
}
@media (max-width: 640px) {
  body.underground-page { --site-gutter: 40px; }
}
