/* ============================================================
   东营查查网 - PC端样式（固定宽度，非响应式）
   参考：黄岛信息网经典分类信息风格
   ============================================================ */

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font: 14px/1.6 "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
    color: #333;
    background: #f5f6f8;
}

a { color: #1a56b0; text-decoration: none; }
a:hover { color: #f60; text-decoration: underline; }
ul, ol { list-style: none; }
img { border: 0; vertical-align: middle; }

/* 固定宽度容器（PC不响应式） */
.container { width: 1200px; margin: 0 auto; }

.clearfix::after { content: ""; display: block; clear: both; }

/* ---------- 顶部欢迎条 ---------- */
.topbar { background: #fff; border-bottom: 1px solid #eee; }
.topbar-inner { height: 30px; line-height: 30px; font-size: 12px; color: #888; text-align: right; }
.topbar a { color: #666; margin-left: 8px; }
.topbar a.login { color: #1a56b0; font-weight: bold; }
.topbar a.mobile-link { color: #f00; margin-left: 12px; }

/* ---------- 头部（logo + 搜索 + 发布） ---------- */
.header { background: #fff; padding: 12px 0; }
.header-inner { display: flex; align-items: center; }
.logo { display: flex; align-items: center; font-size: 0; }
.logo-img { height: 98px; width: auto; }
.logo-mark {
    width: 44px; height: 44px; background: #e60012; color: #fff;
    font-size: 24px; font-weight: bold; line-height: 44px; text-align: center;
    border-radius: 4px; margin-right: 8px;
}
.logo-text { font-size: 26px; font-weight: bold; color: #222; letter-spacing: 1px; }
.logo-sub { font-size: 12px; color: #e60012; font-weight: bold; margin-left: 12px; line-height: 1.4; }
.logo-sub small { display: block; color: #999; font-weight: normal; }

.header-inbanner { height: 98px; width: auto; margin-left: 16px; flex-shrink: 0; }

.header-search { margin-left: auto; display: flex; align-items: center; }
.search-input {
    width: 320px; height: 36px; border: 1px solid #ccc; padding: 0 10px;
    font-size: 14px; outline: none;
}
.search-input:focus { border-color: #1a8cdb; }
.search-btn {
    width: 64px; height: 36px; border: 1px solid #ccc; background: #f2f2f2;
    cursor: pointer; font-size: 14px; margin-left: -1px;
}
.search-btn:hover { background: #e8e8e8; }
.publish-btn {
    display: inline-block; height: 36px; line-height: 36px; padding: 0 24px;
    background: #ff8000; color: #fff; font-size: 15px; font-weight: bold;
    margin-left: 12px; border-radius: 2px;
}
.publish-btn:hover { background: #e67300; color: #fff; text-decoration: none; }

/* ---------- 主导航（蓝色条） ---------- */
.main-nav { background: #1a8cdb; }
.main-nav-inner { display: flex; }
.main-nav a {
    color: #fff; font-size: 16px; font-weight: bold; padding: 0 28px;
    line-height: 42px; display: block;
}
.main-nav a:hover { background: #1476b5; text-decoration: none; }
.main-nav a.active { background: #ff8000; }
/* 「更多」下拉（交友·活动/本地生活/便民服务） */
.nav-more { position: relative; }
.nav-more-btn {
    color: #fff; font-size: 16px; font-weight: bold; padding: 0 28px;
    line-height: 42px; display: block; cursor: pointer;
}
.nav-more:hover .nav-more-btn, .nav-more-btn.active { background: #1476b5; }
.nav-more-btn.active { background: #ff8000; }
.nav-more-btn .caret {
    display: inline-block; width: 0; height: 0; margin-left: 6px; vertical-align: middle;
    border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid #fff;
}
.nav-more:hover .caret { transform: rotate(180deg); }
.nav-drop {
    display: none; position: absolute; top: 100%; left: 0; min-width: 132px;
    background: #fff; border: 1px solid #e5e5e5; border-top: none;
    box-shadow: 0 3px 8px rgba(0, 0, 0, .12); z-index: 50;
}
.nav-more:hover .nav-drop { display: block; }
.nav-drop a {
    color: #333; font-size: 14px; font-weight: normal; padding: 0 20px; line-height: 38px;
}
.nav-drop a:hover { background: #f2f8fd; color: #1a8cdb; }
.nav-drop a.active { background: #fff; color: #f60; font-weight: bold; }
.nav-drop a.active:hover { background: #f2f8fd; }

/* ---------- 首页 Banner 轮播（数据来自后台「首页Banner」） ---------- */
.home-banner { position: relative; margin: 10px 0; height: 88px; overflow: hidden; border: 1px solid #e5e5e5; background: #fff; }
.home-banner .hb-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .45s ease; }
.home-banner .hb-slide.is-active { opacity: 1; visibility: visible; }
.home-banner .hb-slide a { display: block; height: 100%; }
.home-banner .hb-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.home-banner .hb-dots { position: absolute; right: 14px; bottom: 12px; display: flex; gap: 6px; z-index: 2; }
.home-banner .hb-dots i {
    width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.55);
    cursor: pointer; transition: .2s;
}
.home-banner .hb-dots i.is-active { background: #ff8000; width: 22px; border-radius: 5px; }
/* 无 JS 时只显示第一张，避免多张叠在一起 */
.home-banner:not(.is-ready) .hb-slide { position: static; opacity: 1; visibility: visible; display: none; }
.home-banner:not(.is-ready) .hb-slide:first-child { display: block; }
.home-banner:not(.is-ready) .hb-dots { display: none; }

/* ---------- 区块通用头部 ---------- */
.block { background: #fff; border: 1px solid #e5e5e5; margin-bottom: 12px; }
.block-header {
    background: #ececec; border-left: 4px solid #1a8cdb; padding: 0 10px;
    height: 34px; line-height: 34px; display: flex; align-items: center;
}
.block-header h3 { font-size: 15px; color: #1a8cdb; font-weight: bold; }
.block-header .more { margin-left: auto; font-size: 12px; color: #888; }
.block-header .more a { color: #888; }
.block-body { padding: 10px; }

/* ---------- 首页：分类导航区块（三列等宽网格，参考黄岛信息网） ---------- */
/* 自身带下边距与 .block 间距口径一致（分类区下方直接接其他区块，不能依赖 service-bar 撑开） */
.cat-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 12px; }
/* 同一行的卡片等高，避免高矮不齐留下空白 */
.cat-columns > .block { margin-bottom: 0; }
.cat-card { min-width: 0; }
.cat-card .block-header h3 a { color: inherit; }
.cat-card .block-header .more a:hover { color: #f60; }
/* 卡头按模块配色，一眼区分板块 */
.cat-card.mod-estate .block-header { border-left-color: #3d9b35; }
.cat-card.mod-estate .block-header h3, .cat-card.mod-estate .block-header h3 a { color: #3d9b35; }
.cat-card.mod-job .block-header { border-left-color: #d6319a; }
.cat-card.mod-job .block-header h3, .cat-card.mod-job .block-header h3 a { color: #d6319a; }
.cat-card.mod-secondhand .block-header { border-left-color: #ff8c00; }
.cat-card.mod-secondhand .block-header h3, .cat-card.mod-secondhand .block-header h3 a { color: #ff8c00; }
.cat-card.mod-business .block-header { border-left-color: #1d39c4; }
.cat-card.mod-business .block-header h3, .cat-card.mod-business .block-header h3 a { color: #1d39c4; }
.cat-card.mod-education .block-header { border-left-color: #722ed1; }
.cat-card.mod-education .block-header h3, .cat-card.mod-education .block-header h3 a { color: #722ed1; }
.cat-card.mod-pet_ticket .block-header { border-left-color: #d4380d; }
.cat-card.mod-pet_ticket .block-header h3, .cat-card.mod-pet_ticket .block-header h3 a { color: #d4380d; }
.cat-card.mod-vehicle .block-header { border-left-color: #1a8cdb; }
.cat-card.mod-vehicle .block-header h3, .cat-card.mod-vehicle .block-header h3 a { color: #1a8cdb; }
.cat-card.mod-life_service .block-header { border-left-color: #999933; }
.cat-card.mod-life_service .block-header h3, .cat-card.mod-life_service .block-header h3 a { color: #999933; }
.cat-card.mod-community .block-header { border-left-color: #13c2c2; }
.cat-card.mod-community .block-header h3, .cat-card.mod-community .block-header h3 a { color: #13c2c2; }

.cat-links { display: flex; flex-wrap: wrap; }
.cat-links a {
    flex: 0 0 33.33%; width: 33.33%; padding: 5px 4px; font-size: 13px;
    color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    position: relative;
}
.cat-links a:hover { color: #f60; text-decoration: none; }
.cat-links a.hot { color: #f00; }
.cat-links a.warm { color: #f60; }
.cat-links a.cool { color: #3d9b35; }

/* ---------- 首页：热门搜索 ---------- */
.hot-keywords {
    background: #fff; border: 1px solid #e5e5e5; margin: 12px 0;
    padding: 8px 10px; font-size: 13px; color: #888; display: flex; flex-wrap: wrap; align-items: center;
}
.hot-keywords .label { color: #999; margin-right: 8px; }
.hot-keywords a {
    color: #1a56b0; margin-right: 14px; padding: 1px 0; border-bottom: 1px dashed transparent;
}
.hot-keywords a:hover { color: #f60; border-bottom-color: #f60; text-decoration: none; }

/* ---------- 首页：最新信息区块（所有栏目合并，置顶优先高亮） ---------- */
.top-block .block-body { padding: 6px 10px 12px; }
.top-list { display: flex; flex-wrap: wrap; }
.top-item {
    flex: 0 0 50%; width: 50%; display: flex; align-items: center;
    padding: 6px 8px 6px 0; overflow: hidden;
}
.top-item:nth-child(odd) { padding-right: 20px; }
.top-item:nth-child(even) { padding-left: 20px; }
.mod-tag {
    flex: 0 0 auto; font-size: 12px; color: #fff; padding: 1px 5px;
    border-radius: 2px; margin-right: 8px; line-height: 18px;
}
.mod-tag.estate { background: #3d9b35; }
.mod-tag.job { background: #d6319a; }
.mod-tag.secondhand { background: #ff8c00; }
.mod-tag.business { background: #1d39c4; }
.mod-tag.education { background: #722ed1; }
.mod-tag.pet_ticket { background: #d4380d; }
.mod-tag.vehicle { background: #1a8cdb; }
.mod-tag.life_service { background: #999933; }
.mod-tag.community { background: #13c2c2; }
.mod-tag.new { background: #b5d96a; }
/* 本地生活栏目标签配色（栏目为后台自建，无固定 module 名，按栏目 ID 取色） */
.mod-tag.c0 { background: #3d9b35; }
.mod-tag.c1 { background: #d6319a; }
.mod-tag.c2 { background: #ff8c00; }
.mod-tag.c3 { background: #1a8cdb; }
.mod-tag.c4 { background: #999933; }
.mod-tag.c5 { background: #13c2c2; }
.top-item a.title {
    color: #888; font-size: 14px; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
}
.top-item a.title:hover { color: #f60; }
.top-item .region { color: #999; font-size: 12px; margin-left: 8px; flex: 0 0 auto; }
/* 置顶信息：高亮底色 + 「顶」图标 + 标题加深，与非置顶的淡色标题区分 */
.top-item.is-top { background: #fffdf5; }
.top-item.is-top a.title { color: #d4380d; font-weight: bold; }
.top-item.is-top a.title:hover { color: #f60; }
.top-flag {
    flex: 0 0 auto; display: inline-block; width: 16px; height: 16px; line-height: 16px;
    text-align: center; font-size: 12px; color: #fff; background: #e60012;
    border-radius: 2px; margin-right: 8px;
}

/* ---------- 首页：列表行通用样式（本地生活区块复用） ---------- */
.module-list li {
    display: flex; align-items: center; padding: 5px 0;
    border-bottom: 1px dashed #eee; overflow: hidden;
}
.module-list li:last-child { border-bottom: 0; }
.module-list a.title {
    flex: 1; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.module-list a.title:hover { color: #f60; }
.module-list .date { color: #999; font-size: 12px; margin-left: 10px; flex: 0 0 auto; }

/* ---------- 列表页：子分类导航（网格） ---------- */
.subnav { background: #fff; border: 1px solid #e5e5e5; padding: 8px 10px; margin-bottom: 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 4px; }
.subnav a {
    display: block; padding: 6px 4px; color: #333; font-size: 13px;
    text-align: center; border: 1px solid transparent; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
}
.subnav a:hover, .subnav a.active { color: #f60; border-color: #f60; text-decoration: none; }

/* ---------- 列表页：地区筛选 ---------- */
.filter-bar { background: #fff; border: 1px solid #e5e5e5; padding: 6px 10px; margin-bottom: 10px; font-size: 13px; }
.filter-bar .label { color: #888; margin-right: 8px; }
.filter-bar a { display: inline-block; padding: 2px 10px; margin-right: 4px; color: #333; }
.filter-bar a.active { background: #1a8cdb; color: #fff; border-radius: 2px; }

/* ---------- 列表页：信息列表（双栏编号） ---------- */
.list-wrap { background: #fff; border: 1px solid #e5e5e5; padding: 10px; }
.list-grid { display: flex; flex-wrap: wrap; }
.list-item {
    flex: 0 0 50%; width: 50%; display: flex; align-items: center;
    padding: 7px 8px 7px 0; overflow: hidden;
}
.list-item:nth-child(odd) { padding-right: 20px; }
.list-item:nth-child(even) { padding-left: 20px; }
.list-num {
    flex: 0 0 auto; font-size: 12px; color: #1a8cdb; border: 1px solid #1a8cdb;
    padding: 0 4px; margin-right: 8px; line-height: 18px; border-radius: 2px;
}
.list-item.top .list-num { background: #1a8cdb; color: #fff; }
.list-item a.title {
    flex: 1; color: #1a56b0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.list-item a.title:hover { color: #f60; }
.list-item .date { color: #999; font-size: 12px; margin-left: 10px; flex: 0 0 auto; }

.list-more { text-align: center; padding: 14px 0; }
.list-more a { color: #f00; font-size: 15px; font-weight: bold; }

/* ---------- 分页 ---------- */
.pagination { text-align: center; padding: 14px 0; }
.pagination a, .pagination span {
    display: inline-block; padding: 4px 12px; margin: 0 3px;
    border: 1px solid #ddd; color: #333; background: #fff; font-size: 13px;
}
.pagination a:hover { border-color: #1a8cdb; color: #1a8cdb; text-decoration: none; }
.pagination .current { background: #1a8cdb; color: #fff; border-color: #1a8cdb; }
.pagination .disabled { color: #ccc; }

/* ---------- 详情页 ---------- */
.breadcrumb { font-size: 12px; color: #888; padding: 8px 2px; }
.breadcrumb a { color: #1a56b0; }

.detail-box { background: #fff; border: 1px solid #e5e5e5; padding: 20px 24px; }
.detail-title {
    background: #f2f2f2; padding: 10px 14px; font-size: 20px; color: #f60;
    font-weight: bold; margin-bottom: 8px;
}
.detail-meta { font-size: 12px; color: #999; padding-bottom: 12px; border-bottom: 1px solid #eee; }
.detail-meta span { margin-right: 18px; }

/* 详情页两栏：左主内容 + 右侧卖家卡（顶对齐、随页滚动吸顶） */
.detail-body-wrap { display: flex; gap: 20px; align-items: flex-start; }
.detail-main { flex: 1; min-width: 0; }
.detail-publisher { flex: 0 0 260px; border: 1px solid #eee; border-radius: 8px; background: #fafbfc; padding: 16px; position: sticky; top: 12px; }
.dp-head { display: flex; align-items: center; gap: 12px; }
.dp-avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 1px solid #eee; background: #f0f2f5; flex: 0 0 56px; }
.detail-publisher .dp-id { min-width: 0; }
.detail-publisher .dp-name { display: block; font-size: 15px; font-weight: bold; color: #1a56b0; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dp-badges { margin-top: 6px; display: flex; gap: 6px; flex-wrap: wrap; }
.dp-badge { display: inline-block; padding: 1px 8px; border-radius: 9px; font-size: 12px; line-height: 17px; color: #fff; white-space: nowrap; }
.dp-badge--phone { background: #1a73e8; }
.dp-badge--email { background: #52a356; }
.dp-badge--id { background: #e08a00; }
.dp-badge--company { background: #7b5cd6; }
.dp-meta { list-style: none; margin: 14px 0 0; padding: 14px 0 0; border-top: 1px dashed #e5e5e5; font-size: 13px; color: #666; }
.dp-meta li { margin: 6px 0; }
.detail-publisher .dp-more { display: block; margin-top: 14px; text-align: center; padding: 8px 0; border: 1px solid #1a8cdb; color: #1a8cdb; border-radius: 4px; font-size: 13px; text-decoration: none; }
.detail-publisher .dp-more:hover { background: #1a8cdb; color: #fff; }

.detail-body { padding: 16px 0; font-size: 15px; line-height: 2; color: #333; }
.detail-body img { max-width: 100%; }

/* 来源信息（本地生活等详情页选填字段），长网址折行且仅文本不可点击 */
.detail-source { border-top: 1px solid #eee; padding-top: 12px; font-size: 12px; color: #999; word-break: break-all; }
.detail-source span { margin-right: 18px; }

/* 富文本正文排版（单页 / 本地生活，服务端净化后 |raw 输出） */
.detail-body p { margin: 0 0 12px; }
.detail-body h1, .detail-body h2, .detail-body h3, .detail-body h4 { margin: 18px 0 10px; line-height: 1.5; color: #222; }
.detail-body ul, .detail-body ol { margin: 0 0 12px; padding-left: 24px; }
.detail-body li { margin: 4px 0; }
.detail-body blockquote { margin: 12px 0; padding: 8px 14px; border-left: 3px solid #ddd; color: #666; background: #fafafa; }
/* 内容表格（单页/本地生活/分类详情共用），JS 包一层 .rich-table-wrap 支持窄屏横向滚动 */
.rich-table-wrap { margin: 14px 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e5e6eb; border-radius: 8px; background: #fff; }
.rich-table-wrap::-webkit-scrollbar { height: 8px; }
.rich-table-wrap::-webkit-scrollbar-thumb { background: #cfd4da; border-radius: 4px; }
.rich-table-wrap table { margin: 0; }
.detail-body table { border-collapse: collapse; width: 100%; margin: 14px 0; font-size: 14px; background: #fff; }
.detail-body caption { caption-side: top; text-align: left; font-weight: 600; color: #666; padding: 8px 2px; }
.detail-body th { background: #f2f6fb; color: #1a56b0; font-weight: 600; text-align: left; }
.detail-body th, .detail-body td { border: 1px solid #e6e8eb; padding: 9px 12px; line-height: 1.7; vertical-align: top; }
.detail-body tbody tr:nth-child(even) { background: #fafbfc; }
.detail-body a { color: #1a73e8; text-decoration: none; }
.detail-body img { height: auto; }

/* 自定义字段表格（位于详细描述上方）：左列字段名窄底纹，右列字段值；
   上边距与提示条上方 12px 对称，避免紧贴 .cw-tipbar 或 .detail-meta 分割线 */
.detail-fields { border-collapse: separate; border-spacing: 0; width: 100%; margin: 12px 0 14px; font-size: 14px; background: #fff; border: 1px solid #e6e8eb; border-radius: 8px; overflow: hidden; }
.detail-fields th, .detail-fields td { border-bottom: 1px solid #e6e8eb; padding: 9px 12px; line-height: 1.7; vertical-align: top; text-align: left; word-break: break-word; }
.detail-fields tr:last-child th, .detail-fields tr:last-child td { border-bottom: 0; }
.detail-fields th { width: 120px; background: #f2f6fb; color: #1a56b0; font-weight: 600; white-space: nowrap; border-right: 1px solid #e6e8eb; }
.detail-fields td { color: #333; }
/* 价格类字段行：详情页高亮并置顶（红色加粗，th 浅红底）；单位后缀灰色次要 */
.detail-fields tr.is-price th { background: #fff2f0; color: #c62828; }
.detail-fields tr.is-price td { color: #e53935; font-weight: 700; }
.detail-fields .cf-unit { color: #999; font-weight: normal; margin-left: 4px; }

/* 详情页图片精致网格（3 列统一 4:3 裁切，首图角标「共N张」，hover 微放大） */
.detail-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 12px 0; }
.detail-gallery.is-single { max-width: 420px; }
.dg-item { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; background: #f7f8fa; transition: box-shadow .25s ease; }
.dg-item img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; display: block; transition: transform .25s ease; }
.dg-item:hover { box-shadow: 0 2px 10px rgba(26,140,219,.18); }
.dg-item:hover img { transform: scale(1.04); }
.dg-item.is-first[data-count]::after { content: attr(data-count); position: absolute; right: 6px; bottom: 6px; padding: 2px 8px; border-radius: 999px; background: rgba(0,0,0,.55); color: #fff; font-size: 12px; line-height: 1.6; pointer-events: none; }

/* 详情页图片灯箱（点击看大图） */
.detail-lightbox { position: fixed; inset: 0; z-index: 999; background: rgba(0,0,0,.85); display: none; align-items: center; justify-content: center; padding: 16px; }
.detail-lightbox.is-open { display: flex; }
.detail-lightbox img { max-width: 100%; max-height: 84vh; object-fit: contain; }
.detail-lightbox-close, .detail-lightbox-prev, .detail-lightbox-next { position: absolute; width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; font-size: 22px; line-height: 1; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.detail-lightbox-close:hover, .detail-lightbox-prev:hover, .detail-lightbox-next:hover { background: rgba(255,255,255,.32); }
.detail-lightbox-close { top: 14px; right: 14px; }
.detail-lightbox-prev { left: 10px; top: 50%; transform: translateY(-50%); }
.detail-lightbox-next { right: 10px; top: 50%; transform: translateY(-50%); }
.detail-lightbox-index { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 13px; background: rgba(0,0,0,.4); padding: 3px 10px; border-radius: 999px; }

.detail-contact { padding: 14px 0; border-top: 1px dashed #ddd; font-size: 16px; }
.detail-contact .label { color: #666; }
.detail-contact .phone { font-size: 22px; font-weight: bold; color: #d9001b; letter-spacing: 1px; }
.detail-contact .contact-img { height: 30px; vertical-align: middle; }

/* 已过有效期：联系方式不展示，只给过期提示（有效期机制见 ClassifiedValidityService） */
.detail-expired {
    margin: 12px 0 0; padding: 12px 14px;
    background: #fffaf0; border: 1px solid #ffe0a3; border-left: 3px solid #f60;
    border-radius: 3px; color: #8a5b1a;
}
.detail-expired b { font-size: 15px; color: #c0562a; }
.detail-expired p { margin: 6px 0 4px; font-size: 13px; line-height: 1.8; }
.detail-expired .expired-time { font-size: 12px; color: #a37b4a; }
.detail-expiring { color: #e6a23c; font-weight: bold; }

.detail-actions { padding: 12px 0; border-top: 1px solid #eee; font-size: 13px; }
.detail-actions a { margin-right: 24px; color: #1a56b0; }
/* 收藏态高亮（已收藏） */
.detail-actions a.is-favorited { color: #e6a23c; }

/* ---------- 详情页收藏：轻提示 + 未登录浏览器收藏引导浮层（与 app.js 注入结构共享） ---------- */
.fav-toast {
    position: fixed; left: 50%; bottom: 90px; transform: translateX(-50%) translateY(8px);
    background: rgba(0, 0, 0, .78); color: #fff; font-size: 13px; line-height: 1.6;
    padding: 9px 18px; border-radius: 20px; max-width: 80vw;
    opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 10001;
}
.fav-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }
.fav-tip {
    position: fixed; inset: 0; background: rgba(0, 0, 0, .45);
    display: none; align-items: center; justify-content: center; padding: 16px; z-index: 10002;
}
.fav-tip.is-open { display: flex; }
.fav-tip-card {
    position: relative; width: 380px; max-width: 100%; background: #fff;
    border-radius: 8px; padding: 22px 24px 18px; box-shadow: 0 8px 30px rgba(0, 0, 0, .18);
}
.fav-tip-close {
    position: absolute; top: 6px; right: 10px; border: 0; background: none;
    font-size: 22px; line-height: 1; color: #999; cursor: pointer; padding: 4px;
}
.fav-tip-close:hover { color: #333; }
.fav-tip-title { font-size: 16px; font-weight: 600; color: #1a1a1a; margin-bottom: 10px; }
.fav-tip-body { font-size: 13px; color: #555; line-height: 1.9; }
.fav-tip-body b { color: #1a56b0; }
.fav-tip-actions { margin-top: 14px; text-align: right; }
.fav-tip-login {
    display: inline-block; background: #1a56b0; color: #fff !important;
    font-size: 13px; padding: 7px 18px; border-radius: 4px; transition: background .15s;
}
.fav-tip-login:hover { background: #164a99; }

/* ---------- 详情页举报弹层（与 app.js initReport 共享结构，复用 fav-toast 提示） ---------- */
.detail-report { color: #c0392b; }
.report-modal[hidden] { display: none; }
.report-modal { position: fixed; inset: 0; z-index: 10002; display: flex; align-items: center; justify-content: center; padding: 16px; }
.report-modal__mask { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.report-modal__box {
    position: relative; width: 420px; max-width: 100%; background: #fff;
    border-radius: 8px; padding: 22px 24px 18px; box-shadow: 0 8px 30px rgba(0, 0, 0, .18);
}
.report-modal__title { font-size: 16px; font-weight: 600; color: #1a1a1a; margin: 0 0 6px; }
.report-modal__tip { font-size: 13px; color: #888; margin: 0 0 14px; line-height: 1.7; }
.report-modal__field { margin-bottom: 12px; }
.report-modal__field > label { display: block; font-size: 13px; color: #555; margin-bottom: 5px; }
.report-modal__select, .report-modal__input, .report-modal__textarea {
    width: 100%; box-sizing: border-box; border: 1px solid #ddd; border-radius: 4px;
    padding: 8px 10px; font-size: 14px; color: #333; background: #fff; font-family: inherit;
}
.report-modal__textarea { resize: vertical; min-height: 66px; }
.report-modal__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }
.report-modal__btn {
    border: 1px solid #ddd; background: #fff; color: #555; cursor: pointer;
    font-size: 14px; padding: 8px 18px; border-radius: 4px; transition: all .15s;
}
.report-modal__btn:hover { border-color: #bbb; }
.report-modal__btn--primary { background: #c0392b; border-color: #c0392b; color: #fff; }
.report-modal__btn--primary:hover { background: #a93226; border-color: #a93226; }
.report-modal__btn.is-loading { opacity: .6; pointer-events: none; }

/* ---------- 搜索建议下拉（app.js 动态挂到 body，绝对定位到输入框下方） ---------- */
.search-suggest {
    position: absolute; z-index: 9999; background: #fff; border: 1px solid #e0e0e0;
    border-top: 0; border-radius: 0 0 4px 4px; box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
    max-height: 320px; overflow-y: auto; box-sizing: border-box;
}
.search-suggest__item {
    display: block; padding: 9px 12px; font-size: 14px; color: #333;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: none;
}
.search-suggest__item:hover { background: #f2f6fc; color: #1a56b0; }

/* ---------- 发布人公开页：页头（/user/{id}） ---------- */
.user-hero {
    display: flex; align-items: center; gap: 14px;
    background: #fff; border: 1px solid #e5e5e5; padding: 16px 18px; margin-bottom: 10px;
}
.user-hero-avatar {
    flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #f0f2f5; overflow: hidden;
}
.user-hero-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; background: #f0f2f5; }
.user-hero-info { flex: 1; min-width: 0; }
.user-hero-name { font-size: 18px; font-weight: 600; color: #1a1a1a; line-height: 1.4; }
.user-hero-meta { font-size: 13px; color: #888; margin-top: 4px; }

/* ---------- 内容页警示区块（文案由后台栏目设置/网站设置填写） ---------- */
.cw-tipbar {
    display: flex; align-items: flex-start; gap: 6px; margin: 12px 0 14px;
    background: #fff7e6; border: 1px solid #ffd591; border-radius: 3px; padding: 8px 12px;
    color: #c0562a; font-size: 13px; line-height: 1.8;
}
.cw-tipbar .cw-ico { color: #f60; font-weight: bold; }
/* 短句风险提示：正文/图片下方、联系方式上方的左对齐分隔式提示，沿用页面警示区的琥珀色调（无背景条） */
.cw-slogan {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start;
    gap: 6px 12px; margin: 16px 0 2px;
    font-size: 13px; color: #c0562a; letter-spacing: .5px; line-height: 1.6;
}
.cw-slogan-item { font-weight: 600; white-space: nowrap; }
.cw-slogan-sep { flex: none; width: 4px; height: 4px; border-radius: 50%; background: #f0b26b; }

.cw-notice { margin-top: 16px; background: #fafafa; border: 1px dashed #ddd; border-radius: 3px; padding: 12px 16px; }
.cw-notice h4 { font-size: 13px; color: #666; margin-bottom: 6px; }
.cw-notice ul { list-style: none; padding: 0; }
.cw-notice li { font-size: 12px; color: #888; line-height: 1.9; }
.cw-notice a { color: #888; text-decoration: underline; }

/* ---------- 首页：本地生活三栏区块（左栏图文置顶 + 中/右两栏最新发布） ---------- */
.life-block .block-body { padding: 12px 10px; }
.life-block .empty-tip { color: #bbb; font-size: 12px; padding: 6px 0; }
/* 外层严格三等分：图文 / 文字 / 文字，两栏文字共用一个列头，故由 .life-lists 跨第 2、3 列 */
.life-layout {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px; align-items: start;
}
.life-feature { min-width: 0; grid-column: 1; }
.life-feature h4, .life-lists .ll-title {
    font-size: 14px; font-weight: bold; padding-bottom: 6px; margin-bottom: 4px; border-bottom: 1px solid #eee;
}
.life-feature a.cover { display: block; height: 150px; overflow: hidden; background: #f2f2f2; }
.life-feature a.cover img { width: 100%; height: 150px; object-fit: cover; display: block; }
.life-feature .f-title { display: block; font-size: 15px; font-weight: bold; color: #1a56b0; padding: 8px 0 4px; line-height: 1.5; }
.life-feature .f-title:hover { color: #f60; }
.life-feature .f-title .mod-tag { display: inline-block; vertical-align: 2px; }
.life-feature .f-sum {
    font-size: 12px; color: #888; line-height: 1.8;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.life-feature .f-alt { border-left: 3px solid #1a8cdb; padding-left: 8px; }
.life-feature .f-alt li { font-size: 13px; padding: 5px 0; border-bottom: 1px dashed #eee; }
.life-feature .f-alt li:last-child { border-bottom: 0; }
.life-feature .f-alt a { color: #333; }
.life-feature .f-alt a:hover { color: #f60; }

/* 中/右两栏：跨满剩余两列，内部再等分，保证与左栏同宽（外层列宽 W，跨列宽 2W+gap，内部分列 (2W+gap-gap)/2 = W） */
.life-lists { min-width: 0; grid-column: 2 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.life-lists .ll-title { grid-column: 1 / -1; }
.life-list { min-width: 0; }
.life-list .module-list a.title { font-size: 13px; }
.life-list .module-list .mod-tag {
    max-width: 6em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---------- 侧边栏布局 ---------- */
.layout-2col { display: flex; gap: 12px; align-items: flex-start; }
.layout-2col .col-main { flex: 1; min-width: 0; }
.layout-2col .col-side { flex: 0 0 300px; width: 300px; }

/* ---------- 页脚 ---------- */
.footer { background: #fafbfc; border-top: 1px solid #eee; margin-top: 20px; padding: 18px 0 16px; }
/* 页脚链接区：胶囊式悬停，自动换行居中 */
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 6px; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px dashed #e8e8e8; }
.footer-links a { color: #555; font-size: 13px; line-height: 1.6; padding: 3px 12px; border-radius: 15px; transition: color .2s, background-color .2s; }
.footer-links a:hover { color: #f60; background: #fff3e8; text-decoration: none; }
.footer-info { text-align: center; font-size: 12px; color: #999; line-height: 1.9; }
.footer-info a { color: #999; transition: color .2s; }
.footer-info a:hover { color: #f60; }
/* 备案信息行：ICP 与公安备案（图标 + 备案号）并排，与版权行同为左对齐 */
.footer-beian { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: 4px 16px; }
.footer-beian .beian-item { display: inline-flex; align-items: center; gap: 4px; }
.footer-beian .beian-icon { width: 16px; height: 16px; display: block; }
/* 版权行内的举报邮箱（网站名之后） */
.footer-copyright .footer-report { margin-left: 14px; }

/* ---------- 页脚信息下半区：版权/备案两行 + 品牌标识（优印，本站旗下品牌），组合整体居中 ---------- */
.footer-legal { display: flex; align-items: center; justify-content: center; gap: 28px; text-align: left; }
.footer-legal-text { min-width: 0; }
.footer-brand { flex: none; display: flex; align-items: center; }
.footer-brand-card {
    display: inline-flex; align-items: center; padding: 8px 18px;
    background: #fff; border: 1px solid #edf1f6; border-radius: 10px;
    box-shadow: 0 1px 3px rgba(10, 44, 87, .06);
}
/* CSS 取景框：裁去源图四周多余白边只留「优印」主体，源图不作任何处理 */
.footer-brand-logo { position: relative; width: 82px; height: 38px; overflow: hidden; }
.footer-brand-logo img { position: absolute; left: -17.1%; top: -40.37%; height: 171.12%; width: auto; max-width: none; }

/* ---------- 空状态 ---------- */
.empty { text-align: center; color: #999; padding: 40px 0; font-size: 14px; }

/* 本站代发标签（分类信息列表/详情） */
.proxy-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    font-size: 12px;
    line-height: 1.4;
    color: #fff;
    background: #ff7a00;
    border-radius: 3px;
    vertical-align: middle;
}

/* 信息已过期标签（列表/搜索，过期的沉底展示但不可联系） */
.expired-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    font-size: 12px;
    line-height: 1.4;
    color: #fff;
    background: #b0b3b8;
    border-radius: 3px;
    vertical-align: middle;
}

/* ---------- 友情链接（首页） ---------- */
.friend-links { display: flex; flex-wrap: wrap; padding: 4px 0; }
.friend-links a {
    display: inline-block; padding: 3px 12px 3px 0; font-size: 13px;
    color: #333; white-space: nowrap;
}
.friend-links a:hover { color: #f60; text-decoration: none; }

/* ---------- 公交时刻表 ---------- */
/* 查询面板：胶囊输入框 + 图标 + 清空 + 主色渐变按钮 */
.bus-search-panel {
    margin: 14px 0 16px; padding: 16px 18px 11px;
    background: linear-gradient(180deg, #f2f9ff 0%, #fbfdff 100%);
    border: 1px solid #e2eef8; border-radius: 10px;
}
.bus-search { display: flex; align-items: center; gap: 10px; }
.bus-search-field {
    position: relative; flex: 1; min-width: 0; display: flex; align-items: center;
    height: 44px; background: #fff; border: 1px solid #d9e4ee; border-radius: 22px;
    transition: border-color .2s, box-shadow .2s;
}
.bus-search-field:focus-within { border-color: #1a8cdb; box-shadow: 0 0 0 3px rgba(26, 140, 219, .12); }
.bus-search-icon { flex: none; width: 18px; height: 18px; margin-left: 15px; color: #9db0c2; }
.bus-search-input {
    flex: 1; min-width: 0; height: 100%; padding: 0 38px 0 10px;
    border: 0; background: transparent; outline: none;
    font: 15px/1.6 "Microsoft YaHei", "PingFang SC", Arial, sans-serif; color: #333;
}
.bus-search-input::placeholder { color: #a9b6c4; }
.bus-search-clear {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%;
    background: #cfd8e3; color: #fff; cursor: pointer;
    display: flex; align-items: center; justify-content: center; transition: background .2s;
}
.bus-search-clear:hover { background: #f60; }
.bus-search-clear svg { width: 9px; height: 9px; }
.bus-search-submit {
    flex: none; height: 44px; padding: 0 28px; border: 0; border-radius: 22px; cursor: pointer;
    background: linear-gradient(90deg, #1a8cdb, #37a6e6);
    color: #fff; font-size: 16px; font-weight: bold;
    font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
    letter-spacing: 2px; box-shadow: 0 2px 6px rgba(26, 140, 219, .25); transition: .2s;
}
.bus-search-submit:hover { background: linear-gradient(90deg, #1476b5, #2f9dde); box-shadow: 0 4px 12px rgba(26, 140, 219, .35); }
.bus-search-submit:active { transform: translateY(1px); }
.bus-search-meta {
    display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
    padding-top: 10px; font-size: 12px; color: #8a99a8;
}
.bus-search-meta .bs-result b { color: #f60; font-size: 14px; padding: 0 2px; }
.bus-search-meta .bs-chip {
    display: inline-flex; align-items: center; gap: 2px; padding: 1px 10px;
    background: #fff; border: 1px solid #cfe4f5; border-radius: 12px;
    color: #1a8cdb; font-size: 12px; line-height: 18px; transition: .2s;
}
.bus-search-meta .bs-chip:hover { border-color: #f60; color: #f60; text-decoration: none; }
.bus-search-meta .bs-chip .bs-chip-x { font-size: 14px; line-height: 12px; }
.bus-search-meta .bs-tip { margin-left: auto; }

/* 即时过滤无结果提示 / 通用隐藏工具类 */
.bus-no-match { text-align: center; padding: 30px 0 34px; font-size: 14px; color: #999; }
.bus-no-match p { margin-bottom: 6px; }
.is-hidden { display: none !important; }

.bus-note { font-size: 12px; color: #888; line-height: 1.8; padding: 8px 0; }
.bus-note a { color: #1a8cdb; }

/* 列表：卡片网格 */
.bt-cards { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.bt-card {
    flex: 0 0 calc(33.33% - 8px); box-sizing: border-box;
    display: block; padding: 12px 14px; background: #fff;
    border: 1px solid #e5e5e5; border-radius: 6px;
    color: #333; text-decoration: none; transition: .2s;
}
.bt-card:hover { border-color: #f60; box-shadow: 0 4px 12px rgba(0,0,0,.08); transform: translateY(-1px); color: #333; text-decoration: none; }
.bt-card.is-empty { background: #fafafa; color: #999; }
.bt-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.bt-card-name { font-size: 18px; font-weight: bold; color: #1a8cdb; }
.bt-card:hover .bt-card-name { color: #f60; }
.bt-card-route { font-size: 13px; color: #555; margin-bottom: 4px; line-height: 1.6; word-break: break-all; }
.bt-card-muted { color: #999; }
.bt-card-meta { font-size: 12px; color: #888; }
.bt-card-empty { font-size: 12px; color: #bbb; padding: 6px 0; }
.bt-card-note { font-size: 12px; color: #999; margin-top: 4px; }

/* 票价徽标 */
.bt-price {
    display: inline-block; padding: 1px 8px; font-size: 12px; line-height: 18px;
    background: #f56600; color: #fff; border-radius: 3px; font-weight: normal;
}
.bt-price-lg { padding: 3px 10px; font-size: 14px; line-height: 22px; }

/* 详情页 hero */
.bt-detail .bt-hero { padding: 14px 0 12px; border-bottom: 1px solid #eee; margin-bottom: 12px; }
.bt-hero-name { display: inline-block; font-size: 24px; color: #1a8cdb; margin-right: 10px; vertical-align: middle; }
.bt-hero .bt-price { vertical-align: middle; }
.bt-hero-note { font-size: 13px; color: #777; margin-top: 6px; line-height: 1.6; }
.bt-hero-meta { font-size: 12px; color: #999; margin-top: 4px; }

/* 方向块 */
.bt-direction { background: #fff; border: 1px solid #eee; border-radius: 6px; padding: 12px 14px; margin-top: 12px; }
.bt-direction-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.bt-direction-title { font-size: 16px; color: #333; margin: 0; }
.bt-direction-title .dot { display: inline-block; width: 8px; height: 8px; background: #f60; border-radius: 50%; margin-right: 8px; vertical-align: middle; }
.bt-direction-meta { font-size: 12px; color: #888; }
.bt-summary { margin: 8px 0 4px; }
.bt-next { display: inline-block; padding: 3px 10px; background: #fff4e6; color: #f60; border: 1px solid #ffd8a8; border-radius: 12px; font-size: 12px; }
.bt-next.is-past { background: #f5f5f5; color: #999; border-color: #e0e0e0; }
.bt-times { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.bt-time {
    display: inline-block; width: 46px; height: 26px; line-height: 26px;
    text-align: center; border: 1px solid #ddd; border-radius: 4px;
    font-size: 12px; color: #333; background: #fff; font-family: Consolas, Monaco, monospace;
}
.bt-time.is-past { color: #bbb; background: #f7f7f7; border-color: #eee; }
.bt-time.is-next { background: #f60; color: #fff; border-color: #f60; font-weight: bold; }
.bt-times-empty { color: #bbb; font-size: 12px; padding: 6px 0; }

/* ---------- 分类列表页 & 搜索页：左右两栏布局 ---------- */
.classified-layout { display: flex; gap: 16px; align-items: flex-start; }
.classified-main { flex: 1; min-width: 0; }
/* 侧栏列宽固定 352px（内容 350px + 子块左右各 1px 边框）；min-width:0 关闭 flex 自动最小尺寸，
   使列宽不再被宽广告图撑大（否则 ad1 上传 350px 图会连带把「置顶推广」也撑宽） */
.classified-sidebar { flex: 0 0 352px; min-width: 0; }

/* ---------- 单栏信息列表（CSS Grid 四列对齐） ---------- */
.classified-list { display: grid; grid-template-columns: 1fr 100px 80px 70px; }
.classified-header {
    display: contents;
}
.classified-header > span {
    font-size: 13px; font-weight: bold; color: #888;
    padding: 8px 4px; border-bottom: 2px solid #eee;
}
.classified-item {
    display: contents;
}
.classified-item > div {
    padding: 10px 4px; border-bottom: 1px solid #f0f0f0;
    font-size: 13px; color: #666; display: flex; align-items: center;
}
.classified-item:last-child > div { border-bottom: 0; }
.classified-item.is-top > div { background: #fffdf5; }
.classified-item .item-main { gap: 6px; min-width: 0; }
.classified-item .item-title {
    flex: 1; color: #1a56b0; font-size: 14px; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
}
.classified-item .item-title:hover { color: #f60; }
.classified-item .item-region { color: #666; white-space: nowrap; }
.classified-item .item-validity { color: #888; white-space: nowrap; }
.classified-item .item-time { color: #999; white-space: nowrap; }

/* 置顶标签 */
.top-tag {
    display: inline-block; padding: 1px 6px; font-size: 12px; line-height: 16px;
    color: #fff; background: #e60012; border-radius: 3px; flex: 0 0 auto;
}

/* 置顶信息缩略图（80×60，仅置顶行展示） */
.classified-item .item-thumb { flex: 0 0 auto; line-height: 0; }
.classified-item .item-thumb img {
    display: block; width: 80px; height: 60px;
    object-fit: cover; border: 1px solid #e5e5e5; border-radius: 2px; background: #f7f7f7;
}

/* 置顶行标题区（标题与摘要竖排） */
.classified-item .item-tb { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.classified-item .item-tb-head { display: flex; align-items: center; gap: 6px; min-width: 0; }
/* 标题下方内容摘要（两行截断） */
.classified-item .item-excerpt {
    color: #999; font-size: 12px; line-height: 1.5;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* ---------- 右边栏 ---------- */
.sidebar-block {
    background: #fff; border: 1px solid #e5e5e5; margin-bottom: 12px;
}
.sidebar-block-header {
    padding: 8px 10px; font-size: 14px; font-weight: bold; color: #333;
    border-bottom: 1px solid #eee; background: #fafafa;
}
.sidebar-block-body { padding: 6px 10px; }
.sidebar-top-list { list-style: none !important; padding: 0; margin: 0; }
.sidebar-top-list li { padding: 6px 0; border-bottom: 1px dashed #eee; }
.sidebar-top-list li:last-child { border-bottom: 0; }
.sidebar-hot-list { list-style: none !important; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sidebar-hot-list li { padding: 0; }
.sidebar-hot-list li a {
    display: inline-block; font-size: 13px; color: #555; line-height: 1;
    background: #f5f6f8; border-radius: 3px; padding: 6px 10px; transition: all .15s;
}
.sidebar-hot-list li a:hover { color: #fff; background: #1a56b0; }
.sidebar-top-title {
    display: block; font-size: 13px; color: #333;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sidebar-top-title:hover { color: #f60; }

/* 右边栏小模块标签 */
.mod-tag-sm {
    display: inline-block; padding: 0 4px; font-size: 11px; line-height: 16px;
    color: #fff; background: #1a8cdb; border-radius: 2px; margin-right: 4px;
    vertical-align: 1px;
}

/* 广告位（gg-* 中性类名防广告拦截插件误伤，勿改）
   侧栏 ad1/2/3 统一尺寸：填满侧栏列宽（与「置顶推广」同宽），图片固定 350×168 居中裁剪，
   尺寸由本规则控制（components/ad_slot.html 侧栏位以 fluid 模式不输出内联尺寸） */
.gg-side {
    margin-bottom: 10px; background: #fff;
    border: 1px solid #e5e5e5; overflow: hidden;
}
.gg-side img { display: block; width: 100%; height: 168px; object-fit: cover; }

/* 页脚横幅广告 */
.gg-footer { margin-bottom: 14px; }
.gg-footer img { display: block; margin: 0 auto; max-width: 100%; }

/* ---------- 本地生活：内容区 + 右侧广告 ---------- */
.life-content-layout { display: flex; gap: 16px; align-items: flex-start; }
.life-main { flex: 1; min-width: 0; }
.gg-life-wrap { flex: 0 0 220px; }
.gg-life {
    width: 220px; height: 85px; margin-bottom: 8px;
    border: 1px solid #eee; overflow: hidden; background: #fafafa;
}
.gg-life img { display: block; max-width: 100%; }

/* ---------- 设备版本切换提示条（device-switch.js 注入） ---------- */
.topbar a.device-auto-link { color: #1a8cdb; border-bottom: 1px dashed #bcd9ee; }
.dev-tip {
    position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%);
    z-index: 999; display: flex; align-items: center; gap: 10px;
    max-width: 92vw; padding: 8px 12px; border-radius: 20px;
    background: rgba(0, 0, 0, .78); color: #fff; font-size: 13px;
}
.dev-tip a { color: #ffd45e; text-decoration: none; white-space: nowrap; }
.dev-tip button {
    width: 20px; height: 20px; line-height: 18px; border: 0; background: none;
    color: #fff; font-size: 16px; cursor: pointer;
}

/* ---------- 全站浮动工具栏（回到顶部/到达底部/回到首页/刷新网页，front/layout.html 引入片段） ---------- */
/* 右偏移：视口有余量时贴 1200px 容器右侧留 12px 间隙，不够时退化为贴视口右边 12px */
.float-tools {
    position: fixed; top: 50%; transform: translateY(-50%);
    right: max(12px, calc((100vw - 1200px) / 2 - 60px));
    z-index: 90; display: flex; flex-direction: column; gap: 6px;
    opacity: 0; visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
}
.float-tools.is-visible { opacity: 1; visibility: visible; }
.float-tools .ft-btn {
    width: 48px; height: 48px; padding: 0;
    display: flex; align-items: center; justify-content: center;
    background: #fff; border: 1px solid #e5e5e5; border-radius: 4px;
    color: #1a8cdb; cursor: pointer;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .08);
    transition: background .2s, color .2s, border-color .2s;
}
.float-tools .ft-btn:hover,
.float-tools .ft-btn:focus { background: #1a8cdb; border-color: #1a8cdb; color: #fff; text-decoration: none; }
.float-tools .ft-btn svg { width: 22px; height: 22px; display: block; }

/* ---------- 首页/分类列表页 交易风险提示条（front/index.html、front/classified/list.html 及移动端引入片段） ---------- */
/* 根容器不拦截点击（弹条/标签各自开启 pointer-events） */
.home-notice { position: fixed; left: 0; right: 0; bottom: 0; z-index: 120; pointer-events: none; }
/* 底部弹条：背景充满整个网页，文字居中排布；白底 + 顶部主蓝描边，正文字号/颜色与页脚统一 */
.home-notice .hn-bar {
    pointer-events: auto; position: relative;
    width: 100%; max-width: none; box-sizing: border-box;
    background: #fff; border-top: 3px solid #1a8cdb; border-radius: 0;
    color: #999; font-size: 12px; line-height: 1.9;
    text-align: center;
    padding: 16px 56px;
    min-height: 188px;
    box-shadow: 0 -2px 12px rgba(0, 0, 0, .06);
    opacity: 1; visibility: visible; transform: translateY(0);
    transition: transform .3s ease, opacity .3s ease, visibility .3s;
}
.home-notice .hn-inner { max-width: 1000px; margin: 0 auto; text-align: center; }
.home-notice .hn-head { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 8px; }
.home-notice .hn-ico { flex: none; color: #ff8000; display: inline-flex; }
.home-notice .hn-ico svg { width: 22px; height: 22px; display: block; }
.home-notice .hn-head-t { font-size: 16px; font-weight: bold; color: #1a56b0; letter-spacing: 1px; }
/* 上区块：公益平台 + 风险自负声明（站点蓝、略大、加粗，居中） */
.home-notice .hn-claim { color: #1a56b0; font-size: 13px; font-weight: bold; line-height: 1.9; margin: 0 0 8px; }
/* 下区块：交易/防诈骗细则（沿用页脚灰字 12px、行距 1.9，居中逐行） */
.home-notice .hn-tips p { margin: 0 0 3px; line-height: 1.9; }
/* 收起按钮：主蓝胶囊、居中加大，比右上角 × 更易点按；与 × 同样只折叠回左侧标签 */
.home-notice .hn-dismiss {
    display: inline-block; margin: 12px auto 0; padding: 9px 32px;
    border: 0; border-radius: 999px; background: #1a8cdb; color: #fff;
    font-size: 14px; letter-spacing: 1px; cursor: pointer;
    transition: background .2s, transform .1s;
}
.home-notice .hn-dismiss:hover { background: #1476b5; transform: translateY(-1px); }
.home-notice .hn-dismiss:active { transform: translateY(0); }
.home-notice .hn-close {
    pointer-events: auto; position: absolute; top: 10px; right: 12px;
    width: 26px; height: 26px; line-height: 24px; padding: 0;
    border: 0; background: transparent; color: #999; font-size: 22px;
    cursor: pointer; border-radius: 4px;
}
.home-notice .hn-close:hover { background: #f2f8fd; color: #1a56b0; }
/* 折叠后露出的左侧竖向标签（站点主蓝，与主导航一致） */
.home-notice .hn-tab {
    pointer-events: auto; display: none;
    position: fixed; left: 0; top: 50%; transform: translateY(-50%);
    flex-direction: column; align-items: center; gap: 8px;
    background: #1a8cdb; color: #fff; border: 0; border-radius: 0 6px 6px 0;
    padding: 14px 9px; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
    font-size: 13px;
    transition: background .2s;
}
.home-notice .hn-tab:hover { background: #1476b5; }
.home-notice .hn-tab .hn-tab-ico svg { width: 20px; height: 20px; display: block; }
.home-notice .hn-tab .hn-tab-text { writing-mode: vertical-rl; letter-spacing: 3px; }
/* 折叠态：弹条下滑淡出，左侧标签出现 */
.home-notice.is-collapsed .hn-bar { transform: translateY(120%); opacity: 0; visibility: hidden; }
.home-notice.is-collapsed .hn-tab { display: flex; }

/* ---------- 便民服务频道（/bianmin：专题链接集合 + 电话本） ---------- */
/* 首页入口条（分类区下方） */
.service-bar {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    background: #fff; border: 1px solid #e5e5e5;
    padding: 8px 12px; margin: 10px 0; font-size: 14px;
}
.service-bar .sb-label a {
    display: inline-block; padding: 4px 12px; background: #1a8cdb; color: #fff;
    border-radius: 3px; font-weight: bold;
}
.service-bar .sb-label a:hover { text-decoration: none; opacity: .9; }
.service-bar .sb-links { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.service-bar .sb-links a { color: #333; }
.service-bar .sb-links a:hover { color: #f60; }
.service-bar .sb-tel { color: #f60; font-weight: bold; }

/* 频道头部 */
.service-hero {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    background: linear-gradient(120deg, #1a8cdb, #2fa3e8);
    color: #fff; padding: 18px 20px; margin-bottom: 12px; border-radius: 4px;
}
.service-hero-title { font-size: 22px; font-weight: bold; margin-bottom: 4px; }
.service-hero-desc { font-size: 13px; opacity: .9; }
.service-hero-tel {
    flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
    background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .55);
    color: #fff; padding: 8px 16px; border-radius: 20px; font-size: 14px;
}
.service-hero-tel:hover { text-decoration: none; background: rgba(255, 255, 255, .28); color: #fff; }
.service-hero-tel .tel-icon { font-size: 16px; }
.service-hero-tel .tel-num { font-size: 12px; opacity: .85; }

/* 专题锚点导航（在 .subnav 基础上微调） */
.service-topics { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
.service-topics a.service-topics-tel { color: #f60; font-weight: bold; }

/* 专题区块 */
.service-topic-block {
    background: #fff; border: 1px solid #e5e5e5; margin-bottom: 12px; padding: 14px 16px;
}
.service-topic-head {
    display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
    border-bottom: 1px solid #f0f0f0; padding-bottom: 10px; margin-bottom: 10px;
}
.service-topic-name { font-size: 17px; font-weight: bold; }
.service-topic-name a { color: #1a56b0; }
.service-topic-name a:hover { color: #f60; text-decoration: none; }
.service-topic-desc { font-size: 12px; color: #999; }
.service-topic-total { font-size: 12px; color: #999; }
.service-topic-more { margin-left: auto; font-size: 13px; }
.service-topic-more a { color: #f60; }

/* 链接网格（3 列） */
.service-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 18px; }
.service-link {
    display: block; padding: 7px 2px; border-bottom: 1px dashed #eee;
    color: #333; font-size: 14px; line-height: 1.5;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.service-link:hover { color: #f60; text-decoration: none; }
.service-link .ext { display: inline-block; margin-left: 4px; font-size: 12px; color: #1a8cdb; vertical-align: 1px; }
.service-link-more { color: #f60; font-weight: bold; }

/* 电话本预览块 / 电话本页分组块 */
.service-tel-preview, .service-tel-block {
    background: #fff; border: 1px solid #e5e5e5; padding: 14px 16px; margin-bottom: 12px;
}
.service-tel-head {
    display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
    border-bottom: 1px solid #f0f0f0; padding-bottom: 10px; margin-bottom: 10px;
}
.service-tel-head h3 { font-size: 17px; font-weight: bold; color: #1a56b0; }
.service-tel-head .desc { font-size: 12px; color: #999; }
.service-tel-head .count { font-size: 12px; color: #999; }
.service-tel-all { margin-left: auto; font-size: 13px; color: #f60; }
.service-tel-groups { display: flex; flex-wrap: wrap; gap: 8px; }
.service-tel-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 14px; background: #f7f9fb; border: 1px solid #e5e5e5; border-radius: 16px;
    color: #333; font-size: 13px;
}
.service-tel-chip:hover { border-color: #f60; color: #f60; text-decoration: none; }
.service-tel-chip b { color: #1a8cdb; font-weight: normal; font-size: 12px; }

/* 电话本页：条目卡片网格（3 列） */
.service-tel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.service-tel-card { border: 1px solid #eef1f4; border-radius: 4px; padding: 10px 12px; background: #fcfdfe; }
.service-tel-card .tel-name { font-size: 14px; font-weight: bold; color: #222; margin-bottom: 6px; }
.service-tel-card .tel-phones { margin-bottom: 4px; }
.service-tel-card .tel-phone {
    display: inline-block; margin: 0 8px 4px 0;
    color: #e6442c; font-weight: bold; font-size: 14px; font-family: Consolas, Monaco, monospace;
}
.service-tel-card .tel-phone:hover { text-decoration: underline; }
.service-tel-card .tel-address { font-size: 12px; color: #777; line-height: 1.6; }
.service-tel-card .tel-address .label {
    display: inline-block; background: #f0f4f8; color: #1a8cdb; border-radius: 2px;
    padding: 0 5px; margin-right: 6px; font-size: 11px;
}
.service-tel-card .tel-remark { font-size: 12px; color: #999; margin-top: 4px; line-height: 1.6; }

/* ---------- 详情页分享条 + 微信/海报弹层（components/share_bar.html、share_modals.html + app.js initShareBar） ---------- */
.share-bar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    margin-top: 12px; padding: 10px 0; border-top: 1px solid #eee; font-size: 13px;
}
.share-bar-label { color: #999; margin-right: 4px; }
.share-btn {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 12px; border: 1px solid #e0e0e0; border-radius: 20px;
    color: #555; font-size: 13px; line-height: 1.4; text-decoration: none; transition: all .15s;
}
.share-btn svg { width: 15px; height: 15px; flex: none; }
.share-btn:hover { color: #fff; border-color: transparent; }
.share-btn.is-wechat:hover { background: #2aae67; }
.share-btn.is-weibo:hover { background: #e6162d; }
.share-btn.is-qq:hover { background: #12b7f5; }
.share-btn.is-zhihu:hover { background: #0084ff; }
.share-btn.is-xhs:hover { background: #fe2c55; }
.share-btn.is-poster { color: #1a8cdb; border-color: #1a8cdb; }
.share-btn.is-poster:hover { background: #1a8cdb; }

/* 微信扫码弹窗（层级高于举报弹层 10002） */
.share-wechat-modal[hidden], .share-poster-modal[hidden] { display: none; }
.share-wechat-modal, .share-poster-modal {
    position: fixed; inset: 0; z-index: 10003;
    display: flex; align-items: center; justify-content: center; padding: 16px;
}
.swm-mask, .spm-mask { position: absolute; inset: 0; background: rgba(0, 0, 0, .5); }
.swm-panel {
    position: relative; width: 320px; max-width: 100%; background: #fff;
    border-radius: 8px; padding: 26px 28px 22px; text-align: center;
    box-shadow: 0 8px 30px rgba(0, 0, 0, .18);
}
.swm-title { font-size: 16px; font-weight: 600; color: #1a1a1a; margin: 0 0 14px; }
.swm-qr { width: 220px; height: 220px; display: block; margin: 0 auto; }
.swm-tip { font-size: 13px; color: #888; line-height: 1.8; margin: 12px 0 0; }
.swm-close, .spm-close {
    position: absolute; top: 6px; right: 12px; border: 0; background: none;
    font-size: 24px; color: #aaa; cursor: pointer; line-height: 1; padding: 2px;
}
.swm-close:hover, .spm-close:hover { color: #666; }

/* 海报弹窗：PC 显示下载按钮，隐藏长按提示（mobile.css 反之） */
.spm-panel {
    position: relative; width: 420px; max-width: 100%; max-height: 90vh; overflow-y: auto;
    background: #fff; border-radius: 8px; padding: 22px 24px 20px; text-align: center;
    box-shadow: 0 8px 30px rgba(0, 0, 0, .18); box-sizing: border-box;
}
.spm-title { font-size: 16px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px; }
.spm-body { font-size: 0; }
.spm-loading { font-size: 14px; color: #999; padding: 60px 0; margin: 0; }
.spm-loading[hidden] { display: none; }
.share-poster-img { width: 100%; height: auto; display: block; border: 1px solid #eee; }
.spm-tip { font-size: 13px; color: #888; margin: 10px 0 0; }
.spm-tip.is-mobile { display: none; }
.spm-download {
    display: inline-block; margin-top: 12px; background: #1a8cdb; color: #fff;
    font-size: 14px; padding: 9px 26px; border-radius: 4px; text-decoration: none;
}
.spm-download:hover { background: #157bbf; }
