/* ================================================================
   Story Section — bkbg-stry-*
   ================================================================ */

/* ── Block shell ──────────────────────────────────────────────── */
.bkbg-stry-block {
    padding: 64px 32px;
    box-sizing: border-box;
}

/* ── Main row ─────────────────────────────────────────────────── */
.bkbg-stry-main {
    display: flex;
    align-items: flex-start;
    gap: 56px;
    max-width: 1100px;
    margin: 0 auto;
}

/* Layout variants */
.bkbg-stry-layout-centered {
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.bkbg-stry-layout-photo-right {
    flex-direction: row-reverse;
}

@media (max-width: 768px) {
    .bkbg-stry-main {
        flex-direction: column;
    }
    .bkbg-stry-main.bkbg-stry-layout-photo-right {
        flex-direction: column;
    }
}

/* ── Photo column ─────────────────────────────────────────────── */
.bkbg-stry-photo-col {
    flex: 0 0 380px;
    max-width: 380px;
}

@media (max-width: 768px) {
    .bkbg-stry-photo-col {
        flex: 1 1 auto;
        max-width: 100%;
    }
}

.bkbg-stry-layout-centered .bkbg-stry-photo-col {
    flex: 0 0 auto;
    max-width: 280px;
}

.bkbg-stry-photo-wrap {
    position: relative;
    overflow: hidden;
}

.bkbg-stry-photo {
    width: 100%;
    display: block;
    object-fit: cover;
    aspect-ratio: 4/5;
}

/* Photo placeholder in editor */
.bkbg-stry-photo-placeholder {
    width: 100%;
    aspect-ratio: 4/5;
    border: 2px dashed currentColor;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.03);
    cursor: pointer;
}

.bkbg-stry-photo-btn {
    font-weight: 600;
    font-size: 14px;
    padding: 8px 16px;
    border-radius: 6px;
    background: rgba(255,255,255,.8);
    cursor: pointer;
}

.bkbg-stry-founder-caption {
    margin-top: 12px;
    font-size: 13px;
    text-align: center;
}

/* ── Content column ───────────────────────────────────────────── */
.bkbg-stry-content-col {
    flex: 1 1 0;
    min-width: 0;
}

.bkbg-stry-block h2.bkbg-stry-headline {
    font-family:     var(--bkstry-hl-font-family, inherit);
    font-size:       var(--bkstry-hl-font-size-d, 40px);
    font-weight:     var(--bkstry-hl-font-weight, 800);
    font-style:      var(--bkstry-hl-font-style, normal);
    text-decoration: var(--bkstry-hl-text-decoration, none);
    text-transform:  var(--bkstry-hl-text-transform, none);
    line-height:     var(--bkstry-hl-line-height-d, 1.15);
    letter-spacing:  var(--bkstry-hl-letter-spacing-d, -0.02em);
    word-spacing:    var(--bkstry-hl-word-spacing-d, normal);
    margin: 0 0 12px;
}

.bkbg-stry-subheadline {
    font-family:     var(--bkstry-sh-font-family, inherit);
    font-size:       var(--bkstry-sh-font-size-d, 18px);
    font-weight:     var(--bkstry-sh-font-weight, 500);
    font-style:      var(--bkstry-sh-font-style, normal);
    text-decoration: var(--bkstry-sh-text-decoration, none);
    text-transform:  var(--bkstry-sh-text-transform, none);
    line-height:     var(--bkstry-sh-line-height-d, 1.5);
    letter-spacing:  var(--bkstry-sh-letter-spacing-d, normal);
    word-spacing:    var(--bkstry-sh-word-spacing-d, normal);
    margin: 0 0 20px;
    max-width: 600px;
}

.bkbg-stry-layout-centered .bkbg-stry-subheadline {
    margin-left: auto;
    margin-right: auto;
}

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

.bkbg-stry-layout-centered .bkbg-stry-body {
    margin-left: auto;
    margin-right: auto;
}

