.ob-container {
  width: min(var(--ob-container), calc(100% - var(--ob-gutter) * 2));
  margin-inline: auto;
}

.ob-container--narrow {
  max-width: 720px;
}

.ob-section__inner {
  width: min(var(--ob-container), calc(100% - var(--ob-gutter) * 2));
  margin-inline: auto;
  padding-block: var(--ob-section);
}

.ob-sheet {
  background: var(--ob-surface);
  border-radius: var(--ob-radius-lg) var(--ob-radius-lg) 0 0;
  margin-top: -48px;
  position: relative;
  z-index: 2;
  /* Do not use overflow:hidden here — it breaks position:sticky on Selected. */
}

/* Homepage sheet: use theme container width, not WP default contentSize */
.ob-sheet.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: var(--ob-container);
}

/* Offer band spans the full sheet (About + What we offer). */
.ob-sheet.is-layout-constrained > .ob-offer-band,
.ob-sheet.is-layout-constrained > .wp-block-group.ob-offer-band {
  max-width: none;
  width: 100%;
}

/*
 * If the homepage was saved without the offer-band group (common after
 * block edits), About + Services must still full-bleed like the band.
 */
.ob-sheet.is-layout-constrained > .ob-about,
.ob-sheet.is-layout-constrained > .ob-services,
.wp-block-group.ob-sheet.is-layout-constrained > .ob-about,
.wp-block-group.ob-sheet.is-layout-constrained > .ob-services {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Selected / Testimonials / Say hello: full-bleed section backgrounds. */
.ob-sheet.is-layout-constrained > .ob-projects,
.ob-sheet.is-layout-constrained > .ob-testimonials,
.ob-sheet.is-layout-constrained > .ob-contact,
.wp-block-group.ob-sheet.is-layout-constrained > .ob-projects,
.wp-block-group.ob-sheet.is-layout-constrained > .ob-testimonials,
.wp-block-group.ob-sheet.is-layout-constrained > .ob-contact {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.ob-offer-band.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: none;
  width: 100%;
}
