.container {
  margin-bottom: 0;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  max-width: var(--container-width);
  padding-left: 20px;
  padding-right: 20px;
}

.contain {
  margin-bottom: 0;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  max-width: var(--container-width);
}

/*
 * TC-H08. `.site` is the outermost page wrapper, a direct child of `body`, so
 * it is already full width and the full-bleed hack it used to carry was doing
 * nothing except breaking the layout.
 *
 * The hack was `width: 100vw` with `-50vw` side margins. `100vw` includes the
 * classic scrollbar gutter but the containing block does not, so the wrapper
 * rendered wider than the viewport by the full scrollbar width and overhung by
 * half of it on each side. Measured at 7.5px each side on every breakpoint -
 * 375, 768, and 1440 all produced the same `scrollWidth - clientWidth` of 7px,
 * which is what identified this as a fixed scrollbar offset rather than a
 * responsive sizing fault.
 *
 * `width: 100%` resolves against the containing block, which already excludes
 * the scrollbar, so the overflow goes away.
 *
 * `overflow-y: hidden` is kept, but note that setting either axis to a value
 * other than `visible` forces the other axis to `auto`, which is why `.site`
 * computed `overflow-x: auto` and turned the overhang into a real horizontal
 * scroll rather than a harmless paint overflow.
 */
.site {
  position: relative;
  overflow-y: hidden;
  width: 100%;
}

/*
 * These three carry the same `100vw` scrollbar bug as `.site` did, and will
 * overhang by half a scrollbar width wherever they are used. They are left
 * alone deliberately: unlike `.site` they genuinely need to break out of a
 * constrained container, the correct fix changes their visual width, and no
 * page in the tested scope uses them, so a change here would be untested.
 * Recorded in `implementation-notes.md` rather than fixed blind.
 */
.full-width,
.alignfull,
.alignwide {
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  position: relative;
  right: 50%;
  width: 100vw;
}

.error-404.not-found {
  margin-bottom: 2em;
}