/* ============================================================
   王电子主站 · 共享样式  /assets/site.css
   奶油信号纸底 + 电子信号蓝结构 + 警示橙状态 + 荧光青绿点位
   ============================================================ */

:root{
  /* 色彩 */
  --paper:#F4EEE2;
  --paper-2:#EDE4D3;
  --ink:#14171C;
  --ink-2:#20252D;
  --blue:#2457E6;
  --blue-deep:#1B3FB0;
  --orange:#FF5A1F;
  --mint:#2BE8B0;
  --amber:#F5B301;
  --brown:#4A3A2E;
  --khaki:#CFC6B4;
  --white:#FFFFFF;
  --fog:#6E7A8A;

  /* 形状 */
  --r-sm:8px;
  --r-md:14px;
  --r-lg:22px;
  --r-xl:32px;
  --r-pill:999px;

  /* 尺寸 */
  --wide:1280px;
  --gutter:clamp(18px,4vw,48px);
  --head-h:112px;

  /* 字体 */
  --font-sans:"HarmonyOS Sans SC","Source Han Sans SC","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* 动效 */
  --ease:cubic-bezier(.2,.7,.3,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--head-h) + 18px);
}
body,h1,h2,h3,h4,h5,p,ul,ol,li,figure,blockquote{margin:0;}
ul,ol{padding:0;list-style:none;}
img,svg{display:block;max-width:100%;}
button{font:inherit;color:inherit;background:none;border:0;}
a{color:var(--blue);text-decoration-thickness:1px;text-underline-offset:3px;}
h1,h2,h3,h4{font-weight:800;letter-spacing:-.02em;line-height:1.2;}

/* ---------- 基础排版 ---------- */
body{
  padding-top:var(--head-h);
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.75;
  letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.is-locked{overflow:hidden;}

/* ---------- 焦点 ---------- */
:where(a,button,[tabindex]):focus-visible{
  outline:3px solid var(--orange);
  outline-offset:3px;
  border-radius:var(--r-sm);
}

/* ---------- 工具类 ---------- */
.visually-hidden{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}
.mono{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
}
.label{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--fog);
}
.annot{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--fog);
}
.annot--vertical{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  color:var(--khaki);
}
.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 10px;
  border-radius:var(--r-pill);
  background:var(--amber);
  color:var(--ink);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.wrap{
  width:100%;
  max-width:var(--wide);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ---------- 栅格 ---------- */
.grid{display:grid;gap:clamp(16px,2.4vw,28px);}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}

/* ---------- 面板 ---------- */
.panel{
  background:var(--white);
  border:1.5px solid var(--ink);
  border-radius:var(--r-lg);
  padding:clamp(18px,2.4vw,28px);
}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 20px;
  border:1.5px solid var(--ink);
  border-radius:var(--r-pill);
  font-family:inherit;
  font-size:14px;
  font-weight:700;
  letter-spacing:-.01em;
  line-height:1.2;
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s var(--ease),background-color .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease);
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn--primary{
  background:var(--orange);
  color:var(--ink);
  box-shadow:0 4px 0 var(--ink);
}
.btn--primary:hover{background:#FF7440;box-shadow:0 6px 0 var(--ink);}
.btn--quiet{
  background:var(--blue);
  color:var(--white);
  border-color:var(--blue);
}
.btn--quiet:hover{background:var(--blue-deep);border-color:var(--blue-deep);}
.btn--ghost{
  background:transparent;
  color:var(--ink);
}
.btn--ghost:hover{background:var(--paper-2);}

/* ---------- 面包屑 ---------- */
.crumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding-block:18px;
  font-size:12px;
  letter-spacing:.04em;
  color:var(--fog);
}
.crumbs a{
  color:var(--brown);
  text-decoration:none;
  border-bottom:1px solid var(--khaki);
  padding-bottom:1px;
}
.crumbs a:hover{color:var(--blue);border-bottom-color:var(--blue);}
.crumbs__sep{color:var(--khaki);}
.crumbs [aria-current="page"]{color:var(--ink);font-weight:700;}

