/* Shared layout contract; child themes own the values and visual identity. */
.bwp-container {
    box-sizing: border-box;
    width: min(var(--bwp-content-width, 76rem), calc(100% - 2 * var(--bwp-gutter, 1.5rem)));
    max-width: none;
    margin-inline: auto;
}
.bwp-section { padding-block: var(--bwp-section-space, clamp(4rem, 7vw, 6.5rem)); }
.bwp-grid { display: grid; gap: var(--bwp-grid-gap, 2rem); }
.bwp-grid > * { min-width: 0; margin-block: 0; }
.bwp-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bwp-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bwp-media--video, .bwp-media--gallery { overflow: hidden; margin: 0; }
.bwp-media--video { aspect-ratio: 16 / 9; }
.bwp-media--gallery { aspect-ratio: 4 / 3; }
:is(.bwp-media--video, .bwp-media--gallery) img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 56rem) {
    .bwp-grid--three, .bwp-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 38rem) {
    .bwp-grid--three, .bwp-grid--four { grid-template-columns: minmax(0, 1fr); }
}
