/* Revision 87: managed service-support sections, company honors and footer QR slots. */

.service-subnav {
  position: relative;
  z-index: 4;
  background: #fff;
  border-top: 4px solid var(--red);
  border-bottom: 1px solid #e5e5e5;
}
.service-subnav.is-page-start { padding-top: 86px; }
.service-subnav-inner {
  min-height: 92px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}
.service-subnav a {
  position: relative;
  min-height: 88px;
  padding: 16px 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #353535;
  font-size: clamp(16px, 1.4vw, 21px);
  font-weight: 600;
  text-align: center;
  transition: color .2s ease, background-color .2s ease;
}
.service-subnav a:not(:last-child)::after {
  position: absolute;
  top: 25%;
  right: 0;
  width: 1px;
  height: 50%;
  content: "";
  background: #dedede;
  transform: rotate(17deg);
}
.service-subnav a:hover,
.service-subnav a.is-active { color: var(--red); background: #fafafa; }
.service-subnav a:focus-visible,
.contact-service-card a:focus-visible,
.contact-service-faq summary:focus-visible {
  outline: 3px solid rgba(232, 53, 37, .28);
  outline-offset: -3px;
}

.contact-service-support { padding: 112px 0 118px; background: #fff; }
.contact-service-heading { max-width: 760px; margin: 0 auto 48px; text-align: center; }
.contact-service-heading h2 { margin: 0 0 16px; font-size: clamp(34px, 4vw, 52px); line-height: 1.18; letter-spacing: -.035em; }
.contact-service-heading h2::before { margin-right: 12px; content: "//"; color: var(--red); font-size: .58em; letter-spacing: -3px; }
.contact-service-heading p { margin: 0; font-size: 15px; }
.contact-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.contact-service-card {
  min-height: 285px;
  padding: 30px 28px;
  display: flex;
  flex-direction: column;
  border: 1px solid #e0e1e2;
  border-top: 3px solid var(--red);
  background: #fff;
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.contact-service-card:hover { border-color: #c9c9c9; box-shadow: 0 18px 44px rgba(20, 20, 20, .08); transform: translateY(-4px); }
.contact-service-card > span { margin-bottom: 34px; color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.contact-service-card h3 { margin: 0 0 14px; font-size: 21px; }
.contact-service-card p { margin: 0 0 25px; font-size: 13px; line-height: 1.75; }
.contact-service-card a { min-height: 44px; margin-top: auto; display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--ink); border-top: 1px solid #e7e7e7; font-size: 13px; font-weight: 700; }
.contact-service-card a:hover { color: var(--red); }
.contact-service-card a svg { width: 18px; }

#project-inquiry { scroll-margin-top: 92px; }
.contact-service-faq { padding: 110px 0 130px; background: #fff; }
.contact-service-faq-shell { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: 92px; align-items: start; }
.contact-service-faq .contact-service-heading { margin: 0; text-align: left; }
.contact-service-faq .contact-service-heading h2::before { display: none; }
.contact-service-faq-list { border-top: 3px solid var(--red); }
.contact-service-faq details { border-bottom: 1px solid #dedfe1; }
.contact-service-faq summary {
  min-height: 78px;
  padding: 18px 48px 18px 0;
  display: flex;
  align-items: center;
  gap: 18px;
  position: relative;
  color: var(--ink);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.contact-service-faq summary::-webkit-details-marker { display: none; }
.contact-service-faq summary span { color: var(--red); font-size: 11px; letter-spacing: .12em; }
.contact-service-faq summary i,
.contact-service-faq summary i::after { position: absolute; right: 5px; width: 18px; height: 2px; content: ""; background: var(--red); transition: transform .2s ease; }
.contact-service-faq summary i::after { right: 0; transform: rotate(90deg); }
.contact-service-faq details[open] summary i::after { transform: rotate(0); }
.contact-service-faq details > p { margin: -4px 48px 25px 29px; font-size: 14px; }

.service-page-hero { padding: 90px 0 100px; background: #f5f5f5; }
.service-page-hero-grid { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: clamp(45px, 7vw, 100px); align-items: center; }
.service-page-hero-copy h1 { margin: 0 0 22px; font-size: clamp(46px, 5.3vw, 76px); line-height: 1.05; letter-spacing: -.055em; }
.service-page-hero-copy > p { max-width: 560px; margin: 0 0 32px; font-size: 16px; }
.service-page-hero-media { aspect-ratio: 16 / 10; margin: 0; overflow: hidden; background: #e8e8e8; }
.service-page-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.service-page-content { padding: 115px 0 135px; background: #fff; }
.service-page-heading { max-width: 790px; margin: 0 0 52px; }
.service-page-heading h2 { margin: 0 0 17px; font-size: clamp(34px, 4vw, 54px); line-height: 1.17; letter-spacing: -.04em; }
.service-page-heading p { margin: 0; font-size: 15px; }
.service-page-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #d9d9d9; border-left: 1px solid #d9d9d9; }
.service-page-card { min-height: 255px; padding: 31px 28px; border-right: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9; }
.service-page-card > span { display: block; margin-bottom: 50px; color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.service-page-card h3 { margin: 0 0 13px; font-size: 21px; }
.service-page-card p { margin: 0; font-size: 13px; line-height: 1.75; }
.service-process-notice { padding: 48px; display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 30px; align-items: center; border-top: 3px solid var(--red); background: #f4f4f4; }
.service-process-notice > span { color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.service-process-notice h3 { margin: 0 0 10px; font-size: 25px; }
.service-process-notice p { max-width: 680px; margin: 0; }
.service-process-notice .button { border-color: var(--ink); white-space: nowrap; }
.service-process-notice .button:hover { color: #fff; background: var(--ink); }

.about-v2-cert-group.is-company-honors { margin-top: 100px; }

/* Revision 98: the supplied video places 企业荣誉 below 资质荣誉 as a full
   third block with the same marked heading, explanatory copy and certificate
   presentation. The legacy desktop shell was fixed to two blocks (1318px),
   which caused this section to collide with the red footer transition. */
@media (min-width: 901px) {
  #about-panel-honors .about-v2-section-shell.has-company-honors {
    height: auto;
    min-height: 2000px;
    padding-bottom: 128px;
  }
  #about-panel-honors .about-v2-cert-group.is-company-honors {
    min-height: 682px;
    margin: 0;
    padding-top: 128px;
    box-sizing: border-box;
  }
  .about-v2-cert-group.is-company-honors .about-v2-cert-title {
    margin-bottom: 52px;
  }
  .about-v2-cert-group.is-company-honors .about-v2-cert-title h3 {
    font-size: 46px;
    line-height: 1.2;
  }
  .about-v2-cert-group.is-company-honors .about-v2-cert-title p {
    margin-top: 38px;
    color: #4f5257;
    font-size: 22px;
  }
  .about-v2-cert-group.is-company-honors .about-v2-carousel {
    min-height: 355px;
    background: #f4f4f3;
  }
  .about-v2-cert-group.is-company-honors .about-v2-carousel-track figure {
    padding: 12px 13px 18px;
  }
  .about-v2-cert-group.is-company-honors .about-v2-carousel-track figure button {
    height: 275px;
  }
  .about-v2-cert-group.is-company-honors .about-v2-carousel-track figure figcaption {
    margin-top: 12px;
    color: #55585d;
    font-size: 12px;
  }
}
.footer-wechat-codes { flex-wrap: wrap; }

@media (max-width: 1000px) {
  .contact-service-grid,
  .service-page-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-service-faq-shell { grid-template-columns: 1fr; gap: 42px; }
  .contact-service-faq .contact-service-heading { max-width: 720px; text-align: center; }
  .service-page-hero-grid { grid-template-columns: 1fr; gap: 45px; }
  .service-page-hero-copy { max-width: 760px; }
}

@media (max-width: 760px) {
  .service-subnav.is-page-start { padding-top: 72px; }
  .service-subnav-inner { width: 100%; min-height: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-subnav a { min-height: 58px; padding: 10px 8px; font-size: 14px; border-bottom: 1px solid #e4e4e4; }
  .service-subnav a:nth-child(2)::after { display: none; }
  .service-subnav a:not(:last-child)::after { top: 20%; height: 60%; }
  .contact-service-support { padding: 72px 0 78px; }
  .contact-service-heading { margin-bottom: 34px; }
  .contact-service-grid { grid-template-columns: 1fr; gap: 12px; }
  .contact-service-card { min-height: 230px; padding: 25px 22px; }
  .contact-service-card > span { margin-bottom: 24px; }
  .contact-service-faq { padding: 74px 0 88px; }
  .contact-service-faq summary { min-height: 70px; padding-right: 38px; font-size: 15px; }
  .contact-service-faq details > p { margin-left: 29px; margin-right: 20px; }
  .service-page-hero { padding: 64px 0 72px; }
  .service-page-hero-grid { gap: 34px; }
  .service-page-hero-copy h1 { font-size: 44px; }
  .service-page-content { padding: 75px 0 90px; }
  .service-page-card-grid { grid-template-columns: 1fr; }
  .service-page-card { min-height: 210px; }
  .service-page-card > span { margin-bottom: 30px; }
  .service-process-notice { padding: 30px 24px; grid-template-columns: 1fr; gap: 17px; }
  .service-process-notice .button { width: 100%; }
  .about-v2-cert-group.is-company-honors { margin-top: 70px; padding-top: 70px; border-top: 1px solid #e5e5e5; }
}

@media (prefers-reduced-motion: reduce) {
  .service-subnav a,
  .contact-service-card,
  .contact-service-faq summary i,
  .contact-service-faq summary i::after { transition: none; }
}
/* Revision 99: the complete About section switcher remains attached below the
   compact fixed header.  `overflow-x:hidden` on body creates a competing scroll
   container in Chromium/WebKit and makes position:sticky drop out mid-scroll;
   clip prevents horizontal spill without changing the vertical scroll owner. */
.page-about-root,
body.page-about { overflow-x: clip; }
.page-about .about-v2-tab-host {
  height: 70px;
  background: #fff;
}
.page-about .about-v2-tab-wrap {
  position: relative;
  top: auto;
  z-index: 72;
  background: #fff;
}
.page-about .about-v2-tab-wrap.is-floating {
  position: fixed;
  top: 86px;
  right: 0;
  left: 0;
  margin-top: 0;
  padding: 0;
  transform: none;
}
@media (max-width: 900px) {
  .page-about .about-v2-tab-host { height: 124px; }
  .page-about .about-v2-tab-wrap.is-floating { top: 70px; overflow-x: auto; }
}
@media (max-width: 600px) {
  .page-about .about-v2-tab-host { height: 118px; }
}