/* ---------- 图像容器基础（页面阶段放图） ---------- */
.media-frame{
  position:relative;
  display:block;
  overflow:hidden;
  border:1.5px solid var(--brown);
  border-radius:var(--r-lg);
  background-color:var(--ink-2);
  background-image:
    repeating-linear-gradient(0deg,rgba(43,232,176,.10) 0 1px,transparent 1px 28px),
    repeating-linear-gradient(90deg,rgba(43,232,176,.10) 0 1px,transparent 1px 28px);
  isolation:isolate;
}
.media-frame__img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.media-frame--wide{aspect-ratio:16 / 9;}
.media-frame--tall{aspect-ratio:3 / 4;}
.media-frame--square{aspect-ratio:1 / 1;}
.media-frame--cut{
  border-radius:0;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 46px),0 100%);
}
.media-frame__tag{
  position:absolute;
  left:12px;
  top:12px;
  z-index:2;
}

/* ============================================================
   头部
   ============================================================ */
.skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:300;
  padding:10px 18px;
  border-radius:var(--r-pill);
  background:var(--ink);
  color:var(--paper);
  font-weight:700;
  text-decoration:none;
  transform:translateY(-180%);
  transition:transform .2s var(--ease);
}
.skip-link:focus{transform:translateY(0);}

.site-head{
  position:fixed;
  inset:0 0 auto 0;
  z-index:120;
  background:var(--paper);
}
.site-head.is-scrolled{
  box-shadow:0 12px 32px -20px rgba(20,23,28,.65);
}

/* 状态条 */
.status-rail{
  background:var(--ink);
  color:var(--paper);
  overflow:hidden;
  max-height:90px;
  transition:max-height .32s var(--ease),opacity .24s var(--ease);
}
.site-head.is-scrolled .status-rail{
  max-height:0;
  opacity:0;
}
.status-rail__inner{
  max-width:var(--wide);
  margin-inline:auto;
  padding:7px var(--gutter);
  display:flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.status-rail__ping{
  flex:none;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--mint);
  box-shadow:0 0 0 0 rgba(43,232,176,.7);
  animation:rail-ping 2.4s var(--ease) infinite;
}
@keyframes rail-ping{
  0%{box-shadow:0 0 0 0 rgba(43,232,176,.65);}
  70%{box-shadow:0 0 0 9px rgba(43,232,176,0);}
  100%{box-shadow:0 0 0 0 rgba(43,232,176,0);}
}
.status-rail__ver{
  flex:none;
  padding:1px 9px;
  border-radius:var(--r-pill);
  background:var(--orange);
  color:var(--ink);
  font-weight:700;
  letter-spacing:.04em;
}
.status-rail__text{color:var(--paper);}
.status-rail__meta{
  margin-left:auto;
  color:var(--khaki);
  white-space:nowrap;
}

/* 胶囊浮岛 */
.nav-shell{
  position:relative;
  padding:10px var(--gutter);
  background:var(--paper);
}
.nav-shell__inner{
  position:relative;
  max-width:var(--wide);
  margin-inline:auto;
  height:56px;
  padding:0 8px 0 16px;
  display:flex;
  align-items:center;
  gap:14px;
  background:var(--white);
  border:1.5px solid var(--ink);
  border-radius:var(--r-pill);
  box-shadow:0 14px 30px -22px rgba(20,23,28,.85);
}

/* 品牌 */
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  flex:none;
  color:var(--ink);
  text-decoration:none;
}
.brand__mark{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:12px;
  background:var(--ink);
  color:var(--mint);
  font-family:var(--font-mono);
  font-size:14px;
  font-weight:700;
  letter-spacing:.02em;
}
.brand__text{display:flex;flex-direction:column;line-height:1.15;}
.brand__name{font-size:15px;font-weight:800;letter-spacing:-.01em;}
.brand__line{
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.08em;
  color:var(--fog);
  text-transform:uppercase;
}

/* 导航 */
.nav{margin-left:auto;}
.nav__list{
  display:flex;
  align-items:center;
  gap:2px;
}
.nav__item{display:block;}
.nav__link{
  display:inline-block;
  padding:8px 14px;
  border-radius:var(--r-pill);
  color:var(--ink);
  font-size:14px;
  font-weight:700;
  letter-spacing:-.01em;
  text-decoration:none;
  white-space:nowrap;
  transition:background-color .18s var(--ease),color .18s var(--ease);
}
.nav__link:hover{background:var(--paper-2);}
.nav__link[aria-current="page"]{
  background:var(--blue);
  color:var(--white);
  box-shadow:0 8px 16px -10px rgba(36,87,230,.95);
}

