.bloom-document {
    --bloom-document-gap: clamp(1rem, 2vw, 1.75rem);
    display: grid;
    gap: var(--bloom-document-gap);
    width: min(100%, var(--b-container-l, 76rem));
    max-width: 100%;
    margin-inline: auto;
    padding-inline: clamp(1rem, 3vw, 2rem);
    box-sizing: border-box;
    min-width: 0;
    overflow-wrap: anywhere;
}

.bloom-document,
.bloom-document *,
.bloom-document *::before,
.bloom-document *::after {
    box-sizing: border-box;
}

.bloom-document :where(h1, h2, h3, h4, p, ul, ol, dl) {
    margin-block-start: 0;
}

.bloom-document__header,
.bloom-document__summary,
.bloom-document__introduction,
.bloom-document__navigation,
.bloom-document__section,
.bloom-document__sections,
.bloom-document__version,
.bloom-document__block,
.bloom-document__rich-text,
.bloom-document__section-content,
.bloom-document__summary-list,
.bloom-document__metadata,
.bloom-document__definitions,
.bloom-document__definition,
.bloom-document__summary-list > div,
.bloom-document__metadata > div {
    min-width: 0;
    max-width: 100%;
}

.bloom-document :where(h1, h2, h3, h4, p, li, dt, dd, a, span, strong, em) {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.bloom-document :where(img, video, iframe, svg) {
    max-width: 100%;
    height: auto;
}

.bloom-document :where(pre) {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
}

.bloom-document__type,
.bloom-document__eyebrow {
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.bloom-document__list {
    padding-inline-start: 1.35rem;
}

.bloom-document__toc-list--sections {
    list-style: none;
    padding-inline-start: 0;
}

.bloom-document__toc-link {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: start;
    gap: .45rem;
}

.bloom-document__toc-number {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.bloom-document__toc-list--nested {
    margin-block-start: .45rem;
    padding-inline-start: 1.35rem;
}

.bloom-document__toc-entry + .bloom-document__toc-entry {
    margin-block-start: .35rem;
}

.bloom-document__disclosure-controls {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-block-start: 1rem;
}

.bloom-document__disclosure-controls button {
    cursor: pointer;
    font: inherit;
    line-height: 1.2;
    padding: .55rem .8rem;
}

.bloom-document__section {
    scroll-margin-top: 2rem;
}


.bloom-document__section-disclosure {
    overflow: clip;
}

.bloom-document__section-summary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
    list-style: none;
}

.bloom-document__section-summary::-webkit-details-marker {
    display: none;
}

.bloom-document__section-summary-copy {
    display: grid;
    gap: .35rem;
    min-width: 0;
}

.bloom-document__section-heading {
    display: block;
    min-width: 0;
}

.bloom-document__section-summary-marker {
    flex: 0 0 auto;
    inline-size: 1.7rem;
    block-size: 1.7rem;
    display: grid;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    line-height: 1;
}

.bloom-document__section-summary-marker::before {
    content: "+";
    font-weight: 800;
}

.bloom-document__section-disclosure[open] > .bloom-document__section-summary .bloom-document__section-summary-marker::before {
    content: "−";
}

.bloom-document__section-content {
    padding-block-start: 1rem;
}

.bloom-document .is-hash-target {
    outline: 3px solid var(--bloom-ui-primary, var(--b-color-primary, currentColor));
    outline-offset: 4px;
}

.bloom-document__section + .bloom-document__section {
    margin-block-start: calc(var(--bloom-document-gap) * 1.4);
}

.bloom-document__block + .bloom-document__block {
    margin-block-start: var(--bloom-document-gap);
}

.bloom-document__disclosure {
    scroll-margin-top: 2rem;
}

.bloom-document__disclosure + .bloom-document__disclosure {
    margin-block-start: .75rem;
}

.bloom-document__disclosure-summary {
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    font-weight: 700;
}

.bloom-document__disclosure-heading {
    display: grid;
    gap: .2rem;
}

.bloom-document__disclosure-subtitle {
    font-size: .9em;
    font-weight: 400;
}

.bloom-document__disclosure-panel {
    padding-block-start: 1rem;
}

.bloom-document__note,
.bloom-document__notice {
    margin-block-start: 1rem;
    padding: 1rem;
    border-inline-start: .25rem solid currentColor;
}

.bloom-document__definitions,
.bloom-document__summary-list,
.bloom-document__metadata {
    display: grid;
    gap: 1rem;
}

.bloom-document__definition,
.bloom-document__summary-list > div,
.bloom-document__metadata > div {
    display: grid;
    gap: .25rem;
    min-width: 0;
}

.bloom-document__definition dt,
.bloom-document__summary-list dt,
.bloom-document__metadata dt {
    font-weight: 700;
}

.bloom-document__definition dd,
.bloom-document__summary-list dd,
.bloom-document__metadata dd {
    min-width: 0;
    margin-inline-start: 0;
    overflow-wrap: anywhere;
}

.bloom-document__table-wrap {
    max-width: 100%;
    overflow-x: auto;
}

.bloom-document__table {
    width: 100%;
    border-collapse: collapse;
}

.bloom-document__table :where(th, td) {
    padding: .65rem;
    text-align: start;
    vertical-align: top;
}

.bloom-document--error {
    padding: 1rem;
    border: 1px solid currentColor;
}


@media (max-width: 760px) {
    .bloom-document {
        width: 100%;
        max-width: 100%;
        padding-inline: clamp(.75rem, 4vw, 1rem);
    }

    .bloom-document__title {
        max-width: 100%;
        font-size: clamp(1.85rem, 9vw, 2.35rem);
        overflow-wrap: anywhere;
    }

    .bloom-document__summary,
    .bloom-document__introduction,
    .bloom-document__navigation,
    .bloom-document__section,
    .bloom-document__section-disclosure {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .bloom-document .bloom-document__summary-list,
    .bloom-document .bloom-document__metadata,
    .bloom-document .bloom-document__definitions {
        grid-template-columns: minmax(0, 1fr);
    }

    .bloom-document__section-summary {
        gap: .75rem;
    }

    .bloom-document__section-summary-copy,
    .bloom-document__section-heading,
    .bloom-document__section-title,
    .bloom-document__rich-text,
    .bloom-document__notice,
    .bloom-document__note {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }
}

@media print {
    .bloom-document__disclosure-controls {
        display: none !important;
    }

    .bloom-document__section-summary-marker {
        display: none !important;
    }

    .bloom-document__section-content {
        display: block !important;
        padding-block-start: .6rem !important;
    }

    .bloom-document__toc a {
        color: inherit;
        text-decoration: none;
    }

    .bloom-document__section,
    .bloom-document__block,
    .bloom-document__disclosure,
    .bloom-document__section-disclosure {
        break-inside: avoid-page;
    }
}

.bloom-document__rich-text > :last-child,
.bloom-document__disclosure-panel > :last-child,
.bloom-document__notice > :last-child {
    margin-block-end: 0;
}

.bloom-document__version {
    margin-block-start: var(--bloom-document-gap);
    padding-block-start: .75rem;
    border-block-start: 1px solid currentColor;
    font-size: .875rem;
    opacity: .72;
}

@media print {
    .bloom-document__version {
        opacity: 1;
    }
}

.bloom-document__section-lead {
    max-width: var(--b-content-readable, 68ch);
}

/* Protected document access gate. */
.bloom-document-access {
    width: min(100% - 2rem, 42rem);
    margin: clamp(2rem, 7vw, 6rem) auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid var(--bloom-ui-border, #dbe1ea);
    border-radius: var(--bloom-ui-radius, 1rem);
    background: var(--bloom-ui-background, #fff);
    box-shadow: var(--bloom-ui-shadow, 0 18px 48px rgba(15, 23, 42, .1));
    color: var(--bloom-ui-text, #111827);
}
.bloom-document-access__eyebrow { margin: 0 0 .5rem; color: var(--bloom-ui-primary, #4f46e5); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.bloom-document-access h1 { margin: 0 0 1rem; }
.bloom-document-access__notice { padding: 1rem; border-left: 4px solid var(--bloom-ui-accent, #6366f1); background: var(--bloom-ui-surface, #f8fafc); }
.bloom-document-access__error { margin: 1rem 0; padding: .85rem 1rem; border: 1px solid #fecaca; border-radius: .5rem; background: #fef2f2; color: #991b1b; }
.bloom-document-access__form { display: grid; gap: 1rem; margin-top: 1.5rem; }
.bloom-document-access__form label { display: grid; gap: .4rem; font-weight: 700; }
.bloom-document-access__form input { width: 100%; min-height: 3rem; padding: .7rem .85rem; border: 1px solid #cbd5e1; border-radius: .5rem; font: inherit; }
.bloom-document-access__form button { min-height: 3rem; padding: .75rem 1rem; border: 0; border-radius: .5rem; background: var(--bloom-ui-primary, #4f46e5); color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.bloom-document-access__operator { width: min(100% - 2rem, 76rem); margin: 1rem auto; padding: .75rem 1rem; border-left: 4px solid #16a34a; background: #f0fdf4; color: #166534; }
@media print { .bloom-document-access__operator { display: none !important; } }