/* ── Pull quote ───────────────────────────────────────────────── */
.bkbg-stry-quote {
    border-left: 4px solid;
    margin: 24px 0;
    padding: 12px 24px;
    font-family:     var(--bkstry-qt-font-family, inherit);
    font-size:       var(--bkstry-qt-font-size-d, 22px);
    font-weight:     var(--bkstry-qt-font-weight, 500);
    font-style:      var(--bkstry-qt-font-style, italic);
    text-decoration: var(--bkstry-qt-text-decoration, none);
    text-transform:  var(--bkstry-qt-text-transform, none);
    line-height:     var(--bkstry-qt-line-height-d, 1.6);
    letter-spacing:  var(--bkstry-qt-letter-spacing-d, normal);
    word-spacing:    var(--bkstry-qt-word-spacing-d, normal);
    background: rgba(0,0,0,.02);
    border-radius: 0 8px 8px 0;
}

.bkbg-stry-layout-centered .bkbg-stry-quote {
    border-left: none;
    border-top: 4px solid;
    border-radius: 0;
    padding: 16px;
    text-align: center;
}

/* ── CTA ──────────────────────────────────────────────────────── */
.bkbg-stry-cta-row {
    margin-top: 28px;
}

.bkbg-stry-cta-btn {
    display: inline-block;
    padding: 12px 32px;
    font-weight: 700;
    font-size: 15px;
    cursor: pointer;
    text-decoration: none;
    transition: opacity .15s, transform .15s;
}

.bkbg-stry-cta-btn:hover {
    opacity: .88;
    transform: translateY(-1px);
}

/* ── Milestones ───────────────────────────────────────────────── */
.bkbg-stry-milestones {
    max-width: 1100px;
    margin: 56px auto 0;
    padding: 0 32px;
    position: relative;
}

.bkbg-stry-milestone-line {
    position: absolute;
    left: 32px;
    right: 32px;
    top: 12px;
    height: 3px;
    border-radius: 2px;
    opacity: .3;
}

.bkbg-stry-milestone-list {
    display: flex;
    gap: 0;
    justify-content: space-between;
    position: relative;
}

@media (max-width: 640px) {
    .bkbg-stry-milestone-list {
        flex-direction: column;
        gap: 24px;
    }
    .bkbg-stry-milestone-line {
        display: none;
    }
}

.bkbg-stry-milestone {
    flex: 1;
    padding: 0 12px;
    position: relative;
    text-align: center;
}

.bkbg-stry-milestone-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    margin: 0 auto 16px;
    position: relative;
    z-index: 1;
    box-shadow: 0 0 0 4px rgba(255,255,255,.9);
}

@media (max-width: 640px) {
    .bkbg-stry-milestone {
        text-align: left;
        display: flex;
        align-items: flex-start;
        gap: 16px;
        padding: 0;
    }
    .bkbg-stry-milestone-dot {
        flex: 0 0 22px;
        margin: 2px 0 0;
    }
}

.bkbg-stry-milestone-year {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 4px;
}

.bkbg-stry-milestone-title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 4px;
}

.bkbg-stry-milestone-desc {
    font-size: 13px;
    line-height: 1.55;
}

