/* Language options are links so the destination remains available without JavaScript. */
.fh-language-menu a {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 32px;
  padding: 0 10px;
  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;
  text-decoration: none;
}

.fh-language-menu a.is-active,
.fh-language-menu a:hover,
.fh-language-menu a:focus-visible {
  color: #005dbe;
  background: #edf6ff;
  font-weight: 600;
}

/* Shared copyright footer for non-homepage page types. */
.proto-copyright {
  margin: 0;
  padding: 22px 16px;
  background: #f3f3f3;
  color: #777e8a;
  font-size: 12px;
  text-align: center;
}

@media (min-width: 861px) and (max-height: 820px){
.case-center-copy{
    padding-top: clamp(18px, 3.4svh, 30px);
    padding-bottom: clamp(16px, 2.4svh, 22px);
  }
.case-center-copy h2{
    margin-bottom: clamp(8px, 1.5svh, 12px);
    line-height: 1.45;
  }
.case-center-copy p{
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    font-size: clamp(14px, 1.8svh, 18px);
    line-height: 1.6;
  }
.case-detail-link{
    height: 44px;
    flex: 0 0 44px;
  }
}
/* Only Chinese is available in the language menu. */
.fh-language-menu span[aria-disabled="true"] {
  color: #a8abb2;
  background: transparent;
  cursor: not-allowed;
  font-weight: 400;
}

/* Hide the floating online consultation entry. */
/* .contact-float .contact-online {
  display: none !important;
} */
/* About trial form: inline feedback and validation */
.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; }
}

/* v17 header search interactions. */
.fh-search-form {
  position: relative;
}

.fh-search-input {
  width: 100%;
  height: 36px;
  padding: 0 38px;
  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:focus {
  border-color: #005dbe;
  box-shadow: 0 0 0 3px rgba(0, 93, 190, 0.1);
}

.fh-search-input::placeholder {
  color: #b7bbc1;
}

.fh-search-submit {
  position: absolute;
  top: 0;
  left: 0;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.fh-search-icon {
  position: absolute;
  top: 11px;
  left: 13px;
  width: 13px;
  height: 13px;
  color: #b7bbc1;
  border: 1.5px solid currentColor;
  border-radius: 50%;
}

.fh-search-icon::after {
  content: "";
  position: absolute;
  right: -5px;
  bottom: -3px;
  width: 6px;
  height: 1.5px;
  background: currentColor;
  transform: rotate(45deg);
}

.fh-search-clear {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 24px;
  height: 24px;
  padding: 0;
  color: #8793a3;
  border: 0;
  border-radius: 50%;
  background: #f2f5f9;
  cursor: pointer;
  font-size: 18px;
  line-height: 22px;
}

.fh-search-clear:hover,
.fh-search-clear:focus-visible {
  color: #005dbe;
  background: #e8f1fc;
}

.fh-search-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 80;
  width: min(440px, calc(100vw - 40px));
  padding: 18px;
  color: #1a1a1a;
  background: #ffffff;
  border: 1px solid #e8edf3;
  border-radius: 8px;
  box-shadow: 0 18px 50px rgba(18, 42, 70, 0.16);
}

.fh-search-panel[hidden] {
  display: none;
}

.fh-search-panel-title {
  display: block;
  margin-bottom: 10px;
  color: #7a8796;
  font-size: 12px;
  line-height: 1.4;
}

.fh-search-hot-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.fh-search-hot-list button {
  min-height: 30px;
  padding: 0 12px;
  color: #33465c;
  border: 1px solid #e5ebf2;
  border-radius: 999px;
  background: #f7f9fc;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
}

.fh-search-hot-list button:hover,
.fh-search-hot-list button:focus-visible {
  color: #005dbe;
  border-color: #b8d4f2;
  background: #eef6ff;
}

.fh-search-suggest {
  display: grid;
  gap: 4px;
  margin-top: 16px;
}

.fh-search-suggest:empty {
  display: none;
}

.fh-search-suggestion {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 24px;
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 8px;
  border-radius: 6px;
}

.fh-search-suggestion:hover,
.fh-search-suggestion:focus-visible,
.fh-search-suggestion.is-active {
  background: #f1f6fc;
  outline: 0;
}

.fh-search-suggestion img,
.fh-search-suggestion .fh-search-thumb {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 4px;
  background: #f2f5f8;
}

.fh-search-suggestion-copy {
  min-width: 0;
}

.fh-search-suggestion-copy strong,
.fh-search-suggestion-copy span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fh-search-suggestion-copy strong {
  color: #17283d;
  font-size: 14px;
  line-height: 1.5;
}

.fh-search-suggestion-copy span {
  margin-top: 3px;
  color: #8290a0;
  font-size: 12px;
  line-height: 1.5;
}

.fh-search-suggestion-arrow {
  color: #b2bdc9;
  font-size: 20px;
  text-align: center;
}

.fh-search-state {
  padding: 12px 6px;
  color: #7a8796;
  font-size: 13px;
  text-align: center;
}

@media (max-width: 860px) {
  .search-content-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .search-sidebar {
    position: static;
    padding: 18px;
  }

  .search-category-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
  }

  .search-category-tab {
    flex: 0 0 auto;
  }

  .search-subfilters {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
  }

  .search-subfilter-label {
    flex: 0 0 100%;
    margin-bottom: 0;
  }

  .search-subfilter {
    flex: 0 0 auto;
    padding-left: 0;
  }

  .search-result-card {
    display: block;
    padding: 20px 0;
  }

  .search-result-copy h3 {
    font-size: 19px;
  }

  .search-result-summary {
    font-size: 14px;
    line-height: 1.75;
  }
}

