/* ========================= */
/* CTA                       */
/* ========================= */

.cta {
    background: var(--gradient);
    color: var(--white);
    text-align: left;
    position: relative;
    overflow: hidden;
}

#contact.cta {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

#contact.cta h2,
#contact.cta p {
    color: var(--white);
}

.cta::before {
    content: "";
    position: absolute;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: var(--white-glow-subtle);
    top: -240px;
    right: -120px;
}

.cta::after {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: var(--white-glow-subtle);
    bottom: -220px;
    left: -100px;
}

.cta .container {
    position: relative;
    z-index: 2;
}

.cta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 4rem);
    align-items: center;
}

.cta h2 {
    color: var(--white);
    max-width: 760px;
    margin: 0;
}

.cta p {
    color: var(--text-on-primary-muted);
    max-width: 700px;
    margin: clamp(1rem, 1.8vw, 1.5rem) 0 clamp(1.75rem, 2.8vw, 2.5rem);
}

.cta .btn-primary {
    background: var(--white);
    color: var(--primary);
    box-shadow: none;
}

.cta .btn-primary:hover {
    transform: translateY(-6px) scale(1.03);
}

.cta-image {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.cta-image img {
    max-width: 420px;
    width: 100%;
    height: auto;
    border-radius: 20px;
    object-fit: contain;
    transition: var(--transition);
}

.cta-image img:hover {
    transform: translateY(-4px) scale(1.02);
}

@media (max-width: 900px) {
    .cta-grid {
        grid-template-columns: 1fr;
        gap: clamp(2rem, 3.5vw, 3rem);
    }

    .cta-image {
        justify-content: center;
    }

    .cta-image img {
        max-width: 280px;
    }
}