/* ==========================================================================
   Component: CTA Banner
   "Услуги издательства" — rounded card with illustration background
   ========================================================================== */

.cta-banner {
    padding: var(--spacing-lg) 0;
    background: var(--color-bg);
}

/* --- Card --- */
.cta-banner__card {
    position: relative;
    border-radius: 16px;
    border: 1px solid var(--color-accent-200);
    overflow: hidden;
    background: var(--color-bg-warm);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 640px;
}

/* --- Background illustration (full card) --- */
.cta-banner__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.cta-banner__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 16px;
}

/* --- Content overlay --- */
.cta-banner__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    max-width: 742px;
    padding: 50px 40px 40px;
    text-align: center;
}

.cta-banner__text {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.cta-banner__label {
    font-family: var(--font-family-serif);
    font-size: var(--font-size-xl);
    font-weight: 500;
    letter-spacing: 3.06px;
    text-transform: uppercase;
    line-height: normal;
    color: var(--color-text);
}

.cta-banner__title {
    font-family: var(--font-family-serif);
    font-size: var(--font-size-4xl);
    font-weight: 500;
    line-height: 56px;
    color: var(--color-text);
}

.cta-banner__desc {
    font-family: var(--font-family);
    font-size: var(--font-size-lg);
    font-weight: 300;
    line-height: 24px;
    color: var(--color-dark-500);
}

.cta-banner__btn {
    padding: 18px 26px;
    font-size: var(--font-size-lg);
    font-weight: 500;
    line-height: 20px;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1024px) {
    .cta-banner__card {
        height: 530px;
    }

    .cta-banner__content {
        padding-top: 48px;
        max-width: 560px;
        gap: 28px;
    }

    .cta-banner__label {
        font-size: var(--font-size-lg);
        letter-spacing: 2.72px;
    }

    .cta-banner__title {
        font-size: 36px;
        line-height: 40px;
    }

    .cta-banner__desc {
        font-size: var(--font-size-base);
        line-height: 20px;
    }
}

@media (max-width: 768px) {
    .cta-banner__card {
        height: 601px;
    }

    .cta-banner__content {
        padding: 48px 16px 40px;
        gap: var(--spacing-lg);
    }

    .cta-banner__label {
        font-size: var(--font-size-lg);
        letter-spacing: 2.72px;
    }

    .cta-banner__title {
        font-size: 36px;
        line-height: 40px;
    }

    .cta-banner__desc {
        font-size: var(--font-size-base);
        line-height: 20px;
    }

    .cta-banner__btn {
        padding: 18px 26px;
        font-size: var(--font-size-lg);
        width: auto;
    }
}

@media (max-width: 480px) {
    .cta-banner__card {
        height: 553px;
    }

    .cta-banner__content {
        padding: 48px 16px 24px;
        gap: 24px;
    }

    .cta-banner__text {
        gap: var(--spacing-md);
    }

    .cta-banner__label {
        font-size: var(--font-size-base);
        letter-spacing: 2.38px;
    }

    .cta-banner__title {
        font-size: 30px;
        line-height: 34px;
    }

    .cta-banner__desc {
        font-size: var(--font-size-sm);
        line-height: 17px;
    }

    .cta-banner__btn {
        padding: 15px 18px;
        font-size: var(--font-size-base);
        width: auto;
    }
}
