.hero {
  padding: var(--space-xl) 0;
  border-bottom: 1px solid var(--colour-border);
}

.hero-compact {
  padding: var(--space-lg) 0;
}

.hero h1 {
  margin-bottom: var(--space-md);
}

.hero-sub {
  font-size: 1.125rem;
  color: var(--colour-text-muted);
  max-width: 40rem;
}

.hero-ctas {
  display: flex;
  gap: var(--space-md);
  margin-top: var(--space-lg);
  flex-wrap: wrap;
  align-items: center;
}

.audience-cards,
.pillars,
.services-grid,
.methodology,
.content-section,
.posts-list,
.form-section {
  padding: var(--space-xl) 0;
}

.content-section + .content-section {
  padding-top: 0;
}

.cta-banner {
  background-color: var(--colour-primary);
  padding: var(--space-xl) 0;
  text-align: center;
}

.cta-banner .cta-text {
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.125rem;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--space-lg);
}

.cta-banner .btn-primary {
  background-color: var(--colour-bg-surface);
  color: var(--colour-primary);
}

.post-card {
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--colour-border);
}

.post-card:first-child {
  padding-top: 0;
}

.post-card h2 {
  margin-bottom: var(--space-sm);
  font-size: 1.25rem;
}

.post-meta {
  color: var(--colour-text-muted);
  font-size: 0.875rem;
}

.post-meta-row {
  display: flex;
  gap: var(--space-md);
  color: var(--colour-text-muted);
  font-size: 0.875rem;
  margin-top: var(--space-sm);
}

.post-body {
  padding: var(--space-xl) 0;
}

.empty-state {
  color: var(--colour-text-muted);
  font-style: italic;
}
