@charset "utf-8";

/* ============================================================
   江苏科技大学产业研究院 WPlus/Dreamer 平台模板样式表
   结构：Header（液面区）/ Main（主体动态区）/ Footer（页脚）
   布局说明：平台历史渲染引擎依赖 float 布局，主体左右分栏均采用
   float:left/right + clearfix，避免布局坍塌。
   ============================================================ */

/* ---------- 字体（随包内置 woff2 字体文件） ---------- */
@font-face {
  font-family: "shs-heavy";
  src: url("shs-cn-heavy.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "shs-bold";
  src: url("shs-cn-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ---------- 基础重置 ---------- */
* { box-sizing: border-box; margin: 0; padding: 0; letter-spacing: 0; }
/* 注意：html/body 不要设置 height:100% 或 overflow:hidden，
   否则 WebPlus/Dreamer 页面配置（设计视图）里画布可能无法向下滚动，
   下方窗口（政策法规/成果展示/党建专栏等）将无法投放组件 */
html, body { min-height: 100%; }
body { color: #333; background: #fff; font-family: "Microsoft YaHei", Arial, sans-serif; font-size: 14px; }
a { color: #666; text-decoration: none; }
a:hover { color: #4387c4; }
ul { list-style: none; }
img { border: 0; vertical-align: middle; }
.clearfix::after { content: ""; display: block; clear: both; height: 0; visibility: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ============================================================
   第一带：Header（液面区，全局持久缓存片段）
   panel01：站点标识 + 搜索 + 主导航
   ============================================================ */
.header-panel { position: relative; width: 1180px; margin: 0 auto; }

/* window01：站点头图 / 多图轮播（Hero，可配置"多图切换"组件） */
.header-banner-window { position: relative; width: 100%; height: 207px; overflow: hidden; background: #000; }
.header-banner-link { position: relative; display: block; width: 100%; height: 100%; }
.header-banner-window img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* 头图叠加文字（标题/副标题）的位置与样式：
   标题：left 29.5% / top 17.45%，衬线字体，字距 -0.1em；
   副标题：left 15.64% / top 61.93%，衬线字体，字距 0.2em；
   百分比相对头图容器，如需调整文字位置直接修改百分比 */
.header-title-line {
  position: absolute; left: 29.5%; top: 17.45%;
  color: #fff; font-family: "Songti SC", "SimSun", serif;
  font-size: 40px; font-weight: 900; line-height: 1; letter-spacing: -0.1em; white-space: nowrap;
}
.header-subtitle-line {
  position: absolute; left: 15.64%; top: 61.93%;
  color: #fff; font-family: "Songti SC", "SimSun", serif;
  font-size: 22px; font-weight: 700; line-height: 1; letter-spacing: 0.2em; white-space: nowrap;
}

/* window02：全局搜索（置于头图右上角，相对头图垂直居中：
   header-panel 含 banner(207px)+tab-bar(48px)，top:50% 会整体偏下，
   故固定 top=(207-38)/2≈84px；若更换头图高度需同步调整） */
.header-search-window { position: absolute; right: 0; top: 84px; z-index: 2; width: 300px; }
.header-search-form { display: block; height: 38px; background: #fff; border: 1px solid #b9c6ce; overflow: hidden; }
.header-search-form input {
  float: left; width: 248px; height: 36px; padding: 0 10px;
  border: 0; outline: 0; color: #444; background: #fff; font-size: 14px; line-height: 36px;
}
.header-search-form button {
  float: right; width: 50px; height: 36px; padding: 0;
  color: #fff; background: #4387c4; border: 0; cursor: pointer; font-size: 14px;
}
.header-search-form button:hover { background: #2873ad; }

/* 平台"搜索"组件输出（.wp_search，头部窗口11 与站内搜索共用）统一样式：
   后台绑定搜索组件后，平台用自带 wp_search 结构替换模板静态表单：
   <div class="wp_search"><table><td><input class="keyword" style="width:150px"…
   <td><input class="search" type="submit" value="">；此处重写其样式，
   与 .header-search-form 视觉一致：白底输入框 + 蓝色圆角按钮。 */
.wp_search { width: 100%; }
.wp_search table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.wp_search table td { height: 36px; padding: 0; vertical-align: middle; }
.wp_search table td:last-child { width: 50px; }
.wp_search .keyword {
  display: block; width: 100% !important; height: 36px; padding: 0 10px;
  box-sizing: border-box; border: 1px solid #b9c6ce; border-right: 0; border-radius: 4px 0 0 4px;
  outline: 0; color: #444; background: #fff; font-size: 14px;
}
.wp_search .search {
  width: 50px; height: 36px; border: 0; border-radius: 0 4px 4px 0; cursor: pointer;
  background: #4387c4 url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat center / 18px 18px;
}
.wp_search .search:hover { background-color: #2873ad; }

/* window03：主导航（面板/窗口组件投放区，见各模板 main/listcolumn/displayinfo/platform-notopen）
   两套结构共用同一套视觉：
   1) 预览回退导航（窗口内容内静态导航）：私有类名 nav-fallback/nav-item/nav-link/
      nav-submenu/nav-subitem/nav-sublink —— 刻意避开平台系统保留类名
      （wp-menu/menu-item/menu-link/sub-menu 等），防止平台默认导航样式污染；
   2) 后台把"导航"组件拖入窗口后平台输出的系统结构：
      ul.wp-menu > li.menu-item > a.menu-link，二级菜单 ul.sub-menu > li.sub-item > a.sub-link。 */
.tab-bar { position: relative; z-index: 100; padding: 8px; overflow: visible; background: linear-gradient(#fcfcfc 0%, #fcfcfc 45%, #f1f1f3 70%, #e1e3e2 100%); }
.tab-bar .nav-window { width: 100%; }
/* 一级栏目容器：回退导航与平台导航组件输出 */
.tab-bar .nav-fallback, .tab-bar .wp-menu, .tab-bar .wp_nav { display: block; width: 100%; margin: 0; padding: 0; }
.tab-bar .nav-fallback::after, .tab-bar .wp-menu::after { clear: both; content: "."; display: block; height: 0; visibility: hidden; }
/* 平台"导航"组件输出（ul.wp_nav）兜底样式（无 !important）：
   平台正常输出时自带 #wp_nav_wN 内联样式（优先级更高）自动覆盖；
   仅在平台样式缺失（如设计器预览、组件脚本异常）时兜底为横向导航+隐藏下拉 */
.tab-bar .wp_nav .sub-nav { display: none; }
.tab-bar .wp_nav li:hover > .sub-nav { display: block; }
/* 回退导航（.nav-fallback）：采用平台标准 wp_nav 样式（横向、黑字、item-name 内边距、下拉浅灰） */
.tab-bar .nav-fallback > li { display: inline-block; float: left; position: relative; vertical-align: bottom; }
.tab-bar .nav-fallback a { display: block; text-align: center; position: relative; z-index: 100; color: #000; }
.tab-bar .nav-fallback a span.item-name { display: inline-block; padding: 5px 10px; line-height: 22px; cursor: pointer; }
.tab-bar .nav-fallback .nav-submenu { display: block; position: absolute; top: 100%; left: 0; z-index: 200; visibility: hidden; width: auto; min-width: 150px; padding: 0; background: #fff; border: 1px solid #d8e1cc; box-shadow: 0 4px 10px rgba(0, 0, 0, .15); }
.tab-bar .nav-fallback li:hover > .nav-submenu, .tab-bar .nav-fallback li.is-open > .nav-submenu { visibility: visible; }
.tab-bar .nav-fallback .nav-submenu li { white-space: nowrap; }
.tab-bar .nav-fallback .nav-submenu a { font-size: 13px; font-weight: normal; color: #000; text-align: left; border-top: 1px solid #d8e1cc; min-width: 80px; }
.tab-bar .nav-fallback .nav-submenu a span.item-name { padding: 5px 10px; line-height: 22px; }
.tab-bar .nav-fallback .nav-submenu a.parent, .tab-bar .nav-fallback .nav-submenu a:hover { background: #eee; color: #000; }
/* 平台旧版菜单输出（.wp-menu）：弹性均分 */
.tab-bar .wp-menu > li { position: relative; float: left; flex: 1 1 auto; padding: 5px 0; border-right: 1px solid #64696c; text-align: center; font-size: 16px; }
.tab-bar .wp-menu > li:last-child { border-right: 0; }
.tab-bar .wp-menu a { color: #5a90be; }
.tab-bar .nav-link, .tab-bar .menu-link { display: block; }
.tab-bar .nav-submenu-toggle { display: none; }
/* 平台旧版菜单输出（.wp-menu）二级菜单 */
.tab-bar .wp-menu .sub-menu { position: absolute; top: 100%; left: 0; display: none; width: auto; min-width: 220px; padding: 5px 0; background: #fff; border: 1px solid #c9d4dc; border-top: 3px solid #4387c4; box-shadow: 0 5px 12px rgba(0, 0, 0, .25); z-index: 9999; }
.tab-bar .wp-menu li:hover .sub-menu, .tab-bar .wp-menu li.is-open .sub-menu { display: block; }
.tab-bar .wp-menu .sub-menu li { width: 100%; border-bottom: 1px solid #e8e8e8; font-size: 14px; }
.tab-bar .wp-menu .sub-menu li:last-child { border-bottom: 0; }
.tab-bar .wp-menu .sub-menu a { display: block; padding: 9px 10px; color: #555; white-space: nowrap; }
.tab-bar .wp-menu .sub-menu a:hover, .tab-bar .wp-menu .sub-menu a:focus-visible { color: #fff; background: #4387c4; }
/* "平台管理"宽菜单（预览回退专用；平台组件输出为普通下拉） */
.tab-bar .nav-submenu-wide { left: 50%; width: 540px; transform: translateX(-50%); }
.tab-bar .nav-submenu-wide a { text-align: left; white-space: normal; line-height: 20px; }
/* 平台"导航"组件输出的展开箭头隐藏（由 hover/is-open 控制显示） */
.tab-bar .menu-switch-arrow { display: none; }
/* 平台"导航"组件输出（#wp_nav_wN .wp_nav）覆盖平台内联样式：
   下拉实心置顶、宽度自适应、选项名称不换行不截断（保证下拉层级、宽度与名称完整性） */
.tab-bar .wp_nav .sub-nav { z-index: 9999 !important; opacity: 1 !important; background: #fff !important; width: auto !important; min-width: 220px !important; }
.tab-bar .wp_nav .sub-nav .nav-item a span.item-name { white-space: nowrap !important; overflow: visible !important; }
.tab-bar .wp_nav > .nav-item a span.item-name { white-space: nowrap !important; overflow: visible !important; text-overflow: clip !important; }

/* ============================================================
   第二带：Main Body（Subject 动态区）
   ============================================================ */
.page-main { width: 1180px; margin: 0 auto; min-height: 450px; padding-top: 10px; }

/* ---------- 首页模块（float 左右分栏：左侧 782px 通栏 + 右侧 384px 第二列） ---------- */
.home-dashboard { width: 100%; }
.home-dashboard::after { content: ""; display: block; clear: both; }
.home-dash-left { float: left; width: 782px; }
.home-dash-right { float: right; width: 384px; margin-top: 14px; }
.home-dash-left .module-policy { width: 782px; height: 244px; margin-top: 14px; }
/* 第一排（全宽 1180px）：通知公告 / 新闻动态 / 平台管理 三窗口从左到右排开（各 384px） */
.home-dash-row::after { content: ""; display: block; clear: both; }
.home-dash-row > .portal-module { float: left; width: 384px; height: 300px; }
.home-dash-row > .portal-module + .portal-module { margin-left: 14px; }
.home-dash-row .portal-module li { padding: 7px 0 7px 13px; }
/* 列表条目统一排版：标题靠左、日期靠右，行内左右呼应，消除右侧大片空白 */
.portal-module li a { float: left; max-width: calc(100% - 92px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.portal-module li .list-date { float: right; color: #888; font-size: 12px; line-height: 20px; }
/* 平台管理：与通知公告/新闻动态的缩进、字号、行距完全统一。
   窗口8 使用"新闻列表"组件（simpleNews）输出，不再输出 .wp_nav 结构，
   以下规则仅作用于列表条目（ul>li>a），与窗口1/2 的列表样式同源；
   圆点列表符沿用 .portal-module li::before。 */
.home-dash-row .module-platform ul { padding: 8px 14px 10px; }
.home-dash-row .module-platform li { padding: 7px 0 7px 13px; font-size: 14px; line-height: 20px; }
/* 窗口8 循环体不含日期字段，标题占满整行（不预留日期位，长名称减少截断） */
.home-dash-row .module-platform li a { max-width: 100%; }
/* 第一排三窗口（通知公告/新闻动态/平台管理）列表行高统一 20px，
   避免各元素行高不一致造成的逐行错位。 */
.home-dash-row .portal-module li { line-height: 20px; }
/* 窗口8 若仍绑定"导航"组件（后台未换绑"新闻列表"时），把其输出（#wp_nav_w8 .wp_nav）
   行样式规格化为新闻列表同款（14px / 20px 行高 / 7px 内边距），
   !important 压过平台注入的 13px/16px 配置；
   注意：导航组件输出 10 条，超出 300px 窗口高度会被裁切；
   建议后台换绑"新闻列表"组件，按模板循环体输出 6 条。 */
.home-dash-row .module-platform .wp_nav { padding: 8px 14px 10px !important; }
.home-dash-row .module-platform .wp_nav .nav-item { display: block; float: none; width: 100%; position: relative; text-align: left; padding: 7px 0 7px 13px !important; }
.home-dash-row .module-platform .wp_nav .nav-item a span.item-name { display: block; padding: 0 !important; line-height: 20px !important; font-size: 14px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.home-dash-right .party-panel { margin-bottom: 14px; }
.home-dash-right .compact-service-panel { margin-bottom: 10px; }

.portal-module { overflow: hidden; border: 1px solid #d9dee2; background: #fff; }
/* 窗口撑满整个模块盒：后台"配置页面"里拖组件时，整个模块范围都是红色投放区；
   否则投放区只有标题条那么高，组件容易落到其他窗口上 */
.portal-window { width: 100%; height: 100%; }
/* 模块标题条：标题水平居中、垂直居中，更多按钮固定在右侧 */
.portal-module-title { position: relative; display: block; height: 44px; padding: 0 14px; border-bottom: 2px solid #4387c4; background: #f2f5f7; overflow: hidden; text-align: center; }
.portal-module-title h2 { display: inline-block; font-size: 19px; font-weight: 400; line-height: 42px; vertical-align: middle; }
.portal-module-title h2 a { color: #2873ad; }
/* 党建专栏/服务专栏/成果展示标题加链接后，颜色继承各自标题栏（白字/蓝字） */
.special-panel h2 a { color: #fff; }
.special-panel h2 a:hover { color: #fff; }
.achievements-title h2 a { position: static; right: auto; top: auto; color: inherit; font-size: inherit; }
.portal-module-title > a { position: absolute; right: 14px; top: 14px; color: #888; font-size: 12px; }
.module-heading-icon { display: inline-block; width: 30px; height: 30px; margin: 0 8px 0 0; vertical-align: -6px; object-fit: contain; }
.portal-module ul { padding: 8px 14px 10px; }
.portal-module li { position: relative; padding: 7px 0 7px 13px; overflow: hidden; border-bottom: 1px dashed #d2d2d2; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.portal-module li::before { position: absolute; left: 1px; color: #4387c4; content: "•"; }
.portal-module li:last-child { border-bottom: 0; }
/* 平台管理（面板7/窗口8：第一排窗口3；10 个平台入口，超长名称省略号显示，悬停 title 提示全名） */
.module-platform li a { color: #555; }
.module-platform li a:hover { color: #4387c4; }

/* 党建 / 服务专栏 */
.special-panel { overflow: hidden; text-align: center; }
.special-panel h2 { height: 44px; color: #fff; line-height: 44px; font-size: 19px; font-weight: 400; }
.special-grid { display: block; padding: 9px 5px 7px; overflow: hidden; }
.special-grid a { display: block; float: left; width: 25%; min-width: 0; padding: 5px 2px; }
.special-grid span { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 auto; background: transparent; }
.special-grid span img { width: 42px; height: 42px; object-fit: contain; }
.special-grid b { display: block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 400; }
.special-panel-red { border: 2px solid #c62828; }
.special-panel-red h2 { background: #c62828; }
.special-panel-red .special-grid a { color: #a51f1f; }
.special-panel-blue { border: 2px solid #4387c4; }
.special-panel-blue h2 { background: #4387c4; }
.special-panel-blue .special-grid a { color: #2873ad; }
.party-panel { height: 244px; margin-bottom: 14px; }
/* 组件"更多"按钮（"新闻列表"组件在列表底部输出的 .more）在 244px 面板内
   会被裁切（标题 46px + 5 行列表 175px + 内边距 + 更多 ≈ 256px > 244px），
   此处将其固定到窗口右下角（不占列表空间，位置与其它窗口一致）。
   注意：若后台把显示条数调到 6 条以上，最后一行会与按钮重叠，需同步加高面板。 */
.module-policy .portal-window, .party-panel .portal-window { position: relative; }
.module-policy .more, .party-panel .more { position: absolute; right: 14px; bottom: 6px; margin: 0; }
/* 列表几何参数与政策法规（.portal-module）完全一致（ul 内边距、li 上下内边距），
   保证左右两栏列表逐行对齐；仅保留红头/无圆点的党建视觉风格 */
.party-panel ul { padding: 8px 14px 10px; text-align: left; }
.party-panel li { display: block; padding: 7px 0 7px 13px; border-bottom: 1px dashed #ddd; font-size: 14px; overflow: hidden; }
.party-panel li:last-child { border-bottom: 0; }
.party-panel li a { float: left; max-width: calc(100% - 76px); overflow: hidden; color: #555; text-overflow: ellipsis; white-space: nowrap; }
.party-panel li time { float: right; color: #888; font-size: 12px; line-height: 20px; }
.compact-service-panel { height: 204px; margin-bottom: 10px; }
.compact-service-panel h2 { height: 38px; line-height: 38px; }
/* 站内搜索窗口已移除，服务专栏扩展填充右栏空白（与左栏等高 472px）；
   图标为 2×2 网格（flex-wrap），垂直方向居中填充 */
.compact-service-panel .special-grid { padding: 8px 5px; display: flex; flex-wrap: wrap; justify-content: space-around; align-content: center; height: calc(100% - 38px); }
/* 服务专栏窗口4（"导航"组件输出 .wp_nav，4 个文字链接）水平+垂直居中。
   写在模板 style.css 中：Dreamer 设计视图画布一定加载模板样式，后台自定义 CSS
   在画布中注入不完整；用经典布局（text-align+line-height，不用 flex，
   老渲染引擎也支持）+ !important 压过后台旧样式（float:left 左对齐） */
.compact-service-panel .wp_nav { margin: 0; padding: 0; text-align: center; line-height: 164px; }
.compact-service-panel .wp_nav .nav-item { display: inline-block !important; float: none !important; position: relative; vertical-align: middle; }
.compact-service-panel .special-grid a { padding: 8px 2px; flex: 0 1 50%; }
.compact-service-panel .special-grid span { width: 46px; height: 46px; }
.compact-service-panel .special-grid span img { width: 44px; height: 44px; }
/* 服务专栏（面板4/窗口4）组件窗口：栏目循环/"图片切换"组件输出的条目与内置图标同款网格布局 */
.special-grid .service-entry { display: block; float: left; width: 25%; min-width: 0; padding: 2px; }

/* 站内搜索（首页第三列底部，与液面区搜索组件呼应） */
.site-search { height: 108px; padding: 12px 14px 14px; border: 1px solid #d9dee2; background: #f5f7f8; }
.site-search h2 { margin-bottom: 9px; color: #2873ad; font-size: 16px; font-weight: 400; text-align: center; }
.site-search form { display: block; height: 38px; overflow: hidden; }
.site-search input { float: left; width: calc(100% - 44px); height: 38px; padding: 0 10px; color: #444; background: #fff; border: 1px solid #b9c6ce; border-right: 0; outline: 0; font-size: 14px; }
.site-search button { float: left; width: 44px; height: 38px; color: #fff; background: #4387c4; border: 0; cursor: pointer; font-size: 14px; }

/* ---------- 成果展示（面板6/窗口7：平台"图片切换"组件窗口，位于左栏政策法规下方） ----------
   窗口 div 撑满整个模块盒（与 portal-window 同理）：
   后台"配置页面"里拖组件时，整个模块范围都是红色投放区（独立组件位置），
   否则投放区只有标题条那么高，组件拖不进去。 */
.achievements-section { height: 205px; margin: 14px 0 9px; border: 1px solid #d9dee2; background: #fff; overflow: hidden; }
.achievements-title { position: relative; height: 46px; padding: 0 16px; border-bottom: 2px solid #4387c4; background: #f2f5f7; overflow: hidden; text-align: center; }
.achievements-title h2 { display: inline-block; color: #2873ad; font-size: 20px; font-weight: 400; line-height: 46px; vertical-align: middle; }
.achievements-title a { position: absolute; right: 16px; top: 17px; color: #888; font-size: 12px; }
.achievements-window { width: 100%; height: 100%; }
/* 图片切换组件容器（site.js 读取窗口7组件数据后在此渲染轮播轨道） */
.achievements-window .focus { overflow: hidden; }
/* 横向无缝循环滚动：轨道内容为两组相同的图片，translateX(-50%) 刚好回到起点。
   说明：不设 hover 暂停（鼠标悬停/触摸粘滞会导致动画停滞），两端持续滚动 */
.achievements-track { display: flex; width: max-content; padding: 12px 0; animation: achievements-scroll 30s linear infinite; }
.achievements-track.achievements-track-static { animation: none; }
.achievement-item { display: block; flex: 0 0 auto; width: 220px; margin-right: 12px; }
.achievement-item img { display: block; width: 220px; height: 135px; object-fit: cover; background: #d9dde0; }
@keyframes achievements-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ---------- 内页布局（float 左右分栏，平台历史渲染引擎兼容） ---------- */
.inner-layout { width: 100%; min-height: 520px; padding: 12px 0 30px; }
.inner-layout::after { content: ""; display: block; clear: both; }
/* 内页（列表页/文章页）左右分栏布局：
   侧栏 185px 宽并右移 20px、正文 835px；正文窗口下移与侧栏标题对齐；
   侧栏跟随当前一级栏目（只显示该栏目及二级栏目）；
   侧栏与正文顶部对齐（margin-top 60px，移动端在下方媒体查询中复位为 0） */
.side-nav { float: left; width: 185px; margin: 60px 0 0 20px; text-align: center; }
.side-nav .side-nav-title { padding: 5px 0; color: #fff; background: #265ea9; }
.side-nav ul { padding: 0 4px; border: 2px solid #f8f8f8; box-shadow: 0 5px 5px #ccc; }
.side-nav li { padding: 10px 0; border-bottom: 2px solid #f8f8f8; }
.side-nav li:last-child { border-bottom: 0; }
/* 内页左侧栏目导航（组件未输出时左侧目录不消失）
   外观：卡片式（白底+细边框+轻阴影）、深蓝标题栏白字加粗居中、
   一级栏目深灰 15px 居中留白 15px、项间浅灰细线、悬停浅灰蓝；
   悬浮一级栏目右侧弹出二级菜单（flyout）：
   纯白、14px 深灰字、左对齐、项间浅灰虚线分隔、悬停浅灰、
   与侧栏右缘留 10px 间隙；visibility+延迟过渡，跨间隙时菜单不消失；
   宽度自适应内容但 max-width:135px（菜单右缘与正文文字留约 15px 间隙，不覆盖正文）；
   max-height 由 site.js 按"侧栏底部-该项顶部"动态限制（≤300px），
   长菜单（如平台管理 10 项）内部滚动，不溢出侧栏底部 */
.side-nav .side-nav-title { padding: 9px 0; color: #fff; background: #2b5c9c; font-size: 16px; font-weight: 700; }
.side-nav .side-nav-window { background: #fff; border: 1px solid #e0e0e0; box-shadow: 0 2px 6px rgba(0, 0, 0, .08); }
.side-nav ul { padding: 0; border: 0; box-shadow: none; }
.side-nav .side-nav-fallback { padding: 6px 0; text-align: center; }
.side-nav .side-nav-fallback > li { position: relative; padding: 0; border-bottom: 1px solid #f0f0f0; text-align: center; }
.side-nav .side-nav-fallback > li:last-child { border-bottom: 0; }
.side-nav .side-nav-fallback > li > a { display: block; padding: 15px 12px; color: #666; font-family: "Microsoft YaHei", Arial, sans-serif; font-size: 15px; font-weight: normal; }
.side-nav .side-nav-fallback > li > a:hover { background: #f2f5f7; color: #4387c4; }
.side-nav .side-nav-fallback li > ul {
  position: absolute;
  left: calc(100% + 10px);
  top: 0;
  z-index: 300;
  min-width: 100px;
  width: max-content;
  max-width: 135px;
  max-height: 300px;
  overflow-y: auto;
  margin: 0;
  padding: 0;
  background: #fff;
  border: 0;
  box-shadow: 0 3px 8px rgba(0, 0, 0, .14);
  text-align: left;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 0s linear .15s, opacity .15s ease;
  transition: visibility 0s linear .15s, opacity .15s ease;
}
.side-nav .side-nav-fallback li:hover > ul,
.side-nav .side-nav-fallback li > ul:hover,
.side-nav .side-nav-fallback li:focus-within > ul {
  visibility: visible;
  opacity: 1;
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}
.side-nav .side-nav-fallback li > ul li { padding: 0; border-bottom: 0; }
/* 二级栏目文字居中（所有列表页侧栏统一；含跟随树与右侧弹出菜单） */
.side-nav .side-nav-fallback li > ul a {
  display: block;
  padding: 12px 14px;
  font-family: "Microsoft YaHei", Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  color: #333;
  text-align: center;
  white-space: normal;
  border-bottom: 1px dashed #e5e5e5;
  min-width: 90px;
}
.side-nav .side-nav-fallback li > ul li:last-child > a { border-bottom: 0; }
.side-nav .side-nav-fallback li > ul a:hover { background: #eee; color: #333; }
/* 跟随树（识别到当前一级栏目时，侧栏只显示该栏目及其二级栏目）——
   当前一级栏目高亮，二级栏目直接静态展开（不再右侧弹出 flyout） */
.side-nav .side-nav-fallback.follow > li.on > a { background: #f2f5f7; color: #4387c4; font-weight: 700; }
.side-nav .side-nav-fallback.follow > li > ul {
  position: static;
  width: 100%;
max-width: none; /* 跟随树二级列表必须撑满整个侧栏宽度再居中
                       （flyout 规则的 max-width:135px 仅用于弹出菜单） */
  min-width: 0;
  max-height: none;
  overflow: visible;
  visibility: visible;
  opacity: 1;
  box-shadow: none;
  padding: 0 0 6px;
  -webkit-transition: none;
  transition: none;
}
.side-nav .side-nav-fallback.follow > li > ul a { padding: 10px 18px; }
/* 平台管理页（跟随树含 10 个长名称平台二级栏目）——
   侧栏加宽 185→360px、二级名称 15→13px 且不换行（一名一行），
   右侧正文 835→660px 互补收缩（整页横向总宽不变）；
   site.js 识别到当前一级栏目为"平台管理"时给 aside 加 sidenav-wide 标记 */
.side-nav.sidenav-wide { width: 360px; }
.side-nav.sidenav-wide + .right-content { width: 660px; }
.side-nav.sidenav-wide .side-nav-fallback.follow > li > ul a { font-size: 13px; white-space: nowrap; padding: 10px 12px; }
.side-nav.sidenav-wide ul.ztree a { font-size: 13px; white-space: nowrap; }
.side-nav.sidenav-wide + .right-content .inner-news-list a { width: 495px; }
/* 平台"栏目导航"组件输出（zTree）：统一样式 */
.side-nav ul.ztree { text-align: left; border: 0; box-shadow: none; background: #fff; }
.side-nav ul.ztree a { color: #555; }
.side-nav ul.ztree li { padding: 0; }
.right-content { float: right; width: 835px; margin-top: 60px; padding: 0 20px; }
.location { padding-bottom: 10px; border-bottom: 1px solid #ccc; font-size: 14px; font-weight: 600; }
.detail-content { padding: 30px 60px; }
/* 右侧列表页蓝色标题字号 22→33px（1.5 倍） */
.list-page-title { margin-bottom: 18px; padding-bottom: 10px; border-bottom: 2px solid #4387c4; color: #2873ad; font-size: 33px; font-weight: 400; }
.inner-news-list li { padding: 8px 4px; border-bottom: 1px dashed #ccc; font-size: 14px; overflow: hidden; }
.inner-news-list a { float: left; width: 670px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inner-news-list span { float: right; width: 110px; color: #777; text-align: right; }
.pagination { padding: 28px 0 0; color: #777; text-align: center; font-size: 13px; }
.pagination a { display: inline-block; min-width: 24px; margin: 0 4px; padding: 2px 6px; border: 1px solid #ddd; }
.pagination span { margin: 0 4px; }

/* ---------- 列表组件分页（平台 simpleList 输出的 wp_paging）----------
   模板内不放置静态分页占位；分页由组件按实际数据量自适应输出。
   样式：右对齐、纯文本链接（无按钮边框）、统计与页码数字加粗深色、窄跳转输入框 ---------- */
.wp_paging { margin: 18px 0 8px; padding: 0; text-align: right; font-size: 13px; color: #333; }
.wp_paging li { display: inline-block !important; float: none !important; margin: 0 0 0 12px; vertical-align: middle; list-style: none; }
.wp_paging li.pages_count { margin-left: 0; }
.wp_paging a { color: #333; text-decoration: none; }
.wp_paging a:hover { color: #4387c4; }
.wp_paging em { font-style: normal; font-weight: bold; color: #222; }
.wp_paging .pageNum { width: 36px; height: 20px; margin: 0 4px; padding: 0 4px; border: 1px solid #ccc; vertical-align: middle; text-align: center; }
.wp_paging .pages_count, .wp_paging .page_jump { color: #333; }

/* ---------- 内页组件窗口（listcolumn.htm / displayinfo.htm） ---------- */
/* 左侧栏目导航（面板1/窗口9）：窗口撑满侧栏，后台可拖"栏目导航/栏目列表"组件；
   未绑定组件时窗口内容为占位提示（site.js 检测到组件输出后自动移除） */
.side-nav-window { width: 100%; height: auto; }
.side-nav-placeholder { padding: 22px 12px; color: #999; font-size: 13px; line-height: 22px; text-align: center; }
/* 附加模块（备用样式：正文区下方自由组件投放窗口，高度随组件内容自适应；当前模板未使用，保留供扩展） */
.extra-module { margin-top: 14px; border: 1px solid #d9dee2; background: #fff; overflow: hidden; }
.extra-module-title { height: 44px; padding: 0 14px; border-bottom: 2px solid #4387c4; background: #f2f5f7; overflow: hidden; }
.extra-module-title h2 { float: left; color: #2873ad; font-size: 19px; font-weight: 400; line-height: 44px; }
.extra-module .portal-window { width: 100%; height: auto; min-height: 44px; }
.module-placeholder { padding: 16px 14px; color: #999; font-size: 13px; text-align: center; }

/* 文章详情 */
.article { padding: 26px 48px 50px; }
.article h1 { color: #333; text-align: center; font-size: 22px; font-weight: 600; line-height: 30px; }
.article-subtitle { color: #555; text-align: center; font-size: 16px; line-height: 1.6; }
.article-meta { color: #888; text-align: center; font-size: 13px; line-height: 35px; }
.article-body { margin-top: 14px; font-size: 16px; } /* 站点基准字号；行高见下方 .wp_articlecontent 统一设为 normal */
.article-body p { margin: 1em 0; }                   /* 与浏览器默认一致；V63 起不再自造 min-height:30px / margin-bottom:12px */
.article-body table { max-width: 100%; }            /* V63：不再强制 width:600px + margin:20px auto + border-collapse + 居中，
                                                       表格样式改由平台 system_editor.css 提供，与后台编辑器一致 */
.article-body .article-end { margin-top: 30px; text-align: right; }

/* ---------- 平台文章内容（.wp_articlecontent：详情页正文 + 列表页栏目文章）----------
   ★★ 设计原则：前台 = 后台编辑器所见（所见即所得），绝不"自造"样式。★★

   ★ 已核实（2026-09-21）后台编辑器的正文渲染环境由【两个】样式表组成：
     ① /_ueditor/themes/iframe.css（3,346 字节）—— 只有一条 .wp_articlecontent img{max-width:940px}
     ② /_css/_system/system_editor.css（约 63KB，682 条规则）—— 平台自带的**编辑器正文样式表**，
        含：.p_text_indent_N（首行缩进类，用 --font/--size 变量计算）、
            .wp_editor_art_table td{padding:5px 10px;border:1px solid #DDD}（表格）、
            li.list-cn-* / li.list-num-*（一/二/三级编号与项目符号，共 611 条）、
            .wp_editor_art_img_wrapper img{display:block;margin:0 auto}（正文图片居中）
     旁证：编辑器写进文章的 style="--font: 14; --size: 14"，正是 ② 所消费的两个变量。

   ★★ V63 关键修正 ★★
     ② system_editor.css 原先【只在后台加载，前台没加载】——这才是甲方"后台有缩进、前台没缩进"
     的真正根因。V63 已在 main.htm / listcolumn.htm / displayinfo.htm 的 <head> 中，
     于 style.css **之前** 加入：
         <link rel="stylesheet" href="/_css/_system/system_editor.css" />
     这样前台与后台共用同一份正文样式，缩进类、表格样式、编号列表、图片居中全部自动对齐，
     且该文件随平台升级自动更新，模板无需也无法复制它。
     实测：加载后 .p_text_indent_2 段落的计算 text-indent 由 0px → 32px。

   因此本段必须做到：
     ① 一律不使用 !important
        —— CSS 规范里"样式表 !important"优先级【高于】元素行内样式，
           一旦使用就会把甲方在后台排好的格式整段抹掉
           （甲方 2026-09 反馈"编辑好的格式发布后全部失效"，根因之一即在此）；
     ② 只【还原】被模板全局重置 * { margin:0; padding:0 } 清掉、而 system_editor.css 又未覆盖的
        浏览器默认值，不添加任何自定义缩进/行距/段间距。 */
.article-body .wp_articlecontent, .right-content .wp_articlecontent {
  line-height: normal;   /* 与后台编辑器（浏览器默认行高）一致；
                            模板全局 body 的其它行高不再向内层继承 */
}
.article-body .wp_articlecontent p, .right-content .wp_articlecontent p {
  background-color: transparent !important; /* 唯一例外：去 Word 粘贴带入的灰底（白底页面无视觉差异） */
  background-image: none !important;
  margin: 1em 0;        /* = 浏览器默认 p 边距，与编辑器一致；行内 margin 优先 */
  line-height: normal;  /* = 浏览器默认行高，与编辑器一致；行内 line-height 优先 */
}

/* ↓↓↓ 以下全部是"还原浏览器默认值"，让编辑器里的排版在前台原样呈现 ↓↓↓ */
.wp_articlecontent ul, .wp_articlecontent ol { margin: 1em 0; padding-left: 40px; }
.wp_articlecontent ul { list-style: disc outside; }
.wp_articlecontent ol { list-style: decimal outside; }
.wp_articlecontent blockquote { margin: 1em 40px; }
.wp_articlecontent h1 { margin: .67em 0; font-size: 2em;    font-weight: bold; }
.wp_articlecontent h2 { margin: .83em 0; font-size: 1.5em;  font-weight: bold; }
.wp_articlecontent h3 { margin: 1em 0;   font-size: 1.17em; font-weight: bold; }
.wp_articlecontent h4 { margin: 1.33em 0; font-weight: bold; }
.wp_articlecontent h5 { margin: 1.67em 0; font-size: .83em; font-weight: bold; }
.wp_articlecontent h6 { margin: 2.33em 0; font-size: .67em; font-weight: bold; }
.wp_articlecontent hr { margin: .5em auto; border: 0; border-top: 1px solid #ccc; }
/* 图片/表格不超容器（编辑器里是 940px，前台正文容器约 700px，必须收窄否则溢出） */
.wp_articlecontent img { max-width: 100%; height: auto; }
.wp_articlecontent table { max-width: 100%; }
/* 嵌套链接归一（平台把 {标题} 输出为完整 <a> 时会出现 a 套 a）：字号颜色继承外层，防止大小混乱 */
.portal-module li a a, .inner-news-list li a a, .party-panel li a a,
.portal-module-title a a, .achievements-title a a {
  font-size: inherit; color: inherit; font-weight: inherit;
}

/* ---------- 未开通平台提示页（platform-notopen.htm） ---------- */
.platform-tip { min-height: 460px; padding: 90px 20px 110px; text-align: center; }
.platform-tip-box { display: inline-block; width: 640px; padding: 48px 40px 44px; border: 1px solid #d9dee2; background: #f5f7f8; }
.platform-tip-icon { display: block; width: 72px; height: 72px; margin: 0 auto 20px; border-radius: 50%; color: #fff; background: #4387c4; font-size: 40px; font-weight: 700; line-height: 72px; }
.platform-tip h1 { margin-bottom: 18px; color: #333; font-size: 24px; font-weight: 600; }
.platform-tip p { color: #666; font-size: 16px; line-height: 1.9; }
.platform-tip-back { display: inline-block; margin-top: 28px; padding: 10px 34px; color: #fff !important; background: #4387c4; font-size: 14px; }
.platform-tip-back:hover { background: #2873ad; }

/* ============================================================
   第三带：Footer（页脚文字为静态写死内容，不依赖后台站点属性窗口；
   蓝渐变底、白字、两行居中）
   ============================================================ */
.site-footer { min-width: 1180px; height: 112px; padding-top: 24px; color: #fff; background: linear-gradient(to right, #1582b6, #2a9dcb); text-align: center; font-size: 14px; }
.site-footer .site-footer-copy { font-size: 16px; letter-spacing: 2px; }
.site-footer .site-footer-addr { font-size: 15px; letter-spacing: 1px; }
.site-footer div { margin-bottom: 6px; }

/* ============================================================
   移动端适配（≤760px，供预览与移动终端浏览）
   ============================================================ */
@media (max-width: 760px) {
  .header-panel, .page-main { width: 100%; }
  /* 手机端头图：整体显示专用图 home-banner-mobile.png（1092×255，
     图内已含校徽/校名/产业研究院/副标题全部文字）——不再叠加 HTML 标题文字，
     直接整图显示：背景图按 1092:255 比例撑满，旧 img 与标题/副标题全部隐藏 */
  .header-banner-window { height: auto; min-height: 80px; aspect-ratio: 1092 / 255; background: url("home-banner-mobile.png") no-repeat center / 100% 100%; }
  .header-banner-window img, .header-title-line, .header-subtitle-line { display: none; }
  .header-search-window { position: static; width: 100%; padding: 6px 10px; background: #eef3f6; }
  .header-search-form input { width: calc(100% - 50px); }
  .tab-bar .nav-fallback, .tab-bar .wp-menu, .tab-bar .wp_nav { display: block; }
  /* li 内 a/按钮均 float → li 必须建立 BFC 撑起高度，
     否则塌陷成 1px（菜单项叠成一行，视觉错乱） */
  .tab-bar .nav-fallback > li, .tab-bar .wp-menu > li, .tab-bar .wp_nav > li { float: none; display: block; width: 100%; padding: 0; overflow: hidden; border-right: 0; border-bottom: 1px solid #d7dde1; text-align: left; }
  .tab-bar .nav-fallback .nav-link span.item-name { padding: 10px 12px; }
  .tab-bar .nav-link, .tab-bar .menu-link { padding: 0; }
  /* 移动端展开按钮：一级栏目文字左侧占满、右侧放 ▾ 按钮（同一行）；
     点击 ▾ 展开/收起二级栏目，点击文字直接跳转 */
  .tab-bar .nav-fallback > li > a, .tab-bar .wp-menu > li > a, .tab-bar .wp_nav > li > a { display: block; float: left; width: calc(100% - 52px); padding: 0; }
  .tab-bar .nav-submenu-toggle { display: inline-block; float: right; width: 44px; margin: 4px 4px 4px 0; padding: 0; position: relative; z-index: 100; color: #4387c4; background: #fff; border: 1px solid #4387c4; border-radius: 3px; font-size: 15px; line-height: 32px; cursor: pointer; text-align: center; }
  .tab-bar .nav-submenu-toggle[aria-expanded="true"] { color: #fff; background: #4387c4; }
  /* 平台导航的 .mark 全覆盖层（absolute + z-index:99，桌面端 hover 点击承接）
     在手机上会截获触摸事件——点击二级栏目时 mousedown 落在 mark 上、
     click target 变成 li，链接收不到事件。手机端禁用其指针事件，
     让点击直达链接（mark 无布局影响，仅禁交互） */
  .tab-bar .mark { pointer-events: none; }
  /* 移动端子菜单默认收起——桌面 display:block+visibility 方案在 static 定位下
     visibility:hidden 仍占位（全部子菜单占位会把导航撑到 1300px+），
     改为 display:none 收起，点击 ▾（li.is-open）/聚焦/hover 展开 */
  .tab-bar .nav-fallback .nav-submenu, .tab-bar .wp-menu .sub-menu, .tab-bar .wp_nav .sub-nav { position: static; width: 100%; visibility: visible; display: none; box-shadow: none; border-top: 2px solid #4387c4; }
  .tab-bar .nav-fallback li:hover > .nav-submenu, .tab-bar .nav-fallback li.is-open > .nav-submenu, .tab-bar .nav-fallback li:focus-within > .nav-submenu,
  .tab-bar .wp-menu li:hover > .sub-menu, .tab-bar .wp_nav li:hover > .sub-nav { display: block; }
  .tab-bar .nav-submenu-wide { width: 100%; transform: none; }
  .home-dash-left, .home-dash-right { float: none; width: 100%; }
  .home-dash-left .module-policy { width: 100%; }
  .home-dash-row > .portal-module { float: none; width: 100%; height: auto; }
  .home-dash-row > .portal-module + .portal-module { margin-left: 0; margin-top: 12px; }
  .party-panel { height: auto; }
  .compact-service-panel { height: auto; }
  .site-search { height: auto; }
  .portal-module { margin-bottom: 12px; }
  .site-search input { width: calc(100% - 44px); }
  .achievements-section { height: 182px; }
  .achievement-item { width: 180px; }
  .achievement-item img { width: 180px; height: 112px; }
  .side-nav, .right-content { float: none; width: 100%; padding: 0 10px; }
  .side-nav { margin: 0 0 20px; }
  .right-content { margin-top: 0; }
  /* 移动端：二级菜单改为静态堆叠（悬浮/聚焦时展开），避免向右溢出视口 */
  .side-nav .side-nav-fallback li > ul { position: static; width: 100%; max-height: none; overflow-y: visible; visibility: visible; opacity: 1; display: none; padding: 0 0 6px; }
  .side-nav .side-nav-fallback li:hover > ul, .side-nav .side-nav-fallback li:focus-within > ul { display: block; }
  .side-nav .side-nav-fallback li > ul a { min-width: 0; padding: 10px 18px; }
  /* 移动端复位平台管理页加宽标记——侧栏仍 100% 通栏、二级允许换行 */
  .side-nav.sidenav-wide { width: 100%; }
  .side-nav.sidenav-wide .side-nav-fallback.follow > li > ul a,
  .side-nav.sidenav-wide ul.ztree a { font-size: 14px; white-space: normal; padding: 10px 18px; }
  .detail-content, .article { padding: 20px 8px 35px; }
  /* 文章页移动端适配——标题/元信息/正文字号行距、图片强制不超屏、
     长表格容器内横向滚动、列表页标题字号 */
  .article { padding: 14px 4px 30px; }
  .article h1 { font-size: 19px; line-height: 27px; }
  .article-subtitle { font-size: 14px; line-height: 22px; }
  .article-meta { margin-bottom: 12px; font-size: 12px; line-height: 20px; }
  .article-body { font-size: 15px; line-height: 26px; }
  .article-body p { margin-bottom: 10px; }
  .article-body .wp_articlecontent img { max-width: 100% !important; height: auto !important; }
  .article-body table, .wp_articlecontent table { display: block; max-width: 100%; overflow-x: auto; }
  .list-page-title { font-size: 30px; } /* 1.5 倍（20→30px） */
  .location { font-size: 13px; }
  .inner-news-list li { font-size: 13px; }
  .inner-news-list a { width: calc(100% - 90px); }
  .inner-news-list span { width: 80px; }
  /* 手机端分页——与电脑端样式一致（右对齐、文本链接、数字加粗），
     字号 11px、间距收窄，多页内容放不下时自动换行、不溢出屏幕 */
  .wp_paging { font-size: 11px; }
  .wp_paging li { margin: 0 0 0 6px; }
  .wp_paging li.pages_count { margin-left: 0; }
  .wp_paging .pageNum { width: 30px; height: 18px; margin: 0 3px; }
  .article-body table { width: 100%; }
  .platform-tip { min-height: 0; padding: 40px 12px 60px; }
  .platform-tip-box { width: 100%; padding: 32px 18px 30px; }
  .platform-tip h1 { font-size: 18px; }
  .platform-tip p { font-size: 14px; }
  .site-footer { min-width: 0; height: auto; padding: 16px 14px; line-height: 22px; }
}
