:root {
    --container-padding: 1.5rem;
    --spacing-unit: 1rem;
}

.wrapper {
    width: 100%;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    margin-left: auto;
    margin-right: auto;
}

/* Bootstrap-style responsive max-widths */
@media (min-width: 576px) {
    .wrapper {
        max-width: 540px;
    }
}
@media (min-width: 768px) {
    .wrapper {
        max-width: 720px;
    }
}
@media (min-width: 992px) {
    .wrapper {
        max-width: 960px;
    }
}
@media (min-width: 1200px) {
    .wrapper {
        max-width: 1140px;
    }
}
@media (min-width: 1400px) {
    .wrapper {
        max-width: 1320px;
    }
}

/* Optional fluid variant: always full width */
.wrapper-fluid {
    width: 100%;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    margin-left: auto;
    margin-right: auto;
}

.m-0 {
    margin: 0;
}
.mt-0 {
    margin-top: 0;
}
.mr-0 {
    margin-right: 0;
}
.mb-0 {
    margin-bottom: 0;
}
.ml-0 {
    margin-left: 0;
}

.m-1 {
    margin: calc(var(--spacing-unit) * 0.25);
}
.mt-1 {
    margin-top: calc(var(--spacing-unit) * 0.25);
}
.mr-1 {
    margin-right: calc(var(--spacing-unit) * 0.25);
}
.mb-1 {
    margin-bottom: calc(var(--spacing-unit) * 0.25);
}
.ml-1 {
    margin-left: calc(var(--spacing-unit) * 0.25);
}

.m-2 {
    margin: calc(var(--spacing-unit) * 0.5);
}
.mt-2 {
    margin-top: calc(var(--spacing-unit) * 0.5);
}
.mr-2 {
    margin-right: calc(var(--spacing-unit) * 0.5);
}
.mb-2 {
    margin-bottom: calc(var(--spacing-unit) * 0.5);
}
.ml-2 {
    margin-left: calc(var(--spacing-unit) * 0.5);
}

.m-3 {
    margin: var(--spacing-unit);
}
.mt-3 {
    margin-top: var(--spacing-unit);
}
.mr-3 {
    margin-right: var(--spacing-unit);
}
.mb-3 {
    margin-bottom: var(--spacing-unit);
}
.ml-3 {
    margin-left: var(--spacing-unit);
}

.m-4 {
    margin: calc(var(--spacing-unit) * 1.5);
}
.mt-4 {
    margin-top: calc(var(--spacing-unit) * 1.5);
}
.mr-4 {
    margin-right: calc(var(--spacing-unit) * 1.5);
}
.mb-4 {
    margin-bottom: calc(var(--spacing-unit) * 1.5);
}
.ml-4 {
    margin-left: calc(var(--spacing-unit) * 1.5);
}

.m-5 {
    margin: calc(var(--spacing-unit) * 3);
}
.mt-5 {
    margin-top: calc(var(--spacing-unit) * 3);
}
.mr-5 {
    margin-right: calc(var(--spacing-unit) * 3);
}
.mb-5 {
    margin-bottom: calc(var(--spacing-unit) * 3);
}
.ml-5 {
    margin-left: calc(var(--spacing-unit) * 3);
}
