.container {
    width: min(
        calc(100% - 40px),
        var(--container-width)
    );

    margin-inline: auto;
}

.main-content {
    min-height: 70vh;
}

.section {
    padding: 70px 0;
}

.section-sm {
    padding: 40px 0;
}

.section-title {
    margin-bottom: 40px;
}

.section-title h2 {
    margin: 0 0 8px;
    color: var(--color-primary);
    font-family: var(--font-heading);
    font-size: 42px;
    font-weight: 700;
    line-height: 1.1;
}

.section-title p {
    margin: 0;
    color: var(--color-text-light);
    font-family: var(--font-ui);
    font-size: 15px;
}

.grid {
    display: grid;
}

.grid-3 {
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.grid-2 {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

@media (max-width: 900px) {

    .grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {

    body {
        font-size: 17px;
    }

    .container {
        width: min(
            calc(100% - 28px),
            var(--container-width)
        );
    }

    .section {
        padding: 50px 0;
    }

    .grid-3,
    .grid-2 {
        grid-template-columns: 1fr;
    }

    .section-title h2 {
        font-size: 34px;
    }
}