/* 全站 Banner（题库 / 首页 index2 共用，与 questions.html 一致） */
.qb-banner {
    position: relative;
    min-height: 330px;
    overflow: hidden;
    background:
        radial-gradient(circle at 58% 40%, rgba(205, 238, 216, 0.95) 0%, rgba(236, 248, 240, 0.72) 34%, rgba(236, 248, 240, 0) 57%),
        linear-gradient(180deg, #fbfefb 0%, #eef9f2 58%, #e6f6ec 100%);
}

.qb-banner::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 54px;
    width: 600px;
    height: 280px;
    transform: translateX(-22%);
    border-radius: 50%;
    background: rgba(197, 234, 210, 0.48);
    z-index: 1;
    pointer-events: none;
}

.qb-banner-decor {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.qb-banner-decor::before,
.qb-banner-decor::after {
    content: "";
    position: absolute;
    width: 124px;
    height: 64px;
    opacity: 0.36;
    background-image: radial-gradient(circle, #7abf98 2.6px, transparent 2.6px);
    background-size: 17px 17px;
}

.qb-banner-decor::before {
    left: 0;
    top: 182px;
}

.qb-banner-decor::after {
    right: 56px;
    top: 58px;
}

.qb-banner-wave {
    --wave-height: 130px;
    --wave-bottom: -20px;
    --wave-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath d='M0 80C190 132 338 122 520 76C704 30 872 16 1054 54C1210 86 1324 124 1440 94V180H0Z' fill='%23cbefd8' fill-opacity='.78'/%3E%3C/svg%3E");
    position: absolute;
    left: 0;
    width: 100%;
    height: var(--wave-height);
    bottom: var(--wave-bottom);
    background-image: var(--wave-image);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    z-index: 2;
    pointer-events: none;
}

.qb-banner-wave-light {
    --wave-height: 134px;
    --wave-bottom: -16px;
    --wave-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath d='M0 92C176 48 320 64 492 104C704 154 836 134 1012 86C1192 38 1308 44 1440 86V180H0Z' fill='%23cbefd8' fill-opacity='.72'/%3E%3C/svg%3E");
}

.qb-banner-wave-mid {
    --wave-height: 146px;
    --wave-bottom: -42px;
    --wave-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 190' preserveAspectRatio='none'%3E%3Cpath d='M0 82C168 126 308 138 474 108C682 70 792 22 990 54C1172 84 1300 148 1440 112V190H0Z' fill='%23a5e3bc' fill-opacity='.68'/%3E%3C/svg%3E");
}

.qb-banner-wave-main {
    --wave-height: 162px;
    --wave-bottom: -70px;
    --wave-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 210' preserveAspectRatio='none'%3E%3Cpath d='M0 112C154 88 278 124 446 144C664 170 782 92 976 76C1180 58 1288 128 1440 100V210H0Z' fill='%2370ce90' fill-opacity='.66'/%3E%3C/svg%3E");
}

.qb-banner-hill {
    position: absolute;
    right: -170px;
    bottom: -88px;
    width: 520px;
    height: 220px;
    border-radius: 70% 0 0 0;
    background: radial-gradient(ellipse at 32% 24%, rgba(36, 184, 93, 0.42) 0%, rgba(23, 173, 80, 0.32) 48%, rgba(23, 173, 80, 0) 74%);
    z-index: 2;
    pointer-events: none;
}

.qb-banner-inner {
    position: relative;
    z-index: 8;
    min-height: 330px;
    display: flex;
    align-items: center;
    padding: 24px 0 32px;
    background-image: url("/static/index/images/tikubanner.png");
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: min(500px, 42vw) auto;
}

.qb-banner-content {
    min-width: 0;
    max-width: min(680px, calc(100% - 460px));
    padding-bottom: 0;
}

.qb-banner h1 {
    font-size: clamp(28px, 2.5vw + 1.25rem, 42px);
    line-height: 1.25;
    margin-bottom: 18px;
    letter-spacing: 0;
    max-width: 100%;
    overflow-wrap: break-word;
}

.qb-banner h1 span,
.qb-banner h1 em {
    color: #16a34a;
    font-style: normal;
}

.qb-banner .qb-banner-lead {
    color: #4b5563;
    font-size: 16px;
    max-width: 100%;
    line-height: 1.65;
    overflow-wrap: break-word;
    margin-bottom: 20px;
}

@media (max-width: 980px) {
    .qb-banner {
        display: none;
    }
}
