.box {
    padding-block: var(--box-padding-block, 1.25rem);
}

.box :is(h2, h3, h4, h5, h6) {
    margin-top: var(--box-heading-gap, 0.9em);
}

.box > :first-child,
.box > :first-child > :first-child,
.box--columns > * > :first-child {
    margin-top: 0;
}

.box > :last-child,
.box > :last-child > :last-child,
.box--columns > * > :last-child {
    margin-bottom: 0;
}

* + .box,
.box + * {
    margin-top: var(--box-gap, 2rem);
}
