/* Banner轮播图 —— 作为 page-hero / hero-banner 的背景层 */
/* 修复浏览器兼容性：background-size从contain改为cover，确保banner填满容器 */
.page-hero{position:relative;overflow:hidden;min-height:200px}
.page-hero .banner-carousel{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;border-radius:0;height:100%}
.hero-banner .banner-carousel{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;border-radius:0 0 16px 16px;height:100%}
.banner-slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat;opacity:0;transition:opacity 0.8s ease;pointer-events:none}
.banner-slide.active{opacity:1;pointer-events:auto}
.banner-slide a{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}
.banner-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;z-index:3}
.banner-dots .banner-dot{margin:0 4px}
.banner-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,0.5);cursor:pointer;transition:all 0.3s;border:2px solid transparent}
.banner-dot.active{background:#fff;border-color:var(--theme-primary, #8B1A2B)}
.banner-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;background:rgba(255,255,255,0.15);color:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:1.2rem;cursor:pointer;transition:background 0.3s}
.banner-arrow:hover{background:rgba(255,255,255,0.35)}
.banner-arrow.prev{left:16px}
.banner-arrow.next{right:16px}
@media(max-width:768px){.page-hero{min-height:200px;height:auto}}
