.container {
    width:
        min(
            100% - (2 * var(--gutter)),
            var(--content-max)
        );

    margin-inline: auto;
}

.narrow {
    width:
        min(
            100%,
            var(--content-narrow)
        );
}

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

.section--compact {
    padding-block:
        clamp(2.5rem, 5vw, 4.5rem);
}

.grid-2 {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        clamp(2rem, 5vw, 5rem);

    align-items: center;
}

.grid-3 {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        clamp(1rem, 2.5vw, 1.75rem);
}

.stack > * + * {
    margin-top: 1.25rem;
}

.cluster {
    display: flex;
    flex-wrap: wrap;

    gap: 0.75rem;

    align-items: center;
}

@media (max-width: 52rem) {
    .grid-2,
    .grid-3 {
        grid-template-columns: 1fr;
    }
}