/* ── Responsive typography ────────────────────────────────────── */
@media (max-width: 1024px) {
    .bkbg-stry-block h2.bkbg-stry-headline { font-size: var(--bkstry-hl-font-size-t, var(--bkstry-hl-font-size-d, 40px)); line-height: var(--bkstry-hl-line-height-t, var(--bkstry-hl-line-height-d, 1.15)); letter-spacing: var(--bkstry-hl-letter-spacing-t, var(--bkstry-hl-letter-spacing-d, -0.02em)); word-spacing: var(--bkstry-hl-word-spacing-t, var(--bkstry-hl-word-spacing-d, normal)); }
    .bkbg-stry-subheadline { font-size: var(--bkstry-sh-font-size-t, var(--bkstry-sh-font-size-d, 18px)); line-height: var(--bkstry-sh-line-height-t, var(--bkstry-sh-line-height-d, 1.5)); letter-spacing: var(--bkstry-sh-letter-spacing-t, var(--bkstry-sh-letter-spacing-d, normal)); word-spacing: var(--bkstry-sh-word-spacing-t, var(--bkstry-sh-word-spacing-d, normal)); }
    .bkbg-stry-body { font-size: var(--bkstry-bd-font-size-t, var(--bkstry-bd-font-size-d, 16px)); line-height: var(--bkstry-bd-line-height-t, var(--bkstry-bd-line-height-d, 1.75)); letter-spacing: var(--bkstry-bd-letter-spacing-t, var(--bkstry-bd-letter-spacing-d, normal)); word-spacing: var(--bkstry-bd-word-spacing-t, var(--bkstry-bd-word-spacing-d, normal)); }
    .bkbg-stry-quote { font-size: var(--bkstry-qt-font-size-t, var(--bkstry-qt-font-size-d, 22px)); line-height: var(--bkstry-qt-line-height-t, var(--bkstry-qt-line-height-d, 1.6)); letter-spacing: var(--bkstry-qt-letter-spacing-t, var(--bkstry-qt-letter-spacing-d, normal)); word-spacing: var(--bkstry-qt-word-spacing-t, var(--bkstry-qt-word-spacing-d, normal)); }
}
@media (max-width: 767px) {
    .bkbg-stry-block h2.bkbg-stry-headline { font-size: var(--bkstry-hl-font-size-m, var(--bkstry-hl-font-size-t, var(--bkstry-hl-font-size-d, 40px))); line-height: var(--bkstry-hl-line-height-m, var(--bkstry-hl-line-height-t, var(--bkstry-hl-line-height-d, 1.15))); letter-spacing: var(--bkstry-hl-letter-spacing-m, var(--bkstry-hl-letter-spacing-t, var(--bkstry-hl-letter-spacing-d, -0.02em))); word-spacing: var(--bkstry-hl-word-spacing-m, var(--bkstry-hl-word-spacing-t, var(--bkstry-hl-word-spacing-d, normal))); }
    .bkbg-stry-subheadline { font-size: var(--bkstry-sh-font-size-m, var(--bkstry-sh-font-size-t, var(--bkstry-sh-font-size-d, 18px))); line-height: var(--bkstry-sh-line-height-m, var(--bkstry-sh-line-height-t, var(--bkstry-sh-line-height-d, 1.5))); letter-spacing: var(--bkstry-sh-letter-spacing-m, var(--bkstry-sh-letter-spacing-t, var(--bkstry-sh-letter-spacing-d, normal))); word-spacing: var(--bkstry-sh-word-spacing-m, var(--bkstry-sh-word-spacing-t, var(--bkstry-sh-word-spacing-d, normal))); }
    .bkbg-stry-body { font-size: var(--bkstry-bd-font-size-m, var(--bkstry-bd-font-size-t, var(--bkstry-bd-font-size-d, 16px))); line-height: var(--bkstry-bd-line-height-m, var(--bkstry-bd-line-height-t, var(--bkstry-bd-line-height-d, 1.75))); letter-spacing: var(--bkstry-bd-letter-spacing-m, var(--bkstry-bd-letter-spacing-t, var(--bkstry-bd-letter-spacing-d, normal))); word-spacing: var(--bkstry-bd-word-spacing-m, var(--bkstry-bd-word-spacing-t, var(--bkstry-bd-word-spacing-d, normal))); }
    .bkbg-stry-quote { font-size: var(--bkstry-qt-font-size-m, var(--bkstry-qt-font-size-t, var(--bkstry-qt-font-size-d, 22px))); line-height: var(--bkstry-qt-line-height-m, var(--bkstry-qt-line-height-t, var(--bkstry-qt-line-height-d, 1.6))); letter-spacing: var(--bkstry-qt-letter-spacing-m, var(--bkstry-qt-letter-spacing-t, var(--bkstry-qt-letter-spacing-d, normal))); word-spacing: var(--bkstry-qt-word-spacing-m, var(--bkstry-qt-word-spacing-t, var(--bkstry-qt-word-spacing-d, normal))); }

/* ── Editor helpers ───────────────────────────────────────────── */
.bkbg-stry-editor-wrap [contenteditable] {
    font: inherit;
    text-transform: inherit;
    font-style: inherit;
    text-decoration: inherit;
    letter-spacing: inherit;
    word-spacing: inherit;
}

.bkbg-stry-editor-wrap [contenteditable]:hover {
    outline: 2px dashed rgba(99,102,241,.45);
    outline-offset: 2px;
    cursor: text;
}

.bkbg-stry-editor-wrap [contenteditable]:focus {
    outline: 2px solid #6366f1;
    outline-offset: 2px;
}

/* Milestone editor accordion */
.bkbg-stry-milestone-editor {
    margin-bottom: 8px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
}

.bkbg-stry-milestone-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    cursor: pointer;
    background: #f8fafc;
    border-left: 3px solid;
    font-size: 13px;
    user-select: none;
}

.bkbg-stry-milestone-header:hover {
    background: #f1f5f9;
}

.bkbg-stry-milestone-fields {
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #fff;
}
