/* Native Gutenberg content outside the full-width BSH section system. */
.bshContentFlow {
    --bsh-content-flow-width: min(70vw, 1344px);
}

.bshContentFlow > :where(:not(.alignfull):not(.alignwide):not(.wp-block-spacer)) {
    width: var(--bsh-content-flow-width);
    max-width: calc(100% - (var(--bsh-container-pad) * 2));
    margin-inline: auto;
}

/* A Spacer is pure vertical rhythm configured by Gutenberg. It must not inherit
 * the readable-content container or any horizontal wrapper geometry. */
.bshContentFlow > .wp-block-spacer {
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
}

/* BSH Hero is always a viewport-wide section, including legacy blocks whose
 * saved Gutenberg markup does not contain the alignfull attribute. */
.bshContentFlow > .bshHero {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

/*
 * Core container blocks act as page sections. Padding is deliberately placed
 * on top-level containers only, avoiding doubled 100px spacing when a Group is
 * nested inside a Cover or Columns block.
 */
.bshContentFlow > :where(.wp-block-group, .wp-block-cover, .wp-block-columns, .wp-block-media-text) {
    padding-top: 100px;
    padding-bottom: 100px;
}

.bshContentFlow > .alignfull:where(.wp-block-group, .wp-block-cover, .wp-block-columns, .wp-block-media-text) {
    padding-right: max(var(--bsh-container-pad), 15vw);
    padding-left: max(var(--bsh-container-pad), 15vw);
}

@media (max-width: 1024px) {
    .bshContentFlow {
        --bsh-content-flow-width: calc(100% - (var(--bsh-container-pad) * 2));
    }

    .bshContentFlow > .alignfull:where(.wp-block-group, .wp-block-cover, .wp-block-columns, .wp-block-media-text) {
        padding-right: var(--bsh-container-pad);
        padding-left: var(--bsh-container-pad);
    }
}

@media (max-width: 767px) {
    .bshContentFlow > :where(.wp-block-group, .wp-block-cover, .wp-block-columns, .wp-block-media-text) {
        padding-top: clamp(64px, 18vw, 80px);
        padding-bottom: clamp(64px, 18vw, 80px);
    }
}
