/* ==========================================================================
   DESIGN SYSTEM — Premium Light Theme
   ========================================================================== */
:root {
  --bg-deep: #F6F6F6;
  --bg-card: #ffffff;
  --bg-card-hover: #F6F6F6;
  --bd-subtle: rgba(0,0,0,0.06);
  --bd-hover: rgba(0,0,0,0.12);
  --tx-pri: #2C2F33;
  --tx-sec: rgba(0,0,0,0.6);
  --tx-ter: rgba(0,0,0,0.4);
  --brand-500:#FF2200; --brand-600:#CC1B00;
  --ac-blue: #6366f1; --ac-purple: #a855f7;
  --ac-pink: #ec4899; --ac-orange: #f97316;
  --ac-emerald: #10b981;
  --grad-cta: linear-gradient(135deg, var(--brand-500) 0%, rgba(255,34,0,0.3) 100%);
  --grad-warm: linear-gradient(135deg, #D61920 0%, #f97316 100%);
  --r-sm: 8px; --r-md: 12px; --r-lg: 16px; --r-xl: 20px; --r-2xl: 24px;
  --max-w: 1200px;
  --header-h: 64px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tran: transform 0.3s var(--ease), opacity 0.3s var(--ease), color 0.3s ease-out, background-color 0.3s ease-out, border-color 0.3s ease-out, box-shadow 0.3s var(--ease);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  font-family:'Noto Sans SC','Inter',-apple-system,sans-serif;
  background:#fff;color:var(--tx-pri);
  line-height:1.65;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ==========================================================================
   BACKGROUND DECORATIONS
   ========================================================================== */
#bg-decorations{
  position:fixed;top:0;left:0;right:0;bottom:0;z-index:0;pointer-events:none;
  overflow:hidden;
}
/* Gradient blobs */
.bg-blob{
  position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;
  will-change:transform;transform:translateZ(0);
}
.bg-blob-1{width:500px;height:500px;top:-10%;left:-10%;background:#FFD4CC;}
.bg-blob-2{width:400px;height:400px;top:50%;right:-8%;background:#EDE8FF;}
.bg-blob-3{width:450px;height:450px;bottom:-10%;left:30%;background:#FDE8E8;}
/* Dot grid */
.bg-dots{
  position:absolute;inset:0;opacity:.025;
  background-image:radial-gradient(circle,#000 1px,transparent 1px);
  background-size:28px 28px;
}

/* ==========================================================================
   HEADER — Clean Glass
   ========================================================================== */
#global-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--header-h);
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  border-bottom:1px solid transparent;
  transition:border-color .35s var(--ease),box-shadow .35s var(--ease);
  transform:translateZ(0);will-change:transform;
  contain:layout style;
}
#global-header.scrolled{
  border-bottom-color:var(--bd-subtle);
  box-shadow:0 1px 0 rgba(0,0,0,.04),0 4px 20px rgba(0,0,0,.04);
}
.h-inner{
  max-width:var(--max-w);margin:0 auto;
  padding:0 32px;height:100%;
  display:flex;align-items:center;justify-content:space-between;
}
.logo-link{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;font-weight:800;font-size:19px;color:var(--tx-pri);
  transition:var(--tran);
}
.logo-link:hover{transform:scale(1.03)}
.logo-mk{
  height:32px;width:auto;
}
#main-nav{display:flex;gap:2px}
#main-nav a{
  color:var(--tx-ter);text-decoration:none;
  font-size:13px;font-weight:500;padding:7px 13px;white-space:nowrap;
  border-radius:8px;transition:var(--tran);
  cursor:pointer;
}
#main-nav a:hover{color:var(--tx-pri);background:rgba(0,0,0,.03)}

#main-nav a.active{color:var(--brand-500);background:rgba(255,34,0,.06);font-weight:600}
.nav-product-wrap{position:relative;display:flex;align-items:center}
.nav-product-dropdown{
  display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);
  width:480px;padding:20px;
  background:var(--bg-card);border:1px solid var(--bd-subtle);
  border-radius:var(--r-2xl);box-shadow:0 20px 60px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.02);
  z-index:1000;
  opacity:0;pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;
}
/* transparent bridge over the gap so moving from tab to menu never drops hover */
.nav-product-dropdown::after{
  content:'';position:absolute;top:-12px;left:0;right:0;height:12px;
}
.nav-product-dropdown::before{
  content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:12px;height:12px;background:var(--bg-card);
  border-left:1px solid var(--bd-subtle);border-top:1px solid var(--bd-subtle);
}
.nav-product-wrap:hover .nav-product-dropdown{
  display:block;opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.nav-dropdown-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx-ter);margin-bottom:12px;padding-left:4px}
.nav-dropdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
#main-nav .nav-dropdown-grid a{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:var(--r-lg);
  font-size:13px;font-weight:500;color:var(--tx-sec);
  cursor:pointer;transition:var(--tran);white-space:nowrap;
  text-decoration:none;background:transparent;
}
#main-nav .nav-dropdown-grid a:hover{background:rgba(255,34,0,.05);color:var(--brand-500)}
.nav-dropdown-grid a .nd-ico{font-size:18px;flex-shrink:0;width:24px;text-align:center}
.nav-dropdown-grid a .nd-ico{display: inline-block; width:24px; height:24px;flex-shrink:0;text-align:center; background-size:cover; background-position:center; background-repeat:no-repeat;}
.h-mnav-btn{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;border-radius:10px;align-items:center}
.h-mnav-btn span{display:block;width:22px;height:2.5px;background:var(--tx-pri);border-radius:2px;transition:var(--tran)}
.h-mnav-btn:hover{background:rgba(255,34,0,.06)}
.h-mnav-btn.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.h-mnav-btn.open span:nth-child(2){opacity:0}
.h-mnav-btn.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.m-nav{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;background:rgba(255,255,255,.98);backdrop-filter:blur(10px);display:flex;flex-direction:column;padding:24px 28px 32px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}
.m-nav.open{opacity:1;visibility:visible;transform:none}
.m-nav-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}
.m-nav-title{font-size:18px;font-weight:800}
.m-nav-close{width:38px;height:38px;border-radius:12px;border:1px solid var(--bd-subtle);background:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--tx-sec);padding:0}
.m-nav-close svg{width:16px;height:16px}
.m-nav-list{display:flex;flex-direction:column;gap:6px;flex:1;overflow-y:auto}
.m-nav-list a{padding:15px 18px;border-radius:14px;font-size:16.5px;font-weight:600;color:var(--tx-pri);text-decoration:none;transition:var(--tran)}
.m-nav-list a:hover,.m-nav-list a:active{background:rgba(255,34,0,.06);color:var(--brand-500)}
.m-nav-cta{display:block;text-align:center;padding:14px;border-radius:9999px;background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,.75));color:#fff;font-weight:700;font-size:16px;text-decoration:none;box-shadow:0 8px 24px rgba(255,34,0,.25);margin-top:16px}
body.m-nav-open{overflow:hidden}
.h-cta{display:flex;align-items:center;gap:12px}
.h-ghost{
  color:var(--tx-sec);text-decoration:none;
  font-size:13.5px;font-weight:500;transition:var(--tran);
}
.h-ghost:hover{color:var(--tx-pri)}
.btn-cta{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 22px;border-radius:9999px;
  background:linear-gradient(135deg, var(--brand-500), rgba(255,34,0,0.7));color:#fff;
  font-size:13.5px;font-weight:600;text-decoration:none;
  border:none;cursor:pointer;transition:var(--tran);
  box-shadow:0 2px 12px rgba(255,34,0,.2);
}
.btn-cta:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(255,34,0,.3);background:linear-gradient(135deg, #E01E00, rgba(255,34,0,0.85))}
.btn-sub{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 22px;border-radius:9999px;
  background:rgba(255,34,0,.06);color:var(--brand-500);
  font-size:13.5px;font-weight:600;text-decoration:none;
  border:1px solid rgba(255,34,0,.2);transition:var(--tran);
}
.btn-sub:hover{background:rgba(255,34,0,.12);border-color:rgba(255,34,0,.35)}

/* ==========================================================================
   PAGE VIEWS
   ========================================================================== */
.page-view{
  display:none;position:relative;z-index:1;
}
.page-view.active{display:block;animation:fadeIn .5s var(--ease)}
@keyframes fadeIn{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}
.page-view:first-of-type{margin-top:var(--header-h)}
[id^="prod-"]{scroll-margin-top:calc(var(--header-h) + 16px)}

/* ==========================================================================
   COMMON SECTION
   ========================================================================== */
.sec{padding:60px 32px;position:relative;z-index:1}
.sec-tight{padding:50px 32px}
.sec-inner{max-width:var(--max-w);margin:0 auto}
.sec-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12.5px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;margin-bottom:16px;
}
.eb-brand{color:var(--brand-500)}
.eb-blue{color:var(--ac-blue)}
.eb-purple{color:var(--ac-purple)}
.eb-orange{color:var(--ac-orange)}
.sec-tit{
  font-size:46px;font-weight:800;letter-spacing:-.025em;
  line-height:1.15;margin-bottom:16px;
}
.sec-desc{
  font-size:17px;color:var(--tx-sec);
  max-width:560px;line-height:1.7;margin-bottom:48px;
}
.sec-sep{border-top:1px solid var(--bd-subtle)}
.gradient-text{
  background:linear-gradient(135deg, var(--brand-500) 0%, rgba(255,34,0,0.4) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}

/* ==========================================================================
   SCROLL ANIMATIONS — Staggered
   ========================================================================== */
.fade-up{
  opacity:0;transform:translateY(20px);
  transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.fade-up.vis{opacity:1;transform:none}
.fade-up.d1{transition-delay:0s}
.fade-up.d2{transition-delay:.03s}
.fade-up.d3{transition-delay:.06s}
.fade-up.d4{transition-delay:.09s}
.fade-up.d5{transition-delay:.12s}
.fade-up.d6{transition-delay:.15s}

/* ==========================================================================
   HERO (homepage)
   ========================================================================== */
.hero-wrap{
  min-height:calc(100vh - var(--header-h));
  display:flex;align-items:center;padding:20px 32px 60px;
  position:relative;
}
.hero-grid{
  max-width:var(--max-w);margin:0 auto;width:100%;
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;
}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 16px;border-radius:9999px;
  background:#FFF0ED;border:1px solid #FFD4CC;
  font-size:13px;font-weight:600;color:var(--brand-600);
  margin-bottom:24px;
}
.badge-dot{width:6px;height:6px;border-radius:50%;background:var(--brand-500);animation:pulse 2.5s ease infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.hero-txt h1{
  font-size:56px;font-weight:800;letter-spacing:-.03em;
  line-height:1.1;margin-bottom:20px;
}
.hero-txt .hero-sub{
  font-size:18px;color:var(--tx-sec);
  line-height:1.7;margin-bottom:36px;max-width:480px;
}
.hero-btns{display:flex;gap:12px;margin-bottom:44px}
.hero-data{
  display:flex;gap:40px;
  padding-top:28px;border-top:1px solid var(--bd-subtle);
}
.hd-val{
  font-size:32px;font-weight:800;font-family:'Inter',sans-serif;
}
.hd-val.grv{background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.5));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hd-lbl{font-size:13px;color:var(--tx-ter);margin-top:4px}

/* Social proof */
.social-proof{
  display:flex;align-items:center;gap:16px;margin-top:32px;
}
.avatar-stack{display:flex}
.avatar-stack span{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;
  border:2px solid #fff;margin-left:-8px;font-size:14px;
  overflow:hidden;flex-shrink:0;
}
.avatar-stack span:first-child{margin-left:0}
.avatar-stack .av-img{padding:0;background:#fff}
.avatar-stack .av-img img{width:100%;height:100%;object-fit:cover}
.avatar-stack .av-text{
  background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.6));
  color:#fff;font-size:7.5px;font-weight:800;line-height:1.2;
  text-align:center;letter-spacing:.3px;
}
.sp-stars{color:#f59e0b;font-size:13px;letter-spacing:1px}
.sp-text{font-size:12.5px;color:var(--tx-ter)}

/* Hero Visual — Isometric Ecosystem Diagram */
.hero-vis{position:relative;display:flex;align-items:center;justify-content:center}
.hero-vis img{
  width:100%;max-width:580px;height:auto;
  border-radius:var(--r-xl);
  transition:transform .4s var(--ease);
}
.hero-vis img:hover{transform:scale(1.02)}

/* Floating stat cards */
.hero-fcard{
  position:absolute;border-radius:var(--r-xl);
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.9);
  padding:14px 18px;box-shadow:0 8px 32px rgba(0,0,0,.08);
  display:flex;align-items:center;gap:10px;
  animation:floatA 4s ease-in-out infinite;
  z-index:3;pointer-events:none;
  will-change:transform;
}
.hfc-1{top:8%;left:-50px;animation-delay:0s}
.hfc-2{top:38%;right:-58px;animation-delay:1.5s}
.hfc-3{bottom:15%;left:-40px;animation-delay:.8s}
.hfc-icon-s{font-size:22px}
.hfc-label{font-size:13px;font-weight:700;color:var(--tx-pri);white-space:nowrap}
@keyframes floatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* Scroll indicator */
.scroll-ind{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:6px;z-index:2;
}
.scroll-mouse{
  width:22px;height:34px;border:2px solid #cbd5e1;
  border-radius:12px;display:flex;justify-content:center;padding-top:6px;
}
.scroll-dot{
  width:4px;height:8px;background:#94a3b8;border-radius:4px;
  animation:scrollBounce 1.6s ease infinite;
}
@keyframes scrollBounce{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(8px);opacity:.4}}
.scroll-lbl{font-size:11px;color:var(--tx-ter)}

