/* =========================================================
   博万官网 · 共享样式表 /assets/site.css
   深海蓝底 · 暖纸内容 · 珊瑚橙行动 · 薄荷绿增补
   ========================================================= */

:root{
  --ink:#0B1B2B;
  --deep:#0E2A47;
  --mist:#E6ECF2;
  --paper:#F4EFE6;
  --paper-light:#FAF6EF;
  --coral:#FF6B4A;
  --mint:#37E0B0;
  --amber:#F2B84B;
  --line:#2C4A6E;
  --white:#FFFFFF;

  --rail-w:264px;
  --bar-h:62px;
  --maxw:1200px;

  --font-display:'Arial Narrow','Roboto Condensed','Noto Sans SC','Microsoft YaHei',sans-serif;
  --font-body:'Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --font-mono:'JetBrains Mono','Roboto Mono','SFMono-Regular',Consolas,monospace;
  --font-label:'Arial Narrow','Roboto Condensed','Noto Sans SC',sans-serif;

  --bd:2px;
  --bd-heavy:3px;
  --shadow-hard:6px 6px 0 var(--line);
  --shadow-lift:0 18px 40px rgba(11,27,43,.18);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;}
img,svg,video{display:block;max-width:100%;}
button,input,select,textarea{font:inherit;color:inherit;}
ul,ol{margin:0;padding:0;list-style:none;}
a{color:inherit;}
h1,h2,h3,h4,h5,p,dl,dd,dt,figure,blockquote{margin:0;}
table{border-collapse:collapse;width:100%;}

/* ---------- base ---------- */
body{
  font-family:var(--font-body);
  font-weight:400;
  font-size:16px;
  line-height:1.75;
  color:var(--ink);
  background:var(--paper);
  padding-left:var(--rail-w);
  min-height:100vh;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

:focus-visible{outline:3px solid var(--amber);outline-offset:3px;}
.site-frame :focus-visible{outline-color:var(--mint);}

.mono{
  font-family:var(--font-mono);
  font-weight:500;
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
}

.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;
}

/* ---------- skip link ---------- */
.skip-link{
  position:fixed;
  top:0;left:0;
  z-index:300;
  transform:translateY(-160%);
  padding:.7rem 1.1rem;
  background:var(--mint);
  color:var(--ink);
  border:var(--bd) solid var(--ink);
  font-family:var(--font-label);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  transition:transform .2s ease;
}
.skip-link:focus{transform:translateY(0);}

/* =========================================================
   HEADER — 框架式侧边品牌轨道
   ========================================================= */
.site-frame{
  position:fixed;
  top:0;left:0;bottom:0;
  width:var(--rail-w);
  z-index:60;
  display:flex;
  flex-direction:column;
  background-color:var(--deep);
  background-image:
    repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 22px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.022) 0 1px,transparent 1px 22px);
  color:var(--paper);
  border-right:var(--bd-heavy) solid var(--line);
}

.rail-progress{
  position:fixed;
  top:0;
  left:var(--rail-w);
  right:0;
  height:4px;
  background:rgba(14,42,71,.35);
  z-index:70;
  pointer-events:none;
}
.rail-progress__bar{
  display:block;
  height:100%;
  width:0;
  background:linear-gradient(90deg,var(--mint),var(--coral));
  transition:width .12s linear;
}

.brand-rail{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  padding:1.35rem 1.1rem 1.15rem;
  border-bottom:var(--bd) solid var(--line);
}

.brand{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:.18rem;
  padding-left:.85rem;
  text-decoration:none;
  color:var(--white);
}
.brand::before{
  content:"";
  position:absolute;
  left:0;top:.28rem;bottom:.28rem;
  width:6px;
  background:var(--coral);
}
.brand__mark{
  font-family:var(--font-display);
  font-weight:900;
  font-size:2.35rem;
  line-height:.95;
  letter-spacing:-.03em;
  color:var(--white);
}
.brand__sub{
  font-family:var(--font-label);
  font-weight:700;
  font-size:.66rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--mint);
}

.rail-meta{display:flex;flex-direction:column;gap:.16rem;}
.rail-meta__line{
  font-size:.67rem;
  color:rgba(230,236,242,.58);
}

.rail-actions{display:flex;flex-direction:column;gap:.5rem;}

.rail-legal{
  padding-top:.6rem;
  border-top:1px dashed var(--line);
  font-size:.62rem;
  color:rgba(230,236,242,.42);
}

