/* Shared vertical rhythm. Loaded last on every Engineering page.
   White sections share one interval; full-width bands retain inset spacing. */
.engineering-page {
  --section-space: 64px;
  --intro-space: 32px;
  --content-space: 32px;
  --band-space: 24px;
}
@media (max-width: 850px) {
  .engineering-page {
    --section-space: 48px;
    --intro-space: 28px;
    --content-space: 28px;
  }
}
@media (max-width: 520px) {
  .engineering-page {
    --section-space: 32px;
    --intro-space: 24px;
    --content-space: 24px;
    --band-space: 20px;
  }
}

/* Main sections, including the process, contact and FAQ formerly overridden. */
.engineering-page main > .section,
.engineering-page main > .safety-feature,
.engineering-page main > .blog-preview {
  padding-block: var(--section-space);
}
.engineering-page main > .wrap.section + .wrap.section {
  padding-top: 0;
}
.engineering-page .hero-grid {
  padding-block: var(--section-space);
}
.engineering-page .internal-intro {
  padding-block: var(--intro-space) var(--section-space);
}
.engineering-page .intro-grid > div {
  padding-block: 0;
}
.engineering-page .crumb {
  margin-bottom: var(--content-space);
}
.engineering-page .credentials-band > .wrap {
  padding-block: var(--band-space);
}
.engineering-page .delivery-grid {
  padding-block: var(--section-space);
}

/* Heading-to-content intervals are independent of the section boundaries. */
.engineering-page :is(.service-grid, .detail-grid, .training-grid, .catalog-grid),
.engineering-page :is(.process, .internal-process) ol {
  margin-top: var(--content-space);
}
.engineering-page :is(.process, .internal-process) h2 {
  margin-bottom: 0;
}
.engineering-page :is(.offers-heading, .blog-preview-head) {
  margin-bottom: var(--content-space);
}
.engineering-page .internal-faq > h2 {
  margin-bottom: var(--content-space);
}
.engineering-page .scope-details .catalog-grid {
  margin-top: 0;
}

/* A closing invitation owns its following gap; do not add it again below. */
.engineering-page main > .project-cta {
  margin-block: 0 var(--section-space);
}
.engineering-page main > .project-cta + .blog-preview {
  padding-top: 0;
}
.engineering-page .site-footer {
  padding-top: var(--section-space);
}
.engineering-page .footer-base {
  margin-top: var(--content-space);
  padding-block: var(--band-space);
}
.engineering-page.privacy-page main {
  padding-block: var(--section-space);
}

/* Blog index, preview and related cards must not stack their bottom padding. */
.engineering-page .blog-intro {
  padding-block: var(--intro-space) var(--content-space);
}
.engineering-page .blog-intro > :last-child,
.engineering-page .blog-welcome-copy > :last-child {
  margin-bottom: 0;
}
.engineering-page .blog-tools {
  margin-block: 0 var(--content-space);
}
.engineering-page .blog-tools > :last-child {
  margin-bottom: 0;
}
.engineering-page .blog-grid {
  padding-bottom: 0;
  gap: var(--content-space);
}
.engineering-page main > .blog-grid,
.engineering-page .article-layout {
  padding-bottom: var(--section-space);
}
.engineering-page .blog-empty {
  margin-block: 0;
  padding-bottom: var(--section-space);
}
.engineering-page main > .blog-grid:has(+ .blog-empty:not([hidden])) {
  padding-bottom: 0;
}
.engineering-page main > .project-cta + .wrap:not(.blog-preview) {
  padding-bottom: var(--section-space);
}
.engineering-page .related-title {
  margin-bottom: var(--content-space);
}
.engineering-page .article-body > section {
  margin-block: var(--content-space) 0;
}
.engineering-page .article-body > section > h2 {
  margin-top: 0;
}
.engineering-page .article-figure {
  margin-bottom: var(--content-space);
}
.engineering-page .article-sources {
  padding-top: var(--content-space);
}
.engineering-page .article-author {
  margin-top: var(--content-space);
}
