/* Product and company pages: equal space on both sides of every section rule. */
.content-page {
  --content-space: 48px;
  --content-gap: 24px;
  --copy-gap: 16px;
}

/* Text groups have no invisible trailing margins or padded link underlines. */
.content-page .subhero {
  display: grid;
  justify-items: start;
  gap: var(--content-gap);
}

.content-page .subhero > .hero-top {
  width: 100%;
  margin: 0;
}

.content-page .subhero > :is(h1, .subhero-copy, .product-demo) {
  margin: 0;
}

.content-page :is(.product-demo, .investor-link, .contact-mail) {
  position: relative;
  padding: 0;
  margin: 0;
  border: 0;
}

/* Keep the touch target generous without adding space to the visible row. */
.content-page :is(.product-demo, .investor-link, .contact-mail)::before {
  content: "";
  position: absolute;
  inset: -12px 0;
}

.content-page :is(.product-demo, .investor-link, .contact-mail):hover {
  text-decoration: underline;
  text-underline-offset: .2em;
}

.content-page main > .subhero,
.content-page main > .product-system,
.content-page main > .company-story,
.content-page main > .investors {
  padding-block: var(--content-space);
}

.content-page main > .product-detail,
.content-page main > .document-handoff,
.content-page main > .core-process,
.content-page main > .founders {
  padding-block: 0;
}

.content-page .section-heading {
  padding-block: var(--content-space);
  margin: 0;
  align-items: center;
}

.content-page .workflow-list,
.content-page .document-columns,
.content-page .process-steps,
.content-page .founder-grid {
  margin-block: 0;
  row-gap: 0;
}

.content-page .workflow-list article > *,
.content-page .section-heading > *,
.content-page .content-group {
  min-width: 0;
}

.content-page .workflow-list article,
.content-page .document-columns article,
.content-page .process-steps li {
  padding-block: var(--content-space);
  align-items: center;
  align-content: center;
}

.content-page .workflow-list article > h3,
.content-page .workflow-list article > p,
.content-page .document-columns h3,
.content-page .document-columns p,
.content-page .process-steps h3,
.content-page .process-steps p {
  margin-block: 0;
}

.content-page .document-columns,
.content-page .process-steps {
  align-items: stretch;
}

/* Centre the entire heading-and-paragraph group, including unequal columns. */
.content-page .document-columns article,
.content-page .process-steps li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
}

.content-page .content-group {
  display: flex;
  flex-direction: column;
  gap: var(--copy-gap);
}

.content-page .content-group > * {
  margin: 0;
}

.content-page .core-process .process-rule {
  margin-block: 0;
  padding-block: var(--content-space);
  align-items: center;
}

.content-page .company-story,
.content-page .product-system,
.content-page .investors {
  align-items: center;
}

.content-page .company-story > div,
.content-page .system-copy,
.content-page .investors > div,
.content-page .contact-body > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--content-gap);
}

.content-page .company-story p,
.content-page .system-copy > *,
.content-page .investors > div > *,
.content-page .contact-body > div > * {
  margin: 0;
}

.content-page .founders .section-heading {
  grid-template-columns: 1fr;
  padding-bottom: 32px;
}

.content-page .founder-grid {
  padding-bottom: var(--content-space);
  row-gap: var(--content-space);
}

.content-page .founder-grid article {
  border-top: 0;
  padding-block: 0;
  gap: 16px;
}

.content-page .founder-grid article > :is(h3, p, .founder-initials) {
  margin: 0;
}

.content-page .contact-section {
  padding-top: var(--content-space);
  padding-bottom: 0;
}

.content-page .contact-top {
  margin: 0;
  padding-bottom: var(--content-space);
}

.content-page .contact-body {
  padding-block: var(--content-space);
  align-items: center;
}

.content-page .site-footer {
  padding-block: var(--content-space);
}

@media (max-width: 767px) {
  .content-page {
    --content-space: 32px;
    --content-gap: 20px;
  }

  .content-page .section-heading,
  .content-page .company-story,
  .content-page .product-system,
  .content-page .investors {
    row-gap: var(--content-gap);
  }

  .content-page .founders .section-heading {
    padding-bottom: var(--content-space);
  }
}