/* ---------- 导航 ---------- */
.site-nav{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:.6rem 0 1.25rem;
}
.nav-item{display:block;}
.nav-link{
  display:flex;
  align-items:baseline;
  gap:.7rem;
  padding:.68rem 1.1rem;
  border-left:4px solid transparent;
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.02rem;
  letter-spacing:.01em;
  line-height:1.35;
  text-decoration:none;
  color:rgba(244,239,230,.7);
  transition:color .16s ease,background-color .16s ease,border-color .16s ease;
}
.nav-link:hover{
  color:var(--white);
  background:rgba(255,255,255,.055);
  border-left-color:var(--amber);
}
.nav-link[aria-current="page"]{
  color:var(--white);
  background:rgba(255,107,74,.16);
  border-left-color:var(--coral);
}
.nav-idx{
  font-size:.64rem;
  color:var(--amber);
}
.nav-link[aria-current="page"] .nav-idx{color:var(--coral);}
.nav-label{flex:1 1 auto;}

/* ---------- 移动端菜单按钮 ---------- */
.nav-toggle{
  display:none;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:0 1.1rem;
  background:var(--coral);
  color:#101820;
  border:0;
  border-left:var(--bd-heavy) solid var(--line);
  font-family:var(--font-label);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background-color .18s ease;
}
.nav-toggle[aria-expanded="true"]{background:var(--mint);}
.nav-toggle__bars{
  position:relative;
  display:block;
  width:18px;height:2px;
  background:currentColor;
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content:"";
  position:absolute;left:0;
  width:100%;height:2px;
  background:currentColor;
}
.nav-toggle__bars::before{top:-6px;}
.nav-toggle__bars::after{top:6px;}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
  margin-top:clamp(2rem,5vw,4rem);
  padding:clamp(2rem,4.5vw,3.4rem) clamp(1rem,3.5vw,3rem) 1.75rem;
  background:var(--ink);
  color:var(--paper);
  border-top:var(--bd-heavy) solid var(--line);
}

.footer-grid{
  display:grid;
  grid-template-columns:1.2fr 1.6fr 1fr .9fr;
  gap:clamp(1rem,2.4vw,1.75rem);
  padding-bottom:2rem;
  border-bottom:var(--bd) solid var(--line);
}

.footer-col{
  padding:1rem 1.05rem 1.2rem;
  border-top:var(--bd) solid var(--line);
}
.footer-col--weekly{
  background:rgba(55,224,176,.07);
  border-top-color:var(--mint);
  box-shadow:5px 5px 0 rgba(0,0,0,.35);
}

.footer-title{
  margin-bottom:.85rem;
  font-family:var(--font-label);
  font-weight:700;
  font-size:.73rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--amber);
}
.footer-col--weekly .footer-title{color:var(--mint);}

.footer-note{
  font-size:.82rem;
  line-height:1.7;
  color:rgba(230,236,242,.62);
}
.footer-note--wide{
  grid-column:1 / -1;
  max-width:64ch;
}

.footer-list{display:flex;flex-direction:column;gap:.45rem;}
.footer-list--strong .footer-link{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.05rem;
  letter-spacing:.005em;
}
.footer-link{
  display:inline-block;
  font-size:.92rem;
  text-decoration:none;
  color:rgba(244,239,230,.78);
  border-bottom:1px solid transparent;
  transition:color .16s ease,border-color .16s ease;
}
.footer-link:hover{
  color:var(--white);
  border-bottom-color:var(--coral);
}

.footer-base{
  display:grid;
  grid-template-columns:minmax(160px,.85fr) minmax(280px,1.35fr);
  gap:1.75rem clamp(1.5rem,4vw,3rem);
  padding-top:2rem;
}

.footer-brand__mark{
  font-family:var(--font-display);
  font-weight:900;
  font-size:2.1rem;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--white);
}
.footer-brand__line{
  margin-top:.5rem;
  font-size:.68rem;
  color:var(--mint);
}

.contact-list{display:flex;flex-direction:column;gap:.55rem;}
.contact-row{
  display:grid;
  grid-template-columns:4.5rem 1fr;
  gap:.75rem;
  align-items:start;
  padding-bottom:.55rem;
  border-bottom:1px dashed rgba(44,74,110,.75);
}
.contact-row:last-child{border-bottom:0;}
.contact-row__key{
  padding-top:.3rem;
  font-size:.66rem;
  letter-spacing:.1em;
  color:var(--amber);
}
.contact-row__val{min-width:0;}

