.intro-bg-overlay__media {
    min-height: 100%;
}

.intro-bg-overlay__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.intro-bg-overlay__scrim {
    pointer-events: none;
}

.intro-bg-overlay__content-box {
    max-width: 48rem;
}

.intro-bg-overlay__decor-top {
    width: 6rem;
    height: 6rem;
    top: 5rem;
    left: 2.5rem;
}

.intro-bg-overlay__decor-bottom {
    width: 8rem;
    height: 8rem;
    bottom: 5rem;
    right: 2.5rem;
}

.intro-bg-overlay__decor-mid {
    width: 4rem;
    height: 4rem;
    top: 33%;
    right: 25%;
}

.intro-bg-overlay__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.intro-bg-overlay__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.content-ledger__stem {
    height: 4rem;
    transform: translateX(-50%);
}

.brief-sq-10 { width: 2.5rem; height: 2.5rem; flex-shrink: 0; }

.brief-glass-card,
.brief-glass-panel,
.brief-glass-value {
    backdrop-filter: blur(0.75rem);
    box-shadow: 0 1rem 2rem rgba(15, 23, 42, 0.08);
}

.brief-glass-card {
    background-color: rgba(var(--bs-body-bg-rgb), 0.72);
}

.brief-glass-panel,
.brief-glass-value {
    background-color: rgba(var(--bs-body-bg-rgb), 0.56);
}

.brief-brand-line {
    width: 2.5rem;
    height: 0.125rem;
    background-color: rgba(var(--bs-primary-rgb), 0.45);
}

.brief-orb-one {
    top: -6rem;
    left: -6rem;
    width: 24rem;
    height: 24rem;
    filter: blur(3rem);
}

.brief-orb-two {
    right: -6rem;
    bottom: -6rem;
    width: 20rem;
    height: 20rem;
    filter: blur(3rem);
}

.brief-orb-three {
    top: 50%;
    right: 25%;
    width: 14rem;
    height: 14rem;
    filter: blur(3rem);
}

.brief-cta-hover {
    transition: transform 0.3s ease;
}

.brief-cta-hover:hover {
    transform: scale(1.05);
}

.brief-card-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.brief-card-hover:hover {
    transform: translateY(-0.25rem);
    box-shadow: var(--bs-box-shadow-lg);
}

.brief-icon-hover {
    transition: transform 0.3s ease;
}

.brief-card-hover:hover .brief-icon-hover {
    transform: scale(1.1);
}

.brief-title-hover {
    transition: color 0.3s ease;
}

.brief-card-hover:hover .brief-title-hover {
    color: var(--bs-primary);
}

.content-column__body {
    column-gap: 2.5rem;
}

.content-column__body p {
    break-inside: avoid;
}

@media (min-width: 768px) {
    .content-column__body {
        column-count: 2;
    }
}

@media (min-width: 1200px) {
    .content-column__body {
        column-count: 3;
    }
}

/* gallery v18 — hero + three frames.
   Geometry shared by both CSS frameworks (Bootstrap has no grid-template / aspect utilities). */
.gallery-cascade-grid__section {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.mxw-5xl {
    max-width: 64rem !important;
}

.mxw-2xl {
    max-width: 42rem !important;
}

.gallery-cascade-grid__head {
    margin-bottom: 2.5rem;
}

.gallery-cascade-grid__title {
    font-size: 1.875rem;
    margin-bottom: 0.75rem;
}

.gallery-cascade-grid__lead {
    font-size: 1.125rem;
}

.gallery-cascade-grid__hero {
    aspect-ratio: 16 / 7;
}

.gallery-cascade-grid__thumb {
    aspect-ratio: 1 / 1;
}

.gallery-cascade-grid__img {
    object-fit: cover;
    transition: transform 300ms ease;
}

/* hover zoom — `:where()` keeps specificity at 0-1-0 so Tailwind's hover:scale-105 wins there */
:where(.gallery-cascade-grid__img):hover {
    transform: scale(1.05);
}

/* caption scrim: Bootstrap has no gradient utility, so the flat fill is toned down instead */
.gallery-cascade-grid__caption {
    --bs-bg-opacity: 0.55;
}

.gallery-cascade-grid__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .gallery-cascade-grid__row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .gallery-cascade-grid__title {
        font-size: 2.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    :where(.gallery-cascade-grid__img):hover {
        transform: none;
    }
}

.content-grid-gap {
    gap: 2rem;
}

.content-heading-gap {
    margin-bottom: 2rem;
}

.content-section-pad {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.content-img-grows {
    display: block;
    width: 100%;
    height: 16rem;
    min-height: 16rem;
    flex-shrink: 0;
    object-fit: cover;
}
@media (min-width: 992px) {
    .content-img-grows {
        height: 20rem;
        min-height: 20rem;
    }
}

.content-report-leaf__toggle {
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    cursor: pointer;
    outline-offset: -0.125rem;
}

.content-report-leaf__glyph {
    transition: transform 180ms ease;
}

.content-report-leaf__toggle.is-open .content-report-leaf__glyph {
    transform: rotate(45deg);
}

.content-report-leaf__orb {
    width: 10rem;
    height: 10rem;
    filter: blur(4rem);
}

.content-flex-min {
    min-width: 0;
}

