.container { max-width: 1180px; margin: 0 auto; padding: 0 1.5rem; }
.container-narrow { max-width: 760px; margin: 0 auto; padding: 0 1.5rem; }
.container-text { max-width: 640px; }

.section-padding { padding: 6rem 0; }
@media (max-width: 768px) { .section-padding { padding: 4rem 0; } }

.grid { display: grid; gap: 2rem; }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.grid-4 { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }

.section-title { max-width: 640px; margin: 0 auto 3.25rem; text-align: center; }
.section-title.align-left { text-align: left; margin-left: 0; }
.section-subtitle { color: var(--color-text-light); font-size: 1.1rem; }

.bg-a { background: var(--bg-a); }
.bg-b { background: var(--bg-b); }

.divider {
  width: 48px; height: 2px; background: var(--color-primary);
  margin: 0 auto 1.5rem; border: none;
}
.section-title.align-left .divider { margin-left: 0; }

.text-center { text-align: center; }
