/* ============================================================
   Feature Columns — style.css
   Prefix: bkbg-fc-
   ============================================================ */

.bkbg-fc-wrap {
    box-sizing: border-box;
    width: 100%;
    padding: var(--bkbg-fc-pt, 0px) 0 var(--bkbg-fc-pb, 0px);
}

/* ---- Grid ---- */
.bkbg-fc-grid {
    display: grid;
    grid-template-columns: repeat(var(--bkbg-fc-cols, 3), 1fr);
    gap: var(--bkbg-fc-row-gap, 40px) var(--bkbg-fc-gap, 32px);
}

/* ---- Single feature ---- */
.bkbg-fc-feature {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Alignment variants */
.bkbg-fc-align--center .bkbg-fc-feature { align-items: center; text-align: center; }
.bkbg-fc-align--left   .bkbg-fc-feature { align-items: flex-start; text-align: left; }

/* ---- Icon wrap ---- */
.bkbg-fc-icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform .2s;
}
.bkbg-fc-feature:hover .bkbg-fc-icon-wrap { transform: scale(1.05); }

/* Icon style: box */
.bkbg-fc-icon-style--box.bkbg-fc-icon-wrap {
    width: calc(var(--bkbg-fc-icon-sz, 24px) * 1.8);
    height: calc(var(--bkbg-fc-icon-sz, 24px) * 1.8);
    border-radius: 10px;
    background: var(--bkbg-fc-icon-bg, #f0ebff);
}

/* Icon style: circle */
.bkbg-fc-icon-style--circle.bkbg-fc-icon-wrap {
    width: calc(var(--bkbg-fc-icon-sz, 24px) * 1.8);
    height: calc(var(--bkbg-fc-icon-sz, 24px) * 1.8);
    border-radius: 50%;
    background: var(--bkbg-fc-icon-bg, #f0ebff);
}

/* Icon style: line (underline accent) */
.bkbg-fc-icon-style--line.bkbg-fc-icon-wrap {
    padding-bottom: 8px;
    border-bottom: 2px solid var(--bkbg-fc-accent, #6c3fb5);
    border-radius: 0;
    background: transparent;
    justify-content: flex-start;
}
.bkbg-fc-align--center .bkbg-fc-icon-style--line.bkbg-fc-icon-wrap { justify-content: center; }

/* Icon style: none */
.bkbg-fc-icon-style--none.bkbg-fc-icon-wrap {
    background: transparent;
    border-radius: 0;
}

.bkbg-fc-icon {
    font-size: var(--bkbg-fc-icon-sz, 24px);
    color: var(--bkbg-fc-icon-c, #6c3fb5);
    line-height: 1;
    width: var(--bkbg-fc-icon-sz, 24px);
    height: var(--bkbg-fc-icon-sz, 24px);
    display: flex;
    align-items: center;
}

/* ---- Number (step/ordered mode) ---- */
.bkbg-fc-number {
    font-size: var(--bkbg-fc-num-sz, 32px);
    font-weight: 900;
    color: var(--bkbg-fc-num-c, #6c3fb5);
    letter-spacing: -.04em;
    line-height: 1;
    flex-shrink: 0;
}

.bkbg-fc-number.bkbg-fc-icon-style--box,
.bkbg-fc-number.bkbg-fc-icon-style--circle {
    width: calc(var(--bkbg-fc-num-sz, 32px) * 1.5);
    height: calc(var(--bkbg-fc-num-sz, 32px) * 1.5);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bkbg-fc-icon-bg, #f0ebff);
    font-size: var(--bkbg-fc-num-sz, 32px);
}
.bkbg-fc-number.bkbg-fc-icon-style--circle { border-radius: 50%; }
.bkbg-fc-number.bkbg-fc-icon-style--box    { border-radius: 10px; }

/* ---- Text ---- */
.bkbg-fc-text { display: flex; flex-direction: column; gap: 6px; }

.bkbg-fc-wrap .bkbg-fc-title {
    margin: 0;
    font-family: var(--bkbg-fc-tt-font-family, inherit);
    font-size: var(--bkbg-fc-tt-font-size-d, 17px);
    font-weight: var(--bkbg-fc-tt-font-weight, 700);
    font-style: var(--bkbg-fc-tt-font-style, normal);
    text-transform: var(--bkbg-fc-tt-text-transform, none);
    text-decoration: var(--bkbg-fc-tt-text-decoration, none);
    line-height: var(--bkbg-fc-tt-line-height-d, 1.3);
    letter-spacing: var(--bkbg-fc-tt-letter-spacing-d, normal);
    word-spacing: var(--bkbg-fc-tt-word-spacing-d, normal);
    color: var(--bkbg-fc-title-c, #0f172a);
}

.bkbg-fc-body {
    margin: 0;
    font-family: var(--bkbg-fc-bd-font-family, inherit);
    font-size: var(--bkbg-fc-bd-font-size-d, 15px);
    font-weight: var(--bkbg-fc-bd-font-weight, 400);
    font-style: var(--bkbg-fc-bd-font-style, normal);
    text-transform: var(--bkbg-fc-bd-text-transform, none);
    text-decoration: var(--bkbg-fc-bd-text-decoration, none);
    line-height: var(--bkbg-fc-bd-line-height-d, 1.65);
    letter-spacing: var(--bkbg-fc-bd-letter-spacing-d, normal);
    word-spacing: var(--bkbg-fc-bd-word-spacing-d, normal);
    color: var(--bkbg-fc-body-c, #64748b);
}

/* ============================================================
   Style Variants
   ============================================================ */

/* plain — just the column (default) */
/* (no extra styles needed) */

/* card — white card with shadow */
.bkbg-fc-style--card .bkbg-fc-feature {
    background: var(--bkbg-fc-card-bg, #ffffff);
    border-radius: var(--bkbg-fc-card-r, 12px);
    padding: var(--bkbg-fc-card-p, 24px);
    box-shadow: 0 2px 8px rgba(0,0,0,.05), 0 0 0 1px rgba(0,0,0,.04);
    transition: box-shadow .18s, transform .18s;
}
.bkbg-fc-style--card .bkbg-fc-feature:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 32px rgba(0,0,0,.09), 0 0 0 1px rgba(0,0,0,.03);
}

/* bordered — border around each card */
.bkbg-fc-style--bordered .bkbg-fc-feature {
    border: 1px solid var(--bkbg-fc-card-border, #e2e8f0);
    border-radius: var(--bkbg-fc-card-r, 12px);
    padding: var(--bkbg-fc-card-p, 24px);
    background: var(--bkbg-fc-card-bg, #ffffff);
    transition: border-color .18s, box-shadow .18s;
}
.bkbg-fc-style--bordered .bkbg-fc-feature:hover {
    border-color: var(--bkbg-fc-accent, #6c3fb5);
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
}

/* filled — accent icon bg fills full card tint */
.bkbg-fc-style--filled .bkbg-fc-feature {
    background: var(--bkbg-fc-icon-bg, #f0ebff);
    border-radius: var(--bkbg-fc-card-r, 12px);
    padding: var(--bkbg-fc-card-p, 24px);
    transition: background .18s;
}
.bkbg-fc-style--filled .bkbg-fc-feature:hover { background: color-mix(in srgb, var(--bkbg-fc-icon-bg, #f0ebff) 80%, var(--bkbg-fc-accent, #6c3fb5) 20%); }
.bkbg-fc-style--filled .bkbg-fc-icon-wrap { background: rgba(255,255,255,.6); }

/* numbered — large faded number behind each item */
.bkbg-fc-style--numbered .bkbg-fc-number {
    font-size: clamp(40px, 8vw, 72px);
    color: color-mix(in srgb, var(--bkbg-fc-accent, #6c3fb5) 12%, transparent);
    font-weight: 900;
}

/* Inspector helpers */
.bkbg-fc-feat-ctrl { border-bottom: 1px solid #e2e8f0; padding-bottom: 12px; margin-bottom: 12px; }
.bkbg-fc-feat-head { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 4px 0; }
.bkbg-fc-feat-actions { display: flex; gap: 4px; margin-top: 8px; }

/* Responsive */
@media (max-width: 1024px) {
    .bkbg-fc-wrap .bkbg-fc-title {
        font-size: var(--bkbg-fc-tt-font-size-t, var(--bkbg-fc-tt-font-size-d, 17px));
        line-height: var(--bkbg-fc-tt-line-height-t, var(--bkbg-fc-tt-line-height-d, 1.3));
        letter-spacing: var(--bkbg-fc-tt-letter-spacing-t, var(--bkbg-fc-tt-letter-spacing-d, normal));
        word-spacing: var(--bkbg-fc-tt-word-spacing-t, var(--bkbg-fc-tt-word-spacing-d, normal));
    }
    .bkbg-fc-body {
        font-size: var(--bkbg-fc-bd-font-size-t, var(--bkbg-fc-bd-font-size-d, 15px));
        line-height: var(--bkbg-fc-bd-line-height-t, var(--bkbg-fc-bd-line-height-d, 1.65));
        letter-spacing: var(--bkbg-fc-bd-letter-spacing-t, var(--bkbg-fc-bd-letter-spacing-d, normal));
        word-spacing: var(--bkbg-fc-bd-word-spacing-t, var(--bkbg-fc-bd-word-spacing-d, normal));
    }
}
@media (max-width: 900px) {
    .bkbg-fc-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .bkbg-fc-wrap .bkbg-fc-title {
        font-size: var(--bkbg-fc-tt-font-size-m, var(--bkbg-fc-tt-font-size-t, var(--bkbg-fc-tt-font-size-d, 17px)));
        line-height: var(--bkbg-fc-tt-line-height-m, var(--bkbg-fc-tt-line-height-t, var(--bkbg-fc-tt-line-height-d, 1.3)));
        letter-spacing: var(--bkbg-fc-tt-letter-spacing-m, var(--bkbg-fc-tt-letter-spacing-t, var(--bkbg-fc-tt-letter-spacing-d, normal)));
        word-spacing: var(--bkbg-fc-tt-word-spacing-m, var(--bkbg-fc-tt-word-spacing-t, var(--bkbg-fc-tt-word-spacing-d, normal)));
    }
    .bkbg-fc-body {
        font-size: var(--bkbg-fc-bd-font-size-m, var(--bkbg-fc-bd-font-size-t, var(--bkbg-fc-bd-font-size-d, 15px)));
        line-height: var(--bkbg-fc-bd-line-height-m, var(--bkbg-fc-bd-line-height-t, var(--bkbg-fc-bd-line-height-d, 1.65)));
        letter-spacing: var(--bkbg-fc-bd-letter-spacing-m, var(--bkbg-fc-bd-letter-spacing-t, var(--bkbg-fc-bd-letter-spacing-d, normal)));
        word-spacing: var(--bkbg-fc-bd-word-spacing-m, var(--bkbg-fc-bd-word-spacing-t, var(--bkbg-fc-bd-word-spacing-d, normal)));
    }
}
@media (max-width: 520px) {
    .bkbg-fc-grid { grid-template-columns: 1fr; }
}
