.container {
  width: var(--container);
  margin: 0 auto;
}

.container-wide {
  width: var(--container-wide);
  margin: 0 auto;
}

.section {
  padding: var(--section-gap) 0;
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
}

.stack-16 > * + * { margin-top: 16px; }
.stack-24 > * + * { margin-top: 24px; }
.stack-32 > * + * { margin-top: 32px; }
.stack-40 > * + * { margin-top: 40px; }
.stack-56 > * + * { margin-top: 56px; }
.stack-80 > * + * { margin-top: 80px; }

.spacer-120 { height: 120px; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


.page-hero {
  padding: 0 0 8px;
}

main > .page-hero + .section {
  padding-top: 36px;
}
/* Final client revisions: no redundant page titles */
body:not(.page-home):not(.projects-page) main > .section:first-child {
  padding-top: 52px;
}

/* Final client batch: unified top spacing after fixed header on public pages */
body.has-header-fill:not(.admin-body) main > .section:first-child {
  padding-top: var(--page-start-space);
}

body.has-header-fill:not(.admin-body) main > .page-hero + .section {
  padding-top: var(--page-start-space);
}
