.container {
    max-width: var(--container);
    margin: 0 auto;
    padding-left: var(--container-px);
    padding-right: var(--container-px);
}
@media (min-width: 768px) {
    .container { padding-left: 3rem; padding-right: 3rem; }
}

.container--narrow { max-width: 1100px; }
.container--prose  { max-width: 800px; }
.container--reading { max-width: 65ch; }

/* Vertical rhythm helpers */
.section { padding: 3rem 0; }
@media (min-width: 768px)  { .section { padding: 4.5rem 0; } }
@media (min-width: 1024px) { .section { padding: 6rem 0; } }

.section--lg { padding: 4rem 0; }
@media (min-width: 768px)  { .section--lg { padding: 6rem 0; } }
@media (min-width: 1024px) { .section--lg { padding: 8rem 0; } }

.section--sm { padding: 2.5rem 0; }
@media (min-width: 768px) { .section--sm { padding: 3.5rem 0; } }

.section--dark   { background: var(--brand-dark); }
.section--darker { background: var(--brand-darker); }
.section--light  { background: var(--brand-light); color: var(--brand-dark); }
.section--light h1, .section--light h2, .section--light h3 { color: var(--brand-dark); }

/* Divider lines sit inside the container, not edge-to-edge */
.section--top-divider,
.section--bottom-divider { position: relative; }
.section--top-divider::before,
.section--bottom-divider::after {
    content: '';
    position: absolute;
    left: 1.5rem; right: 1.5rem;
    height: 1px;
    background: rgba(68, 68, 68, 0.3);
    pointer-events: none;
}
@media (min-width: 768px) {
    .section--top-divider::before,
    .section--bottom-divider::after { left: 3rem; right: 3rem; }
}
@media (min-width: 1456px) {
    .section--top-divider::before,
    .section--bottom-divider::after {
        left: 50%; right: auto;
        width: calc(var(--container) - 6rem);
        transform: translateX(-50%);
    }
}
.section--top-divider::before { top: 0; }
.section--bottom-divider::after { bottom: 0; }

.contact-form__consent input[type="checkbox"] {
    width: auto;
}