.copy-btn{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  max-width:100%;
  padding:.16rem .3rem;
  background:transparent;
  border:1px solid transparent;
  text-align:left;
  font-family:var(--font-body);
  font-size:.88rem;
  line-height:1.5;
  color:var(--paper);
  cursor:pointer;
  transition:background-color .16s ease;
}
.copy-btn__text{word-break:break-all;}
.copy-btn__tag{
  flex:0 0 auto;
  padding:.1rem .35rem;
  border:1px solid var(--line);
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.08em;
  color:rgba(230,236,242,.6);
  transition:background-color .16s ease,color .16s ease,border-color .16s ease;
}
.copy-btn:hover .copy-btn__tag{
  background:var(--coral);
  border-color:var(--coral);
  color:#101820;
}
.copy-btn[data-copied] .copy-btn__tag{
  background:var(--mint);
  border-color:var(--mint);
  color:#101820;
}

.footer-tail{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-top:1rem;
  border-top:var(--bd) solid var(--line);
}
.footer-legal{display:flex;flex-wrap:wrap;gap:1.1rem;}
.footer-legal__link{
  font-family:var(--font-label);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  color:rgba(244,239,230,.7);
  transition:color .16s ease;
}
.footer-legal__link:hover{color:var(--coral);}
.footer-icp{
  font-size:.68rem;
  color:rgba(230,236,242,.5);
}

/* =========================================================
   内容基础组件
   ========================================================= */
.container{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:clamp(1rem,3.2vw,2.5rem);
}

.section{padding-block:clamp(2.5rem,6vw,5rem);}
.section--tight{padding-block:clamp(1.5rem,3vw,2.5rem);}
.section--ink{background:var(--ink);color:var(--paper);}
.section--deep{background:var(--deep);color:var(--paper);}
.section--mist{background:var(--mist);}
.section--paper{background:var(--paper-light);}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:var(--font-label);
  font-weight:700;
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--coral);
}
.eyebrow::before{
  content:"";
  width:22px;height:2px;
  background:currentColor;
}

.h-display{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2.1rem,6vw,4.2rem);
  line-height:1.02;
  letter-spacing:-.02em;
}
.h-section{
  font-family:var(--font-display);
  font-weight:800;
  font-size:clamp(1.55rem,3.6vw,2.5rem);
  line-height:1.12;
  letter-spacing:-.01em;
}

.prose{
  max-width:68ch;
  font-size:1rem;
  line-height:1.75;
}
.prose p + p{margin-top:1em;}
.prose h2,.prose h3{
  margin-top:1.7em;
  font-family:var(--font-display);
  font-weight:800;
  line-height:1.2;
}
.prose h2{font-size:1.5rem;}
.prose h3{font-size:1.18rem;}
.prose li{
  position:relative;
  margin-top:.5em;
  padding-left:1.2rem;
}
.prose li::before{
  content:"";
  position:absolute;
  left:0;top:.72em;
  width:8px;height:2px;
  background:var(--coral);
}

.tag{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.26rem .6rem;
  border:var(--bd) solid var(--line);
  background:var(--paper-light);
  color:var(--ink);
  font-family:var(--font-mono);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.05em;
}
.tag--coral{background:var(--coral);border-color:var(--ink);color:#101820;}
.tag--mint{background:var(--mint);border-color:var(--ink);color:#101820;}
.tag--amber{background:var(--amber);border-color:var(--ink);color:#101820;}

.panel{
  padding:clamp(1rem,2.4vw,1.75rem);
  background:var(--paper-light);
  border:var(--bd) solid var(--ink);
  box-shadow:var(--shadow-hard);
}
.panel--ink{
  background:var(--deep);
  color:var(--paper);
  border-color:var(--line);
}

.breadcrumbs{
  padding-block:1rem;
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.05em;
  color:rgba(11,27,43,.55);
}
.breadcrumbs ol,.breadcrumbs ul{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;
}
.breadcrumbs li{display:flex;align-items:center;}
.breadcrumbs li + li::before{
  content:"/";
  margin-right:.45rem;
  color:var(--coral);
}
.breadcrumbs a{
  text-decoration:none;
  border-bottom:1px solid currentColor;
}

.media-frame{
  position:relative;
  overflow:hidden;
  aspect-ratio:4 / 3;
  background:var(--mist);
  border:var(--bd) solid var(--ink);
  box-shadow:var(--shadow-hard);
}
.media-frame--wide{aspect-ratio:16 / 9;}
.media-frame--tall{aspect-ratio:3 / 4;}
.media-frame--square{aspect-ratio:1 / 1;}
.media-frame__img,
.media-frame > img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.94) contrast(1.05);
}
.media-frame__caption{
  position:absolute;
  left:0;bottom:0;
  padding:.35rem .7rem;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.04em;
}

.grid{display:grid;gap:clamp(1rem,2.5vw,1.75rem);}
.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));}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.72rem 1.05rem;
  border:var(--bd) solid var(--line);
  font-family:var(--font-label);
  font-weight:700;
  font-size:.76rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease,border-color .16s ease;
}
.btn:active{transform:translate(1px,1px);}
.btn--block{width:100%;}

