/* ============================================================
   Gradient CTA — style.css
   Prefix: bkbg-gcta-
   ============================================================ */

.bkbg-gcta-wrap {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    padding: var(--bkbg-gcta-pt, 96px) 24px var(--bkbg-gcta-pb, 96px);
    overflow: hidden;
}

/* Pattern overlays */
.bkbg-gcta-pattern {
    pointer-events: none;
    position: absolute;
    inset: 0;
    opacity: .12;
}
.bkbg-gcta-pattern--dots {
    background-image: radial-gradient(circle, rgba(255,255,255,.8) 1px, transparent 1px);
    background-size: 22px 22px;
}
.bkbg-gcta-pattern--grid {
    background-image:
        linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px);
    background-size: 32px 32px;
}
.bkbg-gcta-pattern--noise {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
    background-size: 200px 200px;
    opacity: .06;
}

/* Content */
.bkbg-gcta-inner {
    position: relative;
    z-index: 1;
    max-width: var(--bkbg-gcta-mw, 680px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.bkbg-gcta-align--center .bkbg-gcta-inner { text-align: center; align-items: center; }
.bkbg-gcta-align--left   .bkbg-gcta-inner { text-align: left;   align-items: flex-start; }

/* Badge */
.bkbg-gcta-badge {
    display: inline-block;
    padding: 5px 16px;
    border-radius: 999px;
    font-family: var(--bkbg-gcta-bg-font-family, inherit);
    font-size: var(--bkbg-gcta-bg-font-size-d, 13px);
    font-weight: var(--bkbg-gcta-bg-font-weight, 600);
    font-style: var(--bkbg-gcta-bg-font-style, normal);
    text-decoration: var(--bkbg-gcta-bg-text-decoration, none);
    text-transform: var(--bkbg-gcta-bg-text-transform, none);
    line-height: var(--bkbg-gcta-bg-line-height-d, 1.4);
    letter-spacing: var(--bkbg-gcta-bg-letter-spacing-d, .04em);
    word-spacing: var(--bkbg-gcta-bg-word-spacing-d, normal);
    background: var(--bkbg-gcta-badge-bg, rgba(255,255,255,.18));
    color: var(--bkbg-gcta-badge-c, #fff);
    border: 1px solid rgba(255,255,255,.25);
    backdrop-filter: blur(4px);
}

/* Headline — specificity (0,2,0) beats editor theme h2 rules */
.bkbg-gcta-inner h2.bkbg-gcta-headline {
    margin: 0;
    font-family: var(--bkbg-gcta-hl-font-family, inherit);
    font-size: var(--bkbg-gcta-hl-font-size-d, 46px);
    font-weight: var(--bkbg-gcta-hl-font-weight, 800);
    font-style: var(--bkbg-gcta-hl-font-style, normal);
    text-decoration: var(--bkbg-gcta-hl-text-decoration, none);
    text-transform: var(--bkbg-gcta-hl-text-transform, none);
    line-height: var(--bkbg-gcta-hl-line-height-d, 1.15);
    letter-spacing: var(--bkbg-gcta-hl-letter-spacing-d, -.02em);
    word-spacing: var(--bkbg-gcta-hl-word-spacing-d, normal);
    color: var(--bkbg-gcta-hl-c, #fff);
}

/* Subtitle */
.bkbg-gcta-subtitle {
    margin: 0;
    font-family: var(--bkbg-gcta-sub-font-family, inherit);
    font-size: var(--bkbg-gcta-sub-font-size-d, 18px);
    font-weight: var(--bkbg-gcta-sub-font-weight, 400);
    font-style: var(--bkbg-gcta-sub-font-style, normal);
    text-decoration: var(--bkbg-gcta-sub-text-decoration, none);
    text-transform: var(--bkbg-gcta-sub-text-transform, none);
    line-height: var(--bkbg-gcta-sub-line-height-d, 1.65);
    letter-spacing: var(--bkbg-gcta-sub-letter-spacing-d, normal);
    word-spacing: var(--bkbg-gcta-sub-word-spacing-d, normal);
    color: var(--bkbg-gcta-sub-c, rgba(255,255,255,0.82));
    max-width: 560px;
}

/* Buttons row */
.bkbg-gcta-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}
.bkbg-gcta-align--center .bkbg-gcta-buttons { justify-content: center; }

.bkbg-gcta-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 14px 32px;
    border-radius: var(--bkbg-gcta-r, 50px);
    font-weight: 700;
    font-size: 16px;
    cursor: pointer;
    transition: transform .15s, box-shadow .15s, opacity .15s;
    text-decoration: none;
    white-space: nowrap;
    border: 2px solid transparent;
}
.bkbg-gcta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.18); opacity:.93; }