/* 操作区 */
.nav-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:none;
  margin-left:8px;
}
.icon-btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 14px;
  border:1.5px solid var(--ink);
  border-radius:var(--r-pill);
  background:var(--white);
  color:var(--ink);
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  transition:background-color .18s var(--ease);
}
.icon-btn:hover{background:var(--mint);}
.icon-btn__glyph{
  position:relative;
  display:block;
  width:12px;
  height:12px;
  border:2px solid currentColor;
  border-radius:50%;
}
.icon-btn__glyph::after{
  content:"";
  position:absolute;
  right:-5px;
  bottom:-2px;
  width:7px;
  height:2px;
  background:currentColor;
  transform:rotate(45deg);
}
.icon-btn__label{letter-spacing:0;}
.nav-cta{padding:9px 16px;font-size:13.5px;}

/* 汉堡 */
.nav-toggle{
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:44px;
  height:44px;
  padding:0;
  border:1.5px solid var(--ink);
  border-radius:var(--r-pill);
  background:var(--white);
  color:var(--ink);
  cursor:pointer;
}
.nav-toggle__bar{
  display:block;
  width:18px;
  height:2px;
  border-radius:2px;
  background:currentColor;
  transition:transform .2s var(--ease),opacity .2s var(--ease);
}

/* 滚动进度尺 */
.scroll-meter{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:3px;
  background:rgba(20,23,28,.08);
}
.scroll-meter__fill{
  display:block;
  height:100%;
  width:100%;
  transform:scaleX(0);
  transform-origin:0 50%;
  background:var(--orange);
}

/* 检索浮层 */
.search-layer{
  position:fixed;
  inset:0;
  z-index:240;
  display:grid;
  place-items:start center;
  padding:clamp(16px,6vh,88px) var(--gutter);
  background:rgba(20,23,28,.74);
  opacity:0;
  transition:opacity .2s var(--ease);
  overflow-y:auto;
}
.search-layer[hidden]{display:none;}
.search-layer[data-visible]{opacity:1;}
.search-layer__panel{
  width:min(720px,100%);
  background:var(--white);
  color:var(--ink);
  border:1.5px solid var(--ink);
  border-radius:var(--r-lg);
  padding:clamp(20px,3vw,32px);
  box-shadow:0 40px 80px -40px rgba(0,0,0,.75);
  transform:translateY(-10px) scale(.985);
  transition:transform .24s var(--ease);
}
.search-layer[data-visible] .search-layer__panel{transform:translateY(0) scale(1);}
.search-layer__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:6px;
}
.search-layer__title{
  font-size:22px;
  font-weight:800;
  letter-spacing:-.02em;
}
.search-layer__close{
  padding:7px 14px;
  border:1.5px solid var(--ink);
  border-radius:var(--r-pill);
  background:var(--paper);
  color:var(--ink);
  font-size:12.5px;
  font-weight:700;
  cursor:pointer;
  transition:background-color .18s var(--ease);
}
.search-layer__close:hover{background:var(--orange);}
.search-layer__hint{
  font-size:12.5px;
  color:var(--fog);
  margin-bottom:14px;
}
.search-layer__list{
  display:grid;
  gap:4px;
}
.search-hit{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:
    "code name"
    "code desc";
  gap:2px 16px;
  padding:12px 14px;
  border:1.5px solid transparent;
  border-radius:var(--r-md);
  color:var(--ink);
  text-decoration:none;
  transition:background-color .18s var(--ease),border-color .18s var(--ease);
}
.search-hit:hover,
.search-hit:focus-visible{
  background:var(--paper);
  border-color:var(--ink);
}
.search-hit__code{
  grid-area:code;
  align-self:center;
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:700;
  color:var(--orange);
}
.search-hit__name{
  grid-area:name;
  font-size:15px;
  font-weight:800;
  letter-spacing:-.01em;
}
.search-hit__desc{
  grid-area:desc;
  font-size:12.5px;
  line-height:1.5;
  color:var(--fog);
}

/* ============================================================
   页脚
   ============================================================ */
