/* The QR card opened by the floating chat button (assets/site.js); QR and text come from 外观 → 自定义 → 微信咨询按钮. */
.pc-chat{position:fixed;right:24px;bottom:92px;z-index:9999;width:260px;padding:20px;border-radius:22px;background:#FFFFFF;color:#0B1220;box-shadow:0 30px 70px -20px rgba(11,18,32,.35),0 0 0 1px rgba(11,18,32,.06);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;transform-origin:100% 100%;animation:pcChatIn .22s cubic-bezier(.2,.7,.2,1)}
.pc-chat[hidden]{display:none}
html[data-theme="dark"] .pc-chat{background:#111A2E;color:#F4F7FC;box-shadow:0 30px 70px -20px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.08)}
.pc-chat b{font-size:16px;font-weight:800}
.pc-chat img{display:block;width:200px;height:200px;object-fit:contain;border-radius:12px;background:#FFFFFF;padding:6px;box-shadow:0 0 0 1px rgba(11,18,32,.08)}
.pc-chat span{font-size:13px;color:#5B6478}
html[data-theme="dark"] .pc-chat span{color:#A9B4C8}
.pc-chat a{font-size:13px;font-weight:700;color:#2563EB}
.pc-chat-x{position:absolute;right:10px;top:10px;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:20px;line-height:1;cursor:pointer;opacity:.55}
.pc-chat-x:hover{opacity:1}
@keyframes pcChatIn{from{opacity:0;transform:translateY(8px) scale(.96)}}
@media (max-width:640px){
  .pc-chat{left:14px;right:14px;bottom:76px;width:auto}
  .pc-chat img{width:180px;height:180px}
}
@media (prefers-reduced-motion:reduce){.pc-chat{animation:none}}

/* Elementor's per-device "hide" switches, kept here so they still apply when Elementor's own CSS is not loaded (pc_lite) */
@media (min-width:1025px){.elementor-hidden-desktop{display:none!important}}
@media (min-width:768px) and (max-width:1024px){.elementor-hidden-tablet{display:none!important}}
@media (max-width:767px){.elementor-hidden-mobile{display:none!important}}

/* top nav: pointer-following pill, open / current link states (current = darker text), cascading menu items (site.js navFx) */
.nav-links{position:relative}
.navlink{position:relative;z-index:1}
.nav-pill{position:absolute;left:0;top:50%;z-index:0;height:38px;margin-top:-19px;border-radius:999px;background:var(--hover);box-shadow:inset 0 0 0 1px var(--line2);opacity:0;pointer-events:none;transition:transform .38s cubic-bezier(.2,.7,.2,1),width .38s cubic-bezier(.2,.7,.2,1),opacity .2s}
.nav-pill.on{opacity:1}
.nav-pill.jump{transition:opacity .2s}
.navlink svg{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.navlink.is-open{color:var(--t1)}
.navlink.is-open svg{transform:rotate(180deg)}
.navlink.is-current{color:var(--t1)}
.mega .mg-head,.mega .mlink,.mega .mg-promo{animation:mgIn .42s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0) * 26ms + 70ms)}
.mega.mg-swap{animation:mgSwap .22s ease-out both}
.mega.mg-swap .mg-head,.mega.mg-swap .mlink,.mega.mg-swap .mg-promo{animation-duration:.3s;animation-delay:calc(var(--i,0) * 14ms)}
@keyframes mgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes mgSwap{from{opacity:.55}to{opacity:1}}
.nav-cta{position:relative;overflow:hidden;isolation:isolate}
.nav-cta::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(127,160,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.nav-cta:hover::after{transform:translateX(120%)}
.nav-cta svg{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.nav-cta:hover svg{transform:translateX(3px)}
.theme-btn svg{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.theme-btn:hover svg{transform:rotate(-25deg)}
@media (prefers-reduced-motion:reduce){
  .nav-pill{transition:opacity .2s}
  .mega .mg-head,.mega .mlink,.mega .mg-promo,.mega.mg-swap{animation:none}
}

/* footer bottom row (ICP filing, 服务条款, 隐私政策): plain text in the row's colour, underline on hover */
.pc-icp,.pc-ul{color:inherit;text-decoration:none;transition:color .2s}
.pc-icp:hover,.pc-icp:focus-visible,.pc-ul:hover,.pc-ul:focus-visible,.pc-ul.is-current{color:var(--t1);text-decoration:underline;text-underline-offset:3px}

/* platform logos (assets/logos): never stretched, whatever box they sit in; site.js swaps in -white versions on dark backgrounds */
img[src*="/assets/logos/"]{object-fit:contain}
/* platform page hero badges: the transparent full logo sits straight on the badge, same height on every platform page */
.wpx-chip img[src*="/assets/logos/"]{width:auto;height:18px;max-width:none;padding:0;border-radius:0;background:none;box-shadow:none;filter:none!important}

/* language switch (site.js langSwitch): "English" link in the footer bottom row, styled like 服务条款 / 隐私政策 */
.pc-lang{display:inline-flex;align-items:center;gap:6px}

/* footer (site.js footerFx): link lists keep their desktop layout; on phones each group folds open on tap */
.pc-fnav-list,.pc-fnav-list>div{display:contents}
@media (max-width:760px){
  footer :has(> nav.pc-fnav){row-gap:0!important}
  footer :has(> nav.pc-fnav)>div:first-child{margin-bottom:30px}
  footer nav.pc-fnav{gap:0!important;border-top:1px solid var(--line)}
  footer nav.pc-fnav:last-of-type{border-bottom:1px solid var(--line)}
  .pc-fnav-h{display:flex!important;align-items:center;justify-content:space-between;margin:0!important;padding:17px 2px;font-size:15px!important;font-weight:700;color:var(--t1)!important;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .pc-fnav-h::after{content:"";width:8px;height:8px;margin-right:6px;border-right:2px solid var(--t3);border-bottom:2px solid var(--t3);transform:rotate(45deg) translate(-2px,-2px);transition:transform .3s cubic-bezier(.2,.7,.2,1)}
  nav.open .pc-fnav-h::after{transform:rotate(225deg) translate(-2px,-2px)}
  .pc-fnav-list{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.2,.7,.2,1)}
  nav.open .pc-fnav-list{grid-template-rows:1fr}
  .pc-fnav-list>div{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden;padding:0 2px}
  nav.open .pc-fnav-list>div{padding-bottom:18px}
  /* the desktop hover effect (other links dim) would stick after a tap */
  footer nav.pc-fnav .flink{opacity:1!important}
  /* the contact card's 130px bottom padding plus the footer's 72px top padding left ~200px of blank space */
  .pc section#contact{padding-top:72px!important;padding-bottom:64px!important}
  .pc>footer{padding-top:44px!important}
}
/* desktop: same idea (pc.css gives the contact section 110px at the bottom) */
@media (min-width:761px){
  .pc section#contact{padding-bottom:72px!important}
  .pc>footer{padding-top:56px!important}
}
/* social icons under the logo description (inc/social.php) */
.pc-social{display:flex;gap:10px;margin-top:2px}
.pc-soc{position:relative;display:grid;place-items:center;width:40px;height:40px;padding:0;border-radius:12px;background:var(--soft);border:1px solid var(--line2);color:var(--t1);cursor:pointer;transition:transform .25s,border-color .25s,background .25s}
.pc-soc:hover,.pc-soc:focus-visible,.pc-soc.show{transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(11,18,32,.5)}
/* each looks like its app icon: 微信 green with chat bubbles, 抖音 black with the coloured note, 小红书 / 微博 red with white lettering */
.pc-soc.pc-soc-douyin{background:#111111;border-color:#111111;color:#FFFFFF}
.pc-soc.pc-soc-wechat{background:#07C160;border-color:#07C160}
.pc-soc.pc-soc-xhs{background:#FF2442;border-color:#FF2442}
.pc-soc.pc-soc-weibo{background:#E6162D;border-color:#E6162D}
.pc-soc-xhs b,.pc-soc-weibo b{font-size:10.5px;font-weight:900;letter-spacing:-.04em;color:#FFFFFF;white-space:nowrap;line-height:1}
.pc-soc-qr{position:absolute;left:50%;bottom:calc(100% + 12px);z-index:20;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;border-radius:14px;background:#FFFFFF;box-shadow:0 20px 50px -18px rgba(11,18,32,.45),0 0 0 1px rgba(11,18,32,.06);opacity:0;visibility:hidden;transform:translate(-50%,6px);transition:opacity .2s,transform .25s,visibility .2s;pointer-events:none}
.pc-soc-qr img{width:128px;height:128px;object-fit:contain;display:block}
.pc-soc-qr small{font-size:12px;color:#4A5573;white-space:nowrap}
.pc-soc:hover .pc-soc-qr,.pc-soc:focus-visible .pc-soc-qr,.pc-soc.show .pc-soc-qr{opacity:1;visibility:visible;transform:translate(-50%,0)}
/* the first icon sits at the page edge: open its QR card rightwards so it is not cut off */
.pc-social>.pc-soc:first-child .pc-soc-qr{left:0;transform:translate(0,6px)}
.pc-social>.pc-soc:first-child:hover .pc-soc-qr,.pc-social>.pc-soc:first-child:focus-visible .pc-soc-qr,.pc-social>.pc-soc:first-child.show .pc-soc-qr{transform:translate(0,0)}
html:not([data-theme="light"]) .pc-soc.pc-soc-douyin{border-color:rgba(255,255,255,.22)}

/* home hero (English): each line ("Go global" / "with the right site" / "for your business.") must stay on one row;
   the font shrinks to the copy column when the longest line (9.6em) would not fit */
.pc div:has(> h1 > .line){container-type:inline-size}
.pc h1:has(> .line){font-size:min(clamp(36px,5vw,72px),100cqi / 9.6)!important}

/* English header: labels never break onto two lines (that stretched the whole bar); tighter spacing on narrower screens */
.navlink,.nav-cta{white-space:nowrap}
@media (max-width:1240px){.nav-links{gap:22px!important;font-size:14.5px!important}}
@media (max-width:1150px){.nav-links{display:none!important}.menu-btn{display:flex!important}}

/* footer bottom row: 中文 / Terms of Service / Privacy Policy sit on one centred line (the globe icon and the CJK
   glyphs made 中文 ride lower than the mono-font links) */
footer span:has(> .pc-ul){align-items:center}
footer .pc-ul{display:inline-flex;align-items:center;line-height:1.2}
.pc-lang{gap:5px}
.pc-lang svg{flex:none;display:block}

/* English: call-to-action buttons keep their label on one line (English labels are longer than the Chinese ones the
   pills were sized for); the longest label still fits a 390px phone */
.pc a[class*="btn"],.pc button[class*="btn"],.pc #pc-lead button[type=submit],.pc a[style*="border-radius: 999px"],
.pc .ab-btn,.pc .lg-btn,.pc .csd-ask-btn,.pc .kc-btn{white-space:nowrap}
/* small labels and tags that read badly when broken over two lines */
.pc .ad-live,.pc .bd-tag,.pc .rd-plan em,.pc .splm-perks li,.pc .em-pill,.pc .gr-kick,.pc .dw-tag,.pc .dw-stamps span,
.pc .kc-chip-lg{white-space:nowrap}
.pc .bd-toggle,.pc .ad-layer b,.pc .em-flow-tabs button,.pc .bd-gtabs button{white-space:nowrap}
@media (max-width:760px){
  /* tab rows scroll sideways instead of squeezing their labels onto two lines */
  .pc .em-flow-tabs{overflow-x:auto;scrollbar-width:none}
  /* sentence-length pills become soft boxes on phones, so a second line looks intended */
  .pc .sp-do{flex-direction:column;align-items:stretch}
  .pc .sp-do li{border-radius:12px;line-height:1.45}
  .pc .rd-carry li,.pc .rd-rebuild li,.pc .rd-map-pts li{border-radius:12px;line-height:1.45}
}