.bkbg-gcta-btn--primary {
    background: var(--bkbg-gcta-primary-bg, #fff);
    color: var(--bkbg-gcta-primary-c, #6c3fb5);
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.bkbg-gcta-btn--secondary {
    background: transparent;
    color: var(--bkbg-gcta-sec-c, #fff);
    border-color: rgba(255,255,255,.55);
}
.bkbg-gcta-btn--secondary:hover { border-color: rgba(255,255,255,.9); }

/* Responsive */
@media (max-width: 640px) {
    .bkbg-gcta-inner h2.bkbg-gcta-headline { font-size: clamp(26px, 8vw, var(--bkbg-gcta-hl-font-size-d, 46px)); }
    .bkbg-gcta-subtitle { font-size: var(--bkbg-gcta-sub-font-size-d, 16px); }
    .bkbg-gcta-buttons  { flex-direction: column; align-items: stretch; }
    .bkbg-gcta-btn      { justify-content: center; padding: 14px 20px; }
}

/* Typography responsive – tablet */
@media (max-width: 1024px) {
    .bkbg-gcta-inner h2.bkbg-gcta-headline {
        font-size: var(--bkbg-gcta-hl-font-size-t, var(--bkbg-gcta-hl-font-size-d, 46px));
        line-height: var(--bkbg-gcta-hl-line-height-t, var(--bkbg-gcta-hl-line-height-d, 1.15));
        letter-spacing: var(--bkbg-gcta-hl-letter-spacing-t, var(--bkbg-gcta-hl-letter-spacing-d, -.02em));
        word-spacing: var(--bkbg-gcta-hl-word-spacing-t, var(--bkbg-gcta-hl-word-spacing-d, normal));
    }
    .bkbg-gcta-subtitle {
        font-size: var(--bkbg-gcta-sub-font-size-t, var(--bkbg-gcta-sub-font-size-d, 18px));
        line-height: var(--bkbg-gcta-sub-line-height-t, var(--bkbg-gcta-sub-line-height-d, 1.65));
        letter-spacing: var(--bkbg-gcta-sub-letter-spacing-t, var(--bkbg-gcta-sub-letter-spacing-d, normal));
        word-spacing: var(--bkbg-gcta-sub-word-spacing-t, var(--bkbg-gcta-sub-word-spacing-d, normal));
    }
    .bkbg-gcta-badge {
        font-size: var(--bkbg-gcta-bg-font-size-t, var(--bkbg-gcta-bg-font-size-d, 13px));
        line-height: var(--bkbg-gcta-bg-line-height-t, var(--bkbg-gcta-bg-line-height-d, 1.4));
        letter-spacing: var(--bkbg-gcta-bg-letter-spacing-t, var(--bkbg-gcta-bg-letter-spacing-d, .04em));
        word-spacing: var(--bkbg-gcta-bg-word-spacing-t, var(--bkbg-gcta-bg-word-spacing-d, normal));
    }
}

/* Typography responsive – mobile */
@media (max-width: 767px) {
    .bkbg-gcta-inner h2.bkbg-gcta-headline {
        font-size: var(--bkbg-gcta-hl-font-size-m, var(--bkbg-gcta-hl-font-size-t, var(--bkbg-gcta-hl-font-size-d, 46px)));
        line-height: var(--bkbg-gcta-hl-line-height-m, var(--bkbg-gcta-hl-line-height-t, var(--bkbg-gcta-hl-line-height-d, 1.15)));
        letter-spacing: var(--bkbg-gcta-hl-letter-spacing-m, var(--bkbg-gcta-hl-letter-spacing-t, var(--bkbg-gcta-hl-letter-spacing-d, -.02em)));
        word-spacing: var(--bkbg-gcta-hl-word-spacing-m, var(--bkbg-gcta-hl-word-spacing-t, var(--bkbg-gcta-hl-word-spacing-d, normal)));
    }
    .bkbg-gcta-subtitle {
        font-size: var(--bkbg-gcta-sub-font-size-m, var(--bkbg-gcta-sub-font-size-t, var(--bkbg-gcta-sub-font-size-d, 18px)));
        line-height: var(--bkbg-gcta-sub-line-height-m, var(--bkbg-gcta-sub-line-height-t, var(--bkbg-gcta-sub-line-height-d, 1.65)));
        letter-spacing: var(--bkbg-gcta-sub-letter-spacing-m, var(--bkbg-gcta-sub-letter-spacing-t, var(--bkbg-gcta-sub-letter-spacing-d, normal)));
        word-spacing: var(--bkbg-gcta-sub-word-spacing-m, var(--bkbg-gcta-sub-word-spacing-t, var(--bkbg-gcta-sub-word-spacing-d, normal)));
    }
    .bkbg-gcta-badge {
        font-size: var(--bkbg-gcta-bg-font-size-m, var(--bkbg-gcta-bg-font-size-t, var(--bkbg-gcta-bg-font-size-d, 13px)));
        line-height: var(--bkbg-gcta-bg-line-height-m, var(--bkbg-gcta-bg-line-height-t, var(--bkbg-gcta-bg-line-height-d, 1.4)));
        letter-spacing: var(--bkbg-gcta-bg-letter-spacing-m, var(--bkbg-gcta-bg-letter-spacing-t, var(--bkbg-gcta-bg-letter-spacing-d, .04em)));
        word-spacing: var(--bkbg-gcta-bg-word-spacing-m, var(--bkbg-gcta-bg-word-spacing-t, var(--bkbg-gcta-bg-word-spacing-d, normal)));
    }
}