/* ==========================================================================
   LOGO CAROUSEL — 3-row infinite horizontal scroll
   ========================================================================== */
.logo-bar{
  border-top:1px solid var(--bd-subtle);
  border-bottom:1px solid var(--bd-subtle);
  padding:48px 0;overflow:hidden;position:relative;
}
.logo-bar-inner{max-width:var(--max-w);margin:0 auto;text-align:center;padding:0 32px}
.logo-bar-lbl{
  font-size:12.5px;color:var(--tx-ter);
  letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:36px;font-weight:500;
}
/* Carousel tracks */
.logo-track-wrap{position:relative;overflow:hidden}
.logo-track-wrap+.logo-track-wrap{margin-top:20px}
.logo-track{
  display:flex;gap:36px;align-items:center;width:max-content;
  will-change:transform;
}
.logo-track.t1{animation:logoScroll1 50s linear infinite}
.logo-track.t2{animation:logoScroll2 55s linear infinite}
.logo-track.t3{animation:logoScroll1 45s linear infinite}
.logo-track-img{
  height:38px;width:auto;max-width:120px;
  object-fit:contain;opacity:.55;
  transition:opacity .3s var(--ease),transform .3s var(--ease);
  filter:grayscale(1);flex-shrink:0;
}
.logo-track-img:hover{opacity:1;filter:grayscale(0);transform:translateY(-2px)}
@keyframes logoScroll1{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes logoScroll2{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}

/* ==========================================================================
   PRO CARD — Vioo-style feature cards
   ========================================================================== */
.prod-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.prod-card{
  border-radius:var(--r-2xl);background:var(--bg-card);
  border:1px solid var(--bd-subtle);padding:32px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s ease-out;
  position:relative;overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transform:translateZ(0);backface-visibility:hidden;
}
.prod-card::before{
  content:'';position:absolute;top:0;left:24px;right:24px;height:3px;
  border-radius:0 0 4px 4px;
  background:var(--grad-cta);opacity:0;transition:opacity .35s var(--ease);
}
.prod-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 60px rgba(0,0,0,.08);
  border-color:transparent;
}
.prod-card:hover::before{opacity:1}
/* .pc-ico{
  width:52px;height:52px;border-radius:var(--r-lg);
  display:flex;align-items:center;justify-content:center;
  font-size:24px;margin-bottom:20px;
} */
.pc-ico{
  width:52px;height:52px;border-radius:var(--r-lg);
  display:flex;align-items:center;justify-content:center;
  font-size:24px;margin-bottom:20px;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}