@media (max-width: 860px) {
  .search-page {
    padding-top: 64px;
  }

  .search-container {
    width: calc(100% - 32px);
  }

  .search-hero {
    padding: 46px 0 38px;
  }

  .search-hero h1 {
    font-size: 28px;
  }

  .search-page-form {
    grid-template-columns: minmax(0, 1fr) 74px;
    margin-top: 24px;
  }

  .search-page-form input {
    height: 44px;
    padding: 0 12px;
    font-size: 14px;
  }

  .search-page-form button {
    height: 44px;
  }

  .search-results-section {
    padding: 32px 0 64px;
  }

  .search-overview h2 {
    font-size: 21px;
  }

  .search-category-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 14px;
    scrollbar-width: none;
  }

  .search-category-tabs::-webkit-scrollbar {
    display: none;
  }

  .search-category-tab {
    flex: 0 0 auto;
  }

  .search-subfilters {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
  }

  .search-subfilters::-webkit-scrollbar {
    display: none;
  }

  .search-subfilter {
    flex: 0 0 auto;
  }

  .search-result-card {
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 14px;
    min-height: 138px;
    padding: 14px;
  }

  .search-result-media {
    min-height: 108px;
  }

  .search-result-media img {
    padding: 7px;
  }

  .search-result-copy h3 {
    font-size: 16px;
  }

  .search-result-summary {
    margin: 7px 0 10px;
    font-size: 13px;
    -webkit-line-clamp: 2;
  }

  .search-result-meta {
    gap: 8px;
  }

  .search-result-detail {
    display: none;
  }

  .search-hot-panel {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 48px;
  }

  .search-hot-panel h2 {
    font-size: 21px;
  }

  .fh-search-panel {
    position: fixed;
    top: 72px;
    right: 16px;
    left: 16px;
    width: auto;
    max-height: calc(100dvh - 92px);
    overflow-y: auto;
  }

  .fh-search-suggestion {
    grid-template-columns: 42px minmax(0, 1fr) 18px;
  }

  .fh-search-suggestion img,
  .fh-search-suggestion .fh-search-thumb {
    width: 42px;
    height: 42px;
  }
}


.contact-float{width:65px}
.contact-online-icon{width:50px;height:50px;padding:10px}

/* v10 case logo fix preserved after the framework switch. */
.case-customer-tabs button[hidden] { display: none !important; }


/* v30 browser fixes (rendered theme): keep news media inside its grid cell on mobile. */
.proto-news-grid > .proto-news-card,
.home-news-list,
.home-news-list > .proto-news-card { min-width: 0; }
.proto-news-card img { max-width: 100%; height: auto; }


/* v31 browser fixes (rendered theme): keep news media inside its grid cell on mobile. */
.proto-news-grid > .proto-news-card,
.home-news-list,
.home-news-list > .proto-news-card { min-width: 0; width: 100%; max-width: 100%; overflow: hidden; }
.proto-news-card img { max-width: 100%; height: auto; }

/* v33: reproduce the prototype's two-line hero headline without markup in the CMS title.
   The prototype hard-wraps it with <br>; an 11.5em measure gives the same break at every
   width and still keeps a sane line length if the copy changes. */
.figma-home .fh-hero-copy h1 { max-width: 11.5em; }

/* v33: layout.css already asks for a single news column below 860px, but home.css's
   .95fr/1.05fr rule wins the cascade, which squeezed the lead card on phones.
   Restore the intended single column so the lead card keeps its 16:9 frame. */