.site-foot{
  position:relative;
  margin-top:clamp(48px,8vw,96px);
  padding:clamp(32px,5vw,56px) var(--gutter) 0;
  background:var(--ink);
  color:var(--paper);
  border-top:3px solid var(--blue);
  border-radius:var(--r-xl) var(--r-xl) 0 0;
}
.site-foot__inner{
  max-width:var(--wide);
  margin-inline:auto;
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.4fr 0.9fr;
  gap:clamp(24px,3vw,40px);
  padding-bottom:clamp(28px,4vw,44px);
}
.site-foot__brand{display:flex;flex-direction:column;gap:8px;}
.site-foot__name{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:19px;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--white);
}
.site-foot__mark{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:var(--mint);
  color:var(--ink);
  font-family:var(--font-mono);
  font-size:13px;
  font-weight:700;
}
.site-foot__tag{
  font-size:13px;
  color:var(--khaki);
}
.site-foot__meta{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.05em;
  color:var(--fog);
}

.foot-col{display:flex;flex-direction:column;gap:10px;}
.foot-col__title{
  padding-bottom:8px;
  border-bottom:1px solid rgba(244,238,226,.16);
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--mint);
}
.foot-col__list{display:flex;flex-direction:column;gap:7px;}
.foot-col__link{
  display:inline-block;
  color:var(--paper-2);
  font-size:13.5px;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .18s var(--ease),border-color .18s var(--ease);
}
.foot-col__link:hover{
  color:var(--orange);
  border-bottom-color:var(--orange);
}
.foot-col__text{
  font-size:13px;
  line-height:1.6;
  color:var(--paper-2);
  word-break:break-word;
}
.foot-col__note{
  font-size:11.5px;
  line-height:1.7;
  color:var(--fog);
}
.site-foot .btn--ghost{
  align-self:flex-start;
  padding:8px 16px;
  font-size:12.5px;
  color:var(--paper);
  border-color:rgba(244,238,226,.45);
}
.site-foot .btn--ghost:hover{
  background:var(--orange);
  color:var(--ink);
  border-color:var(--orange);
}
.site-foot__bottom{
  max-width:var(--wide);
  margin-inline:auto;
  padding-block:20px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-top:1px solid rgba(244,238,226,.14);
}
.site-foot__copy,
.site-foot__legal{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.05em;
  color:var(--fog);
}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width:1180px){
  .nav__link{padding:8px 10px;font-size:13.5px;}
  .brand__line{display:none;}
  .nav-cta{padding:8px 14px;font-size:13px;}
}

@media (max-width:980px){
  :root{--head-h:104px;}
  .status-rail__meta{display:none;}
  .nav-shell{padding:8px var(--gutter);}
  .nav-shell__inner{height:52px;padding:0 6px 0 12px;gap:10px;}
  .brand__mark{width:34px;height:34px;font-size:13px;}

  .nav{
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    right:0;
    display:none;
    z-index:6;
    max-height:calc(100vh - 180px);
    overflow-y:auto;
    padding:12px;
    background:var(--white);
    border:1.5px solid var(--ink);
    border-radius:var(--r-lg);
    box-shadow:0 30px 60px -30px rgba(20,23,28,.7);
  }
  .site-head[data-open] .nav{display:block;}
  .nav__list{flex-direction:column;align-items:stretch;gap:2px;}
  .nav__link{
    display:block;
    padding:12px 14px;
    border-radius:var(--r-md);
    font-size:15px;
  }
  .nav__link[aria-current="page"]{box-shadow:none;}
  .nav-cta{display:none;}
  .nav-toggle{display:inline-flex;}
  .icon-btn__label{display:none;}
  .icon-btn{padding:0;width:44px;height:44px;justify-content:center;}

  .site-foot__inner{grid-template-columns:repeat(2,minmax(0,1fr));}
  .site-foot__brand{grid-column:1 / -1;}
}

@media (max-width:860px){
  .grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (max-width:620px){
  :root{--head-h:98px;}
  body{font-size:15px;}
  .status-rail__inner{font-size:10.5px;gap:8px;}
  .status-rail__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr;}
  .site-foot__inner{grid-template-columns:1fr;}
  .site-foot__bottom{flex-direction:column;align-items:flex-start;gap:6px;}
  .media-frame--cut{clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),0 100%);}
}

/* ---------- 减少动态偏好 ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  .btn:hover,.btn:active{transform:none;}
}
