/* ============ 首页样式 ============ */

/* 轮播区 */
.hero {
  display: grid;
  grid-template-columns: 1fr 330px;
  gap: 14px;
  margin-top: 18px;
}

.hero-carousel {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 16/7.2;
  background: #000;
  box-shadow: var(--shadow);
}
@media (max-width: 900px) { .hero-carousel { aspect-ratio: 16/8; } }
.slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s; cursor: pointer; }
.slide.active { opacity: 1; }
.slide img { width: 100%; height: 100%; object-fit: cover; }
.slide .slide-mask {
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 55%;
  background: linear-gradient(transparent, rgba(0,0,0,.75));
}
.slide .slide-info {
  position: absolute; left: 24px; right: 24px; bottom: 20px; color: #fff;
}
.slide .slide-cat {
  display: inline-block; background: var(--pink); color: #fff;
  font-size: 12px; padding: 2px 10px; border-radius: 4px; margin-bottom: 8px;
}
.slide .slide-title { font-size: 24px; font-weight: 700; line-height: 1.35; }
@media (max-width: 600px) { .slide .slide-title { font-size: 17px; } }
.slide .slide-meta { margin-top: 8px; font-size: 13px; color: rgba(255,255,255,.85); display: flex; gap: 14px; }

.hero-dots {
  position: absolute; right: 16px; bottom: 14px;
  display: flex; gap: 6px; z-index: 5;
}
.hero-dots span {
  width: 8px; height: 8px; border-radius: 4px; background: rgba(255,255,255,.4);
  cursor: pointer; transition: all .3s;
}
.hero-dots span.active { background: #fff; width: 20px; }

.hero-side {
  display: flex; flex-direction: column; gap: 12px;
}
.hero-side-card {
  flex: 1;
  position: relative; border-radius: 10px; overflow: hidden;
  cursor: pointer; background: #e8eaec;
  min-height: 0;
}
.hero-side-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.hero-side-card:hover img { transform: scale(1.05); }
.hero-side-card .mask {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.68));
}
.hero-side-card .info {
  position: absolute; left: 12px; right: 12px; bottom: 10px; color: #fff;
}
.hero-side-card .t { font-size: 14px; font-weight: 600; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hero-side-card .m { font-size: 12px; color: rgba(255,255,255,.8); margin-top: 4px; }

/* 公告栏 */
.ann-bar {
  background: linear-gradient(90deg, #fff7e6, #fff);
  border: 1px solid #ffe1a8;
  color: #8a5a00;
  border-radius: 10px;
  padding: 10px 16px;
  margin-top: 14px;
  font-size: 14px;
  display: flex; align-items: center; gap: 8px;
}
.ann-icon { font-size: 16px; }

/* 加载更多 */
.load-more { text-align: center; margin: 30px 0 10px; }
.load-more .btn { width: 260px; height: 38px; }
.loading-tip { text-align: center; color: var(--text-3); padding: 20px; }

/* ============ 移动端适配 ============ */
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero-side { display: none; }
}
@media (max-width: 540px) {
  .hero { margin-top: 12px; gap: 10px; }
  .hero-carousel { aspect-ratio: 16/9; border-radius: 10px; }
  .slide .slide-info { left: 14px; right: 14px; bottom: 14px; }
  .slide .slide-title { font-size: 17px; }
  .slide .slide-meta { font-size: 12px; gap: 10px; }
  .slide .slide-cat { font-size: 11px; padding: 2px 8px; }
  .ann-bar { padding: 8px 12px; font-size: 13px; margin-top: 10px; }
}
@media (max-width: 400px) {
  .slide .slide-title { font-size: 15px; }
  .slide .slide-meta { font-size: 11px; }
  .hero-dots { right: 10px; bottom: 10px; }
}