@media (max-width: 860px) {
  .figma-home .proto-news-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: start; }
  .figma-home .proto-news-grid > .proto-news-card { aspect-ratio: 16 / 9; }
}

/* v34: keep the news list copy to the prototype's card height so the lead card keeps its
   16:9 frame; longer maintained summaries are clamped instead of stretching the block. */
.home-news-list > .proto-news-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* v35: the About lead news card must stay inside its grid track. Its 16:9 aspect ratio
   derives the width from the row height, so a taller news list used to blow the card up
   to ~1013px and push the layout out of shape. */
.about-site .resources-news .main-news { min-width: 0; max-width: 100%; }
/* v42: the prototype keeps three 104px link rows beside the 312px lead card. Maintained
   titles and summaries wrap to two lines and stretch the block by ~180px, so clamp both to
   a single line with an ellipsis. Selectors match about-imported-modules.css specificity and
   this file loads last, so the prototype's white-space/overflow rules lose. */
.about-site .about-page .resources-news .refined-news-list strong,
.about-site .about-page .resources-news .refined-news-list em {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}


/* v51: logo 统一成原型的 104.5x26.9（scale .792）。此前只有 home.css 与 cases.css
   缩放过，解决方案 / 产品中心 / 关于迪迈还是原始的 132x34，同一个 logo 比首页大 1.26 倍。 */
.fh-header .fh-logo img {
  scale: .792;
  transform-origin: left center;
}

/* v51: 首屏是深色视频/大图时页头切成深色半透明，logo 与导航转白；离开首屏（或展开大菜单、
   语言菜单、移动端导航）时状态类让位，页头回到白底、logo 回蓝色。
   首页 is-home-top 由 home.js 维护，解决方案/关于迪迈 is-hero-top 由 common.js 维护；
   产品中心、客户案例首屏是浅色，不加状态类，保持白底蓝 logo。 */
body .fh-header:is(.is-home-top, .is-hero-top):not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) {
  color: #fff;
  background: rgba(12, 13, 13, .4);
  border-bottom-color: rgba(255, 255, 255, .3);
  box-shadow: none;
}

body .fh-header:is(.is-home-top, .is-hero-top):not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-logo img {
  filter: url(#home-logo-white);
}

body .fh-header:is(.is-home-top, .is-hero-top):not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-nav,
body .fh-header:is(.is-home-top, .is-hero-top):not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-nav a,
body .fh-header:is(.is-home-top, .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, .is-mega-active) {
  color: #fff;
}

body .fh-header:is(.is-home-top, .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, .is-mega-active)::after {
  background: #fff;
}

body .fh-header:is(.is-home-top, .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: rgba(255, 255, 255, .3);
}

body .fh-header:is(.is-home-top, .is-hero-top):not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-search-input::placeholder {
  color: rgba(255, 255, 255, .6);
}

body .fh-header:is(.is-home-top, .is-hero-top):not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-search-icon {
  color: rgba(255, 255, 255, .75);
}

body .fh-header:is(.is-home-top, .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 rgba(255, 255, 255, .5);
}

body .fh-header:is(.is-home-top, .is-hero-top):not(.is-mobile-open):not(:has(.is-mega-active)):not(:has(.fh-language.is-open)) .fh-mobile-toggle {
  color: #fff;
}


/* v52: 旧版页头 `.fh-search span`（原型放大镜图标）会命中 CMS 搜索面板里的所有
   span，把“热门搜索”标题、缩略图、推荐文案都绝对定位成 13x13 的圆圈。这里只在
   面板内部恢复文档流，不影响搜索框图标。 */
.fh-search-panel .fh-search-suggestion-copy,
.fh-search-panel .fh-search-panel-title,
.fh-search-panel .fh-search-suggestion-copy span,
.fh-search-panel .fh-search-suggestion-arrow {
  position: static;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  transform: none;
}

.fh-search-panel .fh-search-thumb {
  position: static;
  border: 0;
}

.fh-search-panel .fh-search-panel-title::after,
.fh-search-panel .fh-search-thumb::after,
.fh-search-panel .fh-search-suggestion-copy::after,
.fh-search-panel .fh-search-suggestion-copy span::after,
.fh-search-panel .fh-search-suggestion-arrow::after {
  content: none;
}

.fh-search-panel .fh-search-panel-title {
  color: #7a8796;
}

/* v57: v51 的 logo 转白滤镜 SVG 在非首页是 inline 元素，会占一行（约 21px），在 fixed 页头下方形成空白。让它脱离文档流。 */
.home-filter-defs { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
