/* ============================================================
   郑州晚报 PC 站 · 全新前端视觉设计系统 (zzwb.css)
   设计原则：卡片化、柔和阴影、圆角、清晰信息层级
   主色 #fa0105 / 辅助灰 #f5f7fa / 无衬线系统字体
   依赖：Bootstrap 3（仅栅格与基础重置，来自站点 CDN）
   ============================================================ */

:root {
    --zz-primary: #fa0105;
    --zz-primary-dark: #c80004;
    --zz-primary-soft: #fff1f1;
    --zz-bg: #f5f7fa;
    --zz-card: #ffffff;
    --zz-text: #1f2329;
    --zz-text-2: #646a73;
    --zz-text-3: #8f959e;
    --zz-border: #e5e6eb;
    --zz-border-light: #f0f1f3;
    --zz-radius: 12px;
    --zz-radius-sm: 8px;
    --zz-shadow: 0 2px 12px rgba(31, 35, 41, .06);
    --zz-shadow-hover: 0 10px 28px rgba(31, 35, 41, .12);
    --zz-header-h: 132px;
    --zz-font: system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    font-family: var(--zz-font);
    color: var(--zz-text);
    background: var(--zz-bg);
    font-size: 14px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a { color: var(--zz-text); text-decoration: none; transition: color .18s ease; }
a:hover, a:focus { color: var(--zz-primary); text-decoration: none; }
img { max-width: 100%; }

/* 覆盖 Bootstrap 容器宽度，适配 ≥1280 优化 */
.container { max-width: 1200px; }

/* ===================== 顶部条 (topbar) ===================== */
.zz-topbar {
    background: #fff;
    border-bottom: 1px solid var(--zz-border-light);
    font-size: 12px;
    color: var(--zz-text-2);
}
.zz-topbar .navbar { min-height: 38px; margin-bottom: 0; border: 0; }
.zz-topbar .nav > li > a {
    padding: 9px 12px;
    color: var(--zz-text-2);
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
}
.zz-topbar .nav > li > a:hover { color: var(--zz-primary); background: transparent; }
.zz-topbar .nav > li > a img { width: 15px; height: 15px; object-fit: contain; }
.zz-topbar .dropdown-menu {
    padding: 8px;
    border: 1px solid var(--zz-border);
    border-radius: var(--zz-radius-sm);
    box-shadow: var(--zz-shadow);
    min-width: 120px;
}
.zz-topbar .dropdown-menu img { width: 100%; border-radius: 6px; }
.zz-topbar .weather iframe { border: 0; }

/* ===================== 头部 Logo + 搜索 ===================== */
.zz-header {
    background: #fff;
    box-shadow: 0 1px 0 var(--zz-border-light);
}
.zz-header .container { display: flex; align-items: center; justify-content: space-between; padding: 18px 15px; gap: 24px; }
.zz-logo a { display: inline-flex; align-items: baseline; }
.zz-logo img { height: 52px; width: auto; }
.zz-logo .zz-logo-tag {
    margin-left: 10px;
    font-size: 20px;
    font-weight: 700;
    color: var(--zz-primary);
    letter-spacing: 2px;
}
.zz-header .zz-search { flex: 1; max-width: 420px; }
.zz-search-page { max-width: 640px; margin: 0 auto 18px; padding: 4px; }
.zz-search-page .zz-search { display: flex; width: 100%; max-width: 100%; }
.zz-search-page .zz-search .input-group { width: 100%; }
.zz-search .input-group { width: 100%; }
.zz-search .form-control {
    height: 42px;
    border: 2px solid var(--zz-primary);
    border-right: 0;
    border-radius: var(--zz-radius-sm) 0 0 var(--zz-radius-sm);
    box-shadow: none;
    font-size: 14px;
}
.zz-search .form-control:focus { box-shadow: none; border-color: var(--zz-primary-dark); }
.zz-search .input-group-btn .btn {
    height: 42px;
    min-width: 64px;
    padding: 0 18px;
    border: 2px solid var(--zz-primary);
    background: var(--zz-primary);
    border-radius: 0 var(--zz-radius-sm) var(--zz-radius-sm) 0;
    transition: background .18s ease;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
}
.zz-search .input-group-btn .btn:hover { background: var(--zz-primary-dark); }
.zz-search .input-group-btn .btn img { width: 18px; height: 18px; filter: brightness(0) invert(1); }
.zz-search .input-group-btn .btn .btn-text { color: #fff; font-size: 14px; font-weight: 500; }

/* ===================== 主导航 ===================== */
.zz-nav {
    background: var(--zz-primary);
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 10px rgba(250, 1, 5, .18);
}
.zz-nav .container { display: flex; align-items: stretch; }
.zz-nav .nav { display: flex; flex-wrap: nowrap; }
.zz-nav .nav > li { position: relative; }
.zz-nav .nav > li > a {
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    padding: 0 22px;
    height: 48px;
    display: flex;
    align-items: center;
    transition: background .18s ease;
}
.zz-nav .nav > li > a:hover,
.zz-nav .nav > li.active > a { background: rgba(255, 255, 255, .16); color: #fff; }
.zz-nav .nav > li.active > a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 26px;
    height: 3px;
    background: #fff;
    border-radius: 2px;
}

/* ===================== 卡片 / 区块 ===================== */
.zz-card {
    background: var(--zz-card);
    border: 1px solid var(--zz-border-light);
    border-radius: var(--zz-radius);
    box-shadow: var(--zz-shadow);
    padding: 16px;
    margin-bottom: 20px;
    transition: box-shadow .22s ease, transform .22s ease;
}
.zz-card:hover { box-shadow: var(--zz-shadow-hover); }

.zz-box-title {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 14px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--zz-border-light);
}
.zz-box-title h3 {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
    color: var(--zz-text);
    position: relative;
    padding-left: 12px;
}
.zz-box-title h3::before {
    content: "";
    position: absolute;
    left: 0; top: 50%;
    transform: translateY(-50%);
    width: 4px; height: 18px;
    background: var(--zz-primary);
    border-radius: 2px;
}
.zz-box-title i {
    font-style: normal;
    font-size: 12px;
    color: var(--zz-text-3);
    letter-spacing: 1px;
    text-transform: uppercase;
}
.zz-box-title a.more { margin-left: auto; font-size: 13px; color: var(--zz-text-3); font-weight: 400; }
.zz-box-title a.more:hover { color: var(--zz-primary); }

/* ===================== 新闻列表 (文字型) ===================== */
.zz-news-list { list-style: none; margin: 0; padding: 0; }
.zz-news-list > li { border-bottom: 1px dashed var(--zz-border); }
.zz-news-list > li:last-child { border-bottom: 0; }

.zz-news-item { padding: 12px 2px; transition: background .18s ease; }
.zz-news-item:hover { background: var(--zz-primary-soft); border-radius: var(--zz-radius-sm); }
.zz-news-item a { display: block; }
.zz-news-item .zz-news-title {
    font-size: 16px;
    line-height: 1.5;
    color: var(--zz-text);
    font-weight: 500;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.zz-news-item:hover .zz-news-title { color: var(--zz-primary); }
.zz-news-item .zz-news-meta {
    margin-top: 6px;
    font-size: 12px;
    color: var(--zz-text-3);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
.zz-news-main .zz-news-meta .zz-source,
.zz-news-item .zz-news-meta .zz-source { color: var(--zz-text-2); }
.zz-news-item .zz-news-meta .zz-read { margin-left: auto; }
.zz-news-item .zz-news-meta .zz-tag { margin: 0; }

/* 图文型新闻条目（列表页） */
.zz-news-row { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px dashed var(--zz-border); }
.zz-news-row:last-child { border-bottom: 0; }
.zz-news-thumb {
    flex: 0 0 200px;
    width: 200px; height: 128px;
    border-radius: var(--zz-radius-sm);
    overflow: hidden;
    background: #eceef1;
}
.zz-news-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.zz-news-row:hover .zz-news-thumb img { transform: scale(1.05); }
.zz-news-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.zz-news-main .zz-news-title { font-size: 18px; line-height: 1.4; -webkit-line-clamp: 2; }
.zz-news-main .zz-news-desc { margin-top: 8px; color: var(--zz-text-2); font-size: 13px; -webkit-line-clamp: 2; }
.zz-news-main .zz-news-meta { margin-top: auto; }

/* 标签 */
.zz-tag {
    display: inline-block;
    font-size: 12px;
    line-height: 1;
    padding: 3px 7px;
    border-radius: 4px;
    background: var(--zz-primary-soft);
    color: var(--zz-primary);
    font-weight: 500;
    font-style: normal;
}
.zz-tag.gray { background: #eef0f3; color: var(--zz-text-2); }

/* ===================== 按钮 ===================== */
.zz-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 40px;
    padding: 0 20px;
    border-radius: var(--zz-radius-sm);
    border: 1px solid var(--zz-border);
    background: #fff;
    color: var(--zz-text);
    font-size: 14px;
    cursor: pointer;
    transition: all .18s ease;
}
.zz-btn:hover { border-color: var(--zz-primary); color: var(--zz-primary); }
.zz-btn.primary { background: var(--zz-primary); border-color: var(--zz-primary); color: #fff; }
.zz-btn.primary:hover { background: var(--zz-primary-dark); border-color: var(--zz-primary-dark); color: #fff; }

/* 加载更多 */
.zz-loadmore { text-align: center; padding: 18px 0 4px; }
.zz-loadmore .morenews {
    display: inline-block;
    min-width: 160px;
    cursor: pointer;
    color: var(--zz-text-2);
    border: 1px solid var(--zz-border);
    border-radius: 999px;
    padding: 9px 26px;
    transition: all .18s ease;
    background: #fff;
}
.zz-loadmore .morenews:hover { color: var(--zz-primary); border-color: var(--zz-primary); }
.zz-loadmore .morenews.disabled,
.zz-loadmore .morenews.disabled:hover { color: var(--zz-text-3); border-color: var(--zz-border); cursor: default; }

/* ===================== 侧边栏 ===================== */
.zz-sidebar .zz-side-box { margin-bottom: 20px; }
.zz-sidebar .zz-side-title {
    font-size: 16px;
    font-weight: 700;
    padding-left: 12px;
    position: relative;
    margin: 0 0 12px;
}
.zz-sidebar .zz-side-title::before {
    content: ""; position: absolute; left: 0; top: 2px;
    width: 4px; height: 16px; background: var(--zz-primary); border-radius: 2px;
}
.zz-side-list { list-style: none; margin: 0; padding: 0; }
.zz-side-list > li { padding: 10px 0; border-bottom: 1px dashed var(--zz-border); }
.zz-side-list > li:last-child { border-bottom: 0; }
.zz-side-list > li a { font-size: 14px; color: var(--zz-text); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zz-side-list > li a:hover { color: var(--zz-primary); }
.zz-side-list > li .zz-tag { margin-right: 6px; }
/* 列表项分类前缀：固定宽度，保证有/无分类时标题左边缘对齐 */
.zz-side-list > li a .zz-cate {
    display: inline-block;
    margin-right: 4px;
    color: var(--zz-primary);
    font-weight: 600;
    vertical-align: baseline;
}

/* 右侧广告位占位 */
.zz-ad { margin-bottom: 18px; border-radius: var(--zz-radius-sm); overflow: hidden; background: #eceef1; }
.zz-ad img { width: 100%; display: block; }
.zz-ad .zz-ad-note { font-size: 11px; color: var(--zz-text-3); text-align: center; padding: 2px 0; }

/* ===================== 顶部焦点轮播 (Glide / Swiper) ===================== */
.zz-hero { margin: 20px 0; }
.zz-hero .glide, .zz-hero .swiper-container { border-radius: var(--zz-radius); overflow: hidden; box-shadow: var(--zz-shadow); background: #000; }
.zz-hero .glide__slide a, .zz-hero .swiper-slide a { position: relative; display: block; }
.zz-hero .glide__slide img, .zz-hero .swiper-slide img { width: 100%; height: 380px; object-fit: cover; display: block; }
.zz-hero .glide__slide p, .zz-hero .swiper-slide p {
    position: absolute; left: 0; right: 0; bottom: 0;
    margin: 0; padding: 28px 20px 14px;
    color: #fff; font-size: 17px; font-weight: 600;
    background: linear-gradient(transparent, rgba(0,0,0,.72));
}
.zz-hero .glide__arrows .glide__arrow,
.zz-hero .swiper-button-prev, .zz-hero .swiper-button-next {
    width: 42px; height: 42px; border-radius: 50%;
    background: rgba(0,0,0,.35); color: #fff; border: 0; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 20px;
    transition: background .18s ease;
}
.zz-hero .glide__arrows .glide__arrow:hover,
.zz-hero .swiper-button-prev:hover, .zz-hero .swiper-button-next:hover { background: var(--zz-primary); }

/* 头条文字区 */
.zz-topnews { background: #fff; border-radius: var(--zz-radius); box-shadow: var(--zz-shadow); padding: 16px 20px; margin-bottom: 20px; }
.zz-topnews h2 { font-size: 20px; text-align: center; margin: 0 0 10px; font-weight: 700; }
.zz-topnews h2 a:hover { color: var(--zz-primary); }
.zz-topnews ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 26px; }
.zz-topnews ul li a { font-size: 15px; color: var(--zz-text-2); }
.zz-topnews ul li a:hover { color: var(--zz-primary); }

/* ===================== 文章详情 ===================== */
.zz-article { background: #fff; border-radius: var(--zz-radius); box-shadow: var(--zz-shadow); padding: 28px 32px; margin-bottom: 20px; }
.zz-article-header { border-bottom: 1px solid var(--zz-border-light); padding-bottom: 24px; margin-bottom: 24px; }
.zz-article-header h1 { font-size: 28px; line-height: 1.4; margin: 0 0 18px; font-weight: 700; }
.zz-article-meta { font-size: 13px; color: var(--zz-text-3); display: flex; gap: 18px; flex-wrap: wrap; align-items: center; }
.zz-article-meta .zz-share { margin-left: auto; }
.zz-article-body { font-size: 17px; line-height: 1.9; color: #2b2f36; }
.zz-article-body p { margin: 0 0 18px; }
.zz-article-body img { max-width: 100%; height: auto; border-radius: var(--zz-radius-sm); margin: 8px 0; }
.zz-article-body video.detail-video { width: 100%; border-radius: var(--zz-radius-sm); background: #000; }
.zz-article-foot { margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--zz-border); font-size: 13px; color: var(--zz-text-2); }

/* 相关推荐（图文） */
.zz-relate-item { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--zz-border); }
.zz-relate-item:last-child { border-bottom: 0; }
.zz-relate-item .zz-relate-thumb { flex: 0 0 110px; width: 110px; height: 72px; border-radius: 6px; overflow: hidden; background: #eceef1; }
.zz-relate-item .zz-relate-thumb img { width: 100%; height: 100%; object-fit: cover; }
.zz-relate-item .zz-relate-title { font-size: 14px; line-height: 1.5; color: var(--zz-text); }
.zz-relate-item:hover .zz-relate-title { color: var(--zz-primary); }

/* ===================== 专题 / 直播 / 图集 列表 ===================== */
.zz-media-list { list-style: none; margin: 0; padding: 0; }
.zz-media-item { display: flex; gap: 18px; padding: 16px; background: #fff; border-radius: var(--zz-radius); box-shadow: var(--zz-shadow); margin-bottom: 16px; transition: box-shadow .22s ease, transform .22s ease; }
.zz-media-item:hover { box-shadow: var(--zz-shadow-hover); transform: translateY(-2px); }
.zz-media-thumb { flex: 0 0 280px; width: 280px; height: 176px; border-radius: var(--zz-radius-sm); overflow: hidden; position: relative; background: #eceef1; }
.zz-media-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.zz-media-item:hover .zz-media-thumb img { transform: scale(1.04); }
.zz-media-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.zz-media-body .zz-media-title { font-size: 19px; font-weight: 600; color: var(--zz-text); line-height: 1.4; }
.zz-media-body:hover .zz-media-title { color: var(--zz-primary); }
.zz-media-body .zz-media-desc { margin-top: 10px; color: var(--zz-text-2); font-size: 14px; line-height: 1.7; -webkit-line-clamp: 3; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }
.zz-media-body .zz-media-info { margin-top: auto; font-size: 13px; color: var(--zz-text-3); }
/* notes HTML 字段内若带图片，强制约束避免溢出破坏布局 */
.zz-media-body img,
.zz-media-desc img { max-width: 100%; height: auto; display: block; }

/* 直播状态角标 */
.zz-live-badge {
    position: absolute; left: 10px; bottom: 10px;
    background: var(--zz-primary); color: #fff;
    font-size: 12px; padding: 3px 10px; border-radius: 999px;
    display: inline-flex; align-items: center; gap: 5px;
}
.zz-live-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff; }
.zz-live-badge.soon { background: #ff8a00; }
.zz-live-badge.end { background: #9aa0a6; }

/* 图集网格 */
.zz-atlas-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.zz-atlas-card { background: #fff; border-radius: var(--zz-radius); overflow: hidden; box-shadow: var(--zz-shadow); transition: box-shadow .22s ease, transform .22s ease; }
.zz-atlas-card:hover { box-shadow: var(--zz-shadow-hover); transform: translateY(-2px); }
.zz-atlas-card .zz-atlas-cover { position: relative; height: 170px; overflow: hidden; background: #eceef1; }
.zz-atlas-card .zz-atlas-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.zz-atlas-card:hover .zz-atlas-cover img { transform: scale(1.05); }
.zz-atlas-card .zz-atlas-count {
    position: absolute; right: 8px; bottom: 8px;
    background: rgba(0,0,0,.55); color: #fff; font-size: 12px;
    padding: 2px 8px; border-radius: 999px;
}
.zz-atlas-card .zz-atlas-name { padding: 10px 12px; font-size: 14px; color: var(--zz-text); line-height: 1.4; -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }
.zz-atlas-card:hover .zz-atlas-name { color: var(--zz-primary); }

/* ===================== 专题详情 ===================== */
.zz-special-banner { height: 220px; border-radius: var(--zz-radius); overflow: hidden; background-size: cover; background-position: center; margin: 20px 0; box-shadow: var(--zz-shadow); }
.zz-special-menu { list-style: none; margin: 0; padding: 0; background: #fff; border-radius: var(--zz-radius); box-shadow: var(--zz-shadow); overflow: hidden; }
.zz-special-menu li { border-bottom: 1px solid var(--zz-border-light); }
.zz-special-menu li:last-child { border-bottom: 0; }
.zz-special-menu li a { display: block; padding: 14px 16px; font-size: 15px; color: var(--zz-text); cursor: pointer; transition: all .18s ease; }
.zz-special-menu li a:hover { background: var(--zz-primary-soft); }
.zz-special-menu li a.active { background: var(--zz-primary); color: #fff; font-weight: 600; }
.zz-special-list { background: #fff; border-radius: var(--zz-radius); box-shadow: var(--zz-shadow); padding: 16px 18px; }
.zz-special-title { font-size: 18px; font-weight: 700; margin: 0 0 14px; padding-left: 12px; position: relative; }
.zz-special-title::before { content: ""; position: absolute; left: 0; top: 3px; width: 4px; height: 16px; background: var(--zz-primary); border-radius: 2px; }
.spnews-list > div { display: none; }
.spnews-list > div.show { display: block; }

/* ===================== 图集详情（相册） ===================== */
.zz-atlas-stage { background: #000; border-radius: var(--zz-radius); overflow: hidden; margin-bottom: 20px; }
.zz-atlas-stage .img_ul { list-style: none; margin: 0; padding: 0; }
.zz-atlas-stage .img_ul > li { display: none; }
.zz-atlas-stage .img_ul > li:first-child { display: block; }
.zz-atlas-stage .img_a { display: block; cursor: default; }
.zz-atlas-stage .img_a img { width: 100%; max-height: 620px; object-fit: contain; display: block; margin: 0 auto; background: #000; }
.zz-atlas-info { background: #fff; border-radius: var(--zz-radius); box-shadow: var(--zz-shadow); padding: 18px 22px; margin: -56px 24px 0; position: relative; }
.zz-atlas-info h3 { margin: 0 0 8px; font-size: 18px; }
.zz-atlas-info .zz-atlas-time { color: var(--zz-text-3); font-size: 13px; }
.zz-atlas-info .zz-atlas-desc { margin-top: 8px; color: var(--zz-text-2); }
.zz-atlas-thumbs { display: flex; gap: 10px; overflow-x: auto; padding: 14px 0; }
.zz-atlas-thumbs li { flex: 0 0 auto; width: 120px; height: 80px; border-radius: 6px; overflow: hidden; border: 2px solid transparent; cursor: pointer; }
.zz-atlas-thumbs li.on { border-color: var(--zz-primary); }
.zz-atlas-thumbs li img { width: 100%; height: 100%; object-fit: cover; }
.zz-atlas-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: rgba(0,0,0,.4); color: #fff; border: 0; font-size: 22px; cursor: pointer; }
.zz-atlas-nav.prev_a { left: 16px; }
.zz-atlas-nav.next_a { right: 16px; }

/* ===================== 下载页 ===================== */
.zz-down { background: linear-gradient(135deg, #fff 0%, #fff5f5 100%); min-height: 100vh; }
.zz-down-header { background: #fff; border-bottom: 1px solid var(--zz-border-light); padding: 14px 0; }
.zz-down-header .container { display: flex; align-items: center; justify-content: space-between; }
.zz-down-header .zz-down-logo img { height: 40px; display: block; }
.zz-down-header .home-btn { font-size: 14px; color: var(--zz-text-2); text-decoration: none; }
.zz-down-header .home-btn:hover { color: var(--zz-primary); }
.zz-down .zz-down-wrap { display: flex; align-items: center; justify-content: center; gap: 50px; padding: 70px 0; flex-wrap: wrap; }
.zz-down .zz-down-left { text-align: center; }
.zz-down .zz-down-left h2 { font-size: 34px; margin: 0 0 14px; color: var(--zz-text); }
.zz-down .zz-down-left h2 span { color: var(--zz-primary); }
.zz-down .zz-down-left p { color: var(--zz-text-2); font-size: 16px; margin: 0 0 28px; }
.zz-down .zz-down-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 24px; }
.zz-down .down-app-btn {
    display: inline-flex; align-items: center; gap: 12px;
    padding: 14px 24px; border-radius: var(--zz-radius-sm);
    border: 1.5px solid var(--zz-border); background: #fff;
    text-decoration: none; transition: all .2s ease;
}
.zz-down .down-app-btn:hover { border-color: var(--zz-primary); box-shadow: 0 4px 16px rgba(250,1,5,.12); transform: translateY(-2px); }
.zz-down .down-app-btn .down-app-icon { font-size: 28px; line-height: 1; color: var(--zz-text); }
.zz-down .down-app-btn .down-app-text { text-align: left; }
.zz-down .down-app-btn .down-app-text small { display: block; font-size: 12px; color: var(--zz-text-3); }
.zz-down .down-app-btn .down-app-text strong { display: block; font-size: 16px; color: var(--zz-text); font-weight: 600; }
.zz-down .down-app-btn.ios .down-app-icon { color: #000; }
.zz-down .down-app-btn.android .down-app-icon { color: #3ddc84; }
.zz-down .zz-down-code { text-align: center; }
.zz-down .zz-down-code img { width: 140px; height: 140px; border-radius: var(--zz-radius-sm); border: 1px solid var(--zz-border); }
.zz-down .zz-down-code p { margin: 10px 0 0; font-size: 13px; color: var(--zz-text-3); }

/* ===================== 分享组件 ===================== */
.zz-share { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--zz-text-3); }
.zz-share .zz-share-label { color: var(--zz-text-3); }
.zz-share .zz-share-btn {
    width: 30px; height: 30px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #f0f1f3; color: var(--zz-text-2); font-size: 12px; cursor: pointer;
    transition: all .18s ease;
}
.zz-share .zz-share-btn:hover { background: var(--zz-primary); color: #fff; transform: translateY(-2px); }
.zz-share .zz-share-btn.weibo:hover { background: #e6162d; }
.zz-share .zz-share-btn.wechat:hover { background: #07c160; }
.zz-share .zz-share-btn.qq:hover { background: #12b7f5; }
.zz-share .zz-share-btn.qzone:hover { background: #ffce00; color: #fff; }

/* ===================== 页脚 ===================== */
.zz-footer { background: #2b2f36; color: #c4c8ce; margin-top: 30px; padding: 28px 0; font-size: 13px; }
.zz-footer .zz-footer-links { text-align: center; margin: 0 0 14px; }
.zz-footer .zz-footer-links a { color: #c4c8ce; margin: 0 10px; }
.zz-footer .zz-footer-links a:hover { color: #fff; }
.zz-footer .zz-footer-copy { text-align: center; color: #8b9099; line-height: 1.9; }
.zz-footer .zz-footer-copy a { color: #8b9099; }
.zz-footer .zz-footer-copy a:hover { color: #fff; }
.zz-footer .to-top {
    position: fixed; right: 24px; bottom: 36px;
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--zz-primary); color: #fff; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 20px;
    box-shadow: 0 6px 18px rgba(250,1,5,.35); z-index: 200;
}
.zz-footer .to-top:hover { background: var(--zz-primary-dark); }

/* ===================== 分类新闻栅格（首页） ===================== */
.zz-grid-row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -10px;
}
.zz-grid-col {
    flex: 0 0 33.333%;
    width: 33.333%;
    padding: 0 10px;
    box-sizing: border-box;
    margin-bottom: 20px;
}
.zz-grid-col .zz-card { height: 100%; margin-bottom: 0; }

/* 新闻标题1行截断，保证栅格高度一致对齐 */
.grid-news-title .title,
.zz-grid-col .zz-card .zz-side-list li a {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* ===================== 图集轮播（首页底部） ===================== */
.zz-atlas-carousel {
     border-radius: var(--zz-radius);
    overflow: hidden; 
    padding: 0 15px;
}
.zz-atlas-carousel .glide{
    border-radius: var(--zz-radius);
    background-color: #fff;
}
.zz-atlas-carousel .glide__slide { width: 100%; padding: 0; }
.zz-atlas-row {
    display: flex;
    gap: 12px;
    padding: 14px;
    width: 100%;
    height: 360px;
}
.zz-atlas-main {
    flex: 0 0 66.6%;
    width: 66.6%;
    border-radius: var(--zz-radius-sm);
    overflow: hidden;
    position: relative;
    background: #eceef1;
}
.zz-atlas-main a, .zz-atlas-side-top a, .zz-atlas-side-bottom a {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
}
.zz-atlas-main img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.zz-atlas-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}
.zz-atlas-side-top, .zz-atlas-side-bottom {
    flex: 1;
    border-radius: var(--zz-radius-sm);
    overflow: hidden;
    position: relative;
    background: #eceef1;
    min-height: 0;
}
.zz-atlas-side-top img, .zz-atlas-side-bottom img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.zz-atlas-main p, .zz-atlas-side-top p, .zz-atlas-side-bottom p {
    position: absolute; left: 0; right: 0; bottom: 0;
    margin: 0; padding: 24px 14px 12px;
    color: #fff; font-size: 14px;
    background: linear-gradient(transparent, rgba(0,0,0,.7));
}
.zz-atlas-side-top p, .zz-atlas-side-bottom p { font-size: 12px; padding: 18px 10px 8px; }

.zz-atlas-carousel .glide__arrows .glide__arrow {
    width: 40px; height: 40px; border-radius: 50%;
    background: rgba(0,0,0,.35); color: #fff; border: 0; cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 20px;
    transition: background .18s ease;
}
.zz-atlas-carousel .glide__arrows .glide__arrow:hover { background: var(--zz-primary); }
.zz-atlas-carousel .glide__bullets { bottom: 14px; }
.zz-atlas-carousel .glide__bullet { background: rgba(0,0,0,.3); }
.zz-atlas-carousel .glide__bullet.active { background: var(--zz-primary); }

/* ===================== 通用工具 ===================== */
.zz-section { margin: 22px 0; }
.zz-mb0 { margin-bottom: 0 !important; }

/* 广告位：仅含空 <script> 无实际内容时不占空间（避免行高/margin 产生空白） */
.add-banner { line-height: 0; font-size: 0; margin: 0; }
.add-banner:has(img),
.add-banner:has(a),
.add-banner:has(.zz-ad) {
    line-height: normal;
    font-size: 14px;
    margin: 22px 0;
}
.text-2 { color: var(--zz-text-2); }
/* Bootstrap 工具类兼容 */
.img-responsive { display: block; max-width: 100%; height: auto; }
.list-unstyled { list-style: none; padding-left: 0; }
.list-inline { padding-left: 0; list-style: none; }
.list-inline > li { display: inline-block; }
.pull-right { float: right !important; }
.text-center { text-align: center; }

/* ===================== 响应式 ===================== */
/* ≥1280：最佳体验 */
@media (min-width: 1280px) {
    .container { max-width: 1200px; }
    .zz-hero .glide__slide img, .zz-hero .swiper-slide img { height: 400px; }
}
/* ≥1024：保证布局良好，不出现错乱 */
@media (min-width: 1024px) and (max-width: 1279px) {
    .container { max-width: 1000px; }
    .zz-nav .nav > li > a { padding: 0 16px; font-size: 15px; }
    .zz-news-thumb { flex-basis: 170px; width: 170px; height: 112px; }
    .zz-media-thumb { flex-basis: 240px; width: 240px; height: 150px; }
    .zz-atlas-grid { grid-template-columns: repeat(3, 1fr); }
}
/* 平板/小屏（非重点，保证不错乱） */
@media (max-width: 1023px) {
    .zz-header .container { flex-wrap: wrap; }
    .zz-header .zz-search { max-width: 100%; order: 3; flex-basis: 100%; }
    .zz-atlas-grid { grid-template-columns: repeat(2, 1fr); }
    .zz-news-row { flex-direction: column; }
    .zz-news-thumb { width: 100%; flex-basis: auto; height: 180px; }
    .zz-media-item { flex-direction: column; }
    .zz-media-thumb { width: 100%; flex-basis: auto; height: 200px; }
}
