.page {
    width: 100%;
    box-sizing: border-box;
    overflow-x: hidden;
    min-height: 100vh;
    position: relative;
    padding-bottom: 300px;
    /* footer的高度 */
}

.general-padding {
    padding: 0 16px;
}

@media (min-width: 768px) {
    .general-padding {
        padding: 0 24px;
    }
}

@media (min-width: 1200px) and (max-width: 1440px) {
    .general-padding {
        padding: 0 80px;
    }
}

@media (min-width: 1440px) and (max-width: 1920px) {
    .general-padding {
        padding: 0 200px;
    }
}

@media (min-width: 1920px) {
    .general-padding {
        padding: 0 300px;
    }
}

.flex-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.contact-main {
    flex: 1 0 auto;
}

#footer-placeholder {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 296px;
}