.znsy{
  background-image:url("https://app.2dfire.com/website/home/znsy-c.png");
}
.prod-card:hover .znsy{
  background-image:url("https://app.2dfire.com/website/home/znsy.png");
}
.smdc{
  background-image:url("https://app.2dfire.com/website/home/smdc-c.png");
}
.prod-card:hover .smdc{
  background-image:url("https://app.2dfire.com/website/home/smdc.png");
}
.hyyx{background-image:url("https://app.2dfire.com/website/home/hyyx-c.png")}
.znbb{background-image:url("https://app.2dfire.com/website/home/znbb-c.png")}
.pdqd{background-image:url("https://app.2dfire.com/website/home/pdqd-c.png")}
.yd{background-image:url("https://app.2dfire.com/website/home/yd-c.png")}
.xcxwm{background-image:url("https://app.2dfire.com/website/home/xcxwm-c.png")}
.xssc{background-image:url("https://app.2dfire.com/website/home/xssc-c.png")}
.hcgl{background-image:url("https://app.2dfire.com/website/home/hcgl-c.png")}
.gylgl{background-image:url("https://app.2dfire.com/website/home/gylgl-c.png")}
.jtgl{background-image:url("https://app.2dfire.com/website/home/jtgl-c.png")}
.zhsq{background-image:url("https://app.2dfire.com/website/home/zhsq-c.png")}
.pdjh{background-image:url("https://app.2dfire.com/website/home/pdjh-c.png")}
.wmdj{background-image:url("https://app.2dfire.com/website/home/wmdj-c.png")}
.tgdj{background-image:url("https://app.2dfire.com/website/home/tgdj-c.png")}
.prod-card:hover .hyyx{background-image:url("https://app.2dfire.com/website/home/hyyx.png")}
.prod-card:hover .znbb{background-image:url("https://app.2dfire.com/website/home/znbb.png")}
.prod-card:hover .pdqd{background-image:url("https://app.2dfire.com/website/home/pdqd.png")}
.prod-card:hover .yd{background-image:url("https://app.2dfire.com/website/home/yd.png")}
.prod-card:hover .xcxwm{background-image:url("https://app.2dfire.com/website/home/xcxwm.png")}
.prod-card:hover .xssc{background-image:url("https://app.2dfire.com/website/home/xssc.png")}
.prod-card:hover .hcgl{background-image:url("https://app.2dfire.com/website/home/hcgl.png")}
.prod-card:hover .gylgl{background-image:url("https://app.2dfire.com/website/home/gylgl.png")}
.prod-card:hover .jtgl{background-image:url("https://app.2dfire.com/website/home/jtgl.png")}
.prod-card:hover .zhsq{background-image:url("https://app.2dfire.com/website/home/zhsq.png")}
.prod-card:hover .pdjh{background-image:url("https://app.2dfire.com/website/home/pdjh.png")}
.prod-card:hover .wmdj{background-image:url("https://app.2dfire.com/website/home/wmdj.png")}
.prod-card:hover .tgdj{background-image:url("https://app.2dfire.com/website/home/tgdj.png")}
.pc-ico.gn{background-color:#FFD4CC}
.pc-ico.bl{background-color:#EDE8FF}
.pc-ico.pu{background-color:#f3e8ff}
.pc-ico.pk{background-color:#fce7f3}
.pc-ico.or{background-color:#fff7ed}
.pc-ico.cy{background-color:#FFD4CC}
.pc-name{font-size:18px;font-weight:700;margin-bottom:8px}
.pc-desc{font-size:13.5px;color:var(--tx-ter);line-height:1.65;margin-bottom:16px}
.pc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.pc-tag{
  padding:4px 12px;border-radius:9999px;
  font-size:11.5px;font-weight:500;
  background:var(--bg-card-hover);color:var(--tx-ter);
  border:1px solid var(--bd-subtle);
}
.pc-lnk{
  color:var(--brand-500);text-decoration:none;font-size:13.5px;
  font-weight:600;display:inline-flex;align-items:center;gap:4px;
  transition:var(--tran);
}
.pc-lnk:hover{gap:8px;cursor:pointer}

/* ==========================================================================
   SOLUTIONS
   ========================================================================== */
.sol-tabs{
  display:flex;justify-content:center;gap:6px;margin:20px 0 40px;
}
.sol-tabs-inner{
  display:inline-flex;flex-wrap:nowrap;justify-content:center;gap:6px;
  width:max-content;max-width:100%;border-radius:9999px;
  background:var(--bg-card);border:1px solid var(--bd-subtle);
  padding:6px;box-shadow:0 1px 4px rgba(0,0,0,.04);
}
.sol-tab{
  flex-shrink:0;padding:10px 28px;border-radius:9999px;
  font-size:14.5px;font-weight:500;
  color:var(--tx-ter);cursor:pointer;
  transition:var(--tran);border:none;background:none;
  white-space:nowrap;
}
.sol-tab.active{
  background:var(--brand-500);color:#fff;font-weight:600;
  box-shadow:0 2px 8px rgba(255,34,0,.25);
}
.sol-tab:hover:not(.active){background:rgba(0,0,0,.04);color:var(--tx-pri)}
.sol-pane{display:none;animation:fadeIn .4s var(--ease)}
.sol-pane.active{display:block}
.sol-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.sol-plist{display:flex;flex-direction:column;gap:12px}
.sol-pain{
  display:flex;gap:12px;align-items:flex-start;
  padding:16px 20px;border-radius:var(--r-lg);
  background:var(--bg-card);border:1px solid var(--bd-subtle);
  box-shadow:0 1px 2px rgba(0,0,0,.02);
}
.sol-p-ico{
  width:28px;height:28px;border-radius:8px;
  background:#fce7f3;display:flex;align-items:center;
  justify-content:center;font-size:12px;flex-shrink:0;color:#db2777;
}
.sol-p-txt{font-size:13.5px;color:var(--tx-sec);line-height:1.55}
.sol-vis{
  border-radius:var(--r-2xl);text-align:center;
  min-height:400px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
}
.zcjjfa{
  background-image:url("https://assets.2dfire.com/frontend/c42dd7bf0d996aae32b085bc0706f230.png");
}
.kcjjfa{
  background-image:url("https://assets.2dfire.com/frontend/ccaaf5cbbd32c971bd35b2bc8b2ff53c.png");
}

.zzcjjfa{
  background-image:url("https://assets.2dfire.com/frontend/8711608c8923a0b43f25eebd1cfa775c.png");
}
.hgjjfa{background-image:url("https://assets.2dfire.com/frontend/30a1d62fd1b420606eba63cad96f71df.png");}
.tsjjfa{background-image:url("https://assets.2dfire.com/frontend/81d000ba6b9e61be50dcfe120985a1db.png");}
.cyjjfa{background-image:url("https://assets.2dfire.com/frontend/29b8d6338909fabe2c0aa6661ccfca45.png");}
.xdjjfa{background-image:url("https://assets.2dfire.com/frontend/c5695e8a67a4741821e0f979cf749c54.png");}
.dsjjfa{background-image:url("https://assets.2dfire.com/frontend/0e045f56d7341e62388b0aff2602330c.png");}
.lsjjfa{background-image:url("https://assets.2dfire.com/frontend/2a5904f370cfca6d7f82e354d453205a.png");}
.sqjjfa{background-image:url("https://assets.2dfire.com/frontend/1bcd7530a1568102d2549745bb88576f.png");}


.sv-rest{background:linear-gradient(135deg,#FFF0ED,#EDE8FF);border:1px solid #FFD4CC}
.sv-fast{background:linear-gradient(135deg,#fff7ed,#fce7f3);border:1px solid #fed7aa}
.sv-tea{background:linear-gradient(135deg,#ecfdf5,#FFF0ED);border:1px solid #a7f3d0}
.sv-pot{background:linear-gradient(135deg,#fce7f3,#f3e8ff);border:1px solid #f9a8d4}
.sv-snk{background:linear-gradient(135deg,#f3e8ff,#EDE8FF);border:1px solid #d8b4fe}
.sv-icon{font-size:56px;margin-bottom:16px}
.sv-tit{font-size:22px;font-weight:800;margin-bottom:10px}
.sv-flow{font-size:13px;color:var(--tx-ter);display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.sv-step{
  padding:5px 14px;border-radius:9999px;
  background:var(--bg-card);font-weight:500;
  border:1px solid var(--bd-subtle);
}
.sv-arr{color:var(--tx-ter)}

/* ==========================================================================
   RESULTS — Metric Cards
   ========================================================================== */
.res-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.res-card{
  border-radius:var(--r-2xl);background:var(--bg-card);
  border:1px solid var(--bd-subtle);padding:32px 20px;text-align:center;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transform:translateZ(0);backface-visibility:hidden;
}
.res-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.res-val{
  font-size:44px;font-weight:900;font-family:'Inter',sans-serif;
  letter-spacing:-.03em;margin-bottom:8px;
}
.rv-gn{background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.4));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.rv-bl{background:linear-gradient(135deg,rgba(255,34,0,0.5),var(--brand-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.rv-pu{background:linear-gradient(135deg,rgba(255,34,0,0.8),rgba(255,34,0,0.4));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.rv-or{background:linear-gradient(135deg,rgba(255,34,0,0.6),rgba(255,34,0,0.2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.res-lbl{font-size:14px;color:var(--tx-ter);font-weight:500}

/* ==========================================================================
   CASE SHOWCASE — keruyun-style left-image + right-text with background
   ========================================================================== */
.case-showcase{
  position:relative;margin-top:32px;
  border-radius:var(--r-2xl);overflow:hidden;
  background:linear-gradient(135deg,#FFF0ED 0%,#EDE8FF 50%,#FDE8E8 100%);
  border:1px solid rgba(255,34,0,.1);
}
.case-showcase::before{
  content:'';position:absolute;top:-20%;right:-5%;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,34,0,.06) 0%,transparent 70%);
  pointer-events:none;
}
.case-panel{display:none;grid-template-columns:1fr 1fr;min-height:440px;align-items:center}
.case-panel.active{display:grid}
.case-visual{
  display:flex;align-items:center;justify-content:center;
  padding:40px;position:relative;
}
.case-visual img{
  max-width:100%;height:300px;width:auto;
  border-radius:36px;
  object-fit:contain;
  background:rgba(255,255,255,.7);
  box-shadow:0 4px 24px rgba(0,0,0,.04);
}
.case-visual-fallback{
  width:220px;height:160px;border-radius:var(--r-xl);
  background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.4));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:22px;font-weight:800;letter-spacing:.04em;
  box-shadow:0 8px 32px rgba(255,34,0,.2);
}
.case-content{
  padding:48px 56px 48px 0;
  display:flex;flex-direction:column;justify-content:center;
}
.case-brand-name{
  font-size:34px;font-weight:800;letter-spacing:-.025em;
  margin-bottom:20px;color:var(--tx-pri);
}
.case-metrics-row{display:flex;gap:40px;margin-bottom:22px}
.case-metric-item{}
.case-metric-val{
  font-size:38px;font-weight:900;font-family:'Inter',sans-serif;
  letter-spacing:-.035em;
  background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.4));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.case-metric-lbl{font-size:12.5px;color:var(--tx-ter);margin-top:4px}
.case-desc-text{
  font-size:15px;color:var(--tx-sec);line-height:1.75;
  margin-bottom:24px;max-width:440px;
}
.case-cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 24px;border-radius:9999px;
  background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.5));
  color:#fff;font-size:13.5px;font-weight:600;
  border:none;cursor:pointer;transition:var(--tran);
  text-decoration:none;width:fit-content;
  box-shadow:0 2px 12px rgba(255,34,0,.2);
}
.case-cta:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(255,34,0,.3)}
.case-nav-dots{
  display:flex;justify-content:center;gap:8px;margin-top:28px;
}
.case-nav-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--bd-hover);transition:all .3s var(--ease);
  cursor:pointer;
}
.case-nav-dot.active{background:var(--brand-500);transform:scale(1.3)}

/* ==========================================================================
   PARTNER CTA CARD
   ========================================================================== */
.partner-wrap{padding:100px 32px}
.partner-card{
  max-width:var(--max-w);margin:0 auto;
  border-radius:var(--r-2xl);padding:60px;
  background:linear-gradient(135deg,#FFF0ED,#EDE8FF);
  border:1px solid #FFD4CC;
  display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
  position:relative;overflow:hidden;
}
.partner-card::before{
  content:'';position:absolute;top:-30%;right:-10%;
  width:320px;height:320px;
  background:radial-gradient(circle,rgba(255,34,0,.08) 0%,transparent 60%);
  pointer-events:none;
}
.pc-tit{font-size:36px;font-weight:800;letter-spacing:-.02em;margin-bottom:16px}
.pc-desc{font-size:16px;color:var(--tx-sec);line-height:1.7;margin-bottom:24px}
.pc-models{display:flex;flex-direction:column;gap:12px}
.pc-model{
  padding:18px 22px;border-radius:var(--r-lg);
  background:var(--bg-card);border:1px solid var(--bd-subtle);
  transition:var(--tran);box-shadow:0 1px 2px rgba(0,0,0,.02);
}
.pc-model:hover{transform:translateX(6px);box-shadow:0 8px 24px rgba(0,0,0,.04)}
.pc-m-name{font-size:15px;font-weight:600;margin-bottom:3px}
.pc-m-desc{font-size:12.5px;color:var(--tx-ter)}

/* Partner Models — 3-Column Horizontal Layout */
.partner-models-h{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.pmh-card{
  display:flex;align-items:center;gap:20px;
  background:var(--bg-card);border:1px solid var(--bd-subtle);
  border-radius:var(--r-2xl);padding:32px 24px;
  transition:var(--tran);position:relative;overflow:hidden;
  min-height:220px;
}
.pmh-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--brand-500),rgba(255,34,0,.3));
  border-radius:0 2px 2px 0;opacity:0;transition:opacity .2s;
}
.pmh-card:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(0,0,0,.06);border-color:rgba(255,34,0,.15)}
.pmh-card:hover::before{opacity:1}
.pmh-icon{
  width:60px;height:60px;
  display:flex;align-items:center;justify-content:center;
  font-size:28px;flex-shrink:0;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}
.qydls{
  background-image:url("https://assets.2dfire.com/frontend/636fb1968cbe546fe5bff305b2d22cb6.png");
}
.pmh-card:hover .qydls{
  background-image:url("https://assets.2dfire.com/frontend/b5d82075e021ad71a056748273dab5d3.png");
}
.hyhzhb{
  background-image:url("https://assets.2dfire.com/frontend/8f145c6847e655bd69eaefe17c5c28b7.png");
}
.pmh-card:hover .hyhzhb{
  background-image:url("https://assets.2dfire.com/frontend/6dec46f051faa2679da393b1875f3b47.png");
}
.jshzhb{
  background-image:url("https://assets.2dfire.com/frontend/a796b8144d8de730b4fc496adfa5b13b.png");
}
.pmh-card:hover .jshzhb{
  background-image:url("https://assets.2dfire.com/frontend/d5a3793c36ae55605a7036d0fce57ded.png");
}
.pmh-icon.pmh-gn{background:rgba(16,185,129,.08)}
.pmh-icon.pmh-bl{background:rgba(59,130,246,.08)}
.pmh-icon.pmh-pu{background:rgba(139,92,246,.08)}
.pmh-body{flex:1;min-width:0}
.pmh-name{font-size:17px;font-weight:700;color:var(--tx-pri);margin-bottom:6px}
.pmh-desc{font-size:13.5px;color:var(--tx-sec);line-height:1.65;margin-bottom:12px}
.pmh-tags{display:flex;gap:6px;flex-wrap:wrap}
.pmh-tag{
  padding:3px 10px;border-radius:9999px;font-size:11.5px;font-weight:500;
  background:rgba(255,34,0,.05);color:var(--brand-500);border:1px solid rgba(255,34,0,.1);
}

/* Tighter section spacing — partner / news / about pages */
#page-partner .sec,#page-about .sec{padding:50px 32px}
#page-news .sec{padding:88px 32px 50px}
#page-partner .partner-wrap,#page-news .partner-wrap,#page-about .partner-wrap{padding:50px 32px}
#page-solution .sec,#page-solution .partner-wrap{padding:50px 32px}
/* Solution page sub-hero tightened — half the vertical spacing */
#page-solution .sub-hero{padding:55px 32px 20px}
#page-solution .sub-hero p{margin-bottom:16px}
#page-solution .sub-hero + .sec{padding-top:25px}
/* Remove separator lines between about page modules */
#page-about .sec-sep{border-top:none}

/* ==========================================================================
   NEWS
   ========================================================================== */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.news-card{
  border-radius:var(--r-2xl);background:var(--bg-card);
  border:1px solid var(--bd-subtle);padding:28px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transform:translateZ(0);backface-visibility:hidden;
  cursor:pointer;
}
.news-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.news-tag{display:inline-block;padding:4px 12px;border-radius:9999px;font-size:11.5px;font-weight:600;margin-bottom:14px}
.nt-in{background:#FFF0ED;color:var(--brand-600)}
.nt-pr{background:#fff7ed;color:var(--ac-orange)}
.nt-md{background:#f3e8ff;color:var(--ac-purple)}
.news-tit{font-size:16px;font-weight:700;line-height:1.5;margin-bottom:8px}
.news-exc{font-size:13px;color:var(--tx-ter);line-height:1.65;margin-bottom:12px}
.news-date{font-size:12px;color:var(--tx-ter)}

/* ==========================================================================
   DOWNLOADS
   ========================================================================== */
.dl-sec{padding:88px 0 24px}
.dl-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.dl-title{font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--tx-pri)}
.dl-sub{font-size:14px;color:var(--tx-ter);margin-top:6px}
.dl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.dl-card{
  border-radius:20px;background:var(--bg-card);
  border:1px solid var(--bd-subtle);padding:16px;
  display:flex;flex-direction:column;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transform:translateZ(0);backface-visibility:hidden;
}
.dl-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.dl-top{display:flex;gap:14px;align-items:flex-start;width:100%}
.dl-ico-img{width:56px;height:56px;border-radius:12px;object-fit:cover;flex-shrink:0}
.dl-info{flex:1;min-width:0}
.dl-name-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}
.dl-name{font-size:16px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dl-desc{font-size:12px;color:var(--tx-ter);line-height:1.5;margin-bottom:8px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.dl-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dl-ver{
  display:inline-block;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:600;
  background:#FFF0ED;color:var(--brand-600);
}
.dl-date{font-size:11.5px;color:var(--tx-ter)}
.dl-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  background:var(--brand-600);color:#fff;border-radius:9999px;
  padding:5px 14px;font-size:12px;font-weight:600;text-decoration:none;
  flex-shrink:0;
  transition:background .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);
  box-shadow:0 4px 14px rgba(214,25,32,.18);
}
.dl-btn:hover{background:var(--brand-700);transform:translateY(-2px);box-shadow:0 8px 22px rgba(214,25,32,.28)}
.dl-divider{height:1px;background:var(--bd-subtle);margin:10px 0 10px;width:100%}
.dl-bottom{display:flex;align-items:center;gap:16px;width:100%}
.dl-qr{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0}
.dl-qr-img{width:64px;height:64px;border-radius:8px;display:block}
.dl-qr-txt{font-size:11px;color:var(--tx-ter)}
.dl-update{
  flex:1;min-width:0;align-self:stretch;
  border-left:1px dashed var(--bd-subtle);padding-left:16px;
  display:flex;flex-direction:column;justify-content:center;
}
.dl-update-lb{font-size:11px;font-weight:700;color:var(--tx-sec);letter-spacing:.02em}
.dl-update-tx{font-size:12px;color:var(--tx-ter);line-height:1.55;margin-top:4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dl-update-tx.empty{color:rgba(0,0,0,.28)}

/* ==========================================================================
   FOOTER
   ========================================================================== */
#global-footer{
  border-top:1px solid var(--bd-subtle);
  padding:64px 32px 32px;
  position:relative;z-index:1;background:#fff;
}
.ft-inner{max-width:var(--max-w);margin:0 auto}
.ft-grid{display:grid;grid-template-columns:1.8fr 1.1fr 0.9fr 0.8fr 0.9fr 3fr;gap:28px;margin-bottom:44px}
.ft-brand p{font-size:13.5px;color:var(--tx-ter);line-height:1.65;margin-top:12px;max-width:240px}
.ft-col h4{font-size:12.5px;font-weight:600;color:var(--tx-sec);margin-bottom:16px;letter-spacing:.04em;text-transform:uppercase}
.ft-col a{display:block;color:var(--tx-ter);text-decoration:none;font-size:13.5px;margin-bottom:10px;transition:var(--tran);cursor:pointer}
.ft-col a:hover{color:var(--brand-500)}
.ft-col .ft-ico{width:16px;height:16px;vertical-align:-3px;margin-right:7px;border-radius:3px;display:inline-block}
.ft-col .ft-txt{display:block;font-size:13.5px;color:var(--tx-ter);margin-bottom:10px;line-height:1.55}
.ft-qr{display:flex;flex-direction:column;gap:14px}
.ft-qr-item{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.ft-qr-item img{width:104px;height:104px;border-radius:12px;border:1px solid var(--bd-subtle);object-fit:cover;background:#fff}
.ft-qr-item span{font-size:12.5px;color:var(--tx-ter)}
.ft-contact a,.ft-contact .ft-txt{white-space:nowrap}
.ft-shop{display:flex;align-items:center;white-space:nowrap;margin-bottom:2px}
.ft-shop>span{margin-right:6px;font-size:13.5px;color:var(--tx-ter)}
.ft-shop a{display:inline-flex;align-items:center;color:var(--brand-500);font-weight:600;margin-bottom:0}
.ft-shop a+a{margin-left:10px}
.ft-shop a:hover{color:#d61920;text-decoration:underline}
.ft-bottom a{color:var(--tx-ter);text-decoration:none;transition:var(--tran)}
.ft-bottom a:hover{color:var(--brand-500)}
.ft-bottom{
  border-top:1px solid var(--bd-subtle);
  padding-top:24px;display:flex;justify-content:center;text-align:center;
  font-size:12.5px;color:var(--tx-ter);
}
.ft-sol-link{position:relative}
.ft-sol-link .ft-sol-pop{
  position:absolute;left:calc(100% + 16px);top:50%;
  transform:translateY(-50%) scale(.92);
  background:#fff;border-radius:14px;padding:14px 14px 11px;
  box-shadow:0 16px 48px rgba(0,0,0,.18),0 2px 12px rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.06);
  width:148px;text-align:center;z-index:130;
  opacity:0;visibility:hidden;
  transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;
}
.ft-sol-link:hover .ft-sol-pop,.ft-sol-link:focus-within .ft-sol-pop{
  opacity:1;visibility:visible;transform:translateY(-50%) scale(1)
}
.ft-sol-pop img{width:120px;height:120px;display:block;margin:0 auto 9px;border-radius:8px;background:#fff}
.ft-sol-pop-tit{font-size:12.5px;font-weight:700;color:var(--tx-pri);line-height:1.4}
@media (max-width:1024px){
  .ft-sol-link .ft-sol-pop{left:0;right:auto;top:auto;bottom:calc(100% + 10px);transform:translateY(6px)}
  .ft-sol-link:hover .ft-sol-pop,.ft-sol-link:focus-within .ft-sol-pop{transform:translateY(0)}
}

/* ==========================================================================
   FLOATING CONTACT
   ========================================================================== */
.float-contact{
  position:fixed;right:0;top:50%;transform:translateY(-50%);
  z-index:999;display:flex;flex-direction:column;
  width:94px;background:#fff;border-radius:16px 0 0 16px;
  box-shadow:-4px 0 28px rgba(0,0,0,.1),0 8px 32px rgba(0,0,0,.08);
  border:1px solid var(--bd-subtle);border-right:none;
  overflow:visible;
}
.float-btn{
  display:flex;flex-direction:column;align-items:center;gap:7px;
  text-decoration:none;
  width:100%;padding:17px 8px 16px;cursor:pointer;border:none;background:transparent;
  transition:background .25s var(--ease),color .25s var(--ease);position:relative;
  border-bottom:1px solid rgba(0,0,0,.05);color:var(--tx-pri);
}
.float-btn:last-child{border-bottom:none}
.float-btn .float-ico{
  width:25px;height:25px;display:flex;align-items:center;justify-content:center;
  font-size:22px;transition:transform .25s var(--ease);
}
.float-btn .float-lbl{font-size:12.5px;font-weight:600;letter-spacing:.2px}
.float-btn:hover{background:linear-gradient(180deg,rgba(255,34,0,.09),rgba(255,34,0,.03))}
.float-btn:hover .float-ico{transform:scale(1.12)}
.float-btn:active{transform:scale(.98)}
.float-btn.fb-chat .float-ico{color:var(--brand-500)}
.float-btn.fb-wx .float-ico{color:#07C160}
.float-btn.fb-store .float-ico{color:var(--brand-500)}
.float-btn.fb-ph .float-ico{color:var(--brand-500)}
.float-tel{font-size:11px;color:var(--brand-500);font-weight:700;letter-spacing:.1px;white-space:nowrap}
.float-btn.fb-top .float-ico{color:var(--tx-ter)}
.float-btn.fb-top{border-top:1px solid rgba(0,0,0,.05)}
.float-tip{display:none}
/* 微信二维码浮层（marketingforce 风格气泡卡片） */
.wx-pop{
  position:absolute;right:calc(100% + 16px);top:50%;
  transform:translateY(-50%) translateX(10px);
  width:182px;background:#fff;border-radius:16px;padding:18px 16px 14px;
  box-shadow:0 20px 56px rgba(0,0,0,.16);border:1px solid var(--bd-subtle);
  opacity:0;visibility:hidden;transition:all .28s cubic-bezier(.4,0,.2,1);
  z-index:1001;
}
.wx-pop::after{
  content:'';position:absolute;left:100%;top:50%;transform:translateY(-50%);
  border:9px solid transparent;border-left-color:#fff;
}
.wx-pop img{width:120px;height:120px;display:block;margin:0 auto 12px;border-radius:10px}
.wx-t1{font-size:13.5px;font-weight:700;color:var(--tx-pri);text-align:center}
.wx-t2{font-size:11px;color:var(--tx-ter);text-align:center;margin-top:4px}
.fb-wx:hover .wx-pop{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}
/* 移动端微信弹窗 */
.wx-dialog{max-width:340px;text-align:center;padding:36px 32px 30px}
.wx-dialog .wx-img{width:190px;height:190px;border-radius:16px;margin:0 auto 20px;display:block}

/* ==========================================================================
   SVG ICON SYSTEM (Lucide-style stroke icons)
   ========================================================================== */
[data-ico] svg{width:1em;height:1em;display:block}
.ico{display:inline-flex;vertical-align:-0.15em}
.ico svg{width:1em;height:1em}

/* ==========================================================================
   MOBILE BOTTOM BAR
   ========================================================================== */
.mob-bar{
  display:none;position:fixed;bottom:0;left:0;right:0;
  height:60px;background:rgba(255,255,255,.92);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--bd-subtle);
  z-index:1000;padding:8px 16px;
  transform:translateZ(0);will-change:transform;
}
.mob-inner{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;height:100%}
.mob-btn{
  display:flex;align-items:center;justify-content:center;gap:5px;
  border-radius:12px;font-size:13px;font-weight:600;
  text-decoration:none;border:none;cursor:pointer;color:var(--tx-sec);
}
.mob-btn.pri{background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.7));color:#fff}
.mob-btn.gho{background:rgba(255,34,0,.06);border:1px solid rgba(255,34,0,.2);color:var(--brand-500)}

/* ==========================================================================
   PAGE-SPECIFIC STYLES
   ========================================================================== */

/* Sub-page hero */
.sub-hero{
  padding:110px 32px 80px;text-align:center;
}
.sub-hero h1{font-size:48px;font-weight:800;letter-spacing:-.025em;margin-bottom:18px}
.sub-hero p{font-size:18px;color:var(--tx-sec);max-width:580px;margin:0 auto 32px;line-height:1.7}

/* Product detail */
.prod-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.prod-detail-grid:nth-child(even) .pd-vis{order:-1}
.pd-text{padding:24px 0}
.pd-badge{display:inline-block;padding:5px 14px;border-radius:9999px;font-size:12px;font-weight:600;margin-bottom:14px}
.pd-badge.gn{background:#FFF0ED;color:var(--brand-600)}
.pd-badge.bl{background:#EDE8FF;color:var(--ac-blue)}
.pd-badge.pu{background:#f3e8ff;color:var(--ac-purple)}
.pd-badge.pk{background:#fce7f3;color:var(--ac-pink)}
.pd-badge.or{background:#fff7ed;color:var(--ac-orange)}
.pd-badge.cy{background:#FFF0ED;color:var(--brand-600)}
.pd-name{font-size:30px;font-weight:800;margin-bottom:12px}
.pd-summary{font-size:16px;color:var(--tx-sec);line-height:1.7;margin-bottom:20px}
.pd-features{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.pd-feat{font-size:14px;color:var(--tx-sec);display:flex;align-items:flex-start;gap:10px}
.pd-feat::before{content:'✓';color:var(--brand-500);font-weight:700;flex-shrink:0}
.pd-vis{
  border-radius:var(--r-2xl);min-height:320px;
  display:flex;align-items:center;justify-content:center;
  padding:44px;text-align:center;
}
.pd-znsy{
  background-image: url('https://app.2dfire.com/website/product/pd-znsy.png');
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
}
.pd-smdc{
  background-image: url('https://app.2dfire.com/website/product/pd-smdc.png');
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
}
.pd-hyyx,.pd-znbb,.pd-pdqd,.pd-yd,.pd-xcxwm,.pd-xssc,.pd-hcgl,.pd-gylgl,.pd-jtgl,.pd-zhsq,.pd-pdjh,.pd-dqdwmdj,.pd-dqdtgdj{
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
}
.pd-hyyx{background-image:url('https://app.2dfire.com/website/product/pd-hyyx.png')}
.pd-znbb{background-image:url('https://app.2dfire.com/website/product/pd-znbb.png')}
.pd-pdqd{background-image:url('https://app.2dfire.com/website/product/pd-qdpd.png')}
.pd-yd{background-image:url('https://app.2dfire.com/website/product/pd-yd.png')}
.pd-xcxwm{background-image:url('https://assets.2dfire.com/frontend/abd696598ccb54e214034c02c83d473c.png')}
.pd-xssc{background-image:url('https://assets.2dfire.com/frontend/eb2ba09487c72a545b53ac2487200c0c.png')}
.pd-hcgl{background-image:url('https://app.2dfire.com/website/product/pd-hcgl.png')}
.pd-gylgl{background-image:url('https://app.2dfire.com/website/product/pd-gylgl.png')}
.pd-jtgl{background-image:url('https://app.2dfire.com/website/product/pd-jtgl.png')}
.pd-zhsq{background-image:url('https://app.2dfire.com/website/product/pd-zhsq.png')}
.pd-pdjh{background-image:url('https://app.2dfire.com/website/product/pd-pdhj.png')}
.pd-dqdwmdj{background-image:url('https://app.2dfire.com/website/product/pd-dqdwmdj.png')}
.pd-dqdtgdj{background-image:url('https://assets.2dfire.com/frontend/14313c87095361f0314215551ec30b4b.png')}
.pdv-gn{background:linear-gradient(135deg,#FFF0ED,#EDE8FF);border:1px solid #FFD4CC}
.pdv-bl{background:linear-gradient(135deg,#EDE8FF,#f3e8ff);border:1px solid #d8b4fe}
.pdv-pu{background:linear-gradient(135deg,#f3e8ff,#fce7f3);border:1px solid #e9d5ff}
.pdv-pk{background:linear-gradient(135deg,#fce7f3,#fff7ed);border:1px solid #fbcfe8}
.pdv-or{background:linear-gradient(135deg,#fff7ed,#fce7f3);border:1px solid #fed7aa}
.pdv-cy{background:linear-gradient(135deg,#FFF0ED,#ecfdf5);border:1px solid #bae0fd}
.pdv-icon{font-size:60px;margin-bottom:16px}
.pdv-tit{font-size:21px;font-weight:700;margin-bottom:6px}
.pdv-desc{font-size:13.5px;color:var(--tx-ter)}

/* Compare table */
.comp-wrap{overflow-x:auto}
.comp-table{width:100%;border-collapse:collapse;font-size:13.5px}
.comp-table th,.comp-table td{padding:12px 16px;text-align:center;border-bottom:1px solid var(--bd-subtle)}
.comp-table th{font-size:12px;font-weight:600;color:var(--tx-ter);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-card-hover)}
.comp-table td:first-child{text-align:left;font-weight:500;color:var(--tx-sec)}
.comp-table .chk{color:var(--brand-500);font-weight:700}
.comp-table .dash{color:var(--tx-ter)}

/* Solution page */
.sol-full-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:start}
.sol-feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sol-feat-card{
  padding:22px;border-radius:var(--r-lg);
  background:var(--bg-card);border:1px solid var(--bd-subtle);
  box-shadow:0 1px 2px rgba(0,0,0,.02);
  border-left: 3px solid rgba(255, 34, 0, .15);
}
.sol-feat-card h5{font-size:14.5px;font-weight:700;margin-bottom:4px}
.sol-feat-card p{font-size:13px;color:var(--tx-ter);line-height:1.55}
.sol-cat-label{font-size:14px;font-weight:700;color:var(--tx-sec);margin-bottom:12px;padding-left:4px;border-left:3px solid var(--brand-500);padding-left:10px}
.sol-brands{margin-top:28px;padding-top:22px;border-top:1px dashed rgba(0,0,0,.08)}
.sol-brands-tit{font-size:14px;font-weight:700;color:var(--tx-sec);margin-bottom:12px;border-left:3px solid var(--brand-500);padding-left:10px}
.brand-wall-section{margin-top:64px;padding-top:48px;border-top:1px solid var(--bd-subtle)}
.brand-wall-title{text-align:center;font-size:24px;font-weight:800;margin-bottom:36px}
.brand-wall-row{margin-bottom:24px}
.brand-wall-row:last-child{margin-bottom:0}
.bw-track{animation:logoScroll1 85s linear infinite}
.bw-track.rev{animation:logoScroll2 90s linear infinite}
.bw-track.slow{animation:logoScroll1 95s linear infinite}
.bw-track.rev-slow{animation:logoScroll2 80s linear infinite}
@media(max-width:768px){.bw-track,.bw-track.rev,.bw-track.slow,.bw-track.rev-slow{animation-duration:40s}}

/* Partner page */
.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.benefit-card{
  border-radius:var(--r-2xl);background:var(--bg-card);
  border:1px solid var(--bd-subtle);padding:28px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transform:translateZ(0);backface-visibility:hidden;
}
.benefit-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.benefit-ico{font-size:32px;margin-bottom:16px;width:32px;height:32px}
.benefit-tit{font-size:17px;font-weight:700;margin-bottom:6px}
.benefit-desc{font-size:13.5px;color:var(--tx-ter);line-height:1.6}

.process-row{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}
.process-step{text-align:center;padding:22px 28px}
.process-num{
  width:48px;height:48px;border-radius:50%;
  background:var(--grad-cta);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:800;margin:0 auto 12px;
}
.process-label{font-size:15px;font-weight:600;margin-bottom:4px}
.process-desc{font-size:12.5px;color:var(--tx-ter)}
.process-arrow{font-size:22px;color:var(--tx-ter);margin:0 6px}

/* FAQ */
.faq-item{border:1px solid var(--bd-subtle);border-radius:var(--r-lg);margin-bottom:8px;overflow:hidden}
.faq-q{
  padding:18px 24px;background:var(--bg-card);
  font-size:14.5px;font-weight:600;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;
  transition:var(--tran);
}
.faq-q:hover{background:var(--bg-card-hover)}
.faq-a{padding:0 24px;max-height:0;overflow:hidden;transition:max-height .35s var(--ease),padding .35s var(--ease)}
.faq-item.open .faq-a{padding:18px 24px;max-height:240px}
.faq-a p{font-size:14px;color:var(--tx-sec);line-height:1.7}

/* OpenAPI */
.api-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.api-card{
  border-radius:var(--r-2xl);background:var(--bg-card);
  border:1px solid var(--bd-subtle);padding:30px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transform:translateZ(0);backface-visibility:hidden;
}
.api-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.api-ico{font-size:32px;margin-bottom:16px;width: 32px;height: 32px;}
.api-tit{font-size:17px;font-weight:700;margin-bottom:8px}
.api-desc{font-size:13.5px;color:var(--tx-ter);line-height:1.6;margin-bottom:14px}
.api-tags{display:flex;flex-wrap:wrap;gap:6px}
.api-tag{padding:4px 12px;border-radius:9999px;font-size:11.5px;background:#FFF0ED;color:var(--brand-600)}

/* Integration flow */
.int-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:40px;position:relative}
.int-flow::before{content:'';position:absolute;top:48px;left:calc(10% + 24px);right:calc(10% + 24px);height:2px;background:repeating-linear-gradient(90deg,rgba(255,34,0,.2) 0,rgba(255,34,0,.2) 6px,transparent 6px,transparent 12px)}
.int-step{text-align:center;position:relative;padding:0 12px}
.int-step-num{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.6));color:#fff;font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;position:relative;z-index:1;box-shadow:0 4px 16px rgba(255,34,0,.2)}
.int-step-icon{text-align:center;font-size:32px;margin:0 auto 12px;}
.int-step-tit{font-size:15px;font-weight:700;margin-bottom:6px;color:var(--tx-pri)}
.int-step-desc{font-size:13px;color:var(--tx-ter);line-height:1.5}
.partner-brand-grid{display:flex;flex-wrap:nowrap;gap:14px;justify-content:center;margin-top:32px}
.partner-brand-card{background:var(--bg-card);border:1px solid var(--bd-subtle);border-radius:var(--r-xl);padding:22px 14px;text-align:center;min-width:0;flex:1;transition:var(--tran)}
.partner-brand-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.06);border-color:rgba(255,34,0,.2)}
a.partner-brand-card{display:block;text-decoration:none;color:inherit}
.partner-brand-logo{height:44px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.partner-brand-logo img{max-height:38px;max-width:150px;width:auto;height:auto;object-fit:contain}
.partner-brand-card.partner-logo-only{padding:22px 14px}
.partner-brand-name{font-size:16px;font-weight:800;margin-bottom:4px}
.partner-brand-desc{font-size:12px;color:var(--tx-ter)}
@media(max-width:768px){.int-flow{grid-template-columns:1fr 1fr;gap:24px}.int-flow::before{display:none}.open-hero-cards{grid-template-columns:repeat(2,1fr) !important}.partner-models-h{grid-template-columns:1fr}}

.code-block{
  border-radius:var(--r-2xl);overflow:hidden;
  background:#1e293b;border:1px solid #334155;
}
.code-header{padding:14px 22px;background:rgba(0,0,0,.2);display:flex;gap:7px}
.code-dot{width:10px;height:10px;border-radius:50%}
.cd-r{background:#ff5f57}.cd-y{background:#febc2e}.cd-g{background:#28c840}
.code-body{padding:24px;font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:13.5px;line-height:1.9;overflow-x:auto;color:#cbd5e1}
.code-body .kw{color:#a78bfa}
.code-body .fn{color:#60a5fa}
.code-body .str{color:#34d399}
.code-body .cm{color:#64748b;font-style:italic}

/* News filters */
.filter-tabs{display:flex;gap:8px;margin-bottom:36px;flex-wrap:wrap}
.filter-tab{
  padding:7px 18px;border-radius:9999px;
  background:transparent;color:var(--tx-sec);
  border:1px solid var(--bd-subtle);font-size:13.5px;
  font-weight:500;cursor:pointer;transition:var(--tran);
}
.filter-tab.active{background:#FFF0ED;border-color:#FFD4CC;color:var(--brand-600)}
.filter-tab:hover:not(.active){border-color:var(--bd-hover);color:var(--tx-pri)}

/* About */
.timeline-v{
  position:relative;margin-top:32px;
  padding:6px 0 2px;
}
.timeline-v::before{
  content:'';position:absolute;top:6px;bottom:6px;left:calc(88px + 9px);
  width:2px;border-radius:2px;
  background:linear-gradient(180deg,var(--brand-500) 0%,rgba(255,34,0,.35) 75%,rgba(255,34,0,.06) 100%);
}
.tlv-item{position:relative;display:flex;align-items:flex-start;padding:13px 0}
.tlv-year{
  flex-shrink:0;width:88px;text-align:right;padding-right:26px;
  font-size:15px;font-weight:800;letter-spacing:.5px;line-height:1.4;
  padding-top:5px;
  background:linear-gradient(135deg,var(--brand-500),rgba(214,25,32,.75));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.tlv-dot{
  position:absolute;left:calc(88px + 9px);top:21px;transform:translateX(-50%);
  width:12px;height:12px;border-radius:50%;background:#fff;
  border:3px solid var(--brand-500);
  box-shadow:0 0 0 4px rgba(255,34,0,.08);
  z-index:1;transition:background .3s var(--ease);
}
.tlv-card{
  flex:1;min-width:0;margin-left:24px;border-radius:14px;
  background:var(--bg-card);border:1px solid var(--bd-subtle);
  padding:12px 16px;position:relative;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.tlv-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--brand-500),rgba(255,34,0,.45));
  opacity:0;transition:opacity .3s var(--ease);
}
.tlv-item:hover .tlv-card{transform:translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,.07);border-color:#FFD4CC}
.tlv-item:hover .tlv-card::before{opacity:1}
.tlv-item:hover .tlv-dot{background:var(--brand-500)}
.tlv-event{font-size:13.5px;color:var(--tx-pri);line-height:1.6;font-weight:500}
.tlv-tag{
  display:inline-block;margin-left:8px;padding:1px 8px;border-radius:9999px;
  font-size:10.5px;font-weight:700;letter-spacing:.04em;vertical-align:2px;
  background:linear-gradient(135deg,var(--brand-500),rgba(214,25,32,.8));
  color:#fff;
}

.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.value-card{
  border-radius:var(--r-2xl);background:var(--bg-card);
  border:1px solid var(--bd-subtle);padding:30px;
  text-align:center;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transform:translateZ(0);backface-visibility:hidden;
}
.value-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.value-ico{font-size:40px;margin-bottom:16px;width: 40px; height: 40px;}
.value-tit{font-size:17px;font-weight:700;margin-bottom:6px}
.value-desc{font-size:13.5px;color:var(--tx-ter);line-height:1.6}

.loc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.loc-card{
  border-radius:var(--r-2xl);background:var(--bg-card);
  border:1px solid var(--bd-subtle);padding:26px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transform:translateZ(0);backface-visibility:hidden;
}
.loc-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.06)}
.loc-name{font-size:16px;font-weight:700;margin-bottom:4px}
.loc-addr{font-size:13px;color:var(--tx-ter);line-height:1.5}
.about-img{
  background:url('https://assets.2dfire.com/frontend/e80c76d2f0766ed98d06de2892c0d4c3.png');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media(max-width:1280px){
  #main-nav{gap:0}
  #main-nav a{padding:7px 11px;font-size:12.5px}
}
@media(max-width:1160px){
  .h-ghost{display:none}
}
@media(max-width:1024px){
  .hero-grid,.sol-grid{grid-template-columns:1fr}
  .hero-vis,.hero-stack,.hero-mockup{display:none}
  .hero-txt h1{font-size:42px}
  .prod-grid{grid-template-columns:repeat(2,1fr)}
  .news-grid{grid-template-columns:repeat(2,1fr)}
  .res-grid{grid-template-columns:repeat(2,1fr)}
  .partner-card{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:repeat(3,1fr)}
  .prod-detail-grid{grid-template-columns:1fr}
  .prod-detail-grid:nth-child(even) .pd-vis{order:0}
  .sol-full-grid{grid-template-columns:1fr}
  .benefit-grid,.api-grid{grid-template-columns:repeat(2,1fr)}
  .value-grid{grid-template-columns:repeat(2,1fr)}
  .loc-grid{grid-template-columns:repeat(2,1fr)}
  #main-nav{gap:0}
  #main-nav a{padding:7px 12px;font-size:12.5px}
  .logo-track-img{height:34px;max-width:105px}
  .case-panel{min-height:360px}
  .case-visual{padding:28px}
  .case-visual img{max-height:240px}
  .case-visual-fallback{width:180px;height:130px;font-size:18px}
  .case-content{padding:28px 36px 28px 0}
  .case-brand-name{font-size:28px;margin-bottom:14px}
  .case-metrics-row{gap:28px}
  .case-metric-val{font-size:30px}
  .case-desc-text{font-size:14px;max-width:360px}
}
@media(max-width:768px){
  #main-nav{display:none}
  .h-mnav-btn{display:flex}
  .h-cta{display:none}
  .res-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .res-val{font-size:34px}
  .sol-tabs.d1{max-width:100%;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}
  .sol-tabs.d1 .sol-tabs-inner{width:max-content;max-width:none}
  .sol-tabs.fade-up.d4{max-width:100%;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}
  .sol-tabs.fade-up.d4 .sol-tabs-inner{width:max-content;max-width:none}
  .ft-contact a,.ft-contact .ft-txt{white-space:normal}
  .loc-grid{grid-template-columns:1fr}
  .sol-feat-grid{grid-template-columns:1fr}

  .partner-brand-grid{flex-wrap:wrap;gap:10px}
  .partner-brand-card{flex:1 1 calc(33.333% - 10px);padding:14px 6px}
  .partner-brand-card.partner-logo-only{padding:14px 6px}
  .partner-brand-logo{height:36px;margin-bottom:8px}
  .partner-brand-logo img{max-height:30px;max-width:88px}
  .partner-brand-name{font-size:13px}
  .hero-txt h1{font-size:32px}
  .sec-tit{font-size:28px}
  .prod-grid,.news-grid,.dl-grid{grid-template-columns:1fr}
  .hero-data{gap:20px;flex-wrap:wrap}
  .hd-val{font-size:26px}
  .float-contact{display:none}
  .mob-bar{display:block}
  body{padding-bottom:60px}
  .ft-grid{grid-template-columns:repeat(2,1fr)}
  .sub-hero h1{font-size:34px}
  .process-row{flex-direction:column;gap:14px}
  .process-arrow{transform:rotate(90deg)}
  .hero-fcard{display:none}
  .logo-track-img{height:30px;max-width:90px}
  .logo-track{gap:24px}
  .logo-track.t1{animation-duration:30s}
  .logo-track.t2{animation-duration:35s}
  .logo-track.t3{animation-duration:28s}
  .case-panel{grid-template-columns:1fr;min-height:auto}
  .case-visual{padding:32px 32px 0}
  .case-visual img{max-height:180px}
  .case-visual-fallback{width:160px;height:110px;font-size:16px}
  .case-content{padding:24px 32px 32px}
  .case-brand-name{font-size:24px;margin-bottom:12px}
  .case-metrics-row{gap:24px}
  .case-metric-val{font-size:28px}
  .case-desc-text{font-size:13.5px}
  .timeline-v::before{left:11px}
  .tlv-item{flex-direction:column;align-items:flex-start;padding:12px 0 12px 30px}
  .tlv-year{width:auto;text-align:left;padding-right:0;padding-top:0;font-size:13.5px;margin-bottom:4px}
  .tlv-dot{left:11px;top:20px}
  .tlv-card{margin-left:0;width:100%}
}

/* ==========================================================================
   COOPERATION MODAL
   ========================================================================== */
.modal-overlay{
  position:fixed;inset:0;z-index:9999;
  background:rgba(0,0,0,.45);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .3s var(--ease);
  backdrop-filter:blur(4px);
}
.modal-overlay.open{opacity:1;pointer-events:auto}
.modal-dialog{
  background:#fff;border-radius:var(--r-2xl);
  width:90%;max-width:720px;max-height:85vh;overflow-y:auto;
  padding:40px 44px 32px;
  box-shadow:0 25px 80px rgba(0,0,0,.15);
  position:relative;
  transform:translateY(20px);
  transition:transform .35s var(--ease);
}
.modal-overlay.open .modal-dialog{transform:translateY(0)}
.modal-close{
  position:absolute;top:16px;right:20px;
  width:32px;height:32px;border-radius:50%;
  border:none;background:var(--bg-deep);
  font-size:18px;color:var(--tx-ter);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:var(--tran);
}
.modal-close:hover{background:#e5e7eb;color:var(--tx-pri)}
.modal-tit{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.modal-sub{font-size:14px;color:var(--tx-ter);margin-bottom:24px}
.modal-field{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.modal-field label{
  flex-shrink:0;width:80px;text-align:right;
  font-size:13.5px;font-weight:600;
  color:var(--tx-pri);
}
.modal-field label .req{color:#D61920;margin-left:2px}
.modal-field input,.modal-field textarea{
  flex:1;padding:10px 14px;border-radius:var(--r-md);
  border:1px solid var(--bd-hover);background:var(--bg-card);
  font-size:14px;color:var(--tx-pri);outline:none;
  font-family:inherit;transition:var(--tran);
  box-sizing:border-box;
}
.modal-field input:focus,.modal-field textarea:focus{
  border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(255,34,0,.1);
}
.modal-field.textarea-field{align-items:flex-start}
.modal-field.textarea-field textarea{resize:vertical;min-height:60px}
.modal-submit{
  width:100%;padding:13px;border-radius:9999px;
  background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.6));
  color:#fff;font-size:16px;font-weight:700;
  border:none;cursor:pointer;transition:var(--tran);
  margin-top:8px;box-shadow:0 4px 16px rgba(255,34,0,.2);
}
.modal-submit:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(255,34,0,.3)}
/* ==========================================================================
   WECHAT CTA MODAL (fly from right float bar)
   ========================================================================== */
.wx-cta{
  position:fixed;inset:0;z-index:3000;
  display:flex;align-items:center;justify-content:center;
  visibility:hidden;
}
.wx-cta-backdrop{
  position:absolute;inset:0;
  background:rgba(15,18,22,.45);
  backdrop-filter:blur(3px);
  opacity:0;transition:opacity .3s ease;
}
.wx-cta-card{
  position:relative;background:#fff;border-radius:20px;
  padding:36px 32px 30px;max-width:330px;width:calc(100vw - 48px);
  text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.28);
  opacity:0;transform:translate(45vw,0) scale(.15);
}
.wx-cta-card .wx-img{width:190px;height:190px;border-radius:16px;margin:0 auto 20px;display:block}
.wx-cta-t1{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.wx-cta-t2{font-size:13.5px;color:var(--tx-ter)}
.wx-cta.show{visibility:visible}
.wx-cta.show .wx-cta-backdrop{opacity:1}
.wx-cta.show .wx-cta-card{animation:wxCtaIn .45s cubic-bezier(.16,1,.3,1) forwards}
.wx-cta.out .wx-cta-card{animation:wxCtaOut .32s cubic-bezier(.55,0,.55,.2) forwards}
@keyframes wxCtaIn{
  from{opacity:0;transform:translate(45vw,0) scale(.15)}
  to{opacity:1;transform:translate(0,0) scale(1)}
}
@keyframes wxCtaOut{
  from{opacity:1;transform:translate(0,0) scale(1)}
  to{opacity:0;transform:translate(45vw,0) scale(.15)}
}
/* Large CTA button */
.cta-hero-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 40px;border-radius:9999px;
  background:linear-gradient(135deg,var(--brand-500),rgba(255,34,0,0.6));
  color:#fff;font-size:18px;font-weight:700;
  border:none;cursor:pointer;transition:var(--tran);
  box-shadow:0 8px 32px rgba(255,34,0,.25);
  text-decoration:none;
}
.cta-hero-btn:hover{transform:translateY(-3px);box-shadow:0 16px 48px rgba(255,34,0,.35)}
.cta-hero-tagline{
  font-size:15px;color:var(--tx-ter);margin-bottom:16px;
  display:flex;align-items:center;gap:8px;justify-content:center;
}
.cta-hero-tagline::before,.cta-hero-tagline::after{
  content:'';width:32px;height:1px;background:var(--bd-hover);
}

/* News modal */
.news-dialog{max-width:780px}
.news-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.news-article-title{font-size:24px;font-weight:800;line-height:1.4;margin-bottom:10px}
.news-article-date{font-size:13px;color:var(--tx-ter);margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--bd-subtle)}
.news-article-body h4{font-size:16px;font-weight:800;margin:24px 0 10px;color:var(--tx-pri)}
.news-article-body h4::before{content:'';display:inline-block;width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--brand-500),rgba(214,25,32,.75));margin-right:8px;vertical-align:-2px}
.news-article-body p{font-size:14.5px;color:var(--tx-sec);line-height:1.9;margin-bottom:12px;text-align:justify}
.news-article-body ul{margin:0 0 14px;padding-left:4px;list-style:none}
.news-article-body ul li{font-size:14.5px;color:var(--tx-sec);line-height:1.9;padding-left:18px;position:relative;margin-bottom:4px}
.news-article-body ul li::before{content:'';position:absolute;left:4px;top:11px;width:5px;height:5px;border-radius:50%;background:var(--brand-500)}



/* Extracted inline styles */
.inline-style-1{margin-top:48px}
.inline-style-2{margin-top:36px}
.inline-style-3{cursor:pointer}
.inline-style-4{display:flex;gap:10px}
.inline-style-5{text-align:center;display:block}
.inline-style-6{max-width:500px;margin:0 auto 24px}
.inline-style-7{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.inline-style-8{margin-bottom:20px}
.inline-style-9{font-size:18px;font-weight:700;margin-bottom:12px}
.inline-style-10{background:linear-gradient(135deg,#FDE8E8,#FFE8E3);border-radius:var(--r-2xl);padding:40px;text-align:center}
.inline-style-11{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.inline-style-12{background:#fff;border-radius:var(--r-lg);padding:16px}
.inline-style-13{font-size:26px;font-weight:900;color:var(--brand-500)}
.inline-style-14{font-size:12px;color:var(--tx-ter)}
.inline-style-15{font-size:28px;font-weight:900;color:rgba(255,34,0,0.7)}
.inline-style-16{font-size:28px;font-weight:900;color:rgba(255,34,0,0.8)}
.inline-style-17{font-size:28px;font-weight:900;color:rgba(255,34,0,0.6)}
.inline-style-18{background:linear-gradient(135deg,#FFE8E3,#FFF0ED);border-radius:var(--r-2xl);padding:40px;text-align:center}
.inline-style-19{font-size:28px;font-weight:900;color:var(--brand-500)}
.inline-style-20{background:linear-gradient(135deg,#FFF0ED,#FDE8E8);border-radius:var(--r-2xl);padding:40px;text-align:center}
.inline-style-21{font-size:24px;font-weight:900;color:rgba(255,34,0,0.7)}
.inline-style-22{font-size:24px;font-weight:900;color:rgba(255,34,0,0.8)}
.inline-style-23{font-size:24px;font-weight:900;color:rgba(255,34,0,0.6)}
.inline-style-24{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.inline-style-25{font-size:24px;font-weight:900;color:var(--brand-500)}
.inline-style-26{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.inline-style-27{background:linear-gradient(135deg,#FFF0ED,#FFE8E3);border-radius:var(--r-2xl);padding:40px;text-align:center}
.inline-style-28{font-size:16px;white-space:nowrap}
.inline-style-29{text-align:center}
.inline-style-30{margin-top:32px}
.inline-style-31{max-width:740px;margin:28px auto 0}
.inline-style-32{max-width:480px;margin:0 auto 24px}
.inline-style-33{position:relative;overflow:hidden;padding:100px 32px 80px;text-align:center;background:linear-gradient(160deg,rgba(255,34,0,0.03) 0%,rgba(255,34,0,0.08) 50%,rgba(255,34,0,0.02) 100%)}
.inline-style-34{position:absolute;top:-60px;right:-60px;width:300px;height:300px;background:radial-gradient(circle,rgba(255,34,0,0.06),transparent 70%);border-radius:50%;pointer-events:none}
.inline-style-35{position:absolute;bottom:-40px;left:-40px;width:250px;height:250px;background:radial-gradient(circle,rgba(255,34,0,0.05),transparent 70%);border-radius:50%;pointer-events:none}
.inline-style-36{max-width:720px;margin:0 auto;position:relative;z-index:1}
.inline-style-37{font-size:clamp(28px,4vw,44px);font-weight:900;line-height:1.2;margin-bottom:20px}
.inline-style-38{font-size:16px;color:var(--tx-sec);line-height:1.7;margin-bottom:36px;max-width:560px;margin-left:auto;margin-right:auto}
.inline-style-39{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.inline-style-40{padding:14px 36px;font-size:15px}
.inline-style-41{max-width:800px;margin:56px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.inline-style-42{background:var(--bg-card);border-radius:var(--r-xl);padding:24px 16px;border:1px solid var(--bd-subtle);text-align:center}
.inline-style-43{font-size:28px;margin-bottom:8px;width:28px;height:28px;}
.inline-style-44{font-size:13px;font-weight:700}
.inline-style-45{font-size:11px;color:var(--tx-ter);margin-top:2px}
.inline-style-46{text-align:center;max-width:560px;margin:0 auto 36px}
.inline-style-47{text-align:center;max-width:520px;margin:0 auto}
.inline-style-48{max-width:480px;margin:0 auto 12px}
.inline-style-49{min-height:260px}
.inline-style-50{font-size:64px}
.inline-style-51{font-size:20px}
.inline-style-52{margin-bottom:0}
.dl-loading { grid-column: 1 / -1; padding: 48px 20px; text-align: center; color: #7b8494; }
.news-loading { grid-column: 1 / -1; padding: 48px 20px; text-align: center; color: #7b8494; }
.news-date { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.news-detail-link { color: var(--brand-500); white-space: nowrap; }
.news-pagination { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 32px 0 8px; color: #7b8494; }
.news-pagination button { border: 1px solid #dfe4ec; border-radius: 6px; background: #fff; color: #465268; cursor: pointer; padding: 7px 14px; }
.news-pagination button:disabled { color: #b8bec8; cursor: not-allowed; }

/* ==========================================================================
   MOBILE REFINEMENTS
   ========================================================================== */
@media (max-width:768px){
  :root{--header-h:60px}
  body{
    padding-bottom:calc(64px + env(safe-area-inset-bottom));
    -webkit-text-size-adjust:100%;
  }
  img{max-width:100%;height:auto}

  .h-inner{padding:0 20px}
  .logo-link{font-size:18px;gap:8px}
  .logo-mk{height:29px}
  .h-mnav-btn{min-width:44px;min-height:44px;justify-content:center}
  .m-nav{
    padding:calc(18px + env(safe-area-inset-top)) 20px
      calc(24px + env(safe-area-inset-bottom));
  }
  .m-nav-head{margin-bottom:16px}
  .m-nav-close{width:44px;height:44px}
  .m-nav-list{overscroll-behavior:contain}
  .m-nav-list a{min-height:48px;padding:12px 16px;display:flex;align-items:center}
  .m-nav-cta{min-height:48px;display:flex;align-items:center;justify-content:center}

  .sec,.sec-tight,
  #page-partner .sec,#page-about .sec,#page-news .sec,#page-solution .sec{
    padding:44px 20px;
  }
  #page-news .sec,.dl-sec{padding-top:52px}
  .partner-wrap,
  #page-partner .partner-wrap,#page-news .partner-wrap,
  #page-about .partner-wrap,#page-solution .partner-wrap{
    padding:44px 20px;
  }
  .sec-eyebrow{margin-bottom:12px}
  .sec-tit{font-size:clamp(28px,8vw,34px);line-height:1.2;margin-bottom:14px}
  .sec-desc{font-size:15.5px;line-height:1.75;margin-bottom:32px}

  .hero-wrap{
    min-height:auto;
    align-items:flex-start;
    padding:46px 20px 42px;
  }
  .hero-grid{gap:0}
  .hero-badge{font-size:12.5px;padding:6px 13px;margin-bottom:20px}
  .hero-txt h1{font-size:36px;line-height:1.12;margin-bottom:18px}
  .hero-txt .hero-sub{font-size:16px;line-height:1.75;margin-bottom:28px;max-width:none}
  .hero-btns{gap:10px;margin-bottom:32px}
  .hero-btns .btn-cta,.hero-btns .btn-sub{min-height:44px;justify-content:center}
  .hero-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;padding-top:24px}
  .hd-val{font-size:28px}
  .hd-lbl{font-size:12.5px}
  .social-proof{margin-top:26px;gap:12px}
  .scroll-ind{display:none}

  .prod-card,.news-card,.benefit-card,.api-card,.value-card{padding:24px}
  .prod-card:hover,.news-card:hover,.benefit-card:hover,.api-card:hover,
  .value-card:hover,.res-card:hover,.dl-card:hover{transform:none}
  .res-card{padding:24px 12px}
  .res-val{font-size:32px}
  .res-lbl{font-size:13px}

  .sol-tabs,.sol-tabs.d1,.sol-tabs.fade-up.d4{
    margin:18px -20px 30px;
    padding:0 20px 6px;
    max-width:none;
    overflow-x:auto;
    justify-content:flex-start;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .sol-tabs::-webkit-scrollbar{display:none}
  .sol-tabs-inner,.sol-tabs.d1 .sol-tabs-inner,
  .sol-tabs.fade-up.d4 .sol-tabs-inner{width:max-content;max-width:none}
  .sol-tab{min-height:44px;padding:9px 22px;scroll-snap-align:center}
  .sol-vis{min-height:260px}
  .case-showcase{margin-top:20px}
  .case-visual{padding:26px 24px 0}
  .case-content{padding:22px 24px 28px}
  .case-metrics-row{gap:20px;flex-wrap:wrap}

  .partner-card{padding:32px 26px;gap:28px}
  .pc-tit{font-size:28px}
  .pc-desc{font-size:15px}
  .pmh-card{min-height:auto;padding:24px 20px;gap:16px}
  .partner-models-h{gap:14px}
  .benefit-grid,.api-grid,.value-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}

  .sub-hero{padding:64px 20px 44px}
  #page-solution .sub-hero{padding:48px 20px 20px}
  .sub-hero h1{font-size:34px;line-height:1.2;margin-bottom:14px}
  .sub-hero p{font-size:16px;line-height:1.75;margin-bottom:26px}
  .prod-detail-grid{gap:24px}
  .pd-text{padding:0}
  .pd-name{font-size:26px}
  .pd-summary{font-size:15px}
  .pd-vis{min-height:230px;padding:24px}
  .sol-full-grid{gap:26px}
  .sol-feat-card{padding:18px}
  .brand-wall-section{margin-top:44px;padding-top:36px}
  .brand-wall-title{font-size:22px;margin-bottom:28px}
  .comp-wrap{margin:0 -20px;padding:0 20px;scrollbar-width:thin}
  .comp-table{min-width:620px}

  .inline-style-28{white-space:normal}
  .inline-style-33{padding:64px 20px 48px}
  .inline-style-38{font-size:15.5px;margin-bottom:30px}
  .inline-style-39{gap:10px}
  .inline-style-40{min-height:44px;padding:12px 28px}
  .inline-style-41{margin-top:38px;gap:12px}
  .inline-style-42{padding:20px 12px}

  .dl-head{margin-bottom:22px}
  .dl-title{font-size:28px}
  .dl-card{padding:15px}
  .filter-tabs{margin-bottom:26px;gap:7px}
  .filter-tab{min-height:42px;padding:8px 16px}
  .news-pagination{flex-wrap:wrap;gap:12px}
  .news-pagination button{min-height:42px;padding:8px 16px}
  .code-body{padding:20px;font-size:12.5px;line-height:1.75}

  #global-footer{padding:48px 20px 26px}
  .ft-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 22px;margin-bottom:36px}
  .ft-brand,.ft-contact{grid-column:1 / -1}
  .ft-brand p{max-width:420px}
  .ft-contact a,.ft-contact .ft-txt{white-space:normal;overflow-wrap:anywhere}
  .ft-shop{white-space:normal;align-items:flex-start;flex-wrap:wrap;gap:8px 0}
  .ft-shop>span{flex-basis:100%}
  .ft-shop a+a{margin-left:0;margin-right:10px}
  .ft-bottom{line-height:1.8}

  .mob-bar{
    height:calc(64px + env(safe-area-inset-bottom));
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));
  }
  .mob-inner{gap:7px}
  .mob-btn{min-width:0;min-height:44px;padding:0 6px;font-size:12.5px;white-space:nowrap}

  .modal-overlay{padding:12px;align-items:flex-end}
  .modal-dialog{
    width:100%;max-width:none;max-height:calc(100dvh - 24px);
    border-radius:22px;padding:32px 20px 24px;
  }
  .modal-close{top:12px;right:14px;width:40px;height:40px}
  .modal-tit{font-size:23px;padding-right:36px}
  .modal-field{align-items:stretch;flex-direction:column;gap:6px;margin-bottom:13px}
  .modal-field label{width:auto;text-align:left}
  .modal-field input,.modal-field textarea{width:100%;font-size:16px;min-height:44px}
  .modal-submit{min-height:48px}
  .wx-dialog{padding:32px 24px 26px}
  .wx-dialog .wx-img{width:min(190px,60vw);height:auto}
}

@media (max-width:480px){
  .h-inner{padding:0 16px}
  .m-nav{padding-left:16px;padding-right:16px}
  .sec,.sec-tight,
  #page-partner .sec,#page-about .sec,#page-news .sec,#page-solution .sec{
    padding-left:16px;padding-right:16px;
  }
  .partner-wrap,
  #page-partner .partner-wrap,#page-news .partner-wrap,
  #page-about .partner-wrap,#page-solution .partner-wrap{
    padding:38px 16px;
  }
  .hero-wrap{padding:38px 16px 34px}
  .hero-badge{max-width:100%;font-size:12px;letter-spacing:-.01em}
  .hero-txt h1{font-size:34px}
  .hero-txt .hero-sub{font-size:15.5px}
  .hero-btns{width:100%}
  .hero-btns .btn-cta,.hero-btns .btn-sub{flex:1;padding-left:14px;padding-right:14px}
  .hero-data{gap:18px 16px}
  .social-proof{align-items:flex-start}
  .prod-grid,.news-grid,.dl-grid{gap:14px}
  .prod-card,.news-card,.benefit-card,.api-card,.value-card{padding:22px}
  .res-grid{gap:10px}
  .res-card{padding:22px 8px}
  .res-val{font-size:29px}
  .sol-tabs,.sol-tabs.d1,.sol-tabs.fade-up.d4{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
  .sol-vis{min-height:220px}
  .case-visual img{max-height:150px}
  .case-content{padding-left:20px;padding-right:20px}
  .case-metric-val{font-size:26px}
  .partner-card{padding:28px 20px;border-radius:20px}
  .pc-tit{font-size:26px}
  .partner-models-h,.benefit-grid,.api-grid,.value-grid{grid-template-columns:1fr}
  .partner-brand-card{flex-basis:calc(50% - 10px)}
  .sub-hero{padding:52px 16px 38px}
  #page-solution .sub-hero{padding:42px 16px 18px}
  .sub-hero h1{font-size:31px}
  .pd-vis{min-height:200px}
  .comp-wrap{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
  .inline-style-11{grid-template-columns:1fr}
  .inline-style-33{padding:52px 16px 42px}
  .inline-style-37{font-size:32px}
  .inline-style-41{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .inline-style-42{padding:18px 8px}
  .process-step{padding:16px 12px}
  .int-flow{grid-template-columns:1fr;gap:20px}
  .dl-name-row{align-items:flex-start}
  .dl-ico-img{width:50px;height:50px}
  .dl-btn{min-height:36px;padding:6px 12px}
  .dl-bottom{gap:12px}
  .dl-update{padding-left:12px}
  #global-footer{padding-left:16px;padding-right:16px}
  .ft-grid{gap:30px 18px}
  .ft-brand,.ft-contact,.ft-qr{grid-column:1 / -1}
  .ft-qr{flex-direction:row;flex-wrap:wrap;gap:18px}
  .ft-qr-item img{width:92px;height:92px}
  .modal-overlay{padding:8px}
  .modal-dialog{max-height:calc(100dvh - 16px);padding-left:18px;padding-right:18px}
  .news-article-title{font-size:21px}
  .cta-hero-btn{width:100%;justify-content:center;padding-left:20px;padding-right:20px}
}

@media (hover:none) and (pointer:coarse){
  .prod-card:hover,.news-card:hover,.benefit-card:hover,.api-card:hover,
  .value-card:hover,.res-card:hover,.dl-card:hover,.pmh-card:hover,
  .partner-brand-card:hover,.btn-cta:hover,.cta-hero-btn:hover{
    transform:none;box-shadow:0 1px 2px rgba(0,0,0,.03);
  }
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;scroll-behavior:auto !important}
  .fade-up{opacity:1;transform:none;transition:none}
}
