.hero {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  padding-block: var(--space-8) var(--space-7);
}
.heroInner { max-width: 62ch; display: flex; flex-direction: column; gap: var(--space-4); }

.eyebrow {
  font-weight: 600;
  font-size: var(--text-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent-text);
}

.title { font-size: var(--text-4xl); }
.lede { font-size: var(--text-lg); color: var(--color-text-muted); }

.section { padding-block: var(--space-7); border-bottom: 1px solid var(--color-border); }
.section:last-of-type { border-bottom: none; }

.sectionTitle { font-size: var(--text-2xl); margin-bottom: var(--space-5); }

.prose {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-width: 68ch;
  color: var(--color-text-muted);
  font-size: var(--text-md);
}

/* --- components -------------------------------------------------------------- */
.components {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-5);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  counter-reset: none;
}

.component {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-top: 3px solid var(--color-accent);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

/* CARISCA numbers these itself, so the numeral carries real information. */
.componentNumber {
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--color-accent-text);
}

.componentTitle { font-size: var(--text-lg); }
.componentGoal { color: var(--color-text-subtle); font-size: var(--text-base); }

/* --- call to action ----------------------------------------------------------- */
.cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  flex-wrap: wrap;
  margin-block: var(--space-7);
  padding: var(--space-6);
  background: var(--color-accent-wash);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-lg);
}
.ctaTitle { font-size: var(--text-xl); margin-bottom: var(--space-2); }
.ctaText { color: var(--color-text-muted); max-width: 52ch; }

/* --- contact ------------------------------------------------------------------ */
.contact {
  display: grid;
  gap: var(--space-5);
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
.contactLabel {
  font-size: var(--text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-subtle);
  margin-bottom: var(--space-2);
}
.contactValue { font-size: var(--text-base); font-style: normal; line-height: 1.7; }

@media (max-width: 640px) {
  .hero { padding-block: var(--space-7) var(--space-6); }
  .cta { flex-direction: column; align-items: flex-start; }
}
