.container {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: var(--space-4);
}

@media (min-width: 768px) {
  .container { padding-inline: var(--space-5); }
}

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--space-4);
}

.col-12 { grid-column: span 12; }
.col-8  { grid-column: span 12; }
.col-6  { grid-column: span 12; }
.col-4  { grid-column: span 12; }

@media (min-width: 768px) {
  .col-6  { grid-column: span 6; }
  .col-4  { grid-column: span 4; }
}

@media (min-width: 1024px) {
  .col-8  { grid-column: span 8; }
  .col-4  { grid-column: span 4; }
}

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

.hero {
  padding-block: var(--space-8);
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border-default);
}

.hero-content {
  max-width: 640px;
}

.hero-headline {
  font-size: var(--text-heading);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-heading);
  color: var(--text-primary);
  letter-spacing: -0.02em;
  margin-bottom: var(--space-3);
}

@media (min-width: 640px) {
  .hero-headline {
    font-size: var(--text-display);
    line-height: var(--leading-display);
  }
}

.hero-sub {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--text-secondary);
  margin-bottom: var(--space-5);
  max-width: 480px;
}

.page-title {
  font-size: var(--text-display);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-display);
  color: var(--text-primary);
  letter-spacing: -0.02em;
  margin-bottom: var(--space-3);
}

.page-sub {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--text-muted);
  margin-bottom: var(--space-6);
}

.section-title {
  font-size: var(--text-heading);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-heading);
  color: var(--text-primary);
  margin-bottom: var(--space-3);
}

.section-lead {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--text-secondary);
  max-width: 600px;
}

/* ─── Utilities ──────────────────────────────────────── */

.mt-5            { margin-top: var(--space-5); }
.section--flush  { padding-top: 0; }
.section--flush-top { padding-top: 0; }

.form-contact {
  max-width: 480px;
  display: flex;
  flex-direction: column;
  gap: var(--gap-inner);
}

.footer-link {
  font-size: var(--text-caption);
}

/* ─── Card Grid ──────────────────────────────────────── */

.card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--gap-inner);
}

@media (min-width: 640px) {
  .card-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
  .card-grid { grid-template-columns: repeat(3, 1fr); }
}
