.print-only {
    display: none;
}

@media print {
    @page { size: A4 portrait; margin: 15mm 14mm 18mm; }

    html {
        --font-size__regular: 11px !important;
        --font-size__large: 48px !important;
        --grid__medium: 26px !important;
        margin-top: 0 !important;
    }

    body {
        background: #fff !important;
    }

    .print-only {
        display: unset !important;
    }

    .no-print,
    .menu.hidden,
    header,
    footer {
        display: none !important;
    }

    main,
    section.sec-general,
    .sec-padding-top,
    .sec-padding-bottom {
        padding: 0 !important;
        margin: 0 !important;
        max-width: none !important;
        width: auto !important;
        background: none !important;
        box-shadow: none !important;
        border: 0 !important;
    }
}

@media print {
    @page wochenkarte {
        size: A4 landscape;
        margin: 14mm 16mm;
    }

    body *:has(#menu__wochenkarte) {
        display: block !important;
    }

    #menu__wochenkarte {
        --wk-ink: #14322d;
        --wk-accent: #f25b21;
        --wk-font-display: 'sltr-font-h', serif;
        --wk-font-text: 'sltr-font-p', sans-serif;
        page: wochenkarte;
        border: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        height: 172mm !important;
        max-height: 172mm !important;
        color: var(--wk-ink);
        font-family: var(--wk-font-text);
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    #menu__wochenkarte:not(.hidden) {
        display: flex !important;
        flex-direction: column !important;
        justify-content: safe center !important;
    }

    #menu__wochenkarte > .print-only {
        display: none !important;
    }

    #menu__wochenkarte .menu-cols {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 0 20mm !important;
        align-items: center !important;
        width: 100% !important;
        max-height: 172mm !important;
        overflow: hidden !important;
        border: 0 !important;
    }

    #menu__wochenkarte .menu-cols > * {
        display: block !important;
        width: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        text-align: center;
    }

    #menu__wochenkarte .menu-cols > :last-child {
        order: -1;
    }

    #menu__wochenkarte .menu-cols > * > div {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 1mm !important;
        margin: 0 0 4.5mm !important;
        padding: 0 !important;
        break-inside: avoid;
    }

    #menu__wochenkarte .menu__title,
    #menu__wochenkarte .menu__descr,
    #menu__wochenkarte .menu__price {
        display: block;
        line-height: 1.35;
        text-align: center;
    }

    #menu__wochenkarte .menu__title {
        font-size: 9pt !important;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    #menu__wochenkarte .menu__descr {
        font-size: 8.5pt !important;
        letter-spacing: .03em;
    }

    #menu__wochenkarte .menu__price {
        font-size: 8.5pt !important;
        font-weight: 700;
        text-transform: none !important;
    }

    #menu__wochenkarte .menu-cols > :first-child h4 {
        font-family: var(--wk-font-text) !important;
        font-size: 8.5pt !important;
        font-weight: 700;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: var(--wk-ink);
        border-top: 1px solid var(--wk-ink);
        border-bottom: 1px solid var(--wk-ink);
        padding: 1.6mm 0 !important;
        margin: 2mm 0 5mm !important;
        break-after: avoid;
    }

    #menu__wochenkarte .menu-cols > :first-child h4:first-child {
        margin-top: 0 !important;
    }

    #menu__wochenkarte .menu-cols > :last-child {
        border: 1px solid var(--wk-accent);
        padding: 9mm 10mm 3mm !important;
    }

    #menu__wochenkarte .menu-cols > :last-child,
    #menu__wochenkarte .menu-cols > :last-child * {
        color: var(--wk-accent) !important;
    }

    #menu__wochenkarte .menu-cols > :last-child h4 {
        font-family: var(--wk-font-display) !important;
        font-size: 18pt !important;
        font-weight: 400;
        line-height: 1.1;
        margin: 0 0 5mm !important;
        break-after: avoid;
    }

    #menu__wochenkarte .menu-cols > :last-child h4:not(:first-child) {
        margin-top: 4mm !important;
    }

    #menu__wochenkarte .menu-cols > :last-child .menu__title {
        font-family: var(--wk-font-text);
        font-size: 10pt !important;
        letter-spacing: .02em;
    }

    body .menu__allergens {
        position: fixed !important;
        left: calc(50% + 10mm) !important;
        right: 0 !important;
        bottom: 0 !important;
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding: 2mm 0 0 !important;
        text-align: center !important;
        background: #fff !important;
    }

    body .menu__allergens,
    body .menu__allergens * {
        font-size: 6pt !important;
        line-height: 1.4 !important;
    }
}

