.cta-image {
    position: relative;
    padding: 55px 0;
}

section:not(.cta-image):has(+ .cta-image) {
    padding-bottom: 15px;
}

.cta-image + section:not(.cta-image) {
    padding-top: 15px;
}

.cta-image--bg-white {
    background: #fff;
}

.cta-image--bg-green {
    background: #F1FCFA;
}

.cta-image--bg-purple {
    background: #F5F4FA;
}

.cta-image--bg-gradient {
    background: linear-gradient(90deg, #FDF7F3 0%, #F1FCFA 100%);
}

.cta-image .top-curve,
.cta-image .bottom-curve {
    z-index: 2;
}

.cta-image__bg {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    object-fit: cover;
}

.cta-image--bg-type-image::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: linear-gradient(
        90deg,
        rgba(0, 128, 127, 0.85) 0%,
        rgba(43, 156, 217, 0.85) 33%,
        rgba(75, 71, 144, 0.85) 66%,
        rgba(238, 102, 24, 0.85) 100%
    );
}

.cta-image__wrapper {
    position: relative;
    z-index: 3;
    max-width: var(--content-max-width);
    margin: 0 auto;
}

.cta-image--bg-type-image .cta-image__wrapper,
.cta-image--bg-type-image .cta-image__wrapper :where(
    h1, h2, h3, h4, h5, h6, .sub-heading, a:not(.btn)
) {
    color: #fff;
}

.cta-image--bg-type-image .cta-image__wrapper .btn-green-hollow {
    color: #fff;
    border-color: #fff;
}

@media (min-width: 375px) and (max-width: 768px) {
    .cta-image {
        padding: calc(55px + (100vw - 375px) * 0.1018) 0;
    }
}

@media (min-width: 768px) and (max-width: 1366px) {
    .cta-image {
        padding: calc(95px + (100vw - 768px) * 0.1756) 0;
    }
}

@media (min-width: 1366px) and (max-width: 1920px) {
    .cta-image {
        padding: 200px 0;
    }
}

@media (min-width: 1920px) {
    .cta-image {
        padding: calc(200px + (100vw - 1920px) * 0.05) 0;
    }
}

@media (min-width: 1200px) {
    section:not(.cta-image):has(+ .cta-image) {
        padding-bottom: 50px;
    }

    .cta-image + section:not(.cta-image) {
        padding-top: 50px;
    }
}
