/* ── bsb-cta ─────────────────────────────────────────────────────────────── */

.bsb-cta-section {
    position:         relative;
    padding:          12rem 0;
    background-color: #f2f2f2;
    overflow:         hidden;
    z-index:          5;
}

.cta-container {
    display:        flex;
    justify-content: flex-start;
    align-items:    center;
}

.bsb-cta-content {
    width:     100%;
    max-width: 1000px;
}

/* ── Heading ──────────────────────────────────────────────────────────────── */

.bsb-cta-heading {
    font-family:    var(--bsb-font-display);
    font-size:      clamp(2rem, 4.5vw, 4.5rem);
    font-weight:    700;
    text-transform: uppercase;
    color:          var(--bsb-color-text);
    margin-bottom:  1.5rem;
    line-height:    1.05;
    letter-spacing: -0.02em;
}

.bsb-cta-heading .bsb-line {
    display:        block;
    overflow:       hidden;
    padding-bottom: 0.1em;
}

/* ── Subtext ──────────────────────────────────────────────────────────────── */

.bsb-cta-subtext {
    font-family:    var(--bsb-font-primary);
    font-size:      clamp(1.1rem, 1.8vw, 1.6rem);
    line-height:    1.5;
    color:          #333;
    margin-bottom:  4rem;
    font-weight:    400;
    max-width:      900px;
    letter-spacing: -0.01em;
}

/* ── Button ───────────────────────────────────────────────────────────────── */

.bsb-cta-btn-wrapper {
    display: block;
}

.bsb-cta-btn {
    gap:            1.5rem;
    padding:        1.25rem 2.5rem;
    border-radius:  60px;
    font-size:      0.95rem;
    font-weight:    700;
    letter-spacing: 0.1em;
}

.bsb-cta-btn svg {
    width:  22px;
    height: 22px;
}

/* ── Animation initial states (frontend only) ─────────────────────────────── */

.bsb-cta-section:not(.bsb-cta-section--preview) .bsb-cta-heading .bsb-line span {
    display:   inline-block;
    transform: translateY(110%);
}

.bsb-cta-section:not(.bsb-cta-section--preview) .bsb-cta-subtext,
.bsb-cta-section:not(.bsb-cta-section--preview) .bsb-cta-btn-wrapper {
    opacity:   0;
    transform: translateY(30px);
}

/* ── Responsive ───────────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
    .bsb-cta-section {
        padding: 8rem 0;
    }

    .bsb-cta-heading {
        margin-bottom: 2.5rem;
    }
}

@media (max-width: 768px) {
    .bsb-cta-section {
        padding: 6rem 0;
    }

    .bsb-cta-heading {
        font-size: clamp(2.2rem, 10vw, 3.5rem);
    }

    .bsb-cta-subtext {
        font-size:     1.1rem;
        margin-bottom: 2.5rem;
    }

    .bsb-cta-btn {
        padding:   1rem 2rem;
        font-size: 0.85rem;
    }
}