@media print {
    @page vorspeisen {
        size: A3 landscape;
        margin: 15mm;
    }

    body *:has(#menu__vorspeisen) {
        display: block !important;
    }

    #menu__vorspeisen {
        --vs-ink: #14322d;
        --vs-font-display: 'sltr-font-h', serif;
        --vs-font-text: 'sltr-font-p', sans-serif;
        page: vorspeisen;
        position: relative !important;
        box-sizing: border-box !important;
        width: 50% !important;
        max-width: none !important;
        height: 260mm !important;
        margin: 0 0 0 50% !important;
        padding: 0 0 0 15mm !important;
        border: 0 !important;
        color: var(--vs-ink);
        font-family: var(--vs-font-text);
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    #menu__vorspeisen:not(.hidden) {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    #menu__vorspeisen > .print-only {
        position: relative !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 148mm !important;
        height: 50mm !important;
        margin: 22mm 0 0 !important;
        padding: 0 !important;
    }

    #menu__vorspeisen .menu__hours {
        display: block;
        width: 148mm;
        height: 50mm;
        overflow: visible;
    }

    #menu__vorspeisen .menu__hours text {
        font-family: var(--vs-font-text);
        font-size: 3.2px;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        fill: var(--vs-ink);
    }

    #menu__vorspeisen .menu__hours .menu__heading {
        font-family: var(--vs-font-display);
        font-size: 10px !important;
        font-weight: 400;
        letter-spacing: 0;
        text-transform: none;
    }

    #menu__vorspeisen .menu-cols {
        display: block !important;
        width: 148mm !important;
        max-width: none !important;
        max-height: 175mm !important;
        margin: 25mm 0 0 !important;
        padding: 0 !important;
        border: 0 !important;
        overflow: hidden !important;
    }

    #menu__vorspeisen .menu-cols > * {
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding: 17mm 10mm 14mm !important;
        border: 1px solid var(--vs-ink) !important;
        text-align: center;
    }

    #menu__vorspeisen .menu-cols > * > div {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 1.6mm !important;
        margin: 0 0 7mm !important;
        padding: 0 !important;
        break-inside: avoid;
    }

    #menu__vorspeisen .menu-cols > * > div:last-child {
        margin-bottom: 0 !important;
    }

    #menu__vorspeisen .menu__title,
    #menu__vorspeisen .menu__descr,
    #menu__vorspeisen .menu__price {
        display: block;
        color: var(--vs-ink) !important;
        line-height: 1.4 !important;
        text-align: center;
    }

    #menu__vorspeisen .menu__title {
        font-size: 10.5pt !important;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    #menu__vorspeisen .menu__descr {
        font-size: 10pt !important;
        letter-spacing: .04em;
    }

    #menu__vorspeisen .menu__descr em {
        font-style: italic;
    }

    #menu__vorspeisen .menu__price {
        font-size: 10pt !important;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: none !important;
    }
}

