/* ============================================================
   参考站扩展样式（2026-11-10）
   ------------------------------------------------------------
   参考站 main.css 覆盖了它自身的绝大多数类，但有 29 个类**在参考站
   自己就没有样式**（课程卡、就业流程、入驻要求、增长率墙、新闻配图等），
   在参考站上这些区块是「裸奔」的。

   本文件按参考站的设计语言（同一套 token：--navy / --blue / --mint /
   --line / --bg / --r / --shadow）补齐这些类，并新增后台动态区块的样式：
   生态伙伴墙（partners）。

   作用域与 main.css 一致：全部限定在 .opc-site 内。
   ============================================================ */

/* ---------- 导航下拉箭头 ---------- */
.opc-site .chev{width:12px;height:12px;opacity:.5;margin-left:-1px;flex:0 0 auto}

/* ---------- 关于页：图注 ---------- */
.opc-site .ab-cap{margin-top:16px;font-size:13px;color:var(--gray-2);text-align:center}

/* ---------- 集智商学院：课程体系卡 ---------- */
.opc-site .ac-crs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.opc-site .ac-crs__i{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;transition:transform .28s,box-shadow .28s,border-color .28s;
}
.opc-site .ac-crs__i:hover{transform:translateY(-4px);border-color:#C9DCF3;box-shadow:var(--shadow)}
.opc-site .ac-crs__ph{aspect-ratio:16/10;overflow:hidden;background:#EDF3FB;flex:0 0 auto}
.opc-site .ac-crs__ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.opc-site .ac-crs__i:hover .ac-crs__ph img{transform:scale(1.05)}
.opc-site .ac-crs__bd{display:flex;flex-direction:column;gap:8px;padding:18px 18px 20px;flex:1}
.opc-site .ac-crs__bd h3{font-size:16.5px;font-weight:800;color:var(--navy)}
.opc-site .ac-crs__bd p{font-size:13.2px;color:var(--gray);line-height:1.72;flex:1}
.opc-site .ac-crs__bd .tag{align-self:flex-start;margin-bottom:0}

/* ---------- 集智商学院：一站式就业服务 ---------- */
.opc-site .ac-flow{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.opc-site .ac-fl{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:22px 18px 20px;transition:transform .28s,box-shadow .28s,border-color .28s;
}
.opc-site .ac-fl:hover{transform:translateY(-4px);border-color:#C9DCF3;box-shadow:var(--shadow)}
.opc-site .ac-fl__d{
  display:inline-grid;place-items:center;width:40px;height:40px;border-radius:11px;
  background:rgba(47,123,255,.1);color:var(--btn);font-size:14px;font-weight:900;letter-spacing:.02em;
}
.opc-site .ac-fl h3{margin-top:12px;font-size:16px;font-weight:800;color:var(--ink)}
.opc-site .ac-fl p{margin-top:6px;font-size:13px;color:var(--gray);line-height:1.7}

/* ---------- 流量赋能：高校授课大图 ----------
   原是「增长率墙」的深蓝渐变底块（padding + background + ::after 光晕）；
   参考站改版后 .gw-band 只承载一张通栏图片 —— 不加描边、不加底色，按 16:9 裁切。
   ⚠️ 2026-11-11 用户改口径：按 **1152 × 320** 展示（原来 16:9 是 1152×648，
   在「从实训学员，到项目合伙人」下方占得太重）。1152 = --max 1200 − 左右各 24px
   padding，正好是 .wrap 的内容宽，所以桌面端刚好满宽不裁边。
   窄屏按比例会扁成一条（375 屏只有 91px 高，看不清人），故单列断点给 180px 下限。
   圆角用 var(--r)（18px），与上方三张 .card 和站内图片卡 .pcard 同一个值。 */
.opc-site .gw-band{margin-top:34px}
.opc-site .gw-band img{
  display:block;
  width:100%;
  max-width:1152px;
  height:320px;
  margin:0 auto;
  border-radius:var(--r);
  object-fit:cover;
  object-position:50% 42%;
}
@media (max-width:820px){
  .opc-site .gw-band img{height:200px}
}
@media (max-width:560px){
  .opc-site .gw-band img{height:160px}
}
/* 图注：原来用 --mint（#3FE0F8）压浅色 section 底，只有 1.46:1，等于看不见。
   改用 --gray（#5B6B82），白底 5.14:1。 */
.opc-site .gw-cap{
  position:relative;z-index:1;text-align:center;font-size:13px;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gray);margin-bottom:20px;
}
/* 成长路径（实训学员 → … → 项目合伙人）
   ⚠️ 这几条曾经是按「深色块内部的数字栅格」写的：文字用近白 rgba(226,238,252,.78)，
   而 .gw-flow 实际落在浅色 section（--bg #F6F9FD）上 —— 字色与底色几乎同色，
   实测采样时剔除字形像素后背景桶为空，文字完全不可见；
   同时 display:grid + repeat(4,1fr) 会把 6 个步骤 + 5 个箭头拆成 4 列，行尾还会断箭头。
   现按参考站 growth.html 自己的内联样式还原为「白色胶囊 + 深蓝字」的横向流程条。 */
.opc-site .gw-flow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:22px}
.opc-site .gw-flow span{
  padding:8px 15px;border-radius:999px;background:#fff;border:1px solid var(--line);
  font-size:13px;font-weight:800;color:var(--navy);box-shadow:0 1px 2px rgba(13,43,110,.04);
}
.opc-site .gw-flow i{color:var(--gray);font-weight:800;font-style:normal;font-size:13px}
/* 表下小注：同样是近白色压浅底（rgba(200,216,236,.72)），改为 --gray */
.opc-site .gw-note{
  margin-top:22px;font-size:12.5px;color:var(--gray);text-align:center;
}
.opc-site .gw-motto{
  margin-top:28px;text-align:center;font-size:17px;font-weight:800;color:var(--navy);line-height:1.7;
}
.opc-site .gw-tbwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.opc-site .gw-tb{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.opc-site .gw-tb th,.opc-site .gw-tb td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line-2)}
.opc-site .gw-tb th{background:var(--bg);font-size:12.5px;font-weight:800;color:var(--navy);letter-spacing:.04em}
.opc-site .gw-tb tbody tr:last-child td{border-bottom:0}
.opc-site .gw-tb tbody tr:hover{background:#FCFDFF}
.opc-site .gw-tb b{color:var(--btn);font-weight:900}

/* ---------- 入驻页：要求 / 权益 / 流程 ---------- */
.opc-site .join-split{gap:48px}
.opc-site .jblk{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 28px;
  box-shadow:var(--shadow);
}
.opc-site .jblk__t{margin-top:10px;font-size:21px;font-weight:900;color:var(--navy)}
.opc-site .jblk__s{margin-top:8px;font-size:14px;color:var(--gray);line-height:1.8}
.opc-site .jreq{display:grid;gap:12px;margin-top:20px;counter-reset:req}
.opc-site .jreq li{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--text);line-height:1.75}
.opc-site .jreq i{
  flex:0 0 auto;font-style:normal;font-weight:900;font-size:12px;color:var(--btn);
  background:rgba(47,123,255,.1);border-radius:8px;padding:5px 8px;line-height:1;
}
.opc-site .jben{display:grid;gap:12px;margin-top:20px}
.opc-site .jben li{
  display:flex;gap:12px;align-items:baseline;font-size:14px;color:var(--gray);line-height:1.7;
  padding-bottom:12px;border-bottom:1px dashed var(--line);
}
.opc-site .jben li:last-child{border-bottom:0;padding-bottom:0}
.opc-site .jben b{
  flex:0 0 auto;color:var(--ink);font-weight:800;font-size:14.5px;
  background:var(--bg);border-radius:7px;padding:3px 9px;
}
.opc-site .jflow{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.opc-site .jfl{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 18px 20px;
  position:relative;transition:transform .28s,box-shadow .28s;
}
.opc-site .jfl:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.opc-site .jfl__d{
  display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,var(--btn) 0%,#38D6F5 100%);color:#fff;
  font-size:13px;font-weight:900;letter-spacing:.02em;
}
.opc-site .jfl h3{margin-top:12px;font-size:15.5px;font-weight:800;color:var(--ink)}
.opc-site .jfl p{margin-top:6px;font-size:13px;color:var(--gray);line-height:1.7}

/* ---------- 社区动态：转载说明 / 配图 / 原文 ---------- */
.opc-site .nnotice{
  display:block;padding:14px 18px;border-radius:12px;background:rgba(47,123,255,.06);
  border:1px solid rgba(47,123,255,.18);font-size:13px;color:var(--gray);line-height:1.8;margin-bottom:26px;
}
.opc-site .nnotice b{color:var(--ink);font-weight:800;margin-right:6px}
.opc-site .nfig{margin:20px 0}
.opc-site .nfig img{width:100%;border-radius:12px;border:1px solid var(--line-2)}
.opc-site .nfig figcaption{margin-top:9px;font-size:12.5px;color:var(--gray-2);text-align:center}
.opc-site .nsrc{margin-top:18px;padding-top:14px;border-top:1px solid var(--line-2);font-size:13px;color:var(--gray-2)}
.opc-site .nsrc b{color:var(--gray);font-weight:800}
.opc-site .nsrc a{color:var(--btn);font-weight:700}

/* 列表的卡片头是详情链接，不再承担折叠开关。 */
.opc-site a.nitem__hd{color:inherit;text-decoration:none}
.opc-site a.nitem__hd:hover .nitem__more{background:var(--btn);color:#fff;border-color:var(--btn);transform:translateX(3px)}

/* 独立详情不复用 .nitem__body，避免继承列表的隐藏与两行截断。 */
.opc-site .news-detail{
  max-width:920px;margin:0 auto;padding:clamp(30px,5vw,56px);background:#fff;
  border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);
}
.opc-site .news-detail__title{
  margin:14px 0 0;font-size:clamp(26px,4vw,38px);line-height:1.4;
  font-weight:900;letter-spacing:-.02em;color:var(--navy);overflow-wrap:anywhere;
}
.opc-site .news-detail__date{
  display:block;margin-top:14px;padding-bottom:24px;border-bottom:1px solid var(--line-2);
  font-size:13px;color:var(--gray-2);font-variant-numeric:tabular-nums;
}
.opc-site .news-detail__body{margin-top:30px;font-size:16px;line-height:1.9;color:#42566E;overflow-wrap:anywhere}
.opc-site .news-detail__body p{margin:0 0 1.25em}
.opc-site .news-detail__body h2,
.opc-site .news-detail__body h3,
.opc-site .news-detail__body h4{margin:1.8em 0 .75em;color:var(--navy);line-height:1.5}
.opc-site .news-detail__body h2{font-size:23px}
.opc-site .news-detail__body h3{font-size:20px}
.opc-site .news-detail__body h4{font-size:18px}
.opc-site .news-detail__body ul,
.opc-site .news-detail__body ol{margin:0 0 1.25em;padding-left:1.5em}
.opc-site .news-detail__body blockquote{
  margin:1.5em 0;padding:14px 20px;border-left:3px solid var(--btn);
  background:var(--bg);border-radius:0 10px 10px 0;color:var(--gray);
}
.opc-site .news-detail__body figure{margin:30px 0}
.opc-site .news-detail__body figure img{
  display:block;width:auto;max-width:100%;height:auto;margin:0 auto;
  border:1px solid var(--line-2);border-radius:12px;
}
.opc-site .news-detail__body figcaption{margin-top:10px;font-size:13px;line-height:1.7;color:var(--gray-2);text-align:center}
.opc-site .news-detail__body a{color:var(--btn);font-weight:700;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.opc-site .news-detail__body table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:14px}
.opc-site .news-detail__body th,
.opc-site .news-detail__body td{padding:12px 14px;border:1px solid var(--line);text-align:left;vertical-align:top}
.opc-site .news-detail__body th{background:var(--bg);color:var(--navy);font-weight:800}
.opc-site .news-detail__body hr{margin:30px 0;border:0;border-top:1px solid var(--line-2)}
.opc-site .news-detail__body > :last-child{margin-bottom:0}

/* ---------- 生态伙伴墙（后台 partners） ---------- */
.opc-site .partner-wall{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:8px}
.opc-site .partner-wall__i{
  display:grid;place-items:center;min-height:76px;padding:14px 10px;background:#fff;
  border:1px solid var(--line);border-radius:12px;transition:border-color .25s,box-shadow .25s,transform .25s;
}
.opc-site .partner-wall__i:hover{border-color:#C9DCF3;box-shadow:var(--shadow);transform:translateY(-3px)}
.opc-site .partner-wall__i img{max-height:40px;width:auto;object-fit:contain}
.opc-site .partner-wall__txt{font-size:15px;font-weight:800;color:var(--navy);letter-spacing:.02em;text-align:center}

/* ---------- 回到顶部 ---------- */
.opc-site .totop{
  position:fixed;right:22px;bottom:22px;z-index:50;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);background:#fff;color:var(--btn);display:grid;place-items:center;
  box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .25s,transform .25s,visibility .25s;cursor:pointer;
}
.opc-site .totop.on{opacity:1;visibility:visible;transform:translateY(0)}
.opc-site .totop svg{width:20px;height:20px}

/* 入驻页「需要哪些赋能」多选已于 2026-11-11 换用参考站的 .msel 组件
   （main.css，与供需发布同一套），.needchip 规则随之删除。 */
/* 同意条款：整行都是点击热区（参考站原文点文字不勾选） */
.opc-site .agree-check{
  display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:#5B6B82;
  line-height:1.7;cursor:pointer;min-height:24px;
}
.opc-site .agree-check input{width:17px;height:17px;margin-top:3px;flex:0 0 auto;accent-color:#2F7BFF}
.opc-site .agree-check:focus-within{outline:2px solid rgba(46,130,200,.45);outline-offset:2px}

/* 动态卡标题链接：多行时行高不足 24px（WCAG 2.2 SC 2.5.8 AA 触控目标下限） */
.opc-site .nitem__bd h3 a{
  display:inline-block;min-height:24px;padding:1px 0;line-height:1.6;
}

/* ---------- 可达性修正（继承项目既有门槛）----------
   参考站有几处字号 < 12px、页脚链接触控区 < 24px，
   与本项目既有的「正文不小于 12px」「触控目标 ≥ 24×24」门槛冲突，这里统一抬到门槛值。
   （参考站视觉不因此变形：字号只上调 0.2–1.5px，触控区用纵向 padding 补足） */
.opc-site .hlist .d{font-size:12px}
.opc-site .card__en{font-size:12px;letter-spacing:.06em}
.opc-site .ntag{font-size:12px}
.opc-site .ft__links a,
.opc-site .ft__ct a,
.opc-site .ft__ct span,
.opc-site .mnav a{
  display:inline-block;min-height:24px;padding:3px 0;
}
.opc-site .ft__links li{margin-bottom:2px}

/* ---------- 表单状态与键盘可达性 ---------- */
.opc-site .form + .okbox{margin-top:16px}
.opc-site button:disabled{opacity:.62;cursor:wait;transform:none!important;box-shadow:none}
.opc-site a:focus-visible,
.opc-site button:focus-visible,
.opc-site input:focus-visible,
.opc-site select:focus-visible,
.opc-site textarea:focus-visible,
.opc-site [tabindex]:focus-visible{outline:3px solid rgba(47,123,255,.5);outline-offset:3px}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .opc-site .ac-crs{grid-template-columns:repeat(2,1fr)}
  .opc-site .ac-flow,.opc-site .jflow{grid-template-columns:repeat(3,1fr)}
  .opc-site .partner-wall{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:820px){
  .opc-site .ac-crs{grid-template-columns:repeat(2,1fr)}
  .opc-site .ac-flow,.opc-site .jflow{grid-template-columns:repeat(2,1fr)}
  .opc-site .partner-wall{grid-template-columns:repeat(3,1fr)}
  .opc-site .join-split{gap:32px}
}
@media (max-width:560px){
  .opc-site .ac-crs,.opc-site .ac-flow,.opc-site .jflow{grid-template-columns:1fr}
  .opc-site .partner-wall{grid-template-columns:repeat(2,1fr)}
  .opc-site .news-detail{padding:26px 20px;border-radius:16px}
  .opc-site .news-detail__body{margin-top:24px}
  .opc-site .news-detail__body figure{margin:24px 0}
}

/* ---------- 首页首屏轮播（步骤条 + 左右切换）----------
   烘焙快照仍走 main.css 的两张图交叉淡入。脚本加上 .is-live，或服务端写上
   data-hero-live 之后，停掉这套动画，只显示 .is-on。控件是 .hero 的兄弟级子节点，
   不放进 .hero__bg，避免打乱 nth-child 动画，也避免被蒙版挡住点击。 */
.opc-site .hero__bg.is-live .hero__slide,
.opc-site .hero__bg[data-hero-live] .hero__slide{
  animation:none;
  opacity:0;
  transform:none;
  transition:opacity .7s ease;
}
.opc-site .hero__bg.is-live .hero__slide.is-on,
.opc-site .hero__bg[data-hero-live] .hero__slide.is-on{
  opacity:1;
}
.opc-site .hero__nav{
  position:absolute;
  top:50%;
  z-index:5;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin:0;
  padding:0;
  border:1px solid rgba(255,255,255,.38);
  border-radius:999px;
  background:rgba(8,16,40,.45);
  color:#fff;
  cursor:pointer;
  transform:translateY(-50%);
}
.opc-site .hero__nav--prev{left:20px}
.opc-site .hero__nav--next{right:20px}
.opc-site .hero__nav:hover{background:rgba(8,16,40,.68)}
.opc-site .hero__steps{
  position:absolute;
  left:50%;
  bottom:28px;
  z-index:5;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  max-width:calc(100% - 148px);
  margin:0;
  transform:translateX(-50%);
}
.opc-site .hero__step{
  position:relative;
  width:44px;
  height:44px;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
.opc-site .hero__step::before{
  content:"";
  position:absolute;
  top:50%;
  right:8px;
  left:8px;
  height:4px;
  margin-top:-2px;
  border-radius:999px;
  background:rgba(255,255,255,.4);
}
.opc-site .hero__step.is-on::before{
  right:4px;
  left:4px;
  background:#fff;
}
@media (prefers-reduced-motion:reduce){
  .opc-site .hero__bg.is-live .hero__slide,
  .opc-site .hero__bg[data-hero-live] .hero__slide{transition:none}
}
@media (max-width:560px){
  /* 窄屏主标题在首屏正中，垂直居中的箭头会压住字。改到步骤条上方。 */
  .opc-site .hero__nav{top:auto;bottom:78px;transform:none}
  .opc-site .hero__nav--prev{left:10px}
  .opc-site .hero__nav--next{right:10px}
  .opc-site .hero__steps{bottom:16px;max-width:calc(100% - 128px)}
}

/* ---------- 首页 hero 统计数字墙（单位下沉到第二行，2026-11-11）----------
   main.css 的 .hstat b i 只认数字行里的符号（+），单位被同一条规则带成
   0.62em 的薄荷色小字，挤在数字后面看不清口径。现在口径改成：
     第一行：3000+ / 5+ / 8+ / 4+
     第二行：m² 首期空间 / 月 工位免租期 / 赋能体系 / 类 订单来源
   单位由 .hstat__u 承载，放在标签行、标签之前，比标签更淡一档做视觉分层。 */
.opc-site .hstat > span .hstat__u{
  font-style:normal;
  color:rgba(147,168,192,.85);
  margin-right:1px;
}
/* 标签行整体收紧一点，避免单位下沉后两行之间显得松散 */
.opc-site .hstat > span{margin-top:7px}

/* ---------- 动效评审优化（2026-11-10，motion-taste-checklist 评审落地）----------
   全部追加在文件末尾：同特异性下后写者胜，不改动上面既有规则块，
   也不触碰 main.css 烘焙源，因此无需重建 pages.json。 */

/* B2 首屏内容入场编排：主标题 → 定位行 → CTA → 数据条，
   共用一条曲线、阶梯延迟，进场顺序与视觉层级一致。
   （hero__meta 静态事实句已删，2026-11-11；四项事实并入 home-stats 数字墙） */
@keyframes opcRiseIn{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:none}
}
.opc-site .hero__in > .slogan{animation:opcRiseIn .8s .08s cubic-bezier(.2,.7,.3,1) both}
.opc-site .hero__in > .hero__pos{animation:opcRiseIn .8s .22s cubic-bezier(.2,.7,.3,1) both}
.opc-site .hero__in > .hero__acts{animation:opcRiseIn .8s .36s cubic-bezier(.2,.7,.3,1) both}
.opc-site .hero__in > .hero__stats{animation:opcRiseIn .8s .5s cubic-bezier(.2,.7,.3,1) both}

/* A9/A10 轮播切换升级：去掉交叉淡出的叠化感，改为轻推近+淡入，
   class 重挂即重启动画，纯 CSS 实现，hero-carousel.ts 无需改动 */
@keyframes opcHeroIn{
  from{opacity:0;transform:scale(1.045)}
  to{opacity:1;transform:scale(1)}
}
.opc-site .hero__bg.is-live .hero__slide,
.opc-site .hero__bg[data-hero-live] .hero__slide{transition:none}
.opc-site .hero__bg.is-live .hero__slide.is-on,
.opc-site .hero__bg[data-hero-live] .hero__slide.is-on{
  animation:opcHeroIn 1.1s cubic-bezier(.2,.7,.3,1) both;
}

/* B5 步骤条微交互：激活段从中心展开 + 悬停预亮 */
.opc-site .hero__step::before{
  right:4px;left:4px;
  transform:scaleX(.8);
  transition:transform .35s cubic-bezier(.2,.7,.3,1),background .35s;
}
.opc-site .hero__step.is-on::before{transform:scaleX(1);background:#fff}
.opc-site .hero__step:hover::before{background:rgba(255,255,255,.65)}

/* 轮播箭头：悬停上浮放大（宽屏基础位移是 translateY(-50%)，需完整重写 transform） */
.opc-site .hero__nav{transition:background .25s,transform .25s}
.opc-site .hero__nav:hover{transform:translateY(-50%) scale(1.06)}

/* 按钮按压反馈：hover 上移之外的 click 层级确认 */
.opc-site .btn:active{transform:translateY(-1px) scale(.98)}

/* totop 悬停上浮，呼应站点 hover 语言 */
.opc-site .totop.on:hover{transform:translateY(-3px);box-shadow:0 12px 26px -10px rgba(13,43,110,.28)}

/* 窄屏箭头位移基础值是 none，悬停只需缩放 */
@media (max-width:560px){
  .opc-site .hero__nav:hover{transform:scale(1.06)}
}

/* QA 钩子：?noanim 时关停首屏编排与轮播入场动画，保障截图测试确定性 */
.opc-replica[data-opc-noanim] .hero__in > *{animation:none!important}
.opc-replica[data-opc-noanim] .hero__slide{animation:none!important}

/* 动效降级：reduced-motion 下停掉首屏编排与轮播入场（轮播本体由 hero-carousel.ts 负责停止） */
@media (prefers-reduced-motion:reduce){
  .opc-site .hero__in > *{animation:none}
  .opc-site .hero__bg.is-live .hero__slide.is-on,
  .opc-site .hero__bg[data-hero-live] .hero__slide.is-on{animation:none}
}

/* ---------- 详情页文章封面（news-runtime 注入 __OPC_COVER__）---------- */
.opc-site .news-detail__cover{margin:22px 0 0}
.opc-site .news-detail__cover img{max-height:460px;object-fit:cover}
@media (max-width:560px){
  .opc-site .news-detail__cover img{max-height:300px}
}

/* ---------- 移动端导航抽屉（响应式修复 2026-11-10）----------
   可达性规则 .mnav a{display:inline-block;padding:3px 0} 会把子项挤成行内排列，
   这里按抽屉场景恢复块级排版（触控高度由 padding 保证 ≥24px 门槛不受影响），
   并补上层级、入场过渡与阴影质感。:not(.btn) 避免压扁底部 CTA 按钮的内边距。 */
.opc-site .mnav a:not(.btn){display:block;padding:11px 4px;font-size:16px}
.opc-site .mnav .sub{padding:8px 4px 8px 22px;border-bottom:0;font-size:14px;font-weight:600;color:var(--gray)}
.opc-site .mnav > div{margin-bottom:2px}
/* 底部 CTA：可达性规则会把按钮压成 inline-block 导致文字靠顶，
   这里恢复 .btn 的 flex 居中与横向内边距（height:50px 由 .btn 基础样式保留） */
.opc-site .mnav a.btn{display:inline-flex;padding:0 26px}
/* main.css 的 .mnav a{color:#26374C} 优先级压过 .btn--primary{color:#fff}，CTA 文字发暗 */
.opc-site .mnav a.btn{color:#fff}

/* 抽屉入场过渡 + 质感：visibility 方案保留 transition 能力（display:none 做不到），
   hidden 态不占据焦点，语义与原来一致 */
.opc-site .mnav{
  display:block;
  visibility:hidden;
  opacity:0;
  transform:translateY(-10px);
  border-bottom:0;
  border-radius:0 0 18px 18px;
  box-shadow:0 28px 52px -18px rgba(13,43,110,.28);
  transition:opacity .28s cubic-bezier(.2,.7,.3,1),transform .28s cubic-bezier(.2,.7,.3,1),visibility .28s;
}
.opc-site .mnav.on{visibility:visible;opacity:1;transform:none}

/* 抽屉内链接的悬停/按下反馈，呼应全站交互语言 */
.opc-site .mnav a:not(.btn):hover{color:var(--btn)}
.opc-site .mnav a.sub:hover{color:#42566E}
