/* ============================================================
   Ocean Server — storefront theme v2 (Bootstrap 5.3 overlay)
   对齐 northedge-b2b 视觉：深海军蓝 navy + 信号橙 signal。
   改色只动 :root 变量。图片一律等比缩放（aspect-ratio + contain）。
   ============================================================ */
:root {
  --navy-50:#eef4fb; --navy-100:#d8e5f3; --navy-200:#b0c8e4; --navy-300:#7fa4cf;
  --navy-400:#4c78ae; --navy-500:#2a558a; --navy-600:#1c3f6b; --navy-700:#143053;
  --navy-800:#0e2340; --navy-900:#0a1a2b; --navy-950:#050f1c;
  --signal-50:#fff5ed; --signal-100:#ffe6d3; --signal-200:#fecda6; --signal-300:#f9a567;
  --signal-400:#f2802a; --signal-500:#e2620e; --signal-600:#c14e08;
  --ink:#16232e; --muted:#5b6b78; --line:#e5ecf2; --surface:#f6f9fb;
  --radius: .8rem;
  --shadow-sm: 0 1px 2px rgba(5,15,28,.06), 0 1px 3px rgba(5,15,28,.08);
  --shadow-md: 0 10px 30px rgba(5,15,28,.12);
  --bs-body-font-family: "Segoe UI", system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* 吸底 footer：内容不足一屏时页脚仍贴到视口底部（修复短页面 footer 下方露白） */
body { background:#fff; color:var(--ink); min-height:100vh; display:flex; flex-direction:column; }
body > * { width:100%; }
a { text-decoration:none; }
::selection { background:var(--signal-200); }

/* ================= 顶条 / 导航 ================= */
.os-topbar { background:var(--navy-950); color:rgba(255,255,255,.72); font-size:.92rem; }
.os-toplink { color:rgba(255,255,255,.78); }
.os-toplink:hover { color:var(--signal-300); }
.os-topbar .fw-orange { color:var(--signal-400); font-weight:700; }

.os-navbar { background:var(--navy-900); box-shadow:0 1px 0 rgba(255,255,255,.06) inset; transition:box-shadow .2s; }
.os-navbar.is-stuck { box-shadow:0 6px 24px rgba(5,15,28,.35); }
.os-navbar .navbar-brand span { letter-spacing:.01em; }
.os-navbar .nav-link { font-weight:600; font-size:.94rem; padding:.95rem .9rem; position:relative; }
.os-navbar .nav-link::after { content:""; position:absolute; left:.9rem; right:.9rem; bottom:.45rem; height:2px;
  background:var(--signal-400); transform:scaleX(0); transform-origin:left; transition:transform .2s; }
.os-navbar .nav-link:hover { color:#fff !important; }
.os-navbar .nav-link:hover::after { transform:scaleX(1); }
.os-navbar .nav-link.active-link::after { transform:scaleX(1); }

/* 分类下拉（mega-lite）
   注意：navbar 是 data-bs-theme="dark"，下拉菜单会继承深色底，
   故菜单节点强制回 light 主题（header.html 上有 data-bs-theme="light"），此处再兜底白底深字。 */
.os-dropdown { --bs-dropdown-bg:#fff; --bs-dropdown-link-color:var(--navy-800);
  background:#fff; color:var(--navy-900);
  border:0; border-radius:var(--radius); box-shadow:var(--shadow-md); padding:.5rem; min-width:230px; }
.os-dropdown .dropdown-item { border-radius:.5rem; padding:.55rem .8rem; font-weight:600; color:var(--navy-800); font-size:.92rem; }
.os-dropdown .dropdown-item:hover, .os-dropdown .dropdown-item:focus { background:var(--signal-50); color:var(--signal-600); }
.os-dropdown .os-ddhead { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); padding:.4rem .8rem .2rem; }

/* 桌面端：悬停即展开二级分类（移动端 <lg 保持点击，便于触屏操作；点击展开仍有效） */
@media (min-width: 992px) {
  .os-navbar .nav-item.dropdown { position:relative; }
  .os-navbar .nav-item.dropdown > .dropdown-menu { top:100%; left:0; margin-top:0; }
  .os-navbar .nav-item.dropdown:hover > .dropdown-menu { display:block; }
  .os-navbar .nav-item.dropdown:hover > .nav-link { color:#fff; }
  .os-navbar .nav-item.dropdown:hover > .nav-link::after { transform:scaleX(1); }
}

.os-searchbox .form-control { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:#fff; min-width:210px; border-radius:.55rem 0 0 .55rem; }
.os-searchbox .form-control::placeholder { color:rgba(255,255,255,.45); }
.os-searchbox .form-control:focus { background:rgba(255,255,255,.14); color:#fff; box-shadow:none; border-color:var(--signal-400); }
.os-searchbox .btn { border-radius:0 .55rem .55rem 0; }

/* ================= 按钮 ================= */
.btn { font-weight:700; }
.os-btn-accent { background:var(--signal-500); border-color:var(--signal-500); color:#fff; }
.os-btn-accent:hover { background:var(--signal-600); border-color:var(--signal-600); color:#fff; transform:translateY(-1px); box-shadow:0 6px 16px rgba(226,98,14,.35); }
.os-btn-accent:active { background:var(--signal-600)!important; }
.os-btn-ghost { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.28); color:#fff; }
.os-btn-ghost:hover { background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.4); }
.os-btn-outline { border:1.5px solid var(--navy-800); color:var(--navy-800); }
.os-btn-outline:hover { background:var(--navy-900); color:#fff; border-color:var(--navy-900); }
.os-btn-chip { border:1px solid var(--line); color:var(--navy-800); background:#fff; }
.os-btn-chip:hover { border-color:var(--signal-400); color:var(--signal-600); background:var(--signal-50); }

/* ================= Hero ================= */
.os-hero {
  position:relative; color:#fff; overflow:hidden;
  background:
    radial-gradient(900px 380px at 88% -20%, rgba(242,128,42,.22), transparent 62%),
    linear-gradient(118deg, var(--navy-950) 0%, var(--navy-900) 52%, var(--navy-800) 100%);
}
.os-hero::before { content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(720px 420px at 78% 30%, #000 30%, transparent 75%);
}
.os-hero::after { content:""; position:absolute; right:-140px; bottom:-180px; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle at 35% 35%, rgba(242,128,42,.16), transparent 65%); pointer-events:none; }
.os-hero .container { position:relative; z-index:1; }
.os-hero-title { font-size:clamp(2rem, 4vw, 3.3rem); font-weight:800; letter-spacing:-.022em; line-height:1.08; }
.os-hero-sub { max-width:34rem; color:rgba(255,255,255,.75); font-size:1.06rem; line-height:1.75; }
.os-hero-title .hl { color:var(--signal-400); }
.os-hero-bullets { list-style:none; padding:0; color:rgba(255,255,255,.75); font-size:.95rem; }
.os-hero-bullets li { margin-bottom:.3rem; }
.os-hero-bullets li::before { content:"✓"; color:var(--signal-400); font-weight:800; margin-right:.5rem; }
.os-pill-live { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.22); color:#ffe9d9; font-weight:700; backdrop-filter:blur(2px); }
.os-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#2fd6a3; margin-right:.4rem;
  box-shadow:0 0 0 0 rgba(47,214,163,.5); animation:os-pulse 1.8s infinite; }
@keyframes os-pulse { 0%{box-shadow:0 0 0 0 rgba(47,214,163,.5)} 70%{box-shadow:0 0 0 8px rgba(47,214,163,0)} 100%{box-shadow:0 0 0 0 rgba(47,214,163,0)} }

/* 统计卡：浅色页面（About 统计带）为基准——白卡深字；深色 Hero（首页）内单独覆盖 */
.os-stats { position:relative; z-index:1; }
.os-stat { background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.05rem 1.15rem; box-shadow:var(--shadow-sm); transition:all .2s; }
.os-stat:hover { border-color:var(--signal-300); transform:translateY(-2px); }
.os-statnum { font-size:1.8rem; font-weight:800; color:var(--navy-900); line-height:1.1; }
.os-statnum small { font-size:.6em; color:var(--signal-500); }
.os-statlabel { font-size:.74rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin-top:.25rem; }
/* 深色 Hero 内：半透明白卡 + 白字（首页 hero 右侧四格） */
.os-hero .os-stat { background:rgba(255,255,255,.055); border-color:rgba(255,255,255,.14);
  box-shadow:none; backdrop-filter:blur(3px); }
.os-hero .os-stat:hover { border-color:rgba(242,128,42,.55); }
.os-hero .os-statnum { color:#fff; }
.os-hero .os-statnum small { color:var(--signal-300); }
.os-hero .os-statlabel { color:rgba(255,255,255,.55); }

/* ================= 区块标题 ================= */
.os-overline { display:inline-flex; align-items:center; gap:.5rem; font-size:.74rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.14em; color:var(--signal-500); }
.os-overline::before { content:""; width:22px; height:2.5px; background:var(--signal-400); border-radius:2px; }
.os-sectitle { font-weight:800; color:var(--navy-900); letter-spacing:-.01em; }
.os-band { background:var(--surface); }

/* ================= 分类卡 / 信任卡 ================= */
.os-catcard { position:relative; display:block; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.15rem 1.2rem; background:#fff; height:100%; transition:all .18s; overflow:hidden; }
.os-catcard::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--signal-400);
  transform:scaleY(0); transform-origin:top; transition:transform .2s; }
.os-catcard:hover { border-color:var(--navy-200); box-shadow:var(--shadow-md); transform:translateY(-3px); }
.os-catcard:hover::before { transform:scaleY(1); }
.os-catcard-list { list-style:none; padding:.5rem 0 0; margin-bottom:.6rem; border-top:1px dashed var(--line); }
.os-catcard-list li { color:#44586a; font-size:.86rem; }
.os-catcard-more { color:var(--signal-500); font-weight:700; font-size:.86rem; }
.os-badge-count { background:var(--signal-50); color:var(--signal-600); border:1px solid var(--signal-100); font-weight:700; }

.os-trust { border:1px solid var(--line); border-radius:var(--radius); padding:1.15rem 1.25rem; height:100%; background:#fff; transition:all .18s; }
.os-trust:hover { box-shadow:var(--shadow-sm); border-color:var(--navy-200); }
.os-trust h6 { color:var(--navy-900); font-weight:800; }
.os-trust h6::before { content:"◆"; color:var(--signal-400); font-size:.7em; margin-right:.45rem; vertical-align:2px; }

/* ================= 面包屑 ================= */
.os-breadcrumb { background:var(--surface); border-bottom:1px solid var(--line); }
.os-breadcrumb .breadcrumb { padding:.6rem 0; --bs-breadcrumb-divider-color:var(--muted); }
.os-breadcrumb .breadcrumb-item a { color:var(--navy-700); font-weight:600; text-decoration:none; transition:color .15s; }
.os-breadcrumb .breadcrumb-item a:hover { color:var(--signal-600); }
.os-breadcrumb .breadcrumb-item.active { color:var(--navy-700); font-weight:600; }
.os-ellip { display:inline-block; max-width:26rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom; }

/* ================= 商品卡 ================= */
.os-card { border:1px solid var(--line); border-radius:var(--radius); transition:all .18s; background:#fff; }
.os-card:hover { border-color:var(--navy-200); box-shadow:var(--shadow-md); transform:translateY(-3px); }
.os-cardimg-link { display:block; background:#fff; border-radius:var(--radius) var(--radius) 0 0; overflow:hidden; }
/* 等比缩放：容器锁定 1:1，图片 contain，不拉伸 */
.os-cardimg { width:100%; aspect-ratio:1/1; object-fit:contain; padding:.9rem; transition:transform .25s ease; }
.os-card:hover .os-cardimg { transform:scale(1.06); }
.os-cardtitle { font-weight:700; color:var(--navy-900); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.5em; }
.os-cardtitle:hover { color:var(--signal-600); }
.os-cardsub { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.os-brandline { font-size:.78rem; font-weight:600; letter-spacing:.02em; color:var(--navy-400); text-transform:uppercase; }
.os-price { font-weight:800; color:var(--navy-900); font-size:1.08rem; }
.os-price-quote { color:var(--signal-500); }
.os-badge-cond { background:var(--signal-50); color:var(--signal-600); border:1px solid var(--signal-100); font-weight:700; text-transform:capitalize; }

/* ================= 筛选侧栏 ================= */
.os-filters { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.05rem 1.2rem; }
@media (min-width: 992px) { .os-filters { position:sticky; top:86px; } }
.os-facet { border-top:1px dashed var(--line); padding:.8rem 0; }
.os-facet-title { font-weight:800; font-size:.8rem; text-transform:uppercase; letter-spacing:.07em; color:var(--navy-900);
  margin-bottom:.45rem; display:flex; align-items:center; gap:.45rem; }
.os-facet-title::before { content:""; width:14px; height:2.5px; background:var(--signal-400); border-radius:2px; }
.os-filters .form-check-input:checked { background-color:var(--signal-500); border-color:var(--signal-500); }
.os-filters .form-check-input:focus { box-shadow:0 0 0 .2rem rgba(242,128,42,.18); border-color:var(--signal-300); }
.os-filters .form-check-label { font-size:.9rem; }
.os-count { color:#93a4b1; font-size:.76em; background:var(--surface); border:1px solid var(--line);
  border-radius:99px; padding:0 .45rem; margin-left:.3rem; }
.os-clear { color:var(--signal-600); font-weight:700; }
.os-sortbox .form-select { border-color:var(--line); font-weight:600; }
.os-sortbox .form-select:focus { border-color:var(--signal-300); box-shadow:0 0 0 .2rem rgba(242,128,42,.15); }

/* ================= 详情页 ================= */
.os-gallery { border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:1.25rem;
  display:flex; align-items:center; justify-content:center; transition:box-shadow .2s; }
.os-gallery:hover { box-shadow:var(--shadow-md); }
/* 等比缩放：宽度撑满、高度自适应，任何原图都不拉伸 */
.os-gallery-img { width:100%; height:auto; object-fit:contain; }
.os-gallery:hover .os-gallery-img { transform:scale(1.02); }
.os-gallery-img { transition:transform .25s ease; }
.os-trustline { display:flex; flex-wrap:wrap; gap:.35rem 1rem; }
.os-trustline .ok::before { content:"✓"; color:var(--signal-500); font-weight:800; margin-right:.35rem; }

.os-pricebox { border:1px solid var(--line); border-left:4px solid var(--signal-500); border-radius:.6rem;
  padding:.95rem 1.15rem; background:var(--signal-50); }
.os-price-lg { font-size:1.7rem; font-weight:800; color:var(--navy-900); }
.os-price-lg.os-price-quote { color:var(--signal-500); }
.os-quickfacts dt, .os-quickfacts dd { margin-bottom:.4rem; }
.os-quickfacts dd a { color:var(--signal-600); font-weight:600; }

/* Accepted Payments 图标胶囊（Quick Facts 内，风格同 os-pitem） */
.os-paypills { display:inline-flex; flex-wrap:wrap; gap:.4rem; vertical-align:top; }
.os-paypill { display:inline-flex; align-items:center; gap:.4rem; font-size:.8rem; font-weight:600;
  color:var(--navy-800); background:var(--navy-50); border:1px solid var(--line);
  border-radius:2rem; padding:.28rem .75rem .28rem .6rem; line-height:1.25; }
.os-paypill svg { flex:none; width:.95rem; height:.95rem; color:var(--signal-500); }

/* 首页 Latest Arrivals 分类 Tab（Bootstrap tab 覆肤，风格对齐导航下划线） */
.os-ptabs { gap:.4rem; border-bottom:1px solid var(--line); }
.os-ptabs .nav-link { border:1px solid transparent; border-bottom:none; border-radius:.6rem .6rem 0 0;
  font-size:.86rem; font-weight:600; color:var(--muted); padding:.45rem .95rem; }
.os-ptabs .nav-link:hover { color:var(--navy-800); }
.os-ptabs .nav-link.active { color:var(--signal-600); background:var(--navy-50); border-color:var(--line); }

/* 首页 Guides & Insights 文章卡 */
.os-guide { display:flex; flex-direction:column; gap:.45rem; height:100%; background:#fff;
  border:1px solid var(--line); border-radius:var(--radius); padding:1.2rem 1.25rem;
  color:inherit; text-decoration:none; transition:box-shadow .2s; }
.os-guide:hover { box-shadow:var(--shadow-md); }
.os-guide-cat { align-self:flex-start; font-size:.7rem; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--signal-600); background:var(--signal-50);
  border-radius:99px; padding:.15rem .65rem; }
.os-guide-title { font-size:1.02rem; font-weight:700; color:var(--navy-900); margin:0; line-height:1.45; }
.os-guide-sum { font-size:.86rem; color:var(--muted); margin:0; display:-webkit-box;
  -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.os-guide-more { margin-top:auto; font-size:.8rem; font-weight:600; color:var(--signal-600); }

/* 文章详情页（复用 os-legal 版式节奏 + 正文排版增强） */
.os-article-body { font-size:.95rem; line-height:1.8; color:var(--ink); }
.os-article-body h2 { font-size:1.25rem; font-weight:700; color:var(--navy-900); margin:2rem 0 .8rem; }
.os-article-body h3 { font-size:1.05rem; font-weight:700; color:var(--navy-800); margin:1.5rem 0 .6rem; }
.os-article-body p, .os-article-body ul, .os-article-body ol { margin-bottom:.9rem; }
.os-article-body img { max-width:100%; height:auto; border-radius:.5rem; }
.os-article-body table { width:100%; border-collapse:collapse; margin:1.2rem 0; font-size:.88rem; }
.os-article-body th, .os-article-body td { border:1px solid var(--line); padding:.5rem .75rem; text-align:left; }
.os-article-body th { background:var(--navy-50); }
.os-guide-cta { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  background:var(--navy-50); border:1px solid var(--line); border-radius:var(--radius); padding:1.1rem 1.3rem; }

/* 服务承诺条（详情页价格框下，B 端信任四件套） */
.os-promise { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:.55rem; }
.os-pitem { display:flex; align-items:center; gap:.5rem; font-size:.85rem; font-weight:600;
  color:var(--navy-800); background:var(--navy-50); border:1px solid var(--line);
  border-radius:.6rem; padding:.55rem .7rem; }
.os-pitem svg { flex:none; width:1.05rem; height:1.05rem; color:var(--signal-500); }

/* 详情页内联迷你询盘 */
.os-quickrfq { background:linear-gradient(135deg, var(--navy-900), var(--navy-700));
  border-radius:var(--radius); padding:1.6rem 1.6rem 1.5rem; color:#fff;
  box-shadow:var(--shadow-md); scroll-margin-top:1.2rem; }
.os-quickrfq h2 { color:#fff; }
.os-quickrfq .text-secondary { color:rgba(255,255,255,.72) !important; }
.os-quickrfq .form-label { color:rgba(255,255,255,.88); }
.os-quickrfq .form-control { border:0; border-radius:.55rem; padding:.6rem .8rem; }
.os-quickrfq .form-control:focus { box-shadow:0 0 0 .2rem rgba(242,128,42,.35); }
.os-quickrfq a { color:var(--signal-300); font-weight:600; }
.os-quickrfq a:hover { color:var(--signal-200); text-decoration:underline; }
.os-alert-ok { background:#e5f9f2; color:#116b4b; border:0; border-radius:.6rem; padding:1rem 1.1rem; }
.os-doneicon-sm { flex:none; width:28px; height:28px; border-radius:50%; background:#1d9e6f;
  color:#fff; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }

.os-spectable { border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.os-spectable th { width:38%; color:#44586a; font-weight:600; background:var(--surface); }
.os-spectable th, .os-spectable td { border:0; border-bottom:1px solid var(--line); font-size:.92rem; padding:.6rem .85rem; }
.os-spectable tr:last-child th, .os-spectable tr:last-child td { border-bottom:0; }
.os-spectable tbody tr:hover th, .os-spectable tbody tr:hover td { background:#fbfdfe; }

.os-accordion { border-radius:var(--radius); overflow:hidden; }
.os-accordion .accordion-item { border-color:var(--line); }
.os-accordion .accordion-button { font-weight:700; font-size:.94rem; color:var(--navy-900); }
.os-accordion .accordion-button:not(.collapsed) { color:var(--signal-600); background:var(--signal-50); box-shadow:inset 0 -1px 0 var(--line); }
.os-accordion .accordion-button:focus { box-shadow:none; }

/* 详情富文本（后台维护内容） */
.os-detail h3 { font-size:1.18rem; font-weight:800; color:var(--navy-900); margin:2.1rem 0 .85rem; padding-left:.75rem;
  border-left:4px solid var(--signal-400); line-height:1.35; }
.os-detail table { width:100%; border-collapse:collapse; font-size:.92rem; }
.os-detail th, .os-detail td { border:1px solid var(--line); padding:.55rem .8rem; }
.os-detail th { background:var(--surface); width:38%; color:#44586a; }
.os-detail tr:hover th, .os-detail tr:hover td { background:#fbfdfe; }
.os-detail p, .os-detail li { color:#34434e; line-height:1.8; }
.os-detail ol li::marker { color:var(--signal-500); font-weight:700; }
.os-detail b { color:var(--navy-900); }

/* ================= 品牌 ================= */
.os-brandcard { display:flex; gap:1.1rem; align-items:center; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.25rem; height:100%; background:#fff; transition:all .18s; }
.os-brandcard:hover { border-color:var(--signal-300); box-shadow:var(--shadow-md); transform:translateY(-2px); }
.os-brandlogo { width:56px; height:56px; object-fit:contain; flex-shrink:0; }

/* ================= 表单 / 杂项 ================= */
.os-form .form-label { font-weight:700; font-size:.88rem; color:var(--navy-900); }
.os-form .form-control:focus, .os-form .form-select:focus { border-color:var(--signal-300); box-shadow:0 0 0 .2rem rgba(242,128,42,.15); }
.os-alert { border-radius:.6rem; }
.os-empty { border:1.5px dashed var(--navy-200); border-radius:var(--radius); padding:2.6rem 1.5rem; background:var(--surface); }
.os-doneicon { width:66px; height:66px; margin:0 auto; border-radius:50%; background:#e5f9f2; color:#1d9e6f;
  font-size:2rem; font-weight:800; line-height:66px; }
.os-pagehead { border-bottom:3px solid var(--navy-900); padding-bottom:.6rem; margin-bottom:1rem; display:inline-block; }

/* ================= 分页 / 页脚 ================= */
.os-pagination .page-link { color:var(--navy-700); border-color:var(--line); font-weight:700; }
.os-pagination .page-item.active .page-link { background:var(--signal-500); border-color:var(--signal-500); color:#fff; }
.os-pagination .page-link:hover { background:var(--signal-50); color:var(--signal-600); }

.os-footer { background:var(--navy-950); margin-top:auto; }
.os-footer h6 { letter-spacing:.06em; }
.os-footerlink { color:rgba(255,255,255,.6); transition:color .15s; }
.os-footerlink:hover { color:var(--signal-300); }
.os-footer-bottom { border-top:1px solid rgba(255,255,255,.08); }
.os-gotop { position:fixed; right:1.2rem; bottom:1.4rem; width:42px; height:42px; border-radius:50%;
  background:var(--navy-900); color:#fff; border:1px solid rgba(255,255,255,.2); display:none;
  align-items:center; justify-content:center; z-index:1040; transition:all .2s; cursor:pointer; }
.os-gotop:hover { background:var(--signal-500); border-color:var(--signal-500); }
.os-gotop.show { display:flex; }

/* 卡片入场动画（首次渲染轻微上浮） */
@media (prefers-reduced-motion: no-preference) {
  .os-fadein { animation:os-fadein .35s ease both; }
  @keyframes os-fadein { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
}

.mt4 { margin-top:.25rem; }

/* ================= 法务/单页（隐私协议、服务条款） ================= */
.os-legal-head { border-bottom:1px solid var(--line); }
.os-legal-body { font-size:.97rem; line-height:1.75; color:var(--ink); }
.os-legal-body h2 { font-size:1.15rem; font-weight:700; color:var(--navy-900);
  margin:1.8rem 0 .8rem; padding-left:.7rem; border-left:4px solid var(--signal-500); }
.os-legal-body h3 { font-size:1rem; font-weight:700; color:var(--navy-800); margin:1.2rem 0 .5rem; }
.os-legal-body p { margin-bottom:.85rem; }
.os-legal-body ul, .os-legal-body ol { margin:0 0 .85rem; padding-left:1.4rem; }
.os-legal-body li { margin-bottom:.35rem; }
.os-legal-body a { color:var(--signal-600); font-weight:600; }
.os-legal-body a:hover { text-decoration:underline; }
.os-legal-body table { width:100%; border-collapse:collapse; margin:0 0 1rem; font-size:.9rem; }
.os-legal-body th, .os-legal-body td { border:1px solid var(--line); padding:.45rem .7rem; text-align:left; }
.os-legal-body th { background:var(--surface); }
.os-legal-sign { border-top:1px solid var(--line); }

/* ================= About 页（流程步骤 / 地图 / 联系列表） ================= */
.os-step { background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.1rem 1.1rem 1rem; height:100%; transition:box-shadow .18s ease, transform .18s ease; }
.os-step:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.os-stepnum { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px;
  border-radius:50%; background:var(--signal-50); color:var(--signal-500); font-weight:800;
  border:2px solid var(--signal-400); margin-bottom:.6rem; }
.os-map { border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  box-shadow:var(--shadow-sm); height:100%; min-height:340px; background:var(--surface); }
.os-map iframe { display:block; width:100%; height:100%; min-height:340px; border:0; }
.os-visitlist li a { color:var(--signal-600); font-weight:600; }

/* ================= 首页：Hero 大搜索框 ================= */
.os-searchhero { display:flex; gap:.6rem; max-width:34rem; margin-top:1.35rem; position:relative; }
.os-searchhero .form-control { padding-left:2.7rem; border-radius:.65rem; border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.1); color:#fff; }
.os-searchhero .form-control::placeholder { color:rgba(255,255,255,.55); }
.os-searchhero .form-control:focus { background:rgba(255,255,255,.16); border-color:var(--signal-400);
  box-shadow:0 0 0 .2rem rgba(242,128,42,.22); color:#fff; }
.os-searchhero-ic { position:absolute; left:.95rem; top:50%; transform:translateY(-50%); width:1.1rem; height:1.1rem;
  color:rgba(255,255,255,.65); pointer-events:none; z-index:2; }
.os-searchhero .btn { flex-shrink:0; }

/* ================= 首页：品牌 Logo 墙（读 brand 表动态渲染，左对齐） ================= */
.os-brandwall { background:#fff; border-bottom:1px solid var(--line); }
.os-brandwall-item { display:flex; align-items:center; opacity:.72; filter:grayscale(1); transition:all .18s; }
.os-brandwall-item:hover { opacity:1; filter:none; transform:translateY(-1px); }
.os-brandwall-item img { height:30px; width:auto; object-fit:contain; }

/* ================= 首页：分类卡（子分类链接版） ================= */
.os-catcard-main { display:block; text-decoration:none; }
.os-catcard-main h3 { color:var(--navy-900); }
.os-catcard-main:hover h3 { color:var(--signal-600); }
.os-catcard-subs { display:flex; flex-direction:column; gap:.1rem; margin:.55rem 0 .75rem;
  border-top:1px dashed var(--line); padding-top:.55rem; }
.os-catsub { display:flex; justify-content:space-between; align-items:center; gap:.75rem; text-decoration:none;
  color:#44586a; font-size:.87rem; padding:.24rem .35rem; border-radius:.4rem; transition:all .15s; }
.os-catsub:hover { background:var(--surface); color:var(--signal-600); }
.os-catsub b { color:#93a4b1; font-size:.76rem; background:var(--surface); border:1px solid var(--line);
  border-radius:99px; padding:0 .5rem; }
.os-catsub:hover b { color:var(--signal-600); border-color:var(--signal-100); background:var(--signal-50); }
.os-catcard-foot { border-top:1px dashed var(--line); padding-top:.6rem; }

/* ================= 首页：Why Us 图标网格 ================= */
.os-why { border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem 1.3rem 1.15rem; height:100%;
  background:#fff; transition:all .18s; }
.os-why:hover { border-color:var(--navy-200); box-shadow:var(--shadow-md); transform:translateY(-3px); }
.os-why-ic { width:44px; height:44px; border-radius:.75rem; background:var(--signal-50); border:1px solid var(--signal-100);
  color:var(--signal-600); display:flex; align-items:center; justify-content:center; margin-bottom:.75rem; }
.os-why-ic svg { width:24px; height:24px; }
.os-why h6 { color:var(--navy-900); font-weight:800; margin-bottom:.35rem; }
.os-why p { color:#5b6c7b; }

/* ================= 首页：客户评价 ================= */
.os-review { border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem 1.3rem 1.15rem; height:100%;
  background:#fff; display:flex; flex-direction:column; transition:all .18s; }
.os-review:hover { border-color:var(--navy-200); box-shadow:var(--shadow-sm); }
.os-review-stars { color:#f2a33c; letter-spacing:.12em; font-size:.95rem; margin-bottom:.5rem; }
.os-review-body { color:#44586a; line-height:1.7; margin-bottom:1rem; }
.os-review-author { display:flex; align-items:center; gap:.7rem; margin-top:auto; border-top:1px dashed var(--line);
  padding-top:.8rem; }
.os-review-avatar { width:38px; height:38px; border-radius:50%; background:var(--navy-700); color:#fff; font-weight:800;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; text-transform:uppercase; }

/* ================= 首页：完整报价表单 ================= */
.os-quoteform { border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff;
  box-shadow:var(--shadow-sm); }
.os-quoteform-side { background:var(--navy-900); }
.os-sidebullets { list-style:none; padding:0; margin-bottom:1.25rem; }
.os-sidebullets li { color:rgba(255,255,255,.82); font-size:.92rem; margin-bottom:.5rem; padding-left:1.35rem;
  position:relative; }
.os-sidebullets li::before { content:"✓"; position:absolute; left:0; color:var(--signal-400); font-weight:800; }
.os-sidecontact { border-top:1px solid rgba(255,255,255,.14); padding-top:1rem; }
.os-sidelink { color:#fff; font-weight:700; text-decoration:none; }
.os-sidelink:hover { color:var(--signal-400); }

/* ================= 首页：订阅条 ================= */
.os-newsletter { background:var(--navy-800); border-top:3px solid var(--signal-400); }
.os-newsletter .form-control { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); color:#fff; }
.os-newsletter .form-control::placeholder { color:rgba(255,255,255,.5); }
.os-newsletter .form-control:focus { background:rgba(255,255,255,.16); border-color:var(--signal-400);
  box-shadow:0 0 0 .2rem rgba(242,128,42,.22); color:#fff; }

/* ================= 首页：评价区翻页（前端分页，每页 6 条） ================= */
.os-rv-btn { width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:#fff;
  color:var(--navy-800); display:flex; align-items:center; justify-content:center; transition:all .15s;
  cursor:pointer; flex-shrink:0; }
.os-rv-btn:hover { background:var(--signal-50); border-color:var(--signal-400); color:var(--signal-600); }
.os-rv-btn:active { transform:scale(.94); }
.os-rv-count { font-size:.85rem; font-weight:700; color:var(--navy-800); min-width:3.2rem; text-align:center;
  font-variant-numeric:tabular-nums; }
.os-rv-col { transition:opacity .18s; }
.os-rv-col.os-rv-hidden { display:none; }
.os-rv-col.os-rv-fading { opacity:0; }

/* 评价区标题行：标题居中，翻页器悬浮右侧（窄屏回落标题下方居中） */
.os-rv-head { position:relative; }
.os-rv-head .os-rv-pager { position:absolute; right:0; top:50%; transform:translateY(-50%); }
@media (max-width:575.98px) {
  .os-rv-head .os-rv-pager { position:static; transform:none; margin-top:.55rem; }
}

/* ---------- Footer 社交图标（站点配置 linkedin 等，填了才显示） ---------- */
.os-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--signal-500); /* 领英等社交图标 = 主题橙 */
  transition: background .15s ease, color .15s ease;
}
.os-social:hover {
  background: var(--signal-500);
  color: #fff;
  text-decoration: none;
}