@media print {
    @page salad {
        size: A3 landscape;
        margin: 15mm;
    }

    body *:has(#menu__salad) {
        display: block !important;
    }

    #menu__salad {
        --sb-ink: #14322d;
        --sb-font-display: 'sltr-font-h', serif;
        --sb-font-text: 'sltr-font-p', sans-serif;
        page: salad;
        position: relative !important;
        width: 180mm !important;
        max-width: none !important;
        height: 267mm !important;
        margin: 0 0 0 210mm !important;
        padding: 0 !important;
        border: 0 !important;
        color: var(--sb-ink);
        font-family: var(--sb-font-text);
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    #menu__salad:not(.hidden) {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    #menu__salad > .print-only {
        position: relative !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 148mm !important;
        height: 50mm !important;
        margin: 50mm 0 0 !important;
        padding: 0 !important;
    }

    #menu__salad .menu__hours {
        display: block;
        width: 148mm;
        height: 50mm;
        overflow: visible;
    }

    #menu__salad .menu__hours text {
        font-family: var(--sb-font-text);
        font-size: 3.2px;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        fill: var(--sb-ink);
    }

    #menu__salad .menu__hours .menu__heading {
        font-family: var(--sb-font-display);
        font-size: 10px !important;
        font-weight: 400;
        letter-spacing: 0;
        text-transform: none;
    }

    #menu__salad .menu-cols {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 0 !important;
        align-items: stretch !important;
        width: 148mm !important;
        max-width: none !important;
        max-height: 150mm !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-top: 1px solid var(--sb-ink) !important;
        overflow: hidden !important;
    }

    #menu__salad .menu-cols > * {
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding: 11mm 5mm 12mm !important;
        text-align: center;
    }

    #menu__salad .menu-cols > * + * {
        border-left: 1px solid var(--sb-ink) !important;
    }

    #menu__salad .menu-cols > * > div {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 1.6mm !important;
        margin: 0 0 9mm !important;
        padding: 0 !important;
        break-inside: avoid;
    }

    #menu__salad .menu-cols > * > div:last-child {
        margin-bottom: 0 !important;
    }

    #menu__salad .menu-cols > * > div:has(.menu__subtitle) {
        gap: 0 !important;
        margin-bottom: 1.6mm !important;
    }

    #menu__salad .menu__title,
    #menu__salad .menu__subtitle,
    #menu__salad .menu__descr,
    #menu__salad .menu__price {
        display: block;
        color: var(--sb-ink) !important;
        line-height: 1.4 !important;
        text-align: center;
    }

    #menu__salad .menu__title {
        font-size: 10.5pt !important;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    #menu__salad .menu__subtitle {
        font-size: 10pt !important;
        font-style: italic;
        letter-spacing: .04em;
    }

    #menu__salad .menu__descr {
        font-size: 10pt !important;
        letter-spacing: .04em;
    }

    #menu__salad .menu__descr em {
        font-style: italic;
    }

    #menu__salad .menu__price {
        font-size: 10pt !important;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: none !important;
    }
}

@media print {
    @page main {
        size: A3 landscape;
        margin: 15mm;
    }

    body *:has(#menu__main) {
        display: block !important;
    }

    #menu__main {
        --mn-ink: #14322d;
        --mn-font-display: 'sltr-font-h', serif;
        --mn-font-text: 'sltr-font-p', sans-serif;
        page: main;
        position: relative !important;
        width: 180mm !important;
        max-width: none !important;
        height: 267mm !important;
        margin: 0 0 0 210mm !important;
        padding: 0 !important;
        border: 0 !important;
        color: var(--mn-ink);
        font-family: var(--mn-font-text);
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    #menu__main:not(.hidden) {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    #menu__main > .print-only {
        position: relative !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 148mm !important;
        height: 50mm !important;
        margin: 14mm 0 0 !important;
        padding: 0 !important;
    }

    #menu__main .menu__hours {
        display: block;
        width: 148mm;
        height: 50mm;
        overflow: visible;
    }

    #menu__main .menu__hours text {
        font-family: var(--mn-font-text);
        font-size: 3.2px;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        fill: var(--mn-ink);
    }

    #menu__main .menu__hours .menu__heading {
        font-family: var(--mn-font-display);
        font-size: 10px !important;
        font-weight: 400;
        letter-spacing: 0;
        text-transform: none;
    }

    #menu__main .menu-cols {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 0 !important;
        align-items: stretch !important;
        box-sizing: border-box !important;
        width: 148mm !important;
        max-width: none !important;
        max-height: 140mm !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-top: 1px solid var(--mn-ink) !important;
        overflow: hidden !important;
    }

    #menu__main .menu-cols > * {
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding: 9mm 3mm 8mm !important;
        text-align: center;
    }

    #menu__main .menu-cols > * + * {
        border-left: 1px solid var(--mn-ink) !important;
    }

    #menu__main .menu-cols > * > div {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 1.6mm !important;
        margin: 0 0 6.5mm !important;
        padding: 0 !important;
        break-inside: avoid;
    }

    #menu__main .menu-cols > * > div:last-child {
        margin-bottom: 0 !important;
    }

    #menu__main .menu__title,
    #menu__main .menu__descr,
    #menu__main .menu__price {
        display: block;
        color: var(--mn-ink) !important;
        line-height: 1.4 !important;
        text-align: center;
    }

    #menu__main .menu__title {
        font-size: 10pt !important;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    #menu__main .menu__descr {
        font-size: 9.5pt !important;
        letter-spacing: .04em;
    }

    #menu__main .menu__descr em {
        font-style: italic;
    }

    #menu__main .menu__price {
        font-size: 9.5pt !important;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: none !important;
    }

    #menu__main .menu-footer {
        display: block !important;
        box-sizing: border-box !important;
        width: 148mm !important;
        max-width: none !important;
        max-height: 45mm !important;
        margin: 0 !important;
        padding: 7mm 10mm 6mm !important;
        border: 1px solid var(--mn-ink) !important;
        overflow: hidden !important;
        text-align: center;
    }

    #menu__main .menu-footer > * {
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #menu__main .menu-footer > * > div {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 1.6mm !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #menu__main .menu__highlight {
        display: block;
        margin: 1mm 0 !important;
        padding: 0 !important;
        font-family: var(--mn-font-display) !important;
        font-size: 18pt !important;
        font-weight: 400;
        line-height: 1.15 !important;
        letter-spacing: 0;
        text-transform: none;
        color: var(--mn-ink) !important;
    }
}

