/* 时代升本官网 · 学校门户样式表 portal.css | P1 2026-11-05
   单主色 #004098 / 0 渐变 / 1 浮层阴影 / 4 处功能圆角 / 无强制优先级声明 */

/* --- 基础重置 --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body { font-family: "Microsoft YaHei", "SimSun", sans-serif; color: #333; line-height: 1.6; background: #fff; }
a { color: inherit; text-decoration: none; transition: color .2s; }
a:hover { color: #004098; }
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* --- 颜色变量 --- */
:root {
    --primary: #004098;
    --primary-dark: #003070;
    --accent: #004098;
    --accent-hover: #003070;
    --text: #333;
    --text-light: #555;
    --text-muted: #888;
    --bg-light: #f7f8fa;
    --border: #e5e5e5;
    --white: #fff;
    --radius: 0;
    --transition: .2s ease;
}

/* --- 按钮 --- */
.btn { display: inline-block; padding: 12px 32px; font-size: 15px; font-weight: 500; cursor: pointer; transition: all var(--transition); border: 2px solid transparent; text-align: center; }
.btn-primary { background: var(--accent); color: var(--white); border-color: var(--accent); }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--white); }
.btn-outline { background: transparent; color: var(--primary); border-color: var(--primary); }
.btn-outline:hover { background: var(--primary); color: var(--white); }

/* ============================================
   头部导航
   ============================================ */
.header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: #fff; transition: background var(--transition); }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 70px; gap: 20px; }
.logo { flex-shrink: 0; }
.logo img { height: 40px; width: auto; max-width: 180px; object-fit: contain; }
.nav-list { display: flex; gap: 0; flex-wrap: nowrap; white-space: nowrap; }
.nav-item a { display: block; padding: 8px 14px; font-size: 15px; color: var(--text); font-weight: 500; position: relative; transition: color var(--transition); }
.nav-item a::after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px; background: var(--accent); transition: all var(--transition); transform: translateX(-50%); }
.nav-item a:hover, .nav-item.active a { color: var(--primary); }
.nav-item.active a::after, .nav-item a:hover::after { width: 60%; }
.menu-toggle { display: none; background: none; border: none; cursor: pointer; padding: 8px; }
.menu-toggle span { display: block; width: 24px; height: 2px; background: var(--text); margin: 5px 0; transition: all var(--transition); }

/* 搜索框 */
.header-search { display: flex; align-items: center; margin-left: auto; margin-right: 16px; }
.search-toggle { background: none; border: none; cursor: pointer; padding: 8px; color: var(--text); transition: color var(--transition); }
.search-toggle:hover { color: var(--accent); }
.search-box { display: none; position: absolute; top: 100%; right: 20px; background: var(--white); padding: 12px; z-index: 100; width: 300px; }
.search-box.active { display: flex; gap: 8px; }
.search-box .search-input { flex: 1; padding: 10px 12px; border: 1px solid var(--border); font-size: 14px; outline: none; }
.search-box .search-input:focus { border-color: var(--primary); }
.search-box .search-submit { padding: 10px 16px; background: var(--primary); color: var(--white); border: none; cursor: pointer; font-size: 14px; transition: background var(--transition); }
.search-box .search-submit:hover { background: var(--primary-dark); }

/* 搜索结果页 */
.search-form { display: flex; gap: 8px; }
.search-form .search-input { flex: 1; padding: 10px 12px; border: 1px solid var(--border); font-size: 14px; }
.search-form .search-btn { padding: 10px 16px; background: var(--primary); color: var(--white); border: none; cursor: pointer; }
.empty-tip { text-align: center; padding: 40px; color: var(--text-muted); }

/* ============================================
   页面Banner (内页)
   ============================================ */
.page-banner { padding: 120px 0 60px; background: var(--primary); background-size: cover; background-position: center; color: var(--white); text-align: center; }
.page-banner-title { font-size: 36px; font-weight: 700; margin-bottom: 12px; }
.page-banner-desc { font-size: 16px; opacity: .85; }

/* ============================================
   首页 Hero Banner
   ============================================ */
.hero-banner { position: relative; margin-top: 70px; overflow: hidden; background: var(--primary-dark); }
.banner-slides { position: relative; }
.banner-slide { display: none; position: relative; }
.banner-slide.active { display: block; }
.banner-slide img { width: 100%; height: 500px; object-fit: cover; }
.banner-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: var(--primary); display: flex; align-items: center; color: var(--white); }
.banner-title { font-size: 42px; font-weight: 700; margin-bottom: 16px; }
.banner-desc { font-size: 18px; margin-bottom: 28px; opacity: .9; max-width: 600px; }
.banner-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.2); border: none; color: var(--white); font-size: 36px; padding: 12px 18px; cursor: pointer; transition: background var(--transition); z-index: 10; }
.banner-arrow:hover { background: rgba(255,255,255,.4); }
.banner-prev { left: 20px; }
.banner-next { right: 20px; }
.banner-dots { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 10; }
.banner-dot { width: 12px; height: 12px; background: rgba(255,255,255,.4); cursor: pointer; transition: all var(--transition); border: none; }
.banner-dot.active { background: var(--accent); }

/* ============================================
   通用区块样式
   ============================================ */
.section { padding: 80px 0; }
.section.bg-light { background: var(--bg-light); }
.section-header { text-align: center; margin-bottom: 50px; }
.section-title { font-size: 32px; font-weight: 700; color: var(--primary); margin-bottom: 12px; position: relative; display: inline-block; }
.section-title::after { content: ''; position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%); width: 60px; height: 3px; background: var(--accent); }
.section-subtitle { font-size: 16px; color: var(--text-muted); margin-top: 16px; }
.section-footer { text-align: center; margin-top: 40px; }

/* --- 核心优势 --- */
.advantages-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.advantage-item { text-align: center; padding: 40px 20px; background: var(--white); transition: all var(--transition); }
.advantage-item:hover { }
.advantage-icon { font-size: 48px; margin-bottom: 20px; }
.advantage-title { font-size: 20px; font-weight: 600; color: var(--primary); margin-bottom: 10px; }
.advantage-desc { font-size: 14px; color: var(--text-light); line-height: 1.7; }

