.container {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto;
}

.narrow {
    width: min(760px, 100%);
    margin: 0 auto;
}

.site-main {
    min-height: 60vh;
}

.section {
    padding: 4.5rem 0;
}

.section-soft {
    background: #ffffff;
}

.center {
    text-align: center;
}

.header-inner,
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 1.5rem;
    padding: 3rem 0 2rem;
}

.card-grid.three-up {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}