body {
    background: var(--color-page-bg, #f5f6f8);
    color: var(--color-text, #111827);
}

.page {
    min-height: 100vh;
    padding: 24px 0 56px;
}

.page-main {
    min-width: 0;
}

.page-container {
    width: min(
        calc(100% - var(--page-padding-desktop, 24px) * 2),
        var(--site-container, 1180px)
    );
    max-width: var(--site-container, 1180px);
    margin-left: auto;
    margin-right: auto;
    overflow-wrap: break-word;
}

.page-container--site,
.page-container--wide,
.page-container--normal {
    max-width: var(--site-container, 1180px);
}

.page-container--readable {
    max-width: min(var(--site-container, 1180px), var(--container-readable, 1180px));
}

.page-container--narrow {
    max-width: min(var(--site-container, 1180px), var(--container-narrow, 720px));
}

.page-section {
    margin-top: var(--section-gap, 32px);
}

.layout-row {
    display: flex;
    gap: var(--block-gap, 24px);
}

.layout-grid {
    display: grid;
    gap: var(--block-gap, 24px);
}

/* ResponsiveFoundation v1 hotfix: global overflow safety without changing site width */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.page,
.page-main,
.page-container,
.layout-row,
.layout-grid {
    min-width: 0;
}

@media (max-width: 900px) {
    .page-container {
        width: min(
            calc(100% - var(--page-padding-tablet, 20px) * 2),
            var(--site-container, 1180px)
        );
    }
}

@media (max-width: 640px) {
    .page {
        padding-top: 16px;
        padding-bottom: 40px;
    }

    .page-container {
        width: min(
            calc(100% - var(--page-padding-mobile, 16px) * 2),
            var(--site-container, 1180px)
        );
    }

    .layout-row {
        flex-wrap: wrap;
    }
}
