.carousel-item {
    transition: transform 0.5s ease;
}

/* 顶部 Banner 文本：根据屏幕宽度自适应字号 */
.carousel-hero-title {
    /* 小屏默认：稍小一些，避免撑满 */
    font-size: clamp(1rem, 4vw, 1.5rem);
    line-height: 1.25;
}

.carousel-hero-text {
    font-size: clamp(0.8rem, 3vw, 1.05rem);
    line-height: 1.6;
}

@media (min-width: 768px) {
    .carousel-hero-title {
        /* 平板及以上再逐步放大 */
        font-size: clamp(1.5rem, 2.5vw, 2rem);
    }

    .carousel-hero-text {
        font-size: clamp(1rem, 1.5vw, 1.15rem);
    }
}

@media (min-width: 1280px) {
    .carousel-hero-title {
        font-size: clamp(2rem, 2vw, 2rem);
    }

    .carousel-hero-text {
        font-size: clamp(1.05rem, 1.6vw, 1.25rem);
    }
}

/* 顶部 Banner 轮播：移动端 3:2 比例，桌面端固定高度 */
.carousel-banner {
    position: relative;
    width: 100%;
    height: 100%;
}

@media (max-width: 767px) {
    .carousel-banner {
        aspect-ratio: 3 / 2;
    }
}

@media (min-width: 768px) {
    .carousel-banner {
        height: 500px;
    }
}

@media (min-width: 1024px) {
    .carousel-banner {
        height: 700px;
    }
}

.carousel-indicator {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.carousel-indicator.bg-opacity-50 {
    background-color: rgba(255, 255, 255, 0.5) !important;
}

.carousel-indicator.bg-opacity-100 {
    background-color: rgba(255, 255, 255, 1) !important;
    transform: scale(1.1);
    /* 如果需要高亮时稍微变大 */
}