/* ============================================
   全局重置 & 基础
============================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:hidden;scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei','Helvetica Neue',sans-serif;background:#f7f3f0;color:#222;font-size:15px;line-height:1.7;overflow-x:hidden}
a{color:inherit;text-decoration:none}
a:hover{color:#c0392b}
img{max-width:100%;display:block;height:auto}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* ============================================
   配色变量
============================================ */
:root{
  --red:#c0392b;
  --red-dark:#a93226;
  --red-light:#fdf0ef;
  --gold:#e67e22;
  --text:#222;
  --text-mute:#777;
  --border:#e8e0da;
  --bg-page:#f7f3f0;
  --bg-card:#fff;
  --bg-header:#1a0a08;
  --header-h:64px;
  --radius:10px;
  --shadow:0 2px 12px rgba(0,0,0,.08);
  --shadow-hover:0 6px 24px rgba(192,57,43,.15);
  --sidebar-w:300px;
  --gap:28px;
}

/* ============================================
   页面外层
============================================ */
.page-wrap{min-height:calc(100vh - var(--header-h))}
.main-wrap{max-width:1220px;margin:0 auto;padding:22px 16px 40px}

/* ============================================
   顶部 Header
============================================ */
.site-header{background:var(--bg-header);color:#fff;position:sticky;top:0;z-index:900;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.header-inner{max-width:1220px;margin:0 auto;padding:0 16px}
.header-top-bar{display:flex;align-items:center;gap:16px;height:var(--header-h);min-width:0}

/* Logo */
.site-logo{display:flex;align-items:center;gap:8px;flex-shrink:0;text-decoration:none}
.logo-icon{font-size:26px;line-height:1}
.logo-text{font-size:20px;font-weight:800;color:#fff;letter-spacing:.5px;white-space:nowrap;background:linear-gradient(90deg,#fff 60%,#e74c3c);-webkit-background-clip:text;-webkit-text-fill-color:transparent}

/* 搜索框 */
.header-search{flex:1;min-width:0;max-width:420px;margin-left:auto}
.search-form{display:flex;align-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:24px;overflow:hidden;transition:background .2s,border-color .2s}
.search-form:focus-within{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.5)}
.search-input{flex:1;min-width:0;height:38px;background:transparent;border:none;outline:none;padding:0 14px;font-size:14px;color:#fff}
.search-input::placeholder{color:rgba(255,255,255,.5)}
.search-btn{flex-shrink:0;width:40px;height:38px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);transition:color .2s}
.search-btn:hover{color:#fff}
.search-btn svg{pointer-events:none}

/* 汉堡按钮 */
.nav-toggle{display:none;flex-direction:column;gap:5px;padding:6px;border-radius:6px;flex-shrink:0;transition:background .2s}
.nav-toggle:hover{background:rgba(255,255,255,.1)}
.bar{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .3s,opacity .3s}

/* 导航 */
.site-nav{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:0 0 4px;border-top:1px solid rgba(255,255,255,.08)}
.site-nav a{display:inline-block;padding:7px 12px;font-size:14px;color:rgba(255,255,255,.85);border-radius:6px;transition:color .2s,background .2s;white-space:nowrap}
.site-nav a:hover,.site-nav a.active{color:#fff;background:var(--red)}
.site-nav .nav-home{font-weight:600}

/* ============================================
   公告滚动条
============================================ */
.ticker-bar{display:flex;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px;height:40px}
.ticker-label{flex-shrink:0;background:var(--red);color:#fff;font-size:13px;font-weight:700;padding:0 14px;height:100%;display:flex;align-items:center;white-space:nowrap}
.ticker-track{flex:1;min-width:0;overflow:hidden;display:flex;align-items:center;gap:0;padding:0 12px;white-space:nowrap}
.ticker-item{font-size:13px;color:var(--text-mute);margin-right:32px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;max-width:240px;display:inline-block;transition:color .2s}
.ticker-item:hover{color:var(--red)}

/* ============================================
   Banner 区
============================================ */
.banner-section{margin-bottom:32px}
.banner-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--gap);min-width:0}
.banner-main{min-width:0}
.banner-main-link{display:block;border-radius:var(--radius);overflow:hidden;background:var(--bg-card);box-shadow:var(--shadow);transition:box-shadow .3s;text-decoration:none}
.banner-main-link:hover{box-shadow:var(--shadow-hover)}
.banner-main-img-wrap{width:100%;aspect-ratio:16/9;overflow:hidden;background:#f0e8e5}
.banner-main-img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.banner-main-link:hover .banner-main-img{transform:scale(1.03)}
.banner-main-info{padding:18px 20px 20px}
.banner-cat{display:inline-block;background:var(--red);color:#fff;font-size:12px;font-weight:700;padding:2px 10px;border-radius:4px;margin-bottom:8px}
.banner-main-title{font-size:20px;font-weight:800;color:#111;line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;overflow-wrap:anywhere;word-break:break-word}
.banner-main-intro{font-size:14px;color:var(--text-mute);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;word-break:break-word}

/* Banner 侧边 */
.banner-side{min-width:0}
.banner-side-inner{display:flex;flex-direction:column;gap:12px}
.banner-side-item{display:flex;gap:10px;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);padding:10px;transition:box-shadow .3s;text-decoration:none;min-width:0}
.banner-side-item:hover{box-shadow:var(--shadow-hover)}
.banner-side-img-wrap{flex-shrink:0;width:100px;height:68px;overflow:hidden;border-radius:6px;background:#f0e8e5}
.banner-side-img{width:100%;height:100%;object-fit:cover}
.banner-side-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:4px}
.banner-side-title{font-size:13px;font-weight:600;color:#222;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}
.banner-side-date{font-size:12px;color:var(--text-mute)}

/* ============================================
   主体双栏布局
============================================ */
.content-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar-w);gap:var(--gap);align-items:start;min-width:0}
.content-main{min-width:0}
.content-sidebar{min-width:0;display:flex;flex-direction:column;gap:20px}

/* ============================================
   模块通用
============================================ */
.module-section{margin-bottom:32px}
.module-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;border-bottom:2px solid var(--red);padding-bottom:10px}
.module-title{font-size:18px;font-weight:800;color:#111;display:flex;align-items:center;gap:6px}
.title-accent{font-size:18px}
.module-more{font-size:13px;color:var(--red);font-weight:600;flex-shrink:0}
.module-more:hover{text-decoration:underline}

/* ============================================
   卡片网格
============================================ */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;min-width:0}
.news-card{background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .3s,transform .3s;min-width:0}
.news-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}
.card-img-link{display:block;overflow:hidden}
.card-img-wrap{width:100%;aspect-ratio:16/10;overflow:hidden;background:#f0e8e5}
.card-img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.news-card:hover .card-img{transform:scale(1.05)}
.card-body{padding:12px 14px 14px}
.card-cat{display:inline-block;font-size:11px;font-weight:700;color:var(--red);background:var(--red-light);padding:2px 8px;border-radius:4px;margin-bottom:6px;text-decoration:none}
.card-cat:hover{background:var(--red);color:#fff}
.card-title{font-size:14px;font-weight:700;line-height:1.5;margin-bottom:6px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;word-break:break-word}
.card-title a{color:#111}
.card-title a:hover{color:var(--red)}
.card-intro{font-size:13px;color:var(--text-mute);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;overflow-wrap:anywhere;word-break:break-word}
.card-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:#aaa;flex-wrap:wrap}
.card-date,.card-views{white-space:nowrap}

/* ============================================
   推荐阅读列表
============================================ */
.rec-list{display:flex;flex-direction:column;gap:14px}
.rec-item{display:flex;gap:14px;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);padding:12px;transition:box-shadow .3s;min-width:0}
.rec-item:hover{box-shadow:var(--shadow-hover)}
.rec-thumb-link{flex-shrink:0}
.rec-thumb-wrap{width:140px;height:90px;border-radius:7px;overflow:hidden;background:#f0e8e5;flex-shrink:0}
.rec-thumb{width:100%;height:100%;object-fit:cover}
.rec-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;justify-content:center}
.rec-title{font-size:15px;font-weight:700;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}
.rec-title a{color:#111}
.rec-title a:hover{color:var(--red)}
.rec-intro{font-size:13px;color:var(--text-mute);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;word-break:break-word}

/* ============================================
   文章列表（list / search 页）
============================================ */
.list-page-title{font-size:22px;font-weight:800;color:#111;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--red)}
.article-list-wrap{display:flex;flex-direction:column;gap:16px;margin-bottom:28px}
.article-list-item{display:flex;gap:16px;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);padding:14px;transition:box-shadow .3s;min-width:0}
.article-list-item:hover{box-shadow:var(--shadow-hover)}
.ali-thumb-link{flex-shrink:0}
.ali-thumb-wrap{width:200px;height:126px;border-radius:8px;overflow:hidden;background:#f0e8e5;flex-shrink:0}
.ali-thumb{width:100%;height:100%;object-fit:cover}
.ali-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;justify-content:center}
.ali-title{font-size:16px;font-weight:700;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}
.ali-title a{color:#111}
.ali-title a:hover{color:var(--red)}
.ali-intro{font-size:13px;color:var(--text-mute);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;word-break:break-word}

/* ============================================
   文章详情页
============================================ */
.article-detail{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 32px;margin-bottom:28px;min-width:0}
.article-header{margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:16px}
.article-title{font-size:24px;font-weight:900;line-height:1.45;color:#111;margin:10px 0;overflow-wrap:anywhere;word-break:break-word}
.article-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:13px;color:#aaa}
.article-content{font-size:16px;line-height:1.9;color:#333;overflow-wrap:anywhere;word-break:break-word}
.article-content h2,.article-content h3,.article-content h4{margin:24px 0 10px;font-weight:700;color:#111;line-height:1.4}
.article-content h2{font-size:20px}
.article-content h3{font-size:17px}
.article-content p{margin-bottom:14px}
.article-content img{max-width:100%;height:auto;border-radius:8px;margin:14px 0}
.article-content a{color:var(--red);text-decoration:underline}
.article-content blockquote{border-left:4px solid var(--red);padding:10px 16px;background:var(--red-light);border-radius:0 6px 6px 0;margin:14px 0;color:#555;font-style:italic}
.article-content pre{background:#f5f5f5;border-radius:6px;padding:14px;overflow-x:auto;font-size:14px;margin:14px 0}
.article-content code{background:#f5f5f5;padding:2px 6px;border-radius:4px;font-size:13px}
.article-content pre code{padding:0;background:none}
.article-content table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px;display:block;overflow-x:auto;white-space:nowrap}
.article-content th,.article-content td{border:1px solid var(--border);padding:8px 12px}
.article-content th{background:#f7f3f0;font-weight:700}
.article-content ul,.article-content ol{padding-left:22px;margin-bottom:14px}
.article-content li{margin-bottom:6px}
.article-content iframe{max-width:100%;aspect-ratio:16/9;width:100%;height:auto;border:none;border-radius:8px;margin:14px 0}

/* 相关爆料网格 */
.related-section{margin-top:10px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

/* ============================================
   侧栏组件
============================================ */
.sidebar-widget{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;min-width:0}
.widget-header{background:linear-gradient(90deg,var(--red) 0%,var(--red-dark) 100%);padding:10px 16px}
.widget-title{font-size:15px;font-weight:800;color:#fff}

/* 排行榜 */
.rank-list{padding:8px 12px 12px;display:flex;flex-direction:column;gap:8px;counter-reset:rank-counter}
.rank-item{counter-increment:rank-counter;min-width:0}
.rank-link{display:flex;gap:10px;align-items:center;text-decoration:none;padding:6px 4px;border-radius:7px;transition:background .2s;min-width:0}
.rank-link:hover{background:#fdf6f6}
.rank-thumb-wrap{flex-shrink:0;width:68px;height:50px;border-radius:6px;overflow:hidden;background:#f0e8e5;position:relative}
.rank-thumb-wrap::before{content:counter(rank-counter);position:absolute;top:0;left:0;background:var(--red);color:#fff;font-size:11px;font-weight:700;padding:1px 5px;border-radius:0 0 5px 0;line-height:1.6;z-index:1}
.rank-item:nth-child(1) .rank-thumb-wrap::before{background:#c0392b}
.rank-item:nth-child(2) .rank-thumb-wrap::before{background:#e67e22}
.rank-item:nth-child(3) .rank-thumb-wrap::before{background:#f39c12}
.rank-thumb{width:100%;height:100%;object-fit:cover}
.rank-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.rank-title{font-size:13px;font-weight:600;color:#222;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;word-break:break-word;line-height:1.45}
.rank-views{font-size:12px;color:#bbb}

/* 文字列表 */
.side-news-list{padding:8px 12px 12px;display:flex;flex-direction:column;gap:0}
.side-news-item{display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:9px 0;border-bottom:1px dashed #f0e8e5;min-width:0}
.side-news-item:last-child{border-bottom:none}
.side-news-link{display:flex;align-items:baseline;gap:6px;flex:1;min-width:0;text-decoration:none}
.side-news-dot{flex-shrink:0;width:6px;height:6px;background:var(--red);border-radius:50%;margin-top:2px}
.side-news-title{font-size:13px;color:#333;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;transition:color .2s}
.side-news-link:hover .side-news-title{color:var(--red)}
.side-news-date{font-size:11px;color:#bbb;flex-shrink:0;white-space:nowrap}

/* ============================================
   面包屑
============================================ */
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:13px;color:var(--text-mute);margin-bottom:16px;overflow-wrap:anywhere;word-break:break-word}
.breadcrumb a{color:var(--text-mute)}
.breadcrumb a:hover{color:var(--red)}
.bc-sep{color:#ccc;flex-shrink:0}
.bc-current{color:#555;overflow:hidden;text-overflow:ellipsis;max-width:300px;white-space:nowrap}

/* ============================================
   分页
============================================ */
.pagination{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:28px}
.pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:7px;font-size:14px;color:#555;transition:all .2s}
.pagination a:hover,.pagination a.active{background:var(--red);border-color:var(--red);color:#fff}

/* ============================================
   无结果提示
============================================ */
.no-result-tip{display:none;flex-direction:column;align-items:center;gap:12px;padding:48px 16px;text-align:center;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow)}
.no-result-icon{font-size:56px;line-height:1}
.no-result-text{font-size:15px;color:var(--text-mute)}
.btn-home{display:inline-block;padding:9px 24px;background:var(--red);color:#fff;border-radius:8px;font-size:14px;font-weight:600;transition:background .2s}
.btn-home:hover{background:var(--red-dark)}

/* ============================================
   关于页
============================================ */
.about-article{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 32px}
.about-title{font-size:26px;font-weight:900;color:#111;margin-bottom:24px;padding-bottom:14px;border-bottom:2px solid var(--red)}
.about-section{margin-bottom:24px}
.about-sub-title{font-size:17px;font-weight:800;color:#111;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.about-desc{font-size:15px;color:#444;line-height:1.85;margin-bottom:10px;overflow-wrap:anywhere;word-break:break-word}
.about-link{color:var(--red);text-decoration:underline}
.contact-list{display:flex;flex-direction:column;gap:10px;padding-left:0}
.contact-list li{font-size:14px;color:#444;overflow-wrap:anywhere;word-break:break-word}
.contact-label{font-weight:700;color:#111}

/* ============================================
   Footer
============================================ */
.site-footer{background:#1a0a08;color:rgba(255,255,255,.75);margin-top:40px}
.footer-inner{max-width:1220px;margin:0 auto;padding:40px 16px 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:32px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.08)}
.footer-logo-text{font-size:20px;font-weight:800;color:#fff;margin-bottom:10px;background:linear-gradient(90deg,#fff 60%,#e74c3c);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.footer-desc{font-size:13px;line-height:1.7;color:rgba(255,255,255,.55);overflow-wrap:anywhere;word-break:break-word}
.footer-col-title{font-size:14px;font-weight:700;color:#fff;margin-bottom:12px}
.footer-col ul{display:flex;flex-direction:column;gap:8px}
.footer-col ul li{font-size:13px;color:rgba(255,255,255,.6);overflow-wrap:anywhere;word-break:break-word}
.footer-col ul a{color:rgba(255,255,255,.6);transition:color .2s}
.footer-col ul a:hover{color:#fff}
.footer-contact ul li{display:flex;gap:4px;align-items:flex-start}
.footer-bottom{padding:18px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footer-copy{font-size:12px;color:rgba(255,255,255,.4)}
.footer-links-row{display:flex;gap:14px;flex-wrap:wrap}
.footer-links-row a{font-size:12px;color:rgba(255,255,255,.4);transition:color .2s}
.footer-links-row a:hover{color:rgba(255,255,255,.8)}

/* ============================================
   响应式
============================================ */

/* 1280px 以下 侧栏稍窄 */
@media(max-width:1280px){
  :root{--sidebar-w:280px;--gap:22px}
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .related-grid{grid-template-columns:repeat(2,1fr)}
}

/* 1024px 以下 */
@media(max-width:1024px){
  :root{--sidebar-w:260px;--gap:18px}
  .banner-grid{grid-template-columns:1fr 260px}
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .rec-thumb-wrap{width:120px;height:80px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-about{grid-column:1/-1}
  .article-detail{padding:20px 22px}
}

/* 768px 以下 平板 */
@media(max-width:768px){
  :root{--header-h:56px}
  .header-top-bar{gap:10px}
  .logo-text{font-size:17px}
  .header-search{max-width:280px}
  .nav-toggle{display:flex}
  .site-nav{display:none;flex-direction:column;align-items:flex-start;padding:10px 0 16px;gap:4px;border-top:1px solid rgba(255,255,255,.1)}
  .site-nav.open{display:flex}
  .site-nav a{width:100%;border-radius:6px;padding:10px 14px;font-size:15px}
  .banner-grid{grid-template-columns:1fr}
  .banner-side{display:none}
  .content-layout{grid-template-columns:1fr}
  .content-sidebar{display:grid;grid-template-columns:repeat(2,1fr)}
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .related-grid{grid-template-columns:repeat(2,1fr)}
  .ali-thumb-wrap{width:150px;height:100px}
  .footer-grid{grid-template-columns:1fr}
}

/* 480px 以下 */
@media(max-width:480px){
  .main-wrap{padding:14px 10px 28px}
  .header-search{max-width:180px}
  .logo-text{font-size:15px}
  .logo-icon{font-size:20px}
  .banner-main-title{font-size:16px}
  .card-grid{grid-template-columns:1fr}
  .related-grid{grid-template-columns:1fr}
  .content-sidebar{grid-template-columns:1fr}
  .rec-thumb-wrap{width:100px;height:68px}
  .ali-thumb-wrap{width:110px;height:76px}
  .article-detail{padding:16px}
  .article-title{font-size:19px}
  .about-article{padding:18px 14px}
  .about-title{font-size:20px}
  .footer-inner{padding:28px 12px 0}
  .footer-bottom{flex-direction:column;text-align:center}
  .ticker-bar{height:36px}
  .ticker-label{font-size:12px;padding:0 10px}
}

/* 375px 以下 */
@media(max-width:375px){
  .header-search{display:none}
  .banner-main-info{padding:12px 14px 14px}
  .module-title{font-size:15px}
}