.bkbg-iot-wrap {
    box-sizing: border-box;
    overflow: hidden;
}

.bkbg-iot-wrap *,
.bkbg-iot-wrap *::before,
.bkbg-iot-wrap *::after {
    box-sizing: inherit;
}

/* ── Layout ── */
.bkbg-iot-inner {
    display: flex;
    align-items: stretch;
    position: relative;
    overflow: visible;
    margin: 0 auto;
}

.bkbg-iot-inner--right {
    flex-direction: row-reverse;
}

/* ── Image column ── */
.bkbg-iot-image-col {
    position: relative;
    flex: 0 0 55%;
    overflow: visible;
}

.bkbg-iot-img {
    display: block;
    width: 100%;
    min-height: 360px;
    object-fit: cover;
}

/* ── Text column ── */
.bkbg-iot-text-col {
    flex: 1;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* ── Decoratives ── */
.bkbg-iot-decor {
    position: absolute;
    pointer-events: none;
    z-index: 2;
}

/* Dot grid — shows in bottom-right corner of image, bleeding into text */
.bkbg-iot-decor--dots {
    bottom: -24px;
    right: -24px;
    width: 120px;
    height: 120px;
    background-image: radial-gradient(circle, var(--dot-color, #e5e7eb) 2px, transparent 2px);
    background-size: 14px 14px;
}

.bkbg-iot-inner--right .bkbg-iot-decor--dots {
    left: -24px;
    right: auto;
}

/* Diagonal lines */
.bkbg-iot-decor--lines {
    bottom: 24px;
    right: -32px;
    width: 80px;
    height: 200px;
    background-image: repeating-linear-gradient(
        -45deg,
        var(--accent, #7c3aed),
        var(--accent, #7c3aed) 1px,
        transparent 1px,
        transparent 8px
    );
    opacity: 0.35;
}

.bkbg-iot-inner--right .bkbg-iot-decor--lines {
    left: -32px;
    right: auto;
}

/* Solid shape */
.bkbg-iot-decor--shape {
    bottom: -20px;
    right: -20px;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    opacity: 0.12;
}

.bkbg-iot-inner--right .bkbg-iot-decor--shape {
    left: -20px;
    right: auto;
}

/* ── Typography ── */
.bkbg-iot-eyebrow {
    font-family:      var(--bkbg-iot-ey-font-family, inherit);
    font-size:        var(--bkbg-iot-ey-font-size-d, 12px);
    font-weight:      var(--bkbg-iot-ey-font-weight, 700);
    font-style:       var(--bkbg-iot-ey-font-style, normal);
    text-decoration:  var(--bkbg-iot-ey-text-decoration, none);
    text-transform:   var(--bkbg-iot-ey-text-transform, uppercase);
    line-height:      var(--bkbg-iot-ey-line-height-d, 1.4);
    letter-spacing:   var(--bkbg-iot-ey-letter-spacing-d, 0.1em);
    word-spacing:     var(--bkbg-iot-ey-word-spacing-d, normal);
    margin: 0 0 12px;
}

.bkbg-iot-text-col h2.bkbg-iot-heading {
    font-family:      var(--bkbg-iot-h-font-family, inherit);
    font-size:        var(--bkbg-iot-h-font-size-d, 36px);
    font-weight:      var(--bkbg-iot-h-font-weight, 800);
    font-style:       var(--bkbg-iot-h-font-style, normal);
    text-decoration:  var(--bkbg-iot-h-text-decoration, none);
    text-transform:   var(--bkbg-iot-h-text-transform, none);
    line-height:      var(--bkbg-iot-h-line-height-d, 1.2);
    letter-spacing:   var(--bkbg-iot-h-letter-spacing-d, normal);
    word-spacing:     var(--bkbg-iot-h-word-spacing-d, normal);
    margin: 0 0 16px;
}

.bkbg-iot-subtext {
    font-family:      var(--bkbg-iot-st-font-family, inherit);
    font-size:        var(--bkbg-iot-st-font-size-d, 18px);
    font-weight:      var(--bkbg-iot-st-font-weight, 400);
    font-style:       var(--bkbg-iot-st-font-style, normal);
    text-decoration:  var(--bkbg-iot-st-text-decoration, none);
    text-transform:   var(--bkbg-iot-st-text-transform, none);
    line-height:      var(--bkbg-iot-st-line-height-d, 1.6);
    letter-spacing:   var(--bkbg-iot-st-letter-spacing-d, normal);
    word-spacing:     var(--bkbg-iot-st-word-spacing-d, normal);
    margin: 0 0 16px;
}

.bkbg-iot-body {
    font-family:      var(--bkbg-iot-bd-font-family, inherit);
    font-size:        var(--bkbg-iot-bd-font-size-d, 16px);
    font-weight:      var(--bkbg-iot-bd-font-weight, 400);
    font-style:       var(--bkbg-iot-bd-font-style, normal);
    text-decoration:  var(--bkbg-iot-bd-text-decoration, none);
    text-transform:   var(--bkbg-iot-bd-text-transform, none);
    line-height:      var(--bkbg-iot-bd-line-height-d, 1.7);
    letter-spacing:   var(--bkbg-iot-bd-letter-spacing-d, normal);
    word-spacing:     var(--bkbg-iot-bd-word-spacing-d, normal);
    margin: 0 0 24px;
}

/* ── CTA ── */
.bkbg-iot-cta {
    display: inline-block;
    padding: 12px 28px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    transition: opacity 0.15s, transform 0.15s;
    align-self: flex-start;
}

.bkbg-iot-cta:hover {
    opacity: 0.88;
    transform: translateY(-1px);
}

/* ── Responsive Typography ── */
@media (max-width: 1024px) {
    .bkbg-iot-eyebrow {
        font-size:       var(--bkbg-iot-ey-font-size-t, var(--bkbg-iot-ey-font-size-d, 12px));
        line-height:     var(--bkbg-iot-ey-line-height-t, var(--bkbg-iot-ey-line-height-d, 1.4));
        letter-spacing:  var(--bkbg-iot-ey-letter-spacing-t, var(--bkbg-iot-ey-letter-spacing-d, 0.1em));
        word-spacing:    var(--bkbg-iot-ey-word-spacing-t, var(--bkbg-iot-ey-word-spacing-d, normal));
    }
    .bkbg-iot-text-col h2.bkbg-iot-heading,
    .bkbg-iot-text-col .bkbg-iot-heading {
        font-size:       var(--bkbg-iot-h-font-size-t, var(--bkbg-iot-h-font-size-d, 36px));
        line-height:     var(--bkbg-iot-h-line-height-t, var(--bkbg-iot-h-line-height-d, 1.2));
        letter-spacing:  var(--bkbg-iot-h-letter-spacing-t, var(--bkbg-iot-h-letter-spacing-d, normal));
        word-spacing:    var(--bkbg-iot-h-word-spacing-t, var(--bkbg-iot-h-word-spacing-d, normal));
    }
    .bkbg-iot-subtext {
        font-size:       var(--bkbg-iot-st-font-size-t, var(--bkbg-iot-st-font-size-d, 18px));
        line-height:     var(--bkbg-iot-st-line-height-t, var(--bkbg-iot-st-line-height-d, 1.6));
        letter-spacing:  var(--bkbg-iot-st-letter-spacing-t, var(--bkbg-iot-st-letter-spacing-d, normal));
        word-spacing:    var(--bkbg-iot-st-word-spacing-t, var(--bkbg-iot-st-word-spacing-d, normal));
    }
    .bkbg-iot-body {
        font-size:       var(--bkbg-iot-bd-font-size-t, var(--bkbg-iot-bd-font-size-d, 16px));
        line-height:     var(--bkbg-iot-bd-line-height-t, var(--bkbg-iot-bd-line-height-d, 1.7));
        letter-spacing:  var(--bkbg-iot-bd-letter-spacing-t, var(--bkbg-iot-bd-letter-spacing-d, normal));
        word-spacing:    var(--bkbg-iot-bd-word-spacing-t, var(--bkbg-iot-bd-word-spacing-d, normal));
    }
}

@media (max-width: 767px) {
    .bkbg-iot-eyebrow {
        font-size:       var(--bkbg-iot-ey-font-size-m, var(--bkbg-iot-ey-font-size-t, var(--bkbg-iot-ey-font-size-d, 12px)));
        line-height:     var(--bkbg-iot-ey-line-height-m, var(--bkbg-iot-ey-line-height-t, var(--bkbg-iot-ey-line-height-d, 1.4)));
        letter-spacing:  var(--bkbg-iot-ey-letter-spacing-m, var(--bkbg-iot-ey-letter-spacing-t, var(--bkbg-iot-ey-letter-spacing-d, 0.1em)));
        word-spacing:    var(--bkbg-iot-ey-word-spacing-m, var(--bkbg-iot-ey-word-spacing-t, var(--bkbg-iot-ey-word-spacing-d, normal)));
    }
    .bkbg-iot-text-col h2.bkbg-iot-heading,
    .bkbg-iot-text-col .bkbg-iot-heading {
        font-size:       var(--bkbg-iot-h-font-size-m, var(--bkbg-iot-h-font-size-t, var(--bkbg-iot-h-font-size-d, 36px)));
        line-height:     var(--bkbg-iot-h-line-height-m, var(--bkbg-iot-h-line-height-t, var(--bkbg-iot-h-line-height-d, 1.2)));
        letter-spacing:  var(--bkbg-iot-h-letter-spacing-m, var(--bkbg-iot-h-letter-spacing-t, var(--bkbg-iot-h-letter-spacing-d, normal)));
        word-spacing:    var(--bkbg-iot-h-word-spacing-m, var(--bkbg-iot-h-word-spacing-t, var(--bkbg-iot-h-word-spacing-d, normal)));
    }
    .bkbg-iot-subtext {
        font-size:       var(--bkbg-iot-st-font-size-m, var(--bkbg-iot-st-font-size-t, var(--bkbg-iot-st-font-size-d, 18px)));
        line-height:     var(--bkbg-iot-st-line-height-m, var(--bkbg-iot-st-line-height-t, var(--bkbg-iot-st-line-height-d, 1.6)));
        letter-spacing:  var(--bkbg-iot-st-letter-spacing-m, var(--bkbg-iot-st-letter-spacing-t, var(--bkbg-iot-st-letter-spacing-d, normal)));
        word-spacing:    var(--bkbg-iot-st-word-spacing-m, var(--bkbg-iot-st-word-spacing-t, var(--bkbg-iot-st-word-spacing-d, normal)));
    }
    .bkbg-iot-body {
        font-size:       var(--bkbg-iot-bd-font-size-m, var(--bkbg-iot-bd-font-size-t, var(--bkbg-iot-bd-font-size-d, 16px)));
        line-height:     var(--bkbg-iot-bd-line-height-m, var(--bkbg-iot-bd-line-height-t, var(--bkbg-iot-bd-line-height-d, 1.7)));
        letter-spacing:  var(--bkbg-iot-bd-letter-spacing-m, var(--bkbg-iot-bd-letter-spacing-t, var(--bkbg-iot-bd-letter-spacing-d, normal)));
        word-spacing:    var(--bkbg-iot-bd-word-spacing-m, var(--bkbg-iot-bd-word-spacing-t, var(--bkbg-iot-bd-word-spacing-d, normal)));
    }
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .bkbg-iot-inner,
    .bkbg-iot-inner--right {
        flex-direction: column;
    }

    .bkbg-iot-image-col {
        flex: none;
        width: 100%;
    }

    .bkbg-iot-img {
        min-height: 240px;
    }

    .bkbg-iot-text-col {
        padding: 32px 24px !important;
    }
}
