
/* ============ Design tokens (mirror sungrowplant.com) ============ */
:root{
  --brand:#1a63c4;          /* 加深商务蓝：更高饱和度、更深明度 */
  --brand-dark:#134a92;
  --brand-soft:#e9eef4;     /* 带灰度的浅灰蓝，减少刺眼发白感 */
  --brand-light:#5b9be8;    /* 提亮蓝：图标/悬停高亮 */
  --ink:#333;
  --gray:#606060;
  --line:#ECECEC;
  --bg:#F7F7F7;
  --white:#fff;
  --maxw:1240px;
  --ease:cubic-bezier(.22,.61,.36,1);
  /* ===== Radius tokens ===== */
  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:20px;
  --radius-pill:40px;
  /* ===== Shadow tokens ===== */
  --shadow-sm:0 6px 22px rgba(0,0,0,.05);
  --shadow-md:0 14px 36px rgba(0,0,0,.10);
  --shadow-lg:0 18px 40px rgba(0,0,0,.10);
  /* ===== Focus ring (WCAG AA) ===== */
  --focus:0 0 0 3px rgba(26,99,196,.45);
  /* ===== Chinese display font（自托管思源黑体 Noto Sans SC 优先，系统字体逐级回退） ===== */
  --font-cn:"Noto Sans SC","Source Han Sans SC","Source Han Sans CN","Alibaba PuHuiTi 2.0","Alibaba PuHuiTi","PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans GB",sans-serif;
  /* ===== Accent orange (按钮箭头) ===== */
  --accent-orange:#e8913c;
}
*{box-sizing:border-box;margin:0;padding:0}
section[id],footer[id]{scroll-margin-top:90px}
/* Skip to content (keyboard a11y) */
.skip-link{
  position:fixed;top:12px;left:50%;transform:translateX(-50%) translateY(-160%);
  z-index:2000;background:var(--brand);color:#fff;padding:10px 22px;border-radius:8px;
  font-size:14px;font-weight:600;box-shadow:var(--shadow-md);
  transition:transform .2s var(--ease);
}
.skip-link:focus{transform:translateX(-50%) translateY(0);outline:2px solid #fff;outline-offset:2px}
html,body{height:100%}
html{color-scheme:light}
html,body,.scroll{scrollbar-color:#c7ccd3 #fff}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:#fff}
::-webkit-scrollbar-thumb{background:#c7ccd3;border-radius:6px;border:3px solid #fff}
::-webkit-scrollbar-thumb:hover{background:#aab0b8}
body{
  font-family:var(--font-cn);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  background:#fff;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* ============ Scroll container (full-page snap) ============ */
.scroll{
  height:100vh;
  overflow-y:scroll;
  scroll-snap-type:y proximity;   /* 改为 proximity：滑到底部短页脚时不再强制回弹到“新鲜动态” */
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
}
.section{
  position:relative;
  height:100vh;
  scroll-snap-align:start;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

/* ============ Top nav (white glass / fixed) ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  height:70px;padding:0 40px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  border-bottom:1px solid rgba(0,0,0,.08);
  box-shadow:0 4px 20px rgba(0,0,0,.06);
}
.brand{display:inline-flex;align-items:center;background:transparent;padding:0;border-radius:0}
.brand img{height:30px;width:auto;display:block;background:transparent}
.menu{display:flex;align-items:stretch;height:100%;gap:32px;list-style:none}
.menu li{display:flex;align-items:center}
.menu a{display:flex;align-items:center;height:100%;font-size:15px;color:var(--ink);font-weight:500;transition:color .2s;opacity:.92}
.menu a:hover{color:var(--brand);opacity:1}
.tools{display:flex;align-items:center;gap:20px;justify-content:flex-end}
.tools a{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--ink);transition:color .2s;opacity:.92}
.tools a:hover{color:var(--brand);opacity:1}
.tools a svg{width:18px;height:18px;stroke-width:1.5}
/* 搜索按钮颜色同步 */
.tools button.tool-btn{color:var(--ink)}
.tools button.tool-btn:hover{color:var(--brand)}
/* 移动端汉堡按钮颜色同步 */
.mobile-menu-toggle{color:var(--ink)}
/* 下拉子菜单保持白底黑字，保证可读性 */
.menu li.has-sub .submenu{background:#fff}
.menu li.has-sub .submenu a{color:#333}
.menu li.has-sub .submenu a:hover{color:var(--brand)}
/* hover 下划线 */
.menu a::after{background:var(--brand)}
.menu a.cur::after{width:100%}
.menu a:hover::after{width:100%}

/* ============ Right dot nav ============ */
.dots{
  position:fixed;right:26px;top:50%;transform:translateY(-50%);
  z-index:50;display:flex;flex-direction:column;gap:14px;
}
.dots button{
  width:10px;height:10px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.55);transition:all .3s var(--ease);padding:0;
}
.dots button.active{background:var(--brand);transform:scale(1.5)}

/* ============ Media section (full-bleed photo / video) ============ */
.media{position:absolute;inset:0;z-index:0;overflow:hidden;will-change:transform}
.media .bg{
  position:absolute;left:0;top:0;width:100%;height:100%;
  object-fit:cover;z-index:0;max-width:none;
  opacity:0;                                    /* 滚动进入视口前隐藏，由 JS 驱动淡入 */
  will-change:transform,opacity;                /* 提升合成层：视差/淡入走 GPU，滚动更跟手 */
  /* 注意：不再给 opacity 加 transition —— 滚动驱动值由 rAF 每帧直接给定，加过渡会“慢半拍”发飘 */
}
/* gradient fallback kept behind the image for safety */
.media .ph{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 80% at 70% 10%,rgba(26,99,196,.16),transparent 60%),
    linear-gradient(160deg,#0C3257 0%,#1C3256 35%,#2b4a6b 70%,#0a2a40 100%);
}
.media::after{
  content:none; /* 遮罩已移除：不再叠加任何渐变/半透明层，保证背景图片与视频 100% 原始清晰度 */
}
.section .wrap{position:relative;z-index:2;width:100%;max-width:var(--maxw);padding:0 40px;color:#fff;text-align:center}

/* ===== #biz1 左侧蓝色辉光 ===== */
#biz1{position:relative}
#biz1::before{content:"";position:absolute;left:0;top:0;bottom:0;width:46%;z-index:1;pointer-events:none;
  background:radial-gradient(120% 100% at 0% 50%,rgba(26,99,196,.26),rgba(26,99,196,0) 70%);
  opacity:0;transform:scaleX(.35);transform-origin:left center;
  transition:opacity 1s var(--ease) .15s,transform 1.2s var(--ease) .15s}
#biz1.in-view::before{opacity:1;transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){
  #biz1::before{opacity:1;transform:none;transition:none}
}

/* ============ Hero ============ */
.hero .wrap{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.hero h1{font-size:clamp(34px,6vw,74px);font-weight:700;line-height:1.05;letter-spacing:2px;margin-bottom:28px}
.hero .sub{margin-top:22px;font-size:clamp(16px,2.2vw,24px);font-weight:400;opacity:.95;letter-spacing:6px}
.hero .chips{margin-top:40px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.chip{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:54px;padding:0 34px;
  font-family:var(--font-cn);font-size:16px;font-weight:400;line-height:1;
  color:#fff;background:transparent;border:1px solid rgba(255,255,255,.55);
  border-radius:12px;
  text-decoration:none;white-space:nowrap;
  transition:transform .3s var(--ease),box-shadow .3s,background .3s,border-color .3s;
}
.chip.ghost{background:transparent;border:1px solid rgba(255,255,255,.55)}
.chip .arr{color:#fff;font-size:18px;font-weight:700;line-height:1;margin-left:2px}
.chip:hover{transform:translateY(-3px);background:rgba(255,255,255,.12);border-color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.25)}
.chip:active{background:rgba(255,255,255,.22);border-color:#fff}
.chip:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* Unified keyboard focus ring (WCAG AA) */
.menu a:focus-visible,.mobile-menu-toggle:focus-visible,.back-to-top:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}

/* 首页 Hero 星空装饰已移除（属于视频上的叠加层，为保证视频画面纯净不再使用） */

/* ============ Hero video ============ */
.hero-video{position:absolute;inset:0;z-index:0;overflow:hidden;background:#000}
.hero-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:none}  /* 不再放大，100% 原始像素呈现 */
.hero-video::after{display:none}
.hero::before{display:none}

/* ============ FAQ ============ */
.faq{background:#fff;padding:96px 0;border-top:1px solid #eef1f5}
.faq .wrap{max-width:1100px;margin:0 auto;padding:0 40px}
.faq-head{text-align:center;margin-bottom:44px}
.faq-head h2{font-size:clamp(28px,4vw,40px);font-weight:800;color:var(--brand);letter-spacing:1px}
.faq-head p{margin-top:12px;color:#5b6b7e;font-size:16px}
.faq-list{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.faq-item{background:#f8fafc;border:1px solid #e8edf3;border-radius:12px;overflow:hidden;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.faq-item[open],.faq-item:hover{border-color:var(--brand);box-shadow:0 8px 24px rgba(26,99,196,.10)}
.faq-item summary{cursor:pointer;list-style:none;padding:20px 24px;font-size:17px;font-weight:600;color:#1f2d3d;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:24px;font-weight:400;color:var(--brand);transition:transform .3s var(--ease)}
.faq-item[open] summary::after{content:"\2212"}
.faq-a{padding:0 24px 22px;color:#5b6b7e;font-size:15px;line-height:1.7}
@media (max-width:640px){.faq{padding:64px 0}.faq .wrap{padding:0 22px}.faq-item summary{font-size:16px;padding:18px 20px}}
.hero-kicker{
  font-size:clamp(22px,2.8vw,30px);font-weight:600;letter-spacing:6px;
  color:#fff;text-transform:uppercase;margin-bottom:14px;
}
@media (max-width:900px){
  .hero-kicker{font-size:19px;letter-spacing:4px;margin-bottom:10px}
  .hero .chips{margin-top:28px}
  .chip{padding:11px 20px;font-size:14px}
}

/* ============ Content image section (centered, full-bleed bg) ============ */
.csec .wrap{text-align:center;isolation:isolate}
.csec h2{font-size:clamp(34px,5vw,60px);font-weight:800;margin:14px 0 16px;line-height:1.1;letter-spacing:1px;text-shadow:0 4px 24px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.35);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translateZ(0)}
.csec p.lead{font-size:clamp(15px,1.8vw,20px);max-width:620px;margin-left:auto;margin-right:auto;opacity:.95;line-height:1.7;text-shadow:0 3px 16px rgba(0,0,0,.55),0 1px 4px rgba(0,0,0,.35);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translateZ(0)}
.csec .links{margin-top:34px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.link{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-pill);
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.55);
  font-size:15px;font-weight:600;transition:all .3s var(--ease);
  text-shadow:0 2px 8px rgba(0,0,0,.45);box-shadow:0 4px 16px rgba(0,0,0,.18);
}
.link:hover{background:#fff;border-color:#fff;color:#16243c;transform:translateY(-3px)}
.link:active{transform:translateY(-1px)}
.link:focus-visible{outline:2px solid #fff;outline-offset:3px}
.link:hover .arw{transform:translateX(4px)}
.link .arw{width:16px;height:16px}

/* Minimal outlined button used in news/footer */
.btn-outline{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:1px solid #e5e8ed;border-radius:var(--radius-sm);padding:10px 22px;
  font-size:14px;font-weight:600;color:#555;background:#fff;
  transition:all .25s var(--ease);cursor:pointer;
}
.btn-outline:hover{border-color:var(--brand);color:var(--brand)}
.btn-outline:active{transform:translateY(1px);border-color:var(--brand-dark)}
.btn-outline:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* Base csec reveal (fade-up fallback) */
.csec h2.reveal{transform:translateY(40px);transition:opacity .9s var(--ease),transform .9s var(--ease);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.csec h2.reveal.in{transform:none}
.csec p.lead.reveal{transform:translateY(30px);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.csec p.lead.reveal.in{transform:none;transition-delay:.18s}
.csec .links.reveal{transition-delay:.34s}

/* ============ Light section (products / tech / news) ============ */
.light{background:var(--white);color:var(--ink)}
.light.alt{background:var(--bg)}
.light .wrap{color:var(--ink)}
.sec-head{text-align:center;margin-bottom:48px}
/* 主标题：白字粗黑、超大、居中、无描边 */
.sec-head h2{font-family:var(--font-cn);font-size:clamp(32px,4.4vw,54px);font-weight:700;margin-top:10px;letter-spacing:2px;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.28)}
/* 副标题：白字常规体、字间距加宽、居中、位于主标题下方 */
.sec-head p{font-family:var(--font-cn);color:rgba(255,255,255,.85);margin-top:16px;font-size:clamp(14px,1.4vw,17px);font-weight:400;letter-spacing:.08em;text-align:center}

.grid{display:grid;gap:26px}
.grid.cols3{grid-template-columns:repeat(3,1fr)}
.grid.cols2{grid-template-columns:repeat(2,1fr)}

.card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}
.card .pic{height:200px;position:relative;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#1C3256,#2c6e6a);color:#fff;font-size:14px;letter-spacing:1px;overflow:hidden}
.card .pic::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(0,0,0,0);transition:background .3s var(--ease)}
.card .pic:hover::after{background:rgba(255,255,255,.08)}
.card .pic:active::after{background:rgba(255,255,255,.18)}
.card .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card .pic .tag{position:absolute;left:14px;bottom:12px;background:rgba(0,0,0,.45);padding:5px 12px;border-radius:20px;font-size:12px;z-index:2}
.card .body{padding:22px 24px}
.card .body h3{font-size:20px;font-weight:700;margin-bottom:8px}
.card .body p{color:var(--gray);font-size:14px;line-height:1.7}
.card .more{margin-top:14px;display:block;text-align:center;color:var(--brand);font-weight:600;font-size:14px}

/* tech 3-card with brand top bar */
.tech .card{border-top:4px solid var(--brand)}

/* ============ Inner page hero ============ */
.page-hero{padding:150px 0 60px;background:#f3f5f8;text-align:center}
.page-hero h1{font-size:42px;font-weight:800;color:#1a1a1a;margin-bottom:14px;letter-spacing:1px}
.page-hero p{font-size:16px;color:#666;max-width:600px;margin:0 auto;line-height:1.7}
.faq-hero{background:linear-gradient(180deg,#f3f5f8 0%,#fff 100%)}

/* ============ Showcase sections (products / tech) with full-bleed bg ============ */
.showcase{color:#fff}
.showcase .wrap{color:#fff}
/* .showcase .media::after 遮罩已移除：产品区背景图全清晰展示 */
.showcase .sec-head h2{color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.35)}
.showcase .sec-head p{color:rgba(255,255,255,.82)}
.showcase .card{
  background:rgba(255,255,255,.16);   /* 去毛玻璃后加大底色不透明度，保证白字可读 */
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  box-shadow:0 14px 40px rgba(0,0,0,.18);
}
.showcase .card:hover{
  background:rgba(255,255,255,.17);
  border-color:rgba(255,255,255,.35);
  transform:translateY(-10px);
  box-shadow:0 24px 50px rgba(0,0,0,.30);
}
.showcase .card .body h3{color:#fff}
.showcase .card .body p{color:rgba(255,255,255,.78)}
.showcase .card .more{display:flex;align-items:center;justify-content:center;gap:8px;width:fit-content;margin:14px auto 0;color:#fff;font-family:var(--font-cn);font-weight:400;background:transparent;border:1px solid rgba(255,255,255,.55);border-radius:10px;padding:11px 22px;min-height:46px;transition:all .3s var(--ease)}
.showcase .card .more:hover{background:rgba(255,255,255,.12);border-color:#fff;text-decoration:none;transform:translateY(-2px)}
.showcase .card .more .arr{color:#fff;font-weight:700;margin-left:2px}
.showcase .card .pic{background:transparent}

/* ============ Stats counters (white on photo bg) ============ */
.stats{background:transparent;color:#fff}
.stats .wrap{text-align:center;color:#fff}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;position:relative;margin-top:10px}
.stat-card{position:relative;padding:18px 16px;text-align:center}
.stat-num-wrap{display:flex;align-items:flex-end;justify-content:center;gap:4px;line-height:1}
.stat-num{font-family:var(--font-cn);font-variant-numeric:tabular-nums;font-size:clamp(52px,7vw,96px);font-weight:800;color:#fff;letter-spacing:-.5px;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.stat-unit{font-size:clamp(20px,2.2vw,32px);font-weight:700;color:#fff;margin-left:4px;letter-spacing:1px;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.stat-divider{width:36px;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);margin:14px auto}
.stat-label{font-size:clamp(13px,1.4vw,18px);color:rgba(255,255,255,.9);letter-spacing:1px;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.stats-btn-wrap{margin-top:22px;display:flex;justify-content:center}
.stats-btn-wrap .chip{color:#fff;border-color:rgba(255,255,255,.55);text-shadow:0 1px 8px rgba(0,0,0,.35)}
.stats-btn-wrap .chip .arr{color:#fff}
.stats-btn-wrap .chip:hover{background:rgba(255,255,255,.14);border-color:#fff}
.stats .sec-head h2{color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.55)}
.stats .sec-head p{color:rgba(255,255,255,.9);text-shadow:0 2px 12px rgba(0,0,0,.45)}
@media (max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:0}
  .stat-card:nth-child(3),.stat-card:nth-child(4){border-top:1px solid rgba(255,255,255,.20)}
}
@media (max-width:560px){
  .stats-grid{grid-template-columns:1fr}
  .stat-card{border-top:1px solid rgba(255,255,255,.15)}
  .stat-card:first-child{border-top:none}
}

/* ============ Stats Numbers (独立板块，图片下方) ============ */
.stats-numbers{background:#f7f9fb;color:#1a1a1a}
.stats-numbers .wrap{max-width:var(--maxw);margin:0 auto;padding:56px 40px}
.stats-numbers .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin-top:0}
.stats-numbers .stat-card{position:relative;padding:32px 16px;text-align:center}
.stats-numbers .stat-card:not(:last-child){border-right:1px solid rgba(0,0,0,.08)}
.stats-numbers .stat-num{font-family:var(--font-cn);font-variant-numeric:tabular-nums;font-size:clamp(52px,7vw,96px);font-weight:800;color:var(--brand-dark);letter-spacing:-.5px;text-shadow:none}
.stats-numbers .stat-unit{font-size:clamp(20px,2.2vw,32px);font-weight:700;color:var(--brand-dark);margin-left:4px;letter-spacing:1px;text-shadow:none}
.stats-numbers .stat-divider{width:36px;height:3px;background:linear-gradient(90deg,transparent,rgba(26,99,196,.45),transparent);margin:14px auto}
.stats-numbers .stat-label{font-size:clamp(13px,1.4vw,18px);color:#555;letter-spacing:1px;text-shadow:none}
@media (max-width:900px){
  .stats-numbers .stats-grid{grid-template-columns:repeat(2,1fr);gap:0}
  .stats-numbers .stat-card:not(:last-child){border-right:none}
  .stats-numbers .stat-card:nth-child(1),.stats-numbers .stat-card:nth-child(2){border-bottom:1px solid rgba(0,0,0,.08)}
  .stats-numbers .stat-card:nth-child(odd){border-right:1px solid rgba(0,0,0,.08)}
}
@media (max-width:560px){
  .stats-numbers .stats-grid{grid-template-columns:1fr}
  .stats-numbers .stat-card{border-right:none !important;border-top:1px solid rgba(0,0,0,.08)}
  .stats-numbers .stat-card:first-child{border-top:none}
}

/* ============ News (minimal 3-column) ============ */
.news{background:#e8f0f8;color:#1a1a1a}
.news .wrap{max-width:var(--maxw);margin:0 auto;padding:72px 40px;color:#1a1a1a}
.news-head{text-align:center;margin-bottom:20px}
.news-head h2{font-size:clamp(32px,4.4vw,54px);font-weight:700;margin-top:10px;letter-spacing:2px;color:#1a1a1a;text-shadow:none}
.news-head p{color:rgba(0,0,0,.55);margin-top:16px;font-size:clamp(14px,1.4vw,17px);font-weight:400;letter-spacing:.18em}
.news-more-wrap{text-align:center;margin-bottom:36px}

/* 新闻「查看更多」玻璃液态按钮 */
.news .btn-outline{
  display:inline-flex;align-items:center;gap:10px;
  min-height:54px;padding:0 34px;
  font-family:var(--font-cn);font-size:16px;font-weight:400;line-height:1;
  color:#1a1a1a;background:transparent;border:1px solid rgba(0,0,0,.25);border-radius:12px;
  text-decoration:none;white-space:nowrap;
  transition:all .3s var(--ease);
}
.news .btn-outline:hover{background:rgba(0,0,0,.06);border-color:#1a1a1a;transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.12)}
.news .btn-outline .arr{color:#1a1a1a;font-size:18px;font-weight:700;margin-left:2px}
/* 新闻卡片内「了解详情」按钮：卡片为白底，改用深灰字 + 细灰描边（透明底），保持同一玻璃液态语言 */
.news-card .nc-btn .btn-outline{
  display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:0 22px;
  font-family:var(--font-cn);font-size:14px;font-weight:400;line-height:1;
  color:#333;background:transparent;border:1px solid rgba(0,0,0,.18);border-radius:10px;
  text-decoration:none;white-space:nowrap;
  transition:all .3s var(--ease);
}
.news-card .nc-btn .btn-outline:hover{border-color:var(--brand);color:var(--brand)}
.news-card .nc-btn .btn-outline .arr{color:#333;font-weight:700;margin-left:2px}

.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.news-card{
  background:#fff;border:1px solid #e8ecf1;border-radius:var(--radius-md);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.news-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:#dbe2e9}
.news-card .nc-pic{position:relative;height:200px;overflow:hidden;background:#f5f7f9}
.news-card .nc-pic img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.news-card:hover .nc-pic img{transform:scale(1.04)}
.news-card .nc-body{padding:22px 24px;display:flex;flex-direction:column;flex:1;gap:10px}
.news-card .nc-date{display:flex;align-items:center;gap:6px;font-size:13px;color:#888}
.news-card .nc-date svg{width:14px;height:14px;color:#888}
.news-card h3{font-size:20px;font-weight:700;color:#1a1a1a;line-height:1.5;margin-bottom:8px}
.news-card .nc-body p{color:var(--gray);font-size:14px;line-height:1.7}
.news-card .nc-btn{margin-top:auto;align-self:center}

/* 「了解详情」统一按钮：品牌描边胶囊 + 居中（适配浅色卡片背景） */
.case-btn, .nhc-btn, .nli-more{
  display:flex; align-items:center; justify-content:center; gap:6px;
  width:fit-content; margin:14px auto 0;
  font-family:var(--font-cn); font-weight:400; font-size:15px; line-height:1;
  color:var(--brand); background:transparent;
  border:1px solid rgba(26,99,196,.45); border-radius:12px;
  padding:11px 22px; min-height:46px; text-decoration:none;
  transition:all .3s var(--ease); cursor:pointer;
}
.case-btn:hover, .nhc-btn:hover, .nli-more:hover{
  background:rgba(26,99,196,.08); border-color:var(--brand); color:var(--brand);
  transform:translateY(-2px); text-decoration:none;
}
.case-btn svg, .nhc-btn svg, .nli-more svg{width:16px;height:16px;flex:none}

@media (max-width:900px){.news-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.news-grid{grid-template-columns:1fr}}

/* ============ Footer (business minimal) ============ */
.foot{
  background:#ffffff;          /* 白色背景 */
  color:#1a1a1a;               /* 黑色文字 */
  position:relative;
  padding:48px 40px 40px;
  scroll-margin-top:70px;      /* 点击”联系我们”时让页脚顶部避开固定导航 */
}
.foot::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--brand),transparent);
  opacity:.45;
}
.foot .wrap{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto}
.foot-grid{display:grid;grid-template-columns:1.15fr 0.85fr 1fr;align-items:start;gap:32px}
.foot-left{display:flex;flex-direction:column;gap:14px}
.foot-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.foot-right{display:flex;flex-direction:column;align-items:flex-end;gap:0}
.foot-right .foot-form-panel{width:100%;max-width:320px}
.foot-left .brand-logo img{height:42px;width:auto;display:block}
.foot-left h2{font-size:42px;font-weight:800;color:#1a1a1a;line-height:1.15;letter-spacing:1px}
.foot-left .sub{font-size:13px;color:#666;line-height:1.7;max-width:400px}
.foot-left .address{font-size:13px;color:#888;line-height:1.6}
.foot-phone{
  display:inline-flex;align-items:center;gap:8px;
  font-size:18px;font-weight:700;color:#fff;
  background:var(--brand);padding:10px 18px;border-radius:8px;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease);
  align-self:flex-start;
}
.foot-phone svg{width:18px;height:18px}
.foot-phone:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(37,120,208,.30);
  background:var(--brand-dark);
}
.foot-qr{
  background:#fff;border-radius:10px;padding:10px;
  box-shadow:0 4px 16px rgba(0,0,0,.06);
  text-align:center;transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.foot-qr:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.10)}
.foot-qr img{width:96px;height:96px;object-fit:contain;border-radius:4px;display:block;margin:0 auto}
.foot-qr span{display:block;margin-top:8px;font-size:12px;color:#888;font-weight:500}
.foot-map{
  margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch;
  background:#fff;border-radius:14px;padding:20px;box-shadow:0 4px 20px rgba(0,0,0,.04);
}
.map-info h4{font-size:16px;font-weight:800;color:#1a1a1a;margin-bottom:14px}
.map-info p{display:flex;align-items:center;gap:10px;font-size:13px;color:#555;line-height:1.7;margin-bottom:6px}
.map-info p svg{width:16px;height:16px;stroke:var(--brand);flex-shrink:0}
.map-static{
  position:relative;min-height:150px;border-radius:12px;overflow:hidden;
  background:linear-gradient(135deg,#e9eef4 0%,#dfe8f2 100%);
}
.map-static::before{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 19px,rgba(26,99,196,.08) 20px),
    repeating-linear-gradient(90deg,transparent,transparent 19px,rgba(26,99,196,.08) 20px);
}
.map-pin{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;gap:6px;
}
.map-pin svg{width:32px;height:32px;stroke:var(--brand);fill:rgba(26,99,196,.12)}
.map-pin span{font-size:13px;font-weight:700;color:var(--brand-dark);background:#fff;padding:4px 10px;border-radius:20px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.foot .copy{
  margin-top:28px;padding-top:18px;border-top:1px solid #e5e8ed;
  font-size:12px;color:#888;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
}

/* About page dark footer override */
.about-sg .foot{background:#0c2137;color:#fff}
.about-sg .foot-left h2{color:#fff}
.about-sg .foot-left .sub{color:rgba(255,255,255,.78)}
.about-sg .foot-left .address{color:rgba(255,255,255,.55)}
.about-sg .foot .copy{border-top-color:rgba(255,255,255,.12);color:rgba(255,255,255,.55)}
.about-sg .foot-map{background:rgba(255,255,255,.06);box-shadow:none}
.about-sg .map-info h4{color:#fff}
.about-sg .map-info p{color:rgba(255,255,255,.8)}
.about-sg .map-static{background:linear-gradient(135deg,#122a45 0%,#0c1f33 100%)}
.about-sg .map-pin span{color:var(--brand-dark)}

/* ============ Footer lead-capture form (留资转化) ============ */
/* 公众号二维码下移至表单下方，表单与二维码整体居中 */
.foot-form-panel{
  background:#fff;border-radius:14px;padding:18px;
  box-shadow:0 6px 22px rgba(20,50,90,.10);
  border:1px solid #eef1f5;
  width:100%;max-width:320px;margin:0 auto;
}
.foot-form-panel h4{font-size:17px;font-weight:800;color:#1a1a1a;margin-bottom:4px;letter-spacing:.5px}
.foot-form-panel > p{font-size:12px;color:#888;margin-bottom:14px;line-height:1.5}
.foot-form .form-row{margin-bottom:10px}
.foot-form label{display:block;font-size:12px;font-weight:600;color:#444;margin-bottom:4px}
.foot-form .req{color:#e23b3b;margin-left:2px}
.foot-form input,.foot-form select,.foot-form textarea{
  width:100%;padding:9px 11px;border:1px solid #e0e4ea;border-radius:8px;
  font-size:13px;font-family:inherit;color:#333;background:#fcfdff;
  transition:border-color .2s,box-shadow .2s;
}
.foot-form input:focus,.foot-form select:focus,.foot-form textarea:focus{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,99,196,.14);background:#fff;
}
.foot-form textarea{resize:vertical;min-height:56px}
.foot-form-submit{
  width:100%;margin-top:2px;padding:10px;border:0;border-radius:8px;
  background:var(--brand);color:#fff;font-size:14px;font-weight:700;cursor:pointer;
  transition:background .2s,transform .2s,box-shadow .2s;
}
.foot-form-submit:hover{background:var(--brand-dark);transform:translateY(-2px);box-shadow:0 10px 22px rgba(26,99,196,.28)}
.foot-form-submit:active{transform:translateY(0)}
.foot-form-submit:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.form-success{margin-top:12px;padding:10px 12px;border-radius:9px;font-size:13px;color:#0f7a45;background:#e7f6ed}


/* ============ scroll-down hint ============ */
.scrollhint{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:3;
  color:#fff;text-align:center;font-size:13px;letter-spacing:3px;opacity:.9}
.scrollhint .mouse{width:24px;height:38px;border:2px solid #fff;border-radius:14px;margin:0 auto 8px;position:relative}
.scrollhint .mouse::after{content:"";position:absolute;left:50%;top:7px;width:4px;height:8px;border-radius:3px;background:#fff;transform:translateX(-50%);animation:wheel 1.6s infinite}
@keyframes wheel{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,12px)}}

/* ============ Reveal animation (Wow.js style) ============ */
.reveal{opacity:0;transform:translateY(46px);transition:opacity .9s var(--ease),transform .9s var(--ease);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}.reveal.d4{transition-delay:.48s}

/* Direction / effect variants for SUNGROW-style page reveals */
.reveal-left{transform:translateX(-60px)}
.reveal-right{transform:translateX(60px)}
.reveal-scale{transform:scale(.88)}
.reveal-rotate{transform:perspective(900px) rotateX(18deg) translateY(40px)}
.reveal-blur{filter:blur(8px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.reveal-blur.in{filter:blur(0)}

/* Per-section choreography for SUNGROW-style scroll storytelling */

/* BUSINESS pages — 5 different entrance styles across the 5 scenes */

/* 01 工商业：左滑入场 */
.csec.fx-left h2.reveal{transform:translateX(-80px);transition-delay:.18s}
.csec.fx-left p.lead.reveal{transform:translateX(-60px);transition-delay:.32s}
.csec.fx-left .links.reveal{transition-delay:.46s}
/* 复位（提高特异性，确保 .in 后回到居中） */
.csec.fx-left h2.reveal.in,
.csec.fx-left p.lead.reveal.in{transform:none}

/* 02 国内供应链：右滑入场 */
.csec.fx-right h2.reveal{transform:translateX(80px);transition-delay:.18s}
.csec.fx-right p.lead.reveal{transform:translateX(60px);transition-delay:.32s}
.csec.fx-right .links.reveal{transition-delay:.46s}
/* 复位 */
.csec.fx-right h2.reveal.in,
.csec.fx-right p.lead.reveal.in{transform:none}

/* 03 户用光伏：缩放+模糊入场 */
.csec.fx-scale h2.reveal{transform:scale(.82);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.csec.fx-scale h2.reveal.in{transform:none;filter:blur(0);transition-delay:.18s}
.csec.fx-scale p.lead.reveal{transform:scale(.92);filter:blur(4px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.csec.fx-scale p.lead.reveal.in{transform:none;filter:blur(0);transition-delay:.34s}
.csec.fx-scale .links.reveal{transform:translateY(30px);transition-delay:.50s}
.csec.fx-scale .links.reveal.in{transform:none}

/* 04 海外分销：3D 翻转入场 */
.csec.fx-rotate h2.reveal{transform:perspective(900px) rotateX(22deg) translateY(50px);transition-delay:.18s}
.csec.fx-rotate p.lead.reveal{transform:translateY(60px);transition-delay:.32s}
.csec.fx-rotate .links.reveal{transform:translateY(30px);transition-delay:.46s}
/* 复位 */
.csec.fx-rotate h2.reveal.in,
.csec.fx-rotate p.lead.reveal.in,
.csec.fx-rotate .links.reveal.in{transform:none}

/* 05 光伏物联网：标题线条揭示 + 内容淡入 */
.csec.fx-lines h2.lines{overflow:hidden}
.csec.fx-lines h2.lines span{display:block}
.csec.fx-lines h2.lines span i{display:block;transform:translateY(110%);transition:transform .9s var(--ease)}
.csec.fx-lines h2.lines.in span i{transform:none;transition-delay:.18s}
.csec.fx-lines p.lead.reveal{transform:translateY(40px);transition-delay:.34s}
.csec.fx-lines .links.reveal{transform:translateY(30px);transition-delay:.48s}

.hero .chips.reveal{transform:scale(.88)}
.hero .chips.reveal.in{transform:none}

/* showcase cards now use the default .reveal fade-up entrance */

.news .ncard.reveal{transform:translateY(40px)}
.news .ncard.reveal.in{transform:none}

.news .news-card.reveal{transform:translateY(40px)}
.news .news-card.reveal.in{transform:none}

.foot .foot-left .reveal-left{transform:translateX(-50px)}
.foot .foot-left .reveal-left.in{transform:none}
.foot .foot-right .reveal-right{transform:translateX(50px)}
.foot .foot-right .reveal-right.in{transform:none;transition-delay:.25s}
.foot .copy.reveal{transition-delay:.45s}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-left,.reveal-right,.reveal-scale,.reveal-rotate,.reveal-blur,
  .csec h2.reveal,.csec p.lead.reveal,.csec .links.reveal,
  .csec.fx-left h2.reveal,.csec.fx-left p.lead.reveal,.csec.fx-left .links.reveal,
  .csec.fx-right h2.reveal,.csec.fx-right p.lead.reveal,.csec.fx-right .links.reveal,
  .csec.fx-scale h2.reveal,.csec.fx-scale p.lead.reveal,.csec.fx-scale .links.reveal,
  .csec.fx-rotate h2.reveal,.csec.fx-rotate p.lead.reveal,.csec.fx-rotate .links.reveal,
  .csec.fx-lines p.lead.reveal,.csec.fx-lines .links.reveal,
  .csec.fx-lines h2.lines span i,
  .hero .chips.reveal,
  .news .news-card.reveal,.foot .foot-left .reveal-left,.foot .foot-right .reveal-right,.foot .copy.reveal
  {opacity:1;transform:none;filter:none;transition:none}
  .scrollhint .mouse::after{animation:none}
}

/* line reveal */
.lines span{display:block;overflow:hidden}
.lines span i{display:block;transform:translateY(110%);transition:transform .9s var(--ease)}
.lines.in span i{transform:none}
.lines.in span:nth-child(2) i{transition-delay:.12s}
.lines.in span:nth-child(3) i{transition-delay:.24s}

@media (max-width:900px){
  .nav .menu{display:none}
  .nav .tools{display:none}
  .grid.cols3,.grid.cols2,.stats .grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:28px;text-align:center}
  .foot-right{align-items:center}
  .foot-left .brand-logo img{margin-left:auto;margin-right:auto}
  .foot-phone{margin-left:auto;margin-right:auto}
  .foot-map{grid-template-columns:1fr;gap:24px}
  .map-static{min-height:160px}
  .page-hero{padding:120px 0 44px}
  .page-hero h1{font-size:30px}
  .rel-list{grid-template-columns:1fr}
  .wrap,.foot .wrap,.nav{padding-left:22px;padding-right:22px}
  .dots{right:12px}
}

/* ============================================================
   SUNGROW-STYLE GLOBAL INTERACTION SYSTEM (added 2026-07-21)
   ============================================================ */

/* ---------- Header (always white) + menu hover + tools hover ---------- */
.nav.scrolled{
  box-shadow:0 4px 20px rgba(0,0,0,.08);
}
/* 移动端菜单展开时导航底保持白色，菜单面板自身负责深色底 */
.nav.menu-open{
  box-shadow:0 4px 20px rgba(0,0,0,.08);
}

/* Centered menu underline hover (from center outward) */
.menu a{position:relative;transition:color .25s var(--ease)}
.menu a::after{
  content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);
  width:0;height:2px;background:var(--brand);border-radius:2px;
  transition:width .35s var(--ease);
}
/* hover 变品牌蓝；当前页保持导航文字色（透明/深色两种状态自适应），用品牌色下划线标注 */
.menu a:hover{color:var(--brand)}
.menu a.cur::after{width:100%}
.menu a:hover::after{width:100%}

/* Right tools hover (scale + color) */
.tools a{transition:color .2s,transform .25s var(--ease)}
.tools a:hover{transform:scale(1.1);color:var(--brand)}
.tools a svg{transition:transform .25s var(--ease)}
.tools a:hover svg{transform:scale(1.12)}

/* ===== 全局下拉子菜单：白色全屏横向链接条 ===== */
.menu li.has-sub{position:static;height:100%}
.menu li.has-sub > a{display:flex;align-items:center;height:100%}
.menu li.has-sub .submenu{
  position:fixed;top:70px;left:0;right:0;width:100%;
  min-width:auto;padding:0;
  background:#fff;border-radius:0;border-bottom:1px solid rgba(0,0,0,.06);
  box-shadow:0 18px 45px rgba(0,0,0,.10);
  opacity:0;pointer-events:none;transform:translateY(-10px);
  transition:opacity .3s,transform .3s var(--ease);
  z-index:55;
}
.menu li.has-sub .submenu::before{
  content:"";position:absolute;left:0;right:0;top:-40px;height:40px;
  pointer-events:none;
}
.menu li.has-sub .submenu-inner{
  display:flex;align-items:center;justify-content:center;gap:56px;
}
.menu li.has-sub:hover .submenu,
.menu li.has-sub .submenu:hover{opacity:1;pointer-events:auto;transform:translateY(0)}
.menu li.has-sub .submenu a{
  position:relative;padding:28px 0;font-size:15px;font-weight:500;color:#333;
  transition:color .2s;
}
.menu li.has-sub .submenu a::after{
  content:"";display:block;position:absolute;left:50%;bottom:18px;
  width:0;height:2px;background:var(--brand);transform:translateX(-50%);
  transition:width .25s var(--ease);
}
.menu li.has-sub .submenu a:hover{color:var(--brand)}
.menu li.has-sub .submenu a:hover::after{width:100%}

/* ---------- Card hover micro-interactions ---------- */
.card .pic img{transition:transform .6s var(--ease)}
.card:hover .pic img{transform:scale(1.08)}
.card .pic .tag{transition:background .3s var(--ease),color .3s}
.card:hover .pic .tag{background:var(--brand);color:#fff}
.card .more,
.card .more .arw,
.card .more svg{transition:gap .25s var(--ease),color .2s,transform .25s var(--ease)}
.card .more:hover{color:var(--brand-dark)}
.card .more:hover .arw,
.card .more:hover svg{transform:translateX(4px)}
.news .card .more:hover{color:var(--brand-dark);text-decoration:underline}

/* ---------- Related recommendations (news detail) ---------- */
.related-recs{margin-top:48px;padding-top:32px;border-top:1px solid #e5e8ed}
.related-recs h4{font-size:18px;font-weight:800;color:#1a1a1a;margin-bottom:18px}
.rel-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rel-card{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 18px;background:#fff;border:1px solid #e8ecf1;border-radius:12px;
  text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s;
}
.rel-card:hover{border-color:var(--brand);box-shadow:0 8px 22px rgba(26,99,196,.10);transform:translateY(-2px)}
.rel-title{font-size:14px;font-weight:600;color:#333;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rel-arrow{color:#999;font-size:18px;transition:color .2s,transform .2s}
.rel-card:hover .rel-arrow{color:var(--brand);transform:translateX(3px)}

/* ---------- Back to top ---------- */
.back-to-top{
  position:fixed;right:26px;bottom:26px;z-index:60;
  width:48px;height:48px;border-radius:50%;border:0;
  background:var(--brand);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(20px) scale(.9);pointer-events:none;
  transition:opacity .4s var(--ease),transform .4s var(--ease),background .3s;
  box-shadow:0 8px 20px rgba(26,99,196,.30);
}
.back-to-top.visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.back-to-top:hover{background:var(--brand-dark);transform:translateY(-3px) scale(1.05)}
.back-to-top svg{width:20px;height:20px;stroke-width:2}

/* ---------- Page load fade ---------- */
html{opacity:0;animation:pageLoad .5s var(--ease) .05s forwards}
@keyframes pageLoad{to{opacity:1}}

/* ---------- Footer hover ---------- */
.foot a,
.sg-foot-links a{position:relative;display:inline-block}
.sg-foot-links a::after{
  content:"";position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);
  width:0;height:1px;background:#fff;transition:width .3s var(--ease);
}
.sg-foot-links a:hover::after{width:100%}

/* ---------- Timeline year enhancements ---------- */
.fp-year{transition:color .25s var(--ease),font-size .3s var(--ease)}
.fp-year:hover{color:var(--brand)}
.fp-year.active{color:var(--brand-dark)}

/* ---------- Mobile hamburger menu ---------- */
.mobile-menu-toggle{
  display:none;align-items:center;justify-content:center;
  width:40px;height:40px;background:transparent;border:0;color:var(--ink);cursor:pointer;
}
.mobile-menu-toggle span{
  display:block;width:22px;height:2px;background:currentColor;border-radius:2px;
  position:relative;transition:background .3s;
}
.mobile-menu-toggle span::before,
.mobile-menu-toggle span::after{
  content:"";position:absolute;left:0;width:100%;height:2px;background:currentColor;border-radius:2px;
  transition:transform .3s var(--ease),top .3s var(--ease);
}
.mobile-menu-toggle span::before{top:-7px}
.mobile-menu-toggle span::after{top:7px}
.mobile-menu-toggle.active span{background:transparent}
.mobile-menu-toggle.active span::before{top:0;transform:rotate(45deg)}
.mobile-menu-toggle.active span::after{top:0;transform:rotate(-45deg)}
@media (max-width:900px){
  .mobile-menu-toggle{display:flex;z-index:55}
  .dots{display:none}   /* 移动端隐藏右侧点导航，避免遮挡内容 */
  .nav .menu{
    position:fixed;top:70px;left:0;right:0;bottom:0;
    background:#fff;
    flex-direction:column;align-items:center;justify-content:flex-start;
    gap:0;padding:20px 0;opacity:0;pointer-events:none;
    transform:translateY(-10px);transition:opacity .3s,transform .3s var(--ease);
  }
  .nav .menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}
  .nav .menu a{padding:16px 0;font-size:18px}
  .nav .menu .submenu{position:static;transform:none;opacity:1;pointer-events:auto;background:transparent;padding:0 0 0 20px;display:none}
  .nav .menu li.open .submenu{display:flex;flex-direction:column}
  .nav .menu li.open.has-sub .submenu{align-items:flex-start;gap:0;padding-left:20px}
  .nav .menu .submenu-inner{display:flex;flex-direction:column;align-items:flex-start;gap:0}
  .nav .menu li.open.has-sub .submenu a{padding:10px 0;font-size:15px;color:var(--ink)}
  .nav .menu li.open.has-sub .submenu a::after{display:none}
  .nav .menu li.open.has-sub .submenu a:hover{color:var(--brand)}
}

@media (prefers-reduced-motion:reduce){
  .menu a::after,.sec-head h2::after,.card .pic img,.card .pic .tag,
  .tools a,.tools a svg,.back-to-top,.foot a,.foot-phone,.foot-qr,
  .sg-foot-links a::after,.fp-year,.nav,.nav.scrolled
  {transition:none!important;animation:none!important}
  html{opacity:1;animation:none}
}

/* ---------- Customer service floating button (disabled) ---------- */
.cs-float{display:none !important}

/* ---------- Modal / lightbox ---------- */
.modal-overlay{
  position:fixed;inset:0;z-index:100;
  background:rgba(0,0,0,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;transition:opacity .35s var(--ease);
}
.modal-overlay.active{opacity:1;pointer-events:auto}
.modal-panel{
  position:fixed;right:0;top:0;bottom:0;width:min(420px,100%);z-index:101;
  background:#fff;transform:translateX(100%);
  transition:transform .4s var(--ease);
  padding:40px;display:flex;flex-direction:column;
}
.modal-panel.active{transform:translateX(0)}
.modal-close{
  position:absolute;top:16px;right:16px;width:36px;height:36px;border:0;background:transparent;cursor:pointer;color:#666;font-size:28px;line-height:1;
}
.modal-close:hover{color:var(--brand)}
.modal-panel h3{font-size:24px;font-weight:800;margin-bottom:8px;color:var(--ink)}
.modal-panel p{color:var(--gray);font-size:14px;margin-bottom:28px}
.form-row{margin-bottom:18px}
.form-row label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ink)}
.form-row input,.form-row textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:8px;font-size:14px;transition:border-color .2s,box-shadow .2s;
  font-family:inherit;
}
.form-row input:focus,.form-row textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,99,196,.14)}
.form-row textarea{min-height:100px;resize:vertical}
.modal-submit{
  width:100%;padding:14px;border:0;border-radius:8px;background:var(--brand);color:#fff;font-size:16px;font-weight:700;cursor:pointer;
  transition:background .2s,transform .2s;
}
.modal-submit:hover{background:var(--brand-dark);transform:translateY(-2px)}

/* Lightbox image */
.lightbox-img{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:40px;
  background:rgba(0,0,0,.9);opacity:0;pointer-events:none;transition:opacity .35s var(--ease);
}
.lightbox-img.active{opacity:1;pointer-events:auto}
.lightbox-img img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);transform:scale(.92);transition:transform .4s var(--ease)}
.lightbox-img.active img{transform:scale(1)}
.lightbox-img .lb-close{position:absolute;top:20px;right:20px;color:#fff;background:transparent;border:0;font-size:36px;cursor:pointer;line-height:1}

@media (max-width:480px){
  .back-to-top{right:18px;bottom:18px;width:44px;height:44px}
}

/* ===== 站内搜索覆盖层 ===== */
.tools button.tool-btn{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--ink);background:none;border:none;padding:0;margin:0;cursor:pointer;opacity:.92;font-family:inherit;transition:color .2s,transform .25s var(--ease)}
.tools button.tool-btn:hover{color:var(--brand);transform:scale(1.1)}
.tools button.tool-btn svg{width:18px;height:18px;stroke-width:1.5;transition:transform .25s var(--ease)}
.tools button.tool-btn:hover svg{transform:scale(1.12)}

.search-overlay{position:fixed;inset:0;z-index:2000;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 16px}
.search-overlay[hidden]{display:none}
.search-open{overflow:hidden}
.search-open #main-content{overflow:hidden}
.search-backdrop{position:absolute;inset:0;background:rgba(3,8,15,.62);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:sbFade .2s ease}
.search-panel{position:relative;width:100%;max-width:640px;background:#fff;color:#1a1a1a;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.35);overflow:hidden;animation:spPop .22s cubic-bezier(.2,.8,.2,1);max-height:84vh;display:flex;flex-direction:column}
.search-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #ececec}
.search-ico{width:20px;height:20px;flex:0 0 auto;color:#8a8a8a}
.search-field{flex:1;border:none;outline:none;font-size:16px;color:#1a1a1a;background:transparent;font-family:inherit}
.search-field::placeholder{color:#aaa}
.search-close{flex:0 0 auto;width:30px;height:30px;border:none;background:#f2f3f5;border-radius:50%;font-size:20px;line-height:1;color:#666;cursor:pointer;transition:background .15s,color .15s}
.search-close:hover{background:#e6e8eb;color:#1a1a1a}
.search-results{overflow-y:auto;padding:8px;max-height:60vh}
.search-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;border:none;background:transparent;padding:10px 12px;border-radius:10px;cursor:pointer;font-family:inherit;color:#1a1a1a;transition:background .12s}
.search-item:hover,.search-item.active{background:#eef4ff}
.si-cat{font-size:11px;color:var(--brand);font-weight:600;letter-spacing:.04em}
.si-title{font-size:14px;line-height:1.4}
.si-title mark{background:#fff3bf;color:inherit;padding:0 1px;border-radius:2px}
.search-empty{padding:28px 16px;text-align:center;color:#999;font-size:14px}
.search-foot{padding:10px 16px;border-top:1px solid #ececec;font-size:12px;color:#aaa;text-align:center}
@keyframes sbFade{from{opacity:0}to{opacity:1}}
@keyframes spPop{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .search-backdrop,.search-panel{animation:none}
}
@media (max-width:520px){
  .search-overlay{padding-top:6vh}
  .search-panel{max-height:88vh}
}

/* ===== 首页事业总览标签页 ===== */
.overview{color:#fff}
/* .overview .media::after 遮罩已移除：产业领域区背景图全清晰展示 */
.overview .wrap{max-width:1100px}
.overview .sec-head h2{color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.35)}
.overview .sec-head p{color:rgba(255,255,255,.82)}

.overview-tabs{
  display:inline-flex;gap:0;justify-content:center;margin:10px auto 34px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
  border-radius:var(--radius-pill);padding:4px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.tab-btn{
  appearance:none;border:none;background:transparent;color:#fff;font-size:15px;font-weight:600;
  padding:11px 26px;border-radius:var(--radius-pill);cursor:pointer;transition:all .25s var(--ease);
  font-family:inherit;position:relative;
}
.tab-btn:hover{background:rgba(255,255,255,.10)}
.tab-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.tab-btn.active{background:#fff;color:var(--brand-dark);box-shadow:0 4px 14px rgba(0,0,0,.18)}

.tab-panels{position:relative;width:100%}
.tab-panel{display:none;animation:fadeIn .45s var(--ease)}
.tab-panel.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;text-align:left}
.overview-grid.cols2{grid-template-columns:repeat(2,1fr);max-width:780px;margin:0 auto}
.overview-card{
  display:flex;flex-direction:column;gap:12px;
  padding:26px 24px;border-radius:var(--radius-md);
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  color:#fff;transition:transform .35s var(--ease),background .35s,border-color .35s,box-shadow .35s;
}
.overview-card:hover{
  transform:translateY(-8px);background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.32);box-shadow:0 20px 46px rgba(0,0,0,.28);
}
.overview-card:active{transform:translateY(-4px)}
.overview-card:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ov-icon{
  width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.14);color:#fff;margin-bottom:4px;
}
.ov-icon svg{width:24px;height:24px}
.overview-card h3{font-size:18px;font-weight:700}
.overview-card p{font-size:14px;line-height:1.7;color:rgba(255,255,255,.78);flex:1}
.ov-more{
  display:inline-flex;align-items:center;gap:4px;margin-top:4px;
  font-size:13px;font-weight:600;color:#fff;opacity:.9;
  transition:gap .25s var(--ease),opacity .2s;
}
.overview-card:hover .ov-more{gap:8px;opacity:1}

@media (max-width:900px){
  .overview-grid,.overview-grid.cols2{grid-template-columns:1fr}
  .overview-tabs{margin-bottom:26px}
  .tab-btn{padding:10px 18px;font-size:14px}
  .overview-card{padding:22px 20px}
}
@media (max-width:480px){
  .overview-tabs{width:100%;flex-direction:column;border-radius:var(--radius-md)}
  .tab-btn{width:100%;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .tab-panel{animation:none}
  .overview-card{transition:none}
}


/* ============ Home contact banner (SUNGROW full-width style) ============ */
.foot.contact-banner{
  position:relative;
  background:#ffffff;
  overflow:hidden;
  padding:0;
}
.foot.contact-banner::before{display:none}
.contact-banner .wrap{
  position:relative;z-index:1;
  max-width:1440px;margin:0 auto;
  padding:90px 40px 80px;
}
.contact-banner-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr 1.1fr;
  gap:56px;
  align-items:center;
}
.contact-banner-left{}
.contact-banner-left h2{
  font-size:clamp(34px,4.2vw,52px);
  font-weight:800;color:#1a1a1a;line-height:1.22;
  letter-spacing:4px;
  white-space:nowrap;
}
.contact-banner-left .phone{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:34px;font-size:20px;font-weight:600;color:#1a1a1a;
  transition:color .25s;
}
.contact-banner-left .phone:hover{color:var(--brand)}
.contact-banner-left .phone svg{width:22px;height:22px;stroke-width:1.8}

/* Center phone mockup */
.phone-mockup{display:flex;justify-content:center;align-items:center}
.phone-frame{
  position:relative;width:260px;height:520px;
  background:#111;border-radius:44px;padding:12px;
  box-shadow:0 30px 80px rgba(0,0,0,.25),inset 0 0 0 2px rgba(255,255,255,.12);
}
.phone-screen{
  width:100%;height:100%;border-radius:32px;overflow:hidden;background:#000;
}
.phone-screen img{width:100%;height:100%;object-fit:cover}
.phone-notch{
  position:absolute;top:18px;left:50%;transform:translateX(-50%);
  width:96px;height:24px;background:#111;border-radius:0 0 14px 14px;z-index:2;
}
.phone-buttons::before,.phone-buttons::after{
  content:"";position:absolute;left:-3px;width:3px;background:#b0b8c0;border-radius:2px;
}
.phone-buttons::before{top:90px;height:28px}
.phone-buttons::after{top:130px;height:56px}

/* Right QR codes */
.qr-list{display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.qr-item{
  display:flex;align-items:center;gap:18px;
  background:#fff;padding:16px 22px;border-radius:16px;
  box-shadow:0 4px 20px rgba(0,0,0,.06);
  transition:transform .3s,box-shadow .3s;
}
.qr-item:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.10)}
.qr-item img{width:88px;height:88px;object-fit:contain;border-radius:6px}
.qr-item .qr-text h4{font-size:16px;font-weight:700;color:#1a1a1a;margin-bottom:6px}
.qr-item .qr-text p{font-size:13px;color:#888;line-height:1.5}

/* Minimal copyright bar below banner */
.contact-banner-copy{
  background:#ffffff;color:#1a1a1a;
  font-size:12px;padding:18px 40px;
}
.contact-banner-copy .wrap{
  max-width:1440px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;
}

@media (max-width:1100px){
  .contact-banner-grid{grid-template-columns:1fr 1fr;gap:40px}
  .phone-mockup{order:-1;grid-column:1/-1;justify-self:center}
  .phone-frame{width:220px;height:440px;border-radius:38px}
  .phone-screen{border-radius:26px}
  .qr-list{align-items:center;width:100%}
  .qr-item{max-width:340px;width:100%}
}
@media (max-width:700px){
  .contact-banner .wrap{padding:60px 20px 50px}
  .contact-banner-grid{grid-template-columns:1fr;gap:32px;text-align:center}
  .contact-banner-left h2{font-size:32px;letter-spacing:1px}
  .contact-banner-left .phone{margin-top:24px;justify-content:center}
  .phone-mockup{order:-1}
  .phone-frame{width:180px;height:360px;border-radius:32px;padding:10px}
  .phone-screen{border-radius:22px}
  .phone-notch{width:72px;height:18px;top:14px;border-radius:0 0 10px 10px}
  .qr-list{align-items:center}
  .qr-item{padding:14px 18px;gap:14px}
  .qr-item img{width:72px;height:72px}
  .qr-item .qr-text h4{font-size:15px}
  .qr-item .qr-text p{font-size:12px}
  .contact-banner-copy{padding:14px 20px;text-align:center}
  .contact-banner-copy .wrap{justify-content:center}
}