@media print {
    @page dessert {
        size: A3 landscape;
        margin: 15mm;
    }

    body *:has(#menu__dessert) {
        display: block !important;
    }

    #menu__dessert {
        --ds-ink: #14322d;
        --ds-font-display: 'sltr-font-h', serif;
        --ds-font-text: 'sltr-font-p', sans-serif;
        page: dessert;
        position: relative !important;
        width: 180mm !important;
        max-width: none !important;
        height: 267mm !important;
        margin: 0 0 0 210mm !important;
        padding: 0 !important;
        border: 0 !important;
        color: var(--ds-ink);
        font-family: var(--ds-font-text);
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    #menu__dessert:not(.hidden) {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: safe center !important;
    }

    #menu__dessert > .print-only {
        position: relative !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 148mm !important;
        height: 50mm !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #menu__dessert .menu__hours {
        display: block;
        width: 148mm;
        height: 50mm;
        overflow: visible;
    }

    #menu__dessert .menu__hours text {
        font-family: var(--ds-font-text);
        font-size: 3.2px;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        fill: var(--ds-ink);
    }

    #menu__dessert .menu__hours .menu__heading {
        font-family: var(--ds-font-display);
        font-size: 10px !important;
        font-weight: 400;
        letter-spacing: 0;
        text-transform: none;
    }

    #menu__dessert .menu-cols {
        display: block !important;
        box-sizing: border-box !important;
        width: 148mm !important;
        max-width: none !important;
        max-height: 120mm !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        overflow: hidden !important;
    }

    #menu__dessert .menu-cols > * {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        box-sizing: border-box !important;
        width: auto !important;
        min-height: 97mm !important;
        gap: 0 !important;
        margin: 0 !important;
        padding: 12mm 10mm !important;
        border: 1px solid var(--ds-ink) !important;
        text-align: center;
    }

    #menu__dessert .menu-cols > * > div {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 1.6mm !important;
        margin: 0 0 7mm !important;
        padding: 0 !important;
        break-inside: avoid;
    }

    #menu__dessert .menu-cols > * > div:last-child {
        margin-bottom: 0 !important;
    }

    #menu__dessert .menu__title,
    #menu__dessert .menu__descr,
    #menu__dessert .menu__price {
        display: block;
        color: var(--ds-ink) !important;
        line-height: 1.4 !important;
        text-align: center;
    }

    #menu__dessert .menu__title {
        font-size: 10.5pt !important;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    #menu__dessert .menu__descr {
        font-size: 10pt !important;
        letter-spacing: .04em;
    }

    #menu__dessert .menu__descr em {
        font-style: italic;
    }

    #menu__dessert .menu__price {
        font-size: 10pt !important;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: none !important;
    }

    #menu__dessert .menu-footer {
        display: block !important;
        box-sizing: border-box !important;
        width: 148mm !important;
        max-width: none !important;
        max-height: 45mm !important;
        margin: 0 !important;
        padding: 9mm 10mm 0 !important;
        border: 0 !important;
        overflow: hidden !important;
        text-align: center;
    }

    #menu__dessert .menu-footer > * {
        display: block !important;
        gap: 0 !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #menu__dessert .menu-footer > * > div {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 1.6mm !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #menu__dessert .menu__highlight {
        display: block;
        margin: 1mm 0 !important;
        padding: 0 !important;
        font-family: var(--ds-font-display) !important;
        font-size: 18pt !important;
        font-weight: 400;
        line-height: 1.15 !important;
        letter-spacing: 0;
        text-transform: none;
        color: var(--ds-ink) !important;
    }
}

@supports (hanging-punctuation: first) {
    @media print and (max-width: 330mm) {
        :is(#menu__vorspeisen, #menu__salad, #menu__main, #menu__dessert) {
            height: 172mm !important;
        }

        :is(#menu__vorspeisen, #menu__salad, #menu__main, #menu__dessert) > * {
            zoom: 0.7071;
        }
    }
}