/* ── Sticky Scroll ───────────────────────────────────────────── */

.bkss-wrap {
    box-sizing: border-box;
}

/* Layout: two columns */
.bkss-layout {
    display: flex;
    align-items: flex-start;
}

/* Pinned image column */
.bkss-pinned {
    flex-shrink: 0;
    position: sticky;
    top: var(--bkss-sticky-top, 80px);
    width: var(--bkss-pinned-w, 50%);
    transition: opacity 0.4s ease;
}

.bkss-image-wrap {
    width: 100%;
}

.bkss-image-wrap img {
    width: 100%;
    display: block;
}

/* Scrolling column */
.bkss-scroll-col {
    flex: 1;
}

/* Individual panel */
.bkss-panel {
    opacity: 0.35;
    transition: opacity 0.4s ease;
}

.bkss-panel.bkss-active {
    opacity: 1;
}

/* Accent dot */
.bkss-dot {
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--bkss-dot-c, #e5e7eb);
    transition: background 0.35s ease;
    margin-bottom: 16px;
}

.bkss-panel.bkss-active .bkss-dot {
    background: var(--bkss-accent, var(--bkss-dot-active, #6c3fb5));
}

/* ── Eyebrow ── */
.bkss-eyebrow {
    font-family:      var(--bkss-eb-font-family, inherit);
    font-size:        var(--bkss-eb-font-size-d, 13px);
    font-weight:      var(--bkss-eb-font-weight, var(--bkss-eb-fw, 600));
    font-style:       var(--bkss-eb-font-style, normal);
    text-decoration:  var(--bkss-eb-text-decoration, none);
    text-transform:   var(--bkss-eb-text-transform, uppercase);
    line-height:      var(--bkss-eb-line-height-d, 1.4);
    letter-spacing:   var(--bkss-eb-letter-spacing-d, 0.08em);
    word-spacing:     var(--bkss-eb-word-spacing-d, normal);
}

/* ── Title (h3 → specificity 0,2,0) ── */
.bkss-panel h3.bkss-title {
    font-family:      var(--bkss-tt-font-family, inherit);
    font-size:        var(--bkss-tt-font-size-d, 32px);
    font-weight:      var(--bkss-tt-font-weight, var(--bkss-title-fw, 700));
    font-style:       var(--bkss-tt-font-style, normal);
    text-decoration:  var(--bkss-tt-text-decoration, none);
    text-transform:   var(--bkss-tt-text-transform, none);
    line-height:      var(--bkss-tt-line-height-d, var(--bkss-title-lh, 1.25));
    letter-spacing:   var(--bkss-tt-letter-spacing-d, normal);
    word-spacing:     var(--bkss-tt-word-spacing-d, normal);
    color:            var(--bkss-title-color, #111827);
}

/* ── Description ── */
.bkss-desc {
    font-family:      var(--bkss-ds-font-family, inherit);
    font-size:        var(--bkss-ds-font-size-d, 17px);
    font-weight:      var(--bkss-ds-font-weight, var(--bkss-desc-fw, 400));
    font-style:       var(--bkss-ds-font-style, normal);
    text-decoration:  var(--bkss-ds-text-decoration, none);
    text-transform:   var(--bkss-ds-text-transform, none);
    line-height:      var(--bkss-ds-line-height-d, var(--bkss-desc-lh, 1.7));
    letter-spacing:   var(--bkss-ds-letter-spacing-d, normal);
    word-spacing:     var(--bkss-ds-word-spacing-d, normal);
    color:            var(--bkss-desc-color, #4b5563);
}

/* ── Tablet ── */
@media (max-width: 1024px) {
    .bkss-eyebrow {
        font-size:      var(--bkss-eb-font-size-t, var(--bkss-eb-font-size-d, 13px));
        line-height:    var(--bkss-eb-line-height-t, var(--bkss-eb-line-height-d, 1.4));
        letter-spacing: var(--bkss-eb-letter-spacing-t, var(--bkss-eb-letter-spacing-d, 0.08em));
        word-spacing:   var(--bkss-eb-word-spacing-t, var(--bkss-eb-word-spacing-d, normal));
    }
    .bkss-panel h3.bkss-title,
    .bkss-panel .bkss-title {
        font-size:      var(--bkss-tt-font-size-t, var(--bkss-tt-font-size-d, 32px));
        line-height:    var(--bkss-tt-line-height-t, var(--bkss-tt-line-height-d, var(--bkss-title-lh, 1.25)));
        letter-spacing: var(--bkss-tt-letter-spacing-t, var(--bkss-tt-letter-spacing-d, normal));
        word-spacing:   var(--bkss-tt-word-spacing-t, var(--bkss-tt-word-spacing-d, normal));
    }
    .bkss-desc {
        font-size:      var(--bkss-ds-font-size-t, var(--bkss-ds-font-size-d, 17px));
        line-height:    var(--bkss-ds-line-height-t, var(--bkss-ds-line-height-d, var(--bkss-desc-lh, 1.7)));
        letter-spacing: var(--bkss-ds-letter-spacing-t, var(--bkss-ds-letter-spacing-d, normal));
        word-spacing:   var(--bkss-ds-word-spacing-t, var(--bkss-ds-word-spacing-d, normal));
    }
}

/* ── Mobile ── */
@media (max-width: 767px) {
    .bkss-eyebrow {
        font-size:      var(--bkss-eb-font-size-m, var(--bkss-eb-font-size-t, var(--bkss-eb-font-size-d, 13px)));
        line-height:    var(--bkss-eb-line-height-m, var(--bkss-eb-line-height-t, var(--bkss-eb-line-height-d, 1.4)));
        letter-spacing: var(--bkss-eb-letter-spacing-m, var(--bkss-eb-letter-spacing-t, var(--bkss-eb-letter-spacing-d, 0.08em)));
        word-spacing:   var(--bkss-eb-word-spacing-m, var(--bkss-eb-word-spacing-t, var(--bkss-eb-word-spacing-d, normal)));
    }
    .bkss-panel h3.bkss-title,
    .bkss-panel .bkss-title {
        font-size:      var(--bkss-tt-font-size-m, var(--bkss-tt-font-size-t, var(--bkss-tt-font-size-d, 32px)));
        line-height:    var(--bkss-tt-line-height-m, var(--bkss-tt-line-height-t, var(--bkss-tt-line-height-d, var(--bkss-title-lh, 1.25))));
        letter-spacing: var(--bkss-tt-letter-spacing-m, var(--bkss-tt-letter-spacing-t, var(--bkss-tt-letter-spacing-d, normal)));
        word-spacing:   var(--bkss-tt-word-spacing-m, var(--bkss-tt-word-spacing-t, var(--bkss-tt-word-spacing-d, normal)));
    }
    .bkss-desc {
        font-size:      var(--bkss-ds-font-size-m, var(--bkss-ds-font-size-t, var(--bkss-ds-font-size-d, 17px)));
        line-height:    var(--bkss-ds-line-height-m, var(--bkss-ds-line-height-t, var(--bkss-ds-line-height-d, var(--bkss-desc-lh, 1.7))));
        letter-spacing: var(--bkss-ds-letter-spacing-m, var(--bkss-ds-letter-spacing-t, var(--bkss-ds-letter-spacing-d, normal)));
        word-spacing:   var(--bkss-ds-word-spacing-m, var(--bkss-ds-word-spacing-t, var(--bkss-ds-word-spacing-d, normal)));
    }
}

/* Responsive: stack vertically on mobile */
@media (max-width: 768px) {
    .bkss-layout {
        flex-direction: column !important;
        gap: 40px !important;
    }

    .bkss-pinned {
        position: relative !important;
        top: auto !important;
        width: 100% !important;
    }

    .bkss-panel {
        opacity: 1 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bkss-panel,
    .bkss-pinned,
    .bkss-dot { transition: none !important; }
}