/* --- 课程卡片 --- */
.courses-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.course-card { background: var(--white); overflow: hidden; transition: all var(--transition); }
.course-card:hover { }
.course-card-link { display: block; color: var(--text); }
.course-card-img { height: 200px; overflow: hidden; }
.course-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition); }
.course-card:hover .course-card-img img { }
.course-card-body { padding: 20px; }
.course-card-title { font-size: 18px; font-weight: 600; margin-bottom: 8px; color: var(--text); }
.course-card-desc { font-size: 14px; color: var(--text-light); line-height: 1.6; margin-bottom: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.course-card-more { font-size: 14px; color: var(--primary); font-weight: 500; }

/* --- 师资卡片 --- */
.teachers-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.teacher-card { text-align: center; background: var(--white); overflow: hidden; transition: all var(--transition); }
.teacher-card:hover { }
.teacher-card-img { height: 240px; overflow: hidden; }
.teacher-card-img img { width: 100%; height: 100%; object-fit: cover; }
.teacher-card-body { padding: 20px; }
.teacher-card-name { font-size: 18px; font-weight: 600; color: var(--primary); margin-bottom: 6px; }
.teacher-card-desc { font-size: 13px; color: var(--text-light); line-height: 1.6; }

/* --- 学员喜报 --- */
.success-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.success-card { background: var(--white); overflow: hidden; transition: all var(--transition); }
.success-card:hover { }
.success-card-img { height: 180px; overflow: hidden; }
.success-card-img img { width: 100%; height: 100%; object-fit: cover; }
.success-card-body { padding: 16px; }
.success-card-title { font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.success-card-desc { font-size: 13px; color: var(--text-light); line-height: 1.6; }

/* --- 备考资讯 --- */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.news-card { background: var(--white); overflow: hidden; transition: all var(--transition); }
.news-card:hover { }
.news-card-link { display: flex; color: var(--text); }
.news-card-date { flex-shrink: 0; width: 80px; background: var(--primary); color: var(--white); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 16px 8px; }
.news-date-day { font-size: 28px; font-weight: 700; line-height: 1; }
.news-date-month { font-size: 12px; opacity: .8; margin-top: 4px; }
.news-card-body { padding: 16px; flex: 1; }
.news-card-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.news-card-desc { font-size: 13px; color: var(--text-light); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ============================================
   内页布局
   ============================================ */
.main-content { padding-top: 100px; padding-bottom: 60px; min-height: 60vh; }
.breadcrumb { font-size: 14px; color: var(--text-muted); margin-bottom: 30px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.breadcrumb a { color: var(--text-light); }
.breadcrumb a:hover { color: var(--primary); }

/* --- 列表页布局 --- */
.list-layout, .article-layout, .single-layout { display: grid; grid-template-columns: 1fr 300px; gap: 40px; }

/* --- 文章列表项 --- */
.article-item { display: flex; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--border); transition: all var(--transition); }
.article-item:hover { background: var(--bg-light); margin: 0 -12px; padding-left: 12px; padding-right: 12px; }
.article-item-img { flex-shrink: 0; width: 200px; height: 140px; overflow: hidden; }
.article-item-img img { width: 100%; height: 100%; object-fit: cover; }
.article-item-body { flex: 1; }
.article-item-title { font-size: 18px; font-weight: 600; margin-bottom: 8px; }
.article-item-title a:hover { color: var(--primary); }
.article-item-desc { font-size: 14px; color: var(--text-light); line-height: 1.7; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.article-item-meta { font-size: 13px; color: var(--text-muted); display: flex; gap: 12px; align-items: center; }
.tag { display: inline-block; padding: 2px 8px; font-size: 12px; }
.tag-top { background: #004098; color: var(--white); }
.tag-recommend { background: var(--accent); color: var(--white); }

/* --- 分页 --- */
.pagination { margin-top: 40px; padding: 20px 0; }
.page-bar { display: flex; justify-content: center; align-items: center; gap: 4px; flex-wrap: wrap; }
.page-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 12px; border: 1px solid var(--border); font-size: 14px; color: var(--text-light); background: var(--white); transition: all .2s; cursor: pointer; text-decoration: none; }
.page-btn:hover { background: var(--bg-light); border-color: var(--primary); color: var(--primary); }
.page-btn.active { background: var(--primary); color: var(--white); border-color: var(--primary); font-weight: 600; }
.page-btn.disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }
.page-num { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 10px; border: 1px solid var(--border); font-size: 14px; color: var(--text-light); background: var(--white); transition: all .2s; text-decoration: none; }
.page-num:hover { background: var(--bg-light); border-color: var(--primary); color: var(--primary); }
.page-num.page-num-current { background: var(--primary); color: var(--white); border-color: var(--primary); font-weight: 600; }
.page-ellipsis { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; color: var(--text-muted); font-size: 14px; }
.empty-tip { text-align: center; color: var(--text-muted); padding: 60px 0; font-size: 16px; }

/* --- 侧边栏 --- */
.sidebar-widget { background: var(--white); padding: 24px; margin-bottom: 24px; }
.sidebar-title { font-size: 16px; font-weight: 600; color: var(--primary); margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--accent); }
.sidebar-nav li { padding: 8px 0; border-bottom: 1px dashed var(--border); }
.sidebar-nav li:last-child { border-bottom: none; }
.sidebar-nav li a { font-size: 14px; color: var(--text-light); display: block; padding: 4px 8px; transition: all var(--transition); }
.sidebar-nav li a:hover, .sidebar-nav li.active a { color: var(--primary); background: var(--bg-light); }
.sidebar-hot li { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px dashed var(--border); }
.sidebar-hot li:last-child { border-bottom: none; }
.sidebar-hot li a { font-size: 14px; color: var(--text-light); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-hot li a:hover { color: var(--primary); }
.hot-date { font-size: 12px; color: var(--text-muted); flex-shrink: 0; margin-left: 8px; }
.sidebar-contact p { font-size: 14px; color: var(--text-light); margin-bottom: 8px; }

/* --- 文章详情页 --- */
.article-header { margin-bottom: 30px; padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.article-title { font-size: 28px; font-weight: 700; color: var(--text); margin-bottom: 12px; line-height: 1.4; }
.article-meta { font-size: 14px; color: var(--text-muted); display: flex; gap: 20px; }
.article-cover { margin-bottom: 30px; }
.article-cover img { width: 100%; max-height: 400px; object-fit: cover; }
.article-content { font-size: 16px; line-height: 1.8; color: var(--text); }
.article-content h2 { font-size: 22px; font-weight: 600; color: var(--primary); margin: 30px 0 15px; padding-left: 12px; border-left: 4px solid var(--accent); }
.article-content h3 { font-size: 18px; font-weight: 600; margin: 24px 0 12px; }
.article-content p { margin-bottom: 16px; }
.article-content img { max-width: 100%; margin: 16px 0; }
.article-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--border); }
.article-nav-item { padding: 16px; background: var(--bg-light); }
.article-nav-label { display: block; font-size: 12px; color: var(--text-muted); margin-bottom: 6px; }

/* --- 文章底部信息框 --- */
.article-tail { margin: 25px 0 0; padding: 20px; border-top: 1px dashed #ddd; font-size: 14px; line-height: 2; color: #666; }
.article-source { margin: 0 0 8px; }
.article-source span { color: #999; }
.article-tail-divider { height: 1px; background: #eee; margin: 10px 0; }
.article-tail-contact { margin: 0 0 4px; }
.article-tail-contact strong { color: #333; font-weight: bold; }
.article-tail-contact a { color: #004098; font-weight: bold; text-decoration: none; }
.article-tail-contact a:hover { text-decoration: underline; }
.article-tail-slogan { margin: 0; font-size: 12px; color: #999; }

/* --- 单页 --- */
.single-content { font-size: 16px; line-height: 1.8; }
.single-content img { max-width: 100%; margin: 16px 0; }

/* ============================================
   页脚
   ============================================ */
.footer { background: #003070; color: rgba(255,255,255,.8); padding: 60px 0 0; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-col h4 { font-size: 16px; font-weight: 600; color: var(--white); margin-bottom: 16px; }
.footer-desc { font-size: 14px; line-height: 1.7; opacity: .7; }
.footer-links li { margin-bottom: 8px; }
.footer-links a { font-size: 14px; opacity: .7; transition: opacity var(--transition); }
.footer-links a:hover { opacity: 1; color: var(--accent); }
.footer-links-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.footer-contact li { font-size: 14px; margin-bottom: 8px; opacity: .7; }
.qrcode-list { display: flex; gap: 20px; justify-content: flex-start; }
.qrcode-wrap { text-align: center; flex: 0 0 auto; width: 110px; }
.qrcode-wrap img { width: 110px; height: 110px; margin: 0 auto 8px; background: var(--white); object-fit: cover; display: block; border: 1px solid var(--border); }
.qrcode-wrap span { font-size: 12px; opacity: .6; display: block; white-space: nowrap; }
.footer-bottom { padding: 20px 0; text-align: center; font-size: 13px; opacity: .5; }
.footer-bottom p { margin-bottom: 4px; }
.footer-bottom a { color: rgba(255,255,255,.5); }
.footer-bottom a:hover { color: var(--accent); }

/* ============================================
   手机端底部导航
   ============================================ */
.mobile-bottom-nav { display: none; position: fixed; bottom: 0; left: 0; right: 0; background: var(--white); z-index: 1000; padding: 8px 0 env(safe-area-inset-bottom); border-top: 1px solid #f0f0f0; }
.mobile-nav-item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 4px 0; font-size: 10px; color: #888; text-decoration: none; transition: color .2s; }
.mobile-nav-item:active { color: var(--primary); }
.mobile-nav-icon { width: 24px; height: 24px; margin-bottom: 2px; }
.mobile-nav-item span { line-height: 1; letter-spacing: .5px; }

/* 微信弹窗 */
.wechat-popup { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9999; }
.wechat-popup.show { display: flex; align-items: center; justify-content: center; }
.wechat-popup-mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); }
.wechat-popup-content { position: relative; background: var(--white); padding: 30px 24px 24px; text-align: center; z-index: 1; width: 280px; animation: popupFadeIn .3s ease; }
@keyframes popupFadeIn { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: scale(1); } }
.wechat-popup-close { position: absolute; top: 10px; right: 14px; font-size: 24px; color: #999; cursor: pointer; line-height: 1; }
.wechat-popup-close:hover { color: #333; }
.wechat-popup-title { font-size: 18px; font-weight: 600; color: #333; margin-bottom: 16px; }
.wechat-popup-qrcode { width: 180px; height: 180px; margin: 0 auto 12px; overflow: hidden; border: 1px solid #eee; }
.wechat-popup-qrcode img { width: 100%; height: 100%; object-fit: cover; }
.wechat-popup-tip { font-size: 13px; color: #999; }
.mobile-nav-cta { background: var(--primary); color: var(--white); }

/* --- 返回顶部 --- */
.back-to-top { position: fixed; bottom: 80px; right: 20px; width: 44px; height: 44px; background: var(--primary); color: var(--white); display: flex; align-items: center; justify-content: center; line-height: 1; opacity: 0; visibility: hidden; transition: all var(--transition); z-index: 1001; }
.back-to-top.visible { opacity: 1; visibility: visible; }
.back-to-top:hover { background: var(--accent); color: var(--white); }

/* ============================================
   响应式 - 平板端 (<1200px)
   ============================================ */
@media (max-width: 1199px) {
    .advantages-grid { grid-template-columns: repeat(2, 1fr); }
    .courses-grid { grid-template-columns: repeat(2, 1fr); }
    .teachers-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
    .list-layout, .article-layout, .single-layout { grid-template-columns: 1fr; }
    .list-sidebar, .article-sidebar, .single-sidebar { order: 2; }
}

/* ============================================
   响应式 - 平板端底部导航 (<1024px)
   ============================================ */
@media (max-width: 1024px) {
    .mobile-bottom-nav { display: flex; }
    body { padding-bottom: 70px; }
    .back-to-top { bottom: calc(66px + env(safe-area-inset-bottom)); right: 14px; width: 40px; height: 40px; z-index: 1001; }
}

/* ============================================
   响应式 - 手机端 (<768px)
   ============================================ */
@media (max-width: 767px) {
    html { font-size: 14px; }
    .container { padding: 0 16px; }
    .header-inner { height: 60px; }
    .logo img { height: 32px; }

    /* 汉堡菜单 */
     .menu-toggle { display: block; }
    .header-search { margin-right: 8px; }
    .search-box { right: 10px; width: calc(100vw - 20px); }
    .main-nav { position: fixed; top: 60px; left: 0; right: 0; background: var(--white); max-height: 0; overflow: hidden; transition: max-height .3s ease; }
    .main-nav.open { max-height: 400px; }
    .nav-list { flex-direction: column; padding: 10px 0; }
    .nav-item a { padding: 12px 20px; border-bottom: 1px solid var(--border); color: var(--text); }
    .nav-item a::after { display: none; }

    /* Hero Banner */
    .hero-banner { margin-top: 60px; }
    .banner-slide img { height: 300px; }
    .banner-title { font-size: 24px; }
    .banner-desc { font-size: 14px; }
    .banner-arrow { font-size: 24px; padding: 8px 12px; }

    /* 内页Banner */
    .page-banner { padding: 90px 0 40px; }
    .page-banner-title { font-size: 24px; }

    /* Section */
    .section { padding: 50px 0; }
    .section-title { font-size: 24px; }
    .section-header { margin-bottom: 30px; }

    /* 优势 */
    .advantages-grid { grid-template-columns: 1fr; gap: 16px; }
    .advantage-item { padding: 24px 16px; }

    /* 课程/师资/资讯 */
    .courses-grid, .teachers-grid, .success-grid, .news-grid { grid-template-columns: 1fr; gap: 16px; }
    .course-card-img { height: 160px; }
    .teacher-card-img { height: 200px; }

    /* 列表项 */
    .article-item { flex-direction: column; gap: 12px; }
    .article-item-img { width: 100%; height: 180px; }

    /* 侧边栏 */
    .list-layout, .article-layout, .single-layout { grid-template-columns: 1fr; gap: 20px; }

    /* 文章详情 */
    .article-title { font-size: 22px; }
    .article-meta { flex-wrap: wrap; gap: 8px; }
    .article-nav { grid-template-columns: 1fr; }

    /* 页脚 */
    .footer { padding: 40px 0 0; }
    .footer-grid { grid-template-columns: 1fr; gap: 24px; }
    .footer-col-qrcode { text-align: center; }
    .qrcode-list { justify-content: center; }

    /* 手机底部导航 */
    .mobile-bottom-nav { display: flex; }
    body { padding-bottom: 70px; }
    .back-to-top { bottom: calc(66px + env(safe-area-inset-bottom)); right: 14px; width: 40px; height: 40px; z-index: 1001; }

    /* 院校地图 */
    .school-map-container { flex-direction: column; }
    .hubei-map { width: 100%; max-width: 500px; margin: 0 auto; }
    .city-label { font-size: 10px; }
    .map-stats { flex-wrap: wrap; gap: 12px; }
    .stat-item { flex: 1; min-width: 80px; }

    /* 学校专题页 */
    .school-header { flex-direction: column; gap: 16px; }
    .school-layout { grid-template-columns: 1fr; }
    .school-sidebar { order: 2; }
}

/* ============================================
   院校地图 & 学校专题页
   ============================================ */

/* 页面标题 */
.page-banner { text-align: center; padding: 60px 0 40px; background: var(--primary); color: var(--white); }
.page-banner-title { font-size: 36px; font-weight: 700; margin-bottom: 16px; }
.page-banner-subtitle { font-size: 18px; opacity: 0.9; }

/* 统计信息 */
.map-stats { display: flex; gap: 16px; margin-bottom: 30px; padding: 24px; background: var(--primary); }
.stat-item { flex: 1; text-align: center; color: var(--white); }
.stat-num { display: block; font-size: 32px; font-weight: 700; line-height: 1.2; }
.stat-label { font-size: 13px; opacity: .85; }

/* 城市卡片网格 */
.school-map-section { padding: 0 0 40px; }
.map-container { position: relative; }
.city-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.city-card { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; background: var(--white); border: 2px solid var(--border); cursor: pointer; transition: all .3s; }
.city-card:hover { border-color: var(--primary); }
.city-name { font-size: 16px; font-weight: 600; color: var(--text); }
.city-count { font-size: 14px; color: var(--primary); font-weight: 500; }
.city-arrow { font-size: 20px; color: var(--text-muted); transition: transform .3s; }
.city-card:hover .city-arrow { color: var(--primary); }

/* 全部院校表格 */
.all-schools-section { margin-top: 40px; }
.school-type-tabs { display: flex; gap: 8px; margin-bottom: 20px; }
.type-tab { padding: 10px 20px; border: 2px solid var(--border); background: var(--white); font-size: 14px; font-weight: 500; color: var(--text-light); cursor: pointer; transition: all .2s; }
.type-tab:hover { border-color: var(--primary); color: var(--primary); }
.type-tab.active { background: var(--primary); border-color: var(--primary); color: var(--white); }
.schools-table { overflow-x: auto; }
.schools-table table { width: 100%; border-collapse: collapse; background: var(--white); overflow: hidden; }
.schools-table th { padding: 14px 16px; background: var(--bg-light); font-size: 14px; font-weight: 600; color: var(--text); text-align: left; border-bottom: 2px solid var(--border); }
.schools-table td { padding: 12px 16px; font-size: 14px; color: var(--text); border-bottom: 1px solid var(--border); }
.schools-table tr:hover { background: var(--bg-light); }
.type-badge { display: inline-block; padding: 3px 10px; font-size: 12px; font-weight: 500; }
.type-badge.public { background: #f5f7fa; color: #004098; }
.type-badge.private { background: #f5f7fa; color: #004098; }
.btn-link { color: var(--primary); text-decoration: none; font-weight: 500; }
.btn-link:hover { text-decoration: underline; }

/* 城市学校弹窗 */
.city-schools-popup { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9999; }
.city-schools-popup.show { display: flex; align-items: center; justify-content: center; }
.popup-mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); }
.popup-content { position: relative; background: var(--white); width: 90%; max-width: 500px; max-height: 80vh; overflow: hidden; z-index: 1; animation: popupFadeIn .3s ease; }
.popup-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border); background: var(--primary); color: var(--white); }
.popup-title { font-size: 18px; font-weight: 600; margin: 0; color: var(--white); }
.popup-close { font-size: 28px; color: rgba(255,255,255,.8); cursor: pointer; line-height: 1; }
.popup-close:hover { color: var(--white); }
.popup-body { padding: 16px 20px; overflow-y: auto; max-height: calc(80vh - 60px); }
.school-list { list-style: none; padding: 0; margin: 0; }
.school-list li { padding: 12px 0; border-bottom: 1px solid var(--border); }
.school-list li:last-child { border-bottom: none; }
.school-list a { display: flex; align-items: center; justify-content: space-between; font-size: 15px; color: var(--text); text-decoration: none; padding: 10px 14px; transition: all .2s; }
.school-list a:hover { background: var(--bg-light); color: var(--primary); }
.school-list a::after { content: '\2192'; color: var(--text-muted); transition: transform .2s; }
.school-list a:hover::after { color: var(--primary); }

/* 学校专题页 */
.school-header { display: flex; justify-content: space-between; align-items: flex-start; padding: 30px 0; border-bottom: 1px solid var(--border); margin-bottom: 30px; }
.school-name { font-size: 28px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.school-desc { font-size: 15px; color: var(--text-light); line-height: 1.6; margin-bottom: 12px; }
.school-meta { display: flex; gap: 12px; }
.school-tag { display: inline-block; padding: 4px 12px; background: var(--primary); color: var(--white); font-size: 12px; }
.school-actions { display: flex; gap: 12px; flex-shrink: 0; }
.school-actions .btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; font-size: 14px; }

/* 学校布局 */
.school-layout { display: grid; grid-template-columns: 1fr 280px; gap: 30px; }
.school-main { min-width: 0; }

/* 学校简介 */
.school-about { margin-bottom: 40px; }
.school-content { font-size: 15px; line-height: 1.8; color: var(--text); }
.school-content p { margin-bottom: 16px; }

/* 资讯列表 */
.school-news { margin-bottom: 40px; }
.news-list { margin-top: 20px; }
.news-item { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--border); }
.news-date { flex-shrink: 0; width: 60px; text-align: center; }
.date-day { display: block; font-size: 24px; font-weight: 700; color: var(--primary); line-height: 1; }
.date-month { font-size: 12px; color: var(--text-muted); }
.news-content { flex: 1; min-width: 0; }
.news-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; }
.news-title a { color: var(--text); text-decoration: none; }
.news-title a:hover { color: var(--primary); }
.news-desc { font-size: 14px; color: var(--text-light); line-height: 1.6; }

/* 侧边栏 */
.school-sidebar { position: sticky; top: 90px; }
.sidebar-widget { background: var(--bg-light); padding: 20px; margin-bottom: 20px; }
.sidebar-title { font-size: 16px; font-weight: 600; color: var(--text); margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--primary); }
.school-info-list { }
.info-item { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 14px; }
.info-item:last-child { border-bottom: none; }
.info-label { color: var(--text-muted); }
.info-value { color: var(--text); font-weight: 500; }
.sidebar-links { list-style: none; padding: 0; margin: 0; }
.sidebar-links li { margin-bottom: 8px; }
.sidebar-links a { display: block; padding: 8px 12px; font-size: 14px; color: var(--text-light); text-decoration: none; transition: all .2s; }
.sidebar-links a:hover { background: var(--white); color: var(--primary); }

/* 响应式 - 平板 */
@media (max-width: 992px) {
    .city-grid { grid-template-columns: repeat(3, 1fr); }
    .map-stats { flex-wrap: wrap; }
    .stat-item { min-width: calc(50% - 8px); }
}

/* 响应式 - 手机 */
@media (max-width: 768px) {
    .city-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .city-card { padding: 12px 14px; }
    .city-name { font-size: 14px; }
    .city-count { font-size: 12px; }
    .stat-num { font-size: 24px; }
    .page-banner { padding: 40px 0 24px; }
    .page-banner-title { font-size: 24px; }
    .page-banner-subtitle { font-size: 16px; }
    .school-header { flex-direction: column; gap: 16px; }
    .school-layout { grid-template-columns: 1fr; }
    .school-type-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 8px; }
    .type-tab { flex-shrink: 0; padding: 8px 16px; font-size: 13px; }
    .schools-table { font-size: 13px; }
    .schools-table th, .schools-table td { padding: 10px 12px; }
    .all-schools-section { margin-top: 30px; }
}


/* ============================================================
   学校门户版式层  P1 / 2026-11-05
   规则：文字列表为主、直角分隔线、事实陈述、无装饰性视觉
   ============================================================ */

/* 基础排版 */
body { font-family: "Microsoft YaHei", "SimSun", sans-serif; color: #333; line-height: 1.9; }
.header { background: #fff; border-bottom: 1px solid #e5e5e5; }
.header-inner { height: 76px; }
a:hover { color: #004098; }
.article-content, .single-content { font-size: 16px; line-height: 1.9; }
.article-content p, .single-content p, .school-content p { text-indent: 2em; margin-bottom: 14px; }
.article-content h2, .single-content h2 { font-size: 20px; color: #004098; border-left: 0; border-bottom: 1px solid #e5e5e5; padding: 0 0 8px; margin: 28px 0 14px; }
.article-content h3, .single-content h3 { font-size: 17px; }
.article-content img, .single-content img { display: block; margin: 16px auto; max-width: 100%; }
.article-tail-contact a { color: #004098; }

/* 内页列表 / 侧栏朴素化 */
.article-item { padding: 20px 0; border-bottom: 1px solid #e5e5e5; }
.article-item:hover { background: none; margin: 0; padding: 20px 0; }
.article-item-img { width: 160px; height: 100px; }
.article-item-title { font-size: 17px; }
.sidebar-widget { border: 1px solid #e5e5e5; background: #fff; padding: 18px; }
.sidebar-title { color: #004098; border-bottom: 1px solid #004098; }
.page-banner { background: #004098; color: #fff; }
.map-stats { background: #004098; }
.city-card:hover { border-color: #004098; }
.footer { background: #003070; color: #e8eef8; }
.footer-links a:hover, .footer-bottom a:hover { color: #fff; }

/* 顶部主导航的二级下拉（静态链接，随栏目骨架固定） */
.nav-item { position: relative; }
.nav-sub { display: none; position: absolute; top: 100%; left: 0; min-width: 168px; background: #fff; border: 1px solid #e5e5e5; border-top: 2px solid #004098; padding: 4px 0; z-index: 1100; }
.nav-item:hover .nav-sub { display: block; }
.nav-sub a { display: block; padding: 7px 16px; font-size: 14px; color: #333; white-space: nowrap; }
.nav-sub a:hover { background: #f7f8fa; color: #004098; }
.nav-item a::after { background: #004098; }

/* 首页：校名条 */
.portal-masthead { background: #004098; color: #fff; padding: 22px 0 18px; margin-top: 76px; }
.portal-masthead .container { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; }
.portal-title { font-size: 27px; font-weight: 600; letter-spacing: 2px; margin: 0; color: #fff; line-height: 1.4; }
.portal-subtitle { font-size: 14px; margin: 4px 0 0; color: #dbe6f5; letter-spacing: 1px; }
.portal-masthead-meta { font-size: 14px; color: #dbe6f5; }
.portal-masthead-meta a { color: #fff; }

/* 首页：公告条 */
.portal-notice { display: flex; align-items: center; gap: 12px; border: 1px solid #e5e5e5; border-left: 3px solid #004098; background: #fbfcfe; padding: 10px 14px; margin-top: 18px; font-size: 15px; }
.portal-notice-label { font-weight: 600; color: #004098; white-space: nowrap; }
.portal-notice a { color: #333; }
.portal-notice a:hover { color: #004098; }

/* 首页：学校概览 */
.portal-about { display: grid; grid-template-columns: 360px 1fr; gap: 28px; padding: 26px 0; border-bottom: 1px solid #e5e5e5; }
.portal-about-img { width: 100%; height: 240px; object-fit: cover; border: 1px solid #e5e5e5; }
.portal-about h2 { font-size: 20px; color: #004098; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid #e5e5e5; }
.portal-about p { font-size: 15px; line-height: 1.9; margin: 0 0 10px; text-indent: 2em; }
.portal-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 24px; margin-top: 12px; font-size: 14px; }
.portal-facts div { padding: 5px 0; border-bottom: 1px dashed #e5e5e5; }
.portal-facts strong { color: #004098; font-weight: 600; }
.portal-about-more { font-size: 14px; margin-top: 12px; }
.portal-about-more a { color: #004098; }

/* 首页：办事入口 */
.portal-quick { margin: 22px 0 0; border: 1px solid #e5e5e5; }
.portal-quick h2 { font-size: 18px; margin: 0; padding: 9px 16px; background: #f7f8fa; border-bottom: 1px solid #e5e5e5; color: #004098; }
.portal-quick ul { display: grid; grid-template-columns: repeat(4, 1fr); padding: 0; margin: 0; }
.portal-quick li { border-right: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; }
.portal-quick li:nth-child(4n) { border-right: 0; }
.portal-quick li:nth-last-child(-n+4) { border-bottom: 0; }
.portal-quick a { display: block; padding: 13px 8px; text-align: center; font-size: 15px; }
.portal-quick a:hover { background: #004098; color: #fff; }

/* 首页：栏目列表区块 */
.portal-blocks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin: 26px 0 10px; }
.portal-block { border-top: 2px solid #004098; margin-bottom: 26px; min-width: 0; }
.portal-block-head { display: flex; align-items: baseline; justify-content: space-between; padding: 9px 0 7px; border-bottom: 1px solid #e5e5e5; }
.portal-block-head h2 { font-size: 20px; color: #004098; margin: 0; }
.portal-more { font-size: 13px; color: #888; white-space: nowrap; }
.portal-more:hover { color: #004098; }
.portal-list { padding: 4px 0 0; margin: 0; }
.portal-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px dotted #e5e5e5; font-size: 15px; list-style: none; }
.portal-list li::before { content: ''; display: inline-block; width: 4px; height: 4px; background: #004098; flex-shrink: 0; }
.portal-list li a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #333; }
.portal-list li a:hover { color: #004098; }
.portal-date { font-size: 13px; color: #999; white-space: nowrap; }
.portal-list-empty { padding: 14px 0; font-size: 14px; color: #888; list-style: none; }

/* 首页：相关链接 */
.portal-links { margin: 6px 0 34px; padding: 12px 16px; border: 1px solid #e5e5e5; background: #fbfcfe; font-size: 14px; }
.portal-links strong { color: #004098; margin-right: 12px; }
.portal-links a { margin-right: 18px; color: #555; }
.portal-links a:hover { color: #004098; }

/* 仅保留 1 处浮层阴影 */
.wechat-popup-content { box-shadow: 0 2px 12px rgba(0,0,0,.12); }
/* 仅保留 4 处功能性圆角 */
.tag { border-radius: 2px; }
.type-badge { border-radius: 2px; }
.school-tag { border-radius: 2px; }
.back-to-top { border-radius: 2px; }

/* 响应式 */
@media (max-width: 1199px) {
    .portal-about { grid-template-columns: 300px 1fr; }
}
@media (max-width: 1024px) {
    .header-inner { height: 70px; }
    .portal-masthead { margin-top: 70px; }
}
@media (max-width: 767px) {
    .header-inner { height: 60px; }
    .portal-masthead { margin-top: 60px; padding: 15px 0 13px; }
    .portal-title { font-size: 21px; }
    .portal-subtitle, .portal-masthead-meta { font-size: 12px; }
    .portal-notice { font-size: 14px; flex-wrap: wrap; }
    .portal-about { grid-template-columns: 1fr; gap: 14px; padding: 18px 0; }
    .portal-about-img { height: 190px; }
    .portal-facts { grid-template-columns: 1fr; }
    .portal-quick ul { grid-template-columns: repeat(2, 1fr); }
    .portal-quick li:nth-child(4n) { border-right: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; }
    .portal-quick li:nth-child(2n) { border-right: 0; }
    .portal-blocks { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .portal-block-head h2 { font-size: 18px; }
    .portal-list li { font-size: 14px; }
    .main-nav.open { max-height: 72vh; overflow-y: auto; }
    .nav-sub { display: block; position: static; min-width: 0; border: 0; border-top: 0; padding: 0 0 0 14px; background: #fafbfd; }
    .nav-sub a { padding: 7px 20px; border-bottom: 1px solid #f0f0f0; color: #666; font-size: 13px; }
}


/* P1 详情页 / 单页 补充 */
.portal-source-note { margin-top: 24px; padding: 10px 0; border-top: 1px solid #e5e5e5; font-size: 13px; color: #888; }
.single-layout { grid-template-columns: 220px 1fr; gap: 30px; }
.single-sidebar { order: -1; }
@media (max-width: 1199px) {
    .single-layout { grid-template-columns: 1fr; }
    .single-sidebar { order: 2; }
}

/* P3 详情页导读段（与页头问答结构化数据同源，保证可见） */
.article-lead { margin: 0 0 22px; padding: 12px 16px; border-left: 3px solid #004098; background: #f4f6f9; color: #444; font-size: 15px; line-height: 1.85; }
@media (max-width: 767px) {
    .article-lead { padding: 10px 12px; font-size: 14px; margin-bottom: 18px; }
}


/* ============================================================
   P5 · 学校官网化改造（2026-11-05）
   目标：三条式头部 + 首屏轮播 + 图文混排 + 师资/环境板块
   约束：单主色 #004098、圆角 0、无渐变、无阴影
   ============================================================ */
:root {
    --h-top: 32px;
    --h-head: 84px;
    --h-nav: 46px;
    --h-total: 162px;
    --primary-deep: #003070;
    --nav-bg: #004098;
}

/* ---------- 顶部信息条 ---------- */
.portal-topbar {
    background: var(--primary-deep);
    color: #cfdcee;
    font-size: 13px;
    letter-spacing: .5px;
}
.portal-topbar .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--h-top);
}
.portal-topbar a { color: #fff; }

/* ---------- 校名行 ---------- */
.header { background: #fff; border-bottom: none; }
.portal-headerbar {
    display: flex;
    align-items: center;
    height: var(--h-head);
    gap: 26px;
}
.portal-headerbar .logo { flex-shrink: 0; }
.portal-headerbar .logo img { height: 46px; width: auto; max-width: 210px; }
.header-facts { display: flex; gap: 30px; }
.header-facts ul {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 13px;
    color: #555;
    line-height: 1.85;
}
.header-facts li { position: relative; padding-left: 12px; white-space: nowrap; }
.header-facts li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .72em;
    width: 4px;
    height: 4px;
    background: var(--primary);
}
.header-hotline {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    padding-left: 26px;
    border-left: 1px solid #e5e5e5;
}
.hotline-icon { width: 30px; height: 30px; color: var(--primary); flex-shrink: 0; }
.hotline-text { display: flex; flex-direction: column; line-height: 1.3; }
.hotline-label { font-size: 12px; color: #888; letter-spacing: 1px; }
.hotline-num {
    font-size: 21px;
    font-weight: 700;
    color: var(--primary);
    font-family: Arial, "Microsoft YaHei", sans-serif;
    letter-spacing: .5px;
}

/* ---------- 导航条（深蓝通栏） ---------- */
.portal-navbar { background: var(--nav-bg); }
.portal-navbar-inner {
    display: flex;
    align-items: center;
    height: var(--h-nav);
    position: relative;
}
.main-nav { flex: 0 1 auto; margin: 0 auto; }
.nav-list { display: flex; flex-wrap: nowrap; }
.nav-item > a {
    display: block;
    padding: 0 21px;
    line-height: var(--h-nav);
    font-size: 16px;
    font-weight: 400;
    color: #fff;
}
.nav-item > a::after { display: none; }
.nav-item:hover > a,
.nav-item.active > a { background: var(--primary-deep); color: #fff; }
.portal-navbar .nav-sub { border-top: none; box-shadow: none; }
.portal-navbar .header-search {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
}
.portal-navbar .search-toggle { color: #fff; opacity: .9; }
.portal-navbar .search-toggle:hover { opacity: 1; }

/* ---------- 主内容区偏移 ---------- */
.portal-main { padding-top: var(--h-total); }
.main-content { padding-top: calc(var(--h-total) + 20px); }

/* ---------- 首屏轮播 ---------- */
.portal-hero { background: #eef1f5; }
.hero-viewport { position: relative; overflow: hidden; height: 420px; }
.hero-track { display: flex; height: 100%; transition: transform .55s ease; }
.hero-slide { flex: 0 0 100%; position: relative; display: block; }
.hero-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-caption {
    position: absolute;
    left: 0;
    bottom: 0;
    max-width: 660px;
    padding: 18px 30px 20px;
    background: rgba(0, 48, 112, .86);
    color: #fff;
}
.hero-caption h2 { font-size: 24px; font-weight: 600; margin: 0 0 6px; letter-spacing: 1px; }
.hero-caption p { margin: 0; font-size: 14px; color: #cfdcee; letter-spacing: .5px; }

.hero-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 68px;
    border: 0;
    background: rgba(0, 48, 112, .45);
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    z-index: 3;
    transition: background .2s;
}
.hero-arrow:hover { background: rgba(0, 48, 112, .82); }
.hero-prev { left: 0; }
.hero-next { right: 0; }
.hero-dots {
    position: absolute;
    right: 86px;
    bottom: 22px;
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 3;
}
.hero-dot {
    width: 30px;
    height: 4px;
    padding: 0;
    border: 0;
    background: rgba(255, 255, 255, .5);
    cursor: pointer;
    transition: background .2s;
}
.hero-dot:hover { background: rgba(255, 255, 255, .8); }
.hero-dot::after { content: none; }
.hero-dot.on { background: #fff; }

/* ---------- 通知公告 ---------- */
.portal-notice {
    display: flex;
    align-items: center;
    gap: 16px;
    border: 0;
    border-bottom: 1px solid #e5e5e5;
    background: none;
    padding: 14px 0;
    margin-top: 0;
    font-size: 15px;
}
.portal-notice-label {
    font-weight: 600;
    color: var(--primary);
    white-space: nowrap;
    padding-right: 16px;
    border-right: 1px solid #e5e5e5;
    letter-spacing: 1px;
}
.portal-notice-list { display: flex; gap: 34px; flex: 1; min-width: 0; flex-wrap: wrap; }
.portal-notice-list a { color: #333; }
.portal-notice-list a:hover { color: var(--primary); }
.portal-notice .portal-more { white-space: nowrap; color: #888; }

/* ---------- 通用标题 ---------- */
.portal-h2 {
    font-size: 21px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0;
    padding-left: 13px;
    border-left: 4px solid var(--primary);
    line-height: 1.2;
    letter-spacing: 1px;
}
.portal-h3 {
    font-size: 18px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0;
    padding-left: 11px;
    border-left: 3px solid var(--primary);
    line-height: 1.2;
}
.portal-block-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--primary);
    margin-bottom: 18px;
}
.portal-block-head .portal-more { font-size: 14px; color: #888; }

/* ---------- 学校概况 ---------- */
.portal-about {
    display: grid;
    grid-template-columns: 380px minmax(0, 1fr);
    gap: 34px;
    padding: 34px 0 30px;
    border-bottom: 1px solid #e5e5e5;
}
.portal-about-media { position: relative; align-self: start; }
.portal-about-media img {
    display: block;
    width: 100%;
    height: 262px;
    object-fit: cover;
}
.portal-about-cap {
    position: absolute;
    left: 0;
    bottom: 0;
    right: 0;
    padding: 7px 12px;
    background: rgba(0, 48, 112, .82);
    color: #fff;
    font-size: 13px;
    letter-spacing: .5px;
}
.portal-about-body { min-width: 0; }
.portal-about-body p {
    font-size: 15px;
    line-height: 2;
    color: #444;
    margin: 14px 0 0;
    text-align: justify;
}
.portal-about-body p:first-of-type { margin-top: 16px; }
.portal-about-more {
    margin-top: 16px !important;
    padding-top: 12px;
    border-top: 1px dashed #e5e5e5;
    font-size: 14px !important;
    color: #888 !important;
}
.portal-about-more a { margin-right: 18px; color: var(--primary); }

/* ---------- 新闻中心 ---------- */
.portal-news { padding: 34px 0 30px; border-bottom: 1px solid #e5e5e5; }
.portal-news-grid {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    gap: 32px;
}
.portal-news-lead { min-width: 0; }
.portal-news-lead-img { display: block; }
.portal-news-lead-img img {
    display: block;
    width: 100%;
    height: 196px;
    object-fit: cover;
}
.portal-news-lead h3 {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.6;
    margin: 12px 0 0;
}
.portal-news-lead h3 a { color: #1a1a1a; }
.portal-news-lead h3 a:hover { color: var(--primary); }
.portal-news-lead p {
    font-size: 14px;
    line-height: 1.85;
    color: #777;
    margin: 8px 0 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.portal-news-lead .portal-date { display: block; margin-top: 8px; font-size: 13px; color: #999; }

.portal-news-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 34px;
    align-content: start;
}
.portal-news-list li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    justify-content: space-between;
    padding: 9px 0 9px 14px;
    border-bottom: 1px dotted #e5e5e5;
    position: relative;
}
.portal-news-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1.28em;
    width: 4px;
    height: 4px;
    background: #c9d4e2;
}
.portal-news-list a {
    color: #333;
    font-size: 15px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    min-width: 0;
}
.portal-news-list a:hover { color: var(--primary); }
.portal-news-list .portal-date { font-size: 13px; color: #999; flex-shrink: 0; }

/* ---------- 通栏实拍 ---------- */
.portal-banner {
    position: relative;
    margin: 30px 0;
    overflow: hidden;
}
.portal-banner img {
    display: block;
    width: 100%;
    height: 230px;
    object-fit: cover;
    object-position: center 22%;
}
.portal-banner-text {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 400px;
    background: #003070;
    color: #fff;
    padding: 34px 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
}
.portal-banner-text strong { font-size: 22px; font-weight: 600; letter-spacing: 1px; }
.portal-banner-text span { font-size: 14px; color: #cfdcee; line-height: 1.8; }
.portal-banner-text a { font-size: 14px; color: #fff; border-bottom: 1px solid rgba(255,255,255,.5); align-self: flex-start; }

/* ---------- 三栏 ---------- */
.portal-trio {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
    padding: 6px 0 30px;
    border-bottom: 1px solid #e5e5e5;
}
.portal-trio-col { min-width: 0; }
.portal-trio .portal-list li { padding: 9px 0 9px 14px; }
.portal-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.portal-list li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    justify-content: space-between;
    padding: 9px 0 9px 14px;
    border-bottom: 1px dotted #e5e5e5;
    position: relative;
}
.portal-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1.28em;
    width: 4px;
    height: 4px;
    background: #c9d4e2;
}
.portal-list a {
    color: #333;
    font-size: 15px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    min-width: 0;
}
.portal-list a:hover { color: var(--primary); }
.portal-list .portal-date { font-size: 13px; color: #999; flex-shrink: 0; }

/* ---------- 师资队伍 ---------- */
.portal-teachers { padding: 34px 0 30px; border-bottom: 1px solid #e5e5e5; }
.portal-teacher-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}
.portal-teacher-grid li { border: 1px solid #e5e5e5; background: #fff; }
.portal-teacher-grid img {
    display: block;
    width: 100%;
    height: 252px;
    object-fit: contain;
    object-position: center top;
    background: #fff;
}
.portal-teacher-grid div {
    padding: 12px 14px 14px;
    border-top: 1px solid #f0f0f0;
}
.portal-teacher-grid strong {
    display: block;
    font-size: 16px;
    color: #1a1a1a;
    font-weight: 600;
}
.portal-teacher-grid span {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    color: #888;
}

/* ---------- 校区环境 ---------- */
.portal-campus { padding: 34px 0 30px; border-bottom: 1px solid #e5e5e5; }
.portal-campus-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}
.portal-campus-grid li { position: relative; }
.portal-campus-grid img {
    display: block;
    width: 100%;
    height: 176px;
    object-fit: cover;
}
.portal-campus-grid span {
    display: block;
    padding: 9px 12px;
    background: #f7f8fa;
    border: 1px solid #e5e5e5;
    border-top: 0;
    font-size: 14px;
    color: #555;
}

/* ---------- 响应式 ---------- */
@media (max-width: 1199px) {
    .header-facts { gap: 18px; }
    .header-facts ul { font-size: 12px; }
    .nav-item > a { padding: 0 14px; font-size: 15px; }
    .hero-viewport { height: 360px; }
    .portal-about { grid-template-columns: 300px minmax(0, 1fr); gap: 24px; }
    .portal-about-media img { height: 230px; }
    .portal-news-grid { grid-template-columns: 300px minmax(0, 1fr); gap: 24px; }
    .portal-teacher-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
    .portal-teacher-grid img { height: 180px; }
}

@media (max-width: 1024px) {
    :root { --h-head: 72px; --h-total: 72px; }
    .portal-topbar { display: none; }
    .header-facts { display: none; }
    .hotline-num { font-size: 18px; }
    .portal-about { grid-template-columns: minmax(0, 1fr); }
    .portal-about-media img { height: 240px; }
    .portal-news-grid { grid-template-columns: minmax(0, 1fr); }
    .portal-news-list { grid-template-columns: minmax(0, 1fr); }
    .portal-trio { grid-template-columns: minmax(0, 1fr); gap: 26px; }
    .portal-teacher-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .portal-campus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-banner-text { width: 280px; padding: 22px 20px; }
}

@media (max-width: 767px) {
    :root { --h-head: 60px; --h-total: 60px; }
    .portal-headerbar { height: 60px; gap: 10px; }
    .portal-headerbar .logo { flex: 0 1 auto; min-width: 0; }
    .portal-headerbar .logo img { height: 30px; max-width: 150px; }
    .header-hotline { padding-left: 10px; gap: 6px; flex-shrink: 0; }
    .hotline-num { font-size: 15px; white-space: nowrap; letter-spacing: 0; }
    .hotline-label { font-size: 10px; }
    .hotline-icon { width: 18px; height: 18px; }
    .portal-navbar { display: none; }
    .main-nav {
        position: fixed;
        top: 60px;
        left: 0;
        right: 0;
        background: #fff;
        max-height: 0;
        overflow: hidden;
        transition: max-height .3s ease;
        z-index: 1200;
        margin: 0;
    }
    .main-nav.open { max-height: 520px; overflow-y: auto; }
    .nav-list { flex-direction: column; }
    .nav-item > a { line-height: 1.5; padding: 13px 20px; font-size: 15px; color: #333; border-bottom: 1px solid #e5e5e5; }
    .nav-item:hover > a, .nav-item.active > a { background: #f7f8fa; color: var(--primary); }
    .portal-navbar .header-search { display: none; }

    .hero-viewport { height: 200px; }
    .hero-caption { max-width: none; padding: 10px 14px 12px; }
    .hero-caption h2 { font-size: 15px; margin-bottom: 3px; }
    .hero-caption p { font-size: 12px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .hero-arrow { width: 30px; height: 46px; font-size: 14px; }
    .hero-dot { width: 20px; height: 3px; }
    .hero-dots { top: 12px; bottom: auto; right: 12px; }

    .portal-notice { flex-wrap: wrap; gap: 8px; font-size: 14px; padding: 12px 0; }
    .portal-notice-list { flex-direction: column; gap: 6px; flex: 1 0 100%; order: 3; }
    .portal-notice .portal-more { margin-left: auto; }

    .portal-h2 { font-size: 18px; }
    .portal-h3 { font-size: 16px; }
    .portal-about { padding: 24px 0 22px; gap: 18px; }
    .portal-about-media img { height: 200px; }
    .portal-about-body p { font-size: 14px; line-height: 1.9; }
    .portal-news { padding: 24px 0 22px; }
    .portal-news-lead-img img { height: 180px; }
    .portal-news-list a { font-size: 14px; }
    .portal-banner { margin: 22px 0; }
    .portal-banner img { height: 190px; object-position: center 25%; }
    .portal-banner-text { position: static; width: auto; padding: 14px 16px; }
    .portal-banner-text strong { font-size: 17px; }
    .portal-banner-text span { font-size: 13px; }
    .portal-teacher-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .portal-teacher-grid img { height: 150px; }
    .portal-teacher-grid div { padding: 8px 10px 10px; }
    .portal-teacher-grid strong { font-size: 14px; }
    .portal-teacher-grid span { font-size: 12px; }
    .portal-campus { padding: 24px 0 22px; }
    .portal-campus-grid { gap: 12px; }
    .portal-campus-grid img { height: 120px; }
    .portal-campus-grid span { font-size: 13px; padding: 7px 10px; }
    .portal-list a { font-size: 14px; }
}


/* ============================================================
   P5-3 · 内页学校化（栏目横幅 + 左侧栏目块 + 公文式详情页）
   ============================================================ */

/* ---------- 栏目横幅 ---------- */
.list-banner {
    position: relative;
    height: 200px;
    overflow: hidden;
    background: var(--primary-deep);
}
.list-banner img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 42%;
}
.list-banner-inner {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
}
.list-banner-title {
    display: inline-block;
    margin: 0;
    padding: 11px 26px;
    background: rgba(0, 48, 112, .88);
    color: #fff;
    font-size: 24px;
    font-weight: 500;
    letter-spacing: 3px;
}

/* ---------- 两栏布局：侧栏在左 ---------- */
.list-layout,
.article-layout {
    display: grid;
    grid-template-columns: 236px minmax(0, 1fr);
    gap: 34px;
    align-items: start;
}
.list-main,
.article-detail { min-width: 0; }
.list-sidebar,
.article-sidebar { order: 0; }

/* ---------- 左侧栏目块 ---------- */
.portal-side { margin-bottom: 26px; }
.portal-side-title {
    margin: 0;
    padding: 11px 16px;
    background: var(--primary);
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 1px;
}
.portal-side-nav,
.portal-side-list {
    list-style: none;
    margin: 0;
    padding: 0;
    background: #f7f8fa;
    border: 1px solid #ececec;
    border-top: 0;
}
.portal-side-nav li,
.portal-side-list li { border-bottom: 1px solid #ececec; }
.portal-side-nav li:last-child,
.portal-side-list li:last-child { border-bottom: 0; }
.portal-side-nav a,
.portal-side-list a {
    display: block;
    padding: 11px 16px;
    font-size: 14px;
    color: #444;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.portal-side-nav a:hover,
.portal-side-list a:hover { background: #fff; color: var(--primary); }
.portal-side-nav li.active a {
    background: #fff;
    color: var(--primary);
    font-weight: 500;
    border-left: 3px solid var(--primary);
    padding-left: 13px;
}

/* ---------- 列表项：紧凑 ---------- */
.article-list { border-top: 0; }
.article-item {
    display: block;
    padding: 17px 0 15px;
    border-bottom: 1px dotted #e0e0e0;
}
.article-item:first-child { padding-top: 4px; }
.article-item-title {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.65;
    margin: 0;
}
.article-item-title a { color: #1a1a1a; }
.article-item-title a:hover { color: var(--primary); }
.article-item-meta {
    margin: 7px 0 6px;
    font-size: 13px;
    color: #999;
}
.article-item-desc {
    margin: 0;
    font-size: 14px;
    line-height: 1.85;
    color: #666;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---------- 详情页：公文式 ---------- */
.article-header {
    text-align: center;
    padding: 2px 0 20px;
    border-bottom: 1px solid #e5e5e5;
    margin-bottom: 24px;
}
.article-title {
    font-size: 25px;
    font-weight: 600;
    line-height: 1.55;
    margin: 0;
}
.article-meta {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 14px;
    font-size: 13px;
    color: #999;
}
.article-lead {
    font-size: 15px;
    line-height: 1.95;
    color: #333;
    background: #f7f8fa;
    border-left: 3px solid var(--primary);
    padding: 14px 20px;
    margin: 0 0 24px;
    text-align: justify;
}
.article-content {
    font-size: 15px;
    line-height: 2.05;
    color: #333;
    text-align: justify;
}
.article-cover { margin: 0 0 22px; }
.article-cover img { display: block; width: 100%; height: auto; }

/* ---------- 响应式 ---------- */
@media (max-width: 1024px) {
    .list-layout,
    .article-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .list-sidebar,
    .article-sidebar { order: 2; }
    .portal-side-nav,
    .portal-side-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-side-nav li,
    .portal-side-list li { border-right: 1px solid #ececec; }
}

@media (max-width: 767px) {
    .list-banner { height: 130px; }
    .list-banner-title { font-size: 18px; padding: 8px 18px; letter-spacing: 2px; }
    .breadcrumb { padding: 12px 0; font-size: 13px; }
    .article-item { padding: 14px 0 12px; }
    .article-item-title { font-size: 15px; }
    .article-item-desc { -webkit-line-clamp: 3; }
    .article-header { padding-bottom: 14px; margin-bottom: 16px; }
    .article-title { font-size: 19px; line-height: 1.55; }
    .article-meta { gap: 10px; margin-top: 10px; font-size: 12px; }
    .article-lead { font-size: 14px; padding: 12px 14px; margin-bottom: 16px; }
    .article-content { font-size: 15px; line-height: 1.95; }
    .portal-side { margin-bottom: 16px; }
    .portal-side-title { font-size: 15px; padding: 9px 14px; }
    .portal-side-nav a,
    .portal-side-list a { padding: 9px 12px; font-size: 13px; }
}

/* ===== P5-5 · PC 右侧悬浮快捷栏 ===== */
.side-rail {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 900;
    display: none;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--border, #e3e8ef);
    border-right: 0;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .06);
}
.side-rail-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 62px;
    height: 62px;
    border-bottom: 1px solid var(--border, #e3e8ef);
    color: #4a5568;
    text-decoration: none;
    transition: background .15s, color .15s;
}
.side-rail-item:last-child { border-bottom: 0; }
.side-rail-item svg { width: 20px; height: 20px; }
.side-rail-item span { font-size: 12px; line-height: 1; }
.side-rail-item:hover { background: var(--primary, #004098); color: #fff; }
@media (min-width: 1024px) {
    .side-rail { display: flex; }
}

/* 页脚简介行高收敛 */
.footer-desc { line-height: 1.9; }

/* ===== P5-6 · 移动端：栏目导航改为横向滑动条 ===== */
@media (max-width: 767px) {
    .list-layout {
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    .list-layout > * { min-width: 0; max-width: 100%; }
    .list-sidebar { order: 0; min-width: 0; }
    .list-sidebar .portal-side { margin: 0; min-width: 0; }
    .list-sidebar .portal-side-nav { width: 100%; max-width: 100%; }
    .list-sidebar .portal-side-title,
    .list-sidebar .portal-side-list { display: none; }
    .list-sidebar .portal-side-nav {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        background: none;
        border: 0;
        padding: 14px 0 16px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .list-sidebar .portal-side-nav::-webkit-scrollbar { display: none; }
    .list-sidebar .portal-side-nav li {
        flex: 0 0 auto;
        border: 1px solid #dde3ec;
        background: #f7f8fa;
    }
    .list-sidebar .portal-side-nav li:last-child { border: 1px solid #dde3ec; }
    .list-sidebar .portal-side-nav a {
        padding: 7px 14px;
        font-size: 13px;
        white-space: nowrap;
    }
    .list-sidebar .portal-side-nav li.active {
        border-color: var(--primary);
        background: var(--primary);
    }
    .list-sidebar .portal-side-nav li.active a {
        background: transparent;
        color: #fff;
        border-left: 0;
        padding-left: 14px;
        font-weight: 400;
    }
}

/* ==================================================================
   P6 · 2026-11-05 修正批
   1) 首屏改为「左图完整呈现 + 右侧深蓝信息板」
   2) 右侧悬浮栏首屏隐藏、滚动后淡入
   3) 移动端底部栏压缩高度
   4) 移动端导航容器放开 + 汉堡交互（配合 foot.html 遮罩脚本）
   ================================================================== */

/* ---------- P6-1 首屏：图文分栏 ---------- */
.portal-hero { background: #003070; }
.hero-viewport {
    height: 420px;
    background: #003070;
    --hero-w: 620px;
    --hero-pad: max(20px, calc((100% - 1200px) / 2 + 20px));
}
.hero-slide {
    display: grid;
    grid-template-columns: var(--hero-w) minmax(0, 1fr);
    padding-left: var(--hero-pad);
    align-items: stretch;
}
.hero-media { height: 420px; overflow: hidden; background: #002a55; }
.hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-side {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 0 56px;
    color: #fff;
}
.hero-kicker {
    display: inline-block;
    align-self: flex-start;
    font-size: 12px;
    letter-spacing: 2px;
    color: #9dbde0;
    margin-bottom: 14px;
    padding-left: 10px;
    border-left: 2px solid #4c86c6;
}
.hero-side h1, .hero-side h2 { font-size: 26px; font-weight: 600; line-height: 1.45; margin: 0 0 12px; color: #fff; letter-spacing: .5px; }
.hero-side p { font-size: 14px; line-height: 1.95; color: #c3d5e8; margin: 0; max-width: 540px; }
.hero-facts { display: flex; gap: 42px; margin-top: 26px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .16); max-width: 540px; }
.hero-facts strong { display: block; font-size: 21px; font-weight: 600; line-height: 1.35; color: #fff; }
.hero-facts span { display: block; font-size: 12px; color: #93b3d4; margin-top: 3px; }
.hero-prev { left: var(--hero-pad); }
.hero-next { left: calc(var(--hero-pad) + var(--hero-w) - 42px); right: auto; }
.hero-dots { right: 48px; bottom: 20px; }

@media (max-width: 1199px) {
    .hero-viewport { height: 380px; --hero-w: 540px; }
    .hero-media { height: 380px; }
    .hero-side { padding: 0 34px; }
    .hero-side h1, .hero-side h2 { font-size: 22px; }
    .hero-facts { gap: 28px; margin-top: 20px; padding-top: 16px; }
}

/* 平板及以下：改为上下结构，图片按原比例居中完整显示 */
@media (max-width: 1023px) {
    .hero-viewport { height: auto; }
    .hero-slide { grid-template-columns: minmax(0, 1fr); padding-left: 0; }
    .hero-media { height: 340px; display: flex; align-items: center; justify-content: center; }
    .hero-media img { width: auto; max-width: 100%; height: 100%; object-fit: contain; }
    .hero-side { padding: 20px 20px 24px; }
    .hero-kicker { margin-bottom: 10px; }
    .hero-side h1, .hero-side h2 { font-size: 19px; margin-bottom: 8px; }
    .hero-side p { font-size: 13px; line-height: 1.85; max-width: none; }
    .hero-facts { gap: 26px; margin-top: 16px; padding-top: 14px; }
    .hero-facts strong { font-size: 17px; }
    .hero-prev { left: 0; }
    .hero-next { left: auto; right: 0; }
    .hero-dots { top: 12px; bottom: auto; right: 14px; }
    .hero-arrow { width: 32px; height: 52px; font-size: 15px; top: 144px; transform: none; }
}

@media (max-width: 767px) {
    .hero-media { height: 190px; }
    .hero-side { padding: 14px 16px 18px; }
    .hero-kicker { font-size: 11px; margin-bottom: 7px; }
    .hero-side h1, .hero-side h2 { font-size: 16px; margin-bottom: 6px; }
    .hero-side p { font-size: 12.5px; line-height: 1.75; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .hero-facts { gap: 22px; margin-top: 11px; padding-top: 10px; }
    .hero-facts strong { font-size: 15px; }
    .hero-facts span { font-size: 11px; }
    .hero-arrow { width: 28px; height: 44px; font-size: 13px; top: 73px; }
    .hero-dot { width: 16px; height: 3px; }
    .hero-dots { gap: 5px; top: 10px; right: 10px; }
}

/* ---------- P6-2 右侧悬浮栏：首屏隐藏，滚动后淡入 ---------- */
.side-rail {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-50%) translateX(100%);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.side-rail.is-on { opacity: 1; visibility: visible; transform: translateY(-50%) translateX(0); }
@media (prefers-reduced-motion: reduce) { .side-rail { transition: none; } }

/* ---------- P6-3 移动端底部栏压缩 ---------- */
@media (max-width: 1024px) {
    body { padding-bottom: 52px; }
    .mobile-bottom-nav { padding: 5px 0 calc(5px + env(safe-area-inset-bottom)); }
    .mobile-nav-item { padding: 1px 0; font-size: 10px; }
    .mobile-nav-icon { width: 20px; height: 20px; margin-bottom: 1px; }
    .back-to-top { bottom: calc(56px + env(safe-area-inset-bottom)); right: 12px; width: 38px; height: 38px; }
}

/* ---------- P6-4 移动端导航：放开容器 + 汉堡交互 ---------- */
.nav-mask {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    top: 60px;
    bottom: 0;
    background: rgba(0, 0, 0, .42);
    z-index: 990;
}
.nav-mask.on { display: block; }
body.nav-lock { overflow: hidden; }

@media (max-width: 767px) {
    .portal-navbar { display: block; background: transparent; }
    .portal-navbar-inner { height: 0; padding: 0; }
    .main-nav {
        top: 60px;
        right: auto;
        width: 82%;
        max-width: 330px;
        height: calc(100vh - 104px);
        max-height: none;
        overflow-y: auto;
        transform: translateX(-100%);
        transition: transform .28s ease;
        box-shadow: 2px 0 14px rgba(0, 0, 0, .14);
        z-index: 1200;
    }
    .main-nav.open { max-height: none; transform: translateX(0); }
    .main-nav .nav-list { padding: 10px 0 56px; }
    .menu-toggle { position: relative; z-index: 1201; }
    .menu-toggle span { transition: transform .22s ease, opacity .18s ease; }
    .menu-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .menu-toggle.active span:nth-child(2) { opacity: 0; }
    .menu-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* ---------- P6-5 校名行：主号 + 监督热线 ---------- */
.hotline-sub { font-size: 11px; color: #8a94a3; letter-spacing: .2px; margin-top: 3px; }
.hotline-sub:hover { color: var(--primary); }
@media (max-width: 767px) { .hotline-sub { display: none; } }

/* ==================== P8：SEO/GEO 结构与常见问题区块（2026-11-06） ==================== */
/* 首屏 H1 与 h2 视觉一致，仅语义层级不同 */
.hero-side h1.hero-title { margin: 0 0 12px; }

/* 列表页「常见问题速览」 */
.faq-block {
    background: #fff;
    border-top: 3px solid #004098;
    border-bottom: 1px solid #e0e5ec;
    padding: 26px 30px 30px;
    margin-bottom: 26px;
}
.faq-block-title {
    font-size: 19px;
    font-weight: 600;
    color: #004098;
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e8ecf2;
}
.faq-list { margin: 0; }
.faq-item { padding: 0 0 16px; margin: 0 0 16px; border-bottom: 1px dashed #e8ecf2; }
.faq-item:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.faq-q {
    font-size: 15px;
    font-weight: 600;
    color: #1a2b3c;
    margin: 0 0 7px;
    line-height: 1.7;
}
.faq-q::before { content: "问"; display: inline-block; width: 20px; height: 20px; line-height: 20px;
    text-align: center; background: #004098; color: #fff; font-size: 12px; margin-right: 8px;
    vertical-align: 1px; }
.faq-a {
    font-size: 14px;
    line-height: 1.95;
    color: #55606e;
    margin: 0 0 0 28px;
}
@media (max-width: 767px) {
    .faq-block { padding: 18px 16px 20px; margin-bottom: 18px; }
    .faq-block-title { font-size: 17px; }
    .faq-q { font-size: 14.5px; }
    .faq-a { font-size: 13.5px; margin-left: 0; }
}

/* 详情页底部「延伸阅读」 */
.article-more { margin-top: 36px; padding-top: 22px; border-top: 1px solid #e5e9ef; }
.article-more-title { font-size: 17px; font-weight: 600; color: #004098; margin: 0 0 14px; }
.article-more-list { list-style: none; margin: 0; padding: 0; }
.article-more-list li { display: flex; justify-content: space-between; align-items: baseline; gap: 14px;
    padding: 9px 0; border-bottom: 1px dashed #eceff4; font-size: 14.5px; line-height: 1.7; }
.article-more-list li:last-child { border-bottom: 0; }
.article-more-list a { color: #3b4654; }
.article-more-list a:hover { color: #004098; }
.article-more-date { color: #9aa4b0; font-size: 12.5px; flex: none; }
@media (max-width: 767px) {
    .article-more { margin-top: 26px; }
    .article-more-list li { font-size: 14px; }
}
