.m1, .m2, .m3 {
    height: 0;
    width: 10mm;
    position: fixed;
    left: -25mm;
    border-top: 0.5pt solid black;
}
.m1.r, .m2.r, .m3.r {
    left: initial;
    right: -20mm;
}
.m1 {top: 80mm;}
.m2 {top: 123.5mm;}
.m3 {top: 185mm;}

.page-break {
    break-before: page;
}
hr.page-break {
    display: none;
}

@page {
    size: A4;
    margin: 25mm 20mm 35mm 25mm;

    @bottom-center {
        content: element(page-footer);
    }
}

@media screen {
    body, header, .footer-wrapper {
        width: 210mm;
    }

    header, .address-wrapper, aside, main {
        border: 1px solid lightgray;
    }

    .m1, .m2, .m3 {
        display: none;
    }

    header {
        top: 0;
    }

    .spacing {
        height: 45mm;
    }

    .main-wrapper {
        margin: 0 20mm 40mm 25mm;
    }

    .footer-wrapper {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: white;
    }
}

@media print {
    .page::after {
        content: "Seite " counter(page) " von " counter(pages) !important;
    }

    a {
        text-decoration: inherit;
        color: inherit;
    }
}