.btn--scan{
  background:var(--coral);
  border-color:var(--coral);
  color:#101820;
  box-shadow:4px 4px 0 rgba(0,0,0,.45);
}
.btn--scan:hover{
  transform:translate(-2px,-2px);
  box-shadow:6px 6px 0 rgba(0,0,0,.45);
}
.btn--ghost{
  background:transparent;
  color:var(--paper);
  border-color:var(--line);
}
.btn--ghost:hover{
  background:var(--paper);
  color:var(--ink);
}
.btn--solid{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper-light);
}
.btn--solid:hover{
  background:var(--deep);
  border-color:var(--deep);
}
.btn--mint{
  background:var(--mint);
  border-color:var(--ink);
  color:#101820;
}
.btn--mint:hover{background:#2ac79c;}
.btn--amber{
  background:var(--amber);
  border-color:var(--ink);
  color:#101820;
}
.btn--amber:hover{background:#e0a533;}

/* ---------- 滚动显现 ---------- */
@media (prefers-reduced-motion: no-preference){
  html.js [data-reveal]{
    opacity:0;
    transform:translateY(22px);
    transition:opacity .55s ease,transform .55s ease;
    transition-delay:calc(var(--reveal-i,0) * 80ms);
  }
  html.js [data-reveal].is-in{
    opacity:1;
    transform:none;
  }
}

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

/* =========================================================
   响应式
   ========================================================= */
@media (max-width:1100px){
  .footer-grid{grid-template-columns:1.15fr 1.5fr 1fr;}
  .footer-col--brand{grid-column:1 / -1;}
}

@media (max-width:1023px){
  :root{--rail-w:0px;}

  body{
    padding-left:0;
    padding-bottom:calc(var(--bar-h) + 8px);
  }

  .site-frame{
    top:auto;bottom:0;left:0;right:0;
    width:auto;
    height:var(--bar-h);
    flex-direction:row;
    align-items:stretch;
    border-right:0;
    border-top:var(--bd-heavy) solid var(--line);
  }

  .rail-progress{left:0;}

  .brand-rail{
    flex:1 1 auto;
    min-width:0;
    flex-direction:row;
    align-items:center;
    gap:.8rem;
    padding:.5rem .9rem;
    border-bottom:0;
  }
  .brand{padding-left:.7rem;}
  .brand::before{width:4px;top:.2rem;bottom:.2rem;}
  .brand__mark{font-size:1.45rem;}
  .brand__sub{font-size:.56rem;letter-spacing:.16em;}

  .rail-meta,
  .rail-actions,
  .rail-legal{display:none;}

  .nav-toggle{display:inline-flex;}

  .site-nav{
    position:fixed;
    left:0;right:0;
    bottom:var(--bar-h);
    z-index:59;
    max-height:68vh;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:.5rem 0 1rem;
    background:var(--ink);
    border-top:var(--bd-heavy) solid var(--line);
    transform:translateY(calc(100% + var(--bar-h)));
    visibility:hidden;
    transition:transform .3s ease,visibility .3s ease;
  }
  .site-nav[data-open]{
    transform:translateY(0);
    visibility:visible;
  }
  .nav-link{
    padding:.82rem 1.2rem;
    font-size:1.05rem;
    border-left-width:5px;
  }

  .footer-grid{grid-template-columns:1.2fr 1.6fr;}
  .footer-col--brand{grid-column:auto;}
}

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

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

  .footer-grid{grid-template-columns:1fr;}
  .footer-col--brand{grid-column:auto;}

  .contact-row{
    grid-template-columns:1fr;
    gap:.14rem;
  }
  .contact-row__key{padding-top:0;}

  .footer-tail{flex-direction:column;align-items:flex-start;}
}
