/* ═══════════════════════════════════════════════════════════════════════════
   Zimtkoriander Foodstore – Frontend CSS
   Farben: Zimt (warm braun/orange) + Koriander (sattgrün) + Creme
   Mobile-first, zugänglich, modern
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
    --zk-cinnamon:      #c0622a;
    --zk-cinnamon-dark: #9a4d22;
    --zk-cinnamon-light:#e8936a;
    --zk-coriander:     #3a7d44;
    --zk-coriander-dark:#2a5c32;
    --zk-coriander-light:#5aad69;
    --zk-cream:         #fdf6ee;
    --zk-cream-dark:    #f0e4d0;
    --zk-text:          #1a1a1a;
    --zk-text-muted:    #666;
    --zk-border:        #e0d0be;
    --zk-white:         #ffffff;
    --zk-error:         #d32f2f;
    --zk-success:       #2e7d32;
    --zk-shadow:        0 2px 12px rgba(0,0,0,.1);
    --zk-shadow-lg:     0 8px 32px rgba(0,0,0,.15);
    --zk-radius:        12px;
    --zk-radius-sm:     8px;
    --zk-transition:    .2s ease;
    --zk-font:          -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
}

/* ── Reset & Base ────────────────────────────────────────────────────────── */

.zk-foodstore, .zk-checkout-page, .zk-cart-page,
.zk-confirmation-page, .zk-modal, .zk-cart-sidebar {
    font-family: var(--zk-font);
    color: var(--zk-text);
    box-sizing: border-box;
}

.zk-foodstore *, .zk-checkout-page *, .zk-cart-page *,
.zk-confirmation-page *, .zk-modal *, .zk-cart-sidebar * {
    box-sizing: border-box;
}

/* ── Sticky Bar ──────────────────────────────────────────────────────────── */

.zk-sticky-bar {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--zk-cinnamon);
    color: var(--zk-white);
    box-shadow: var(--zk-shadow);
}

.zk-sticky-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding: .75rem 1rem;
}

.zk-restaurant-name {
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: -.02em;
}

.zk-cart-toggle {
    display: flex;
    align-items: center;
    gap: .5rem;
    background: rgba(255,255,255,.15);
    border: 2px solid rgba(255,255,255,.3);
    border-radius: 50px;
    color: var(--zk-white);
    padding: .45rem 1rem;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--zk-transition);
}

.zk-cart-toggle:hover { background: rgba(255,255,255,.25); }

.zk-cart-count {
    background: var(--zk-white);
    color: var(--zk-cinnamon);
    border-radius: 50%;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    font-weight: 700;
}

.zk-cart-count--hidden { display: none; }

@keyframes zkBounce {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.2); }
}
.zk-cart-bounce { animation: zkBounce .4s ease; }

/* ── Kategorie-Nav ───────────────────────────────────────────────────────── */

.zk-cat-nav {
    position: sticky;
    top: 55px;
    z-index: 90;
    background: var(--zk-white);
    border-bottom: 2px solid var(--zk-border);
    display: flex;
    gap: .25rem;
    overflow-x: auto;
    padding: .5rem 1rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.zk-cat-nav::-webkit-scrollbar { display: none; }

.zk-cat-link {
    white-space: nowrap;
    padding: .4rem .9rem;
    border-radius: 50px;
    font-size: .9rem;
    font-weight: 600;
    color: var(--zk-text-muted);
    text-decoration: none;
    transition: var(--zk-transition);
    flex-shrink: 0;
}

.zk-cat-link:hover, .zk-cat-link--active {
    background: var(--zk-cream-dark);
    color: var(--zk-cinnamon);
}

/* ── Produktliste ────────────────────────────────────────────────────────── */

.zk-menu-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem 1rem 4rem;
}

.zk-category { margin-bottom: 3rem; }

.zk-category-title {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--zk-cinnamon-dark);
    margin: 0 0 .25rem;
    padding-bottom: .5rem;
    border-bottom: 3px solid var(--zk-cinnamon-light);
}

.zk-category-desc {
    color: var(--zk-text-muted);
    margin: .25rem 0 1rem;
    font-size: .95rem;
}

.zk-products-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 600px) {
    .zk-products-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 960px) {
    .zk-products-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ── Produktkarte ────────────────────────────────────────────────────────── */

.zk-product-card {
    background: var(--zk-white);
    border: 1px solid var(--zk-border);
    border-radius: var(--zk-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow var(--zk-transition), transform var(--zk-transition);
}

.zk-product-card:hover {
    box-shadow: var(--zk-shadow-lg);
    transform: translateY(-2px);
}

.zk-product-image {
    aspect-ratio: 4/3;
    overflow: hidden;
    background: var(--zk-cream-dark);
}

.zk-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.zk-product-card:hover .zk-product-image img { transform: scale(1.05); }

.zk-product-image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
}

.zk-product-emoji { font-size: 3rem; }

.zk-product-body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.zk-product-badges { display: flex; gap: .25rem; margin-bottom: .25rem; }
.zk-badge { font-size: 1rem; }

.zk-product-name {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 .35rem;
    color: var(--zk-text);
}

.zk-product-desc {
    font-size: .88rem;
    color: var(--zk-text-muted);
    margin: 0 0 auto;
    line-height: 1.4;
    flex: 1;
}

.zk-product-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--zk-border);
}

.zk-product-price {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--zk-cinnamon);
}

/* ── Buttons ─────────────────────────────────────────────────────────────── */

.zk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    padding: .6rem 1.25rem;
    border-radius: 50px;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
    border: 2px solid transparent;
    transition: var(--zk-transition);
    text-decoration: none;
    white-space: nowrap;
}

.zk-btn-primary {
    background: var(--zk-cinnamon);
    color: var(--zk-white);
    border-color: var(--zk-cinnamon);
}

.zk-btn-primary:hover {
    background: var(--zk-cinnamon-dark);
    border-color: var(--zk-cinnamon-dark);
    color: var(--zk-white);
}

.zk-btn-secondary {
    background: var(--zk-coriander);
    color: var(--zk-white);
    border-color: var(--zk-coriander);
}

.zk-btn-secondary:hover {
    background: var(--zk-coriander-dark);
    border-color: var(--zk-coriander-dark);
    color: var(--zk-white);
}

.zk-btn-ghost {
    background: transparent;
    color: var(--zk-text-muted);
    border-color: var(--zk-border);
}

.zk-btn-ghost:hover { border-color: var(--zk-cinnamon); color: var(--zk-cinnamon); }

.zk-btn-add {
    background: var(--zk-cinnamon);
    color: var(--zk-white);
    border: none;
    padding: .5rem 1rem;
    border-radius: 50px;
    font-size: .875rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--zk-transition);
}

.zk-btn-add:hover { background: var(--zk-cinnamon-dark); }
.zk-btn-add--active { background: var(--zk-coriander); }

.zk-btn--disabled { opacity: .5; pointer-events: none; }

.zk-btn-order {
    width: 100%;
    padding: 1rem;
    font-size: 1.1rem;
    border-radius: var(--zk-radius);
}

/* ── Warenkorb Sidebar ───────────────────────────────────────────────────── */

.zk-cart-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 200;
    backdrop-filter: blur(2px);
}

.zk-overlay--visible { display: block; }

.zk-cart-sidebar {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(400px, 100vw);
    background: var(--zk-white);
    box-shadow: var(--zk-shadow-lg);
    z-index: 201;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
}

.zk-cart-sidebar--open { transform: translateX(0); }

.zk-cart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    background: var(--zk-cream);
    border-bottom: 1px solid var(--zk-border);
}

.zk-cart-header h2 { margin: 0; font-size: 1.2rem; }

.zk-cart-close {
    background: none;
    border: none;
    font-size: 1.75rem;
    cursor: pointer;
    line-height: 1;
    color: var(--zk-text-muted);
    padding: 0;
}

.zk-cart-close:hover { color: var(--zk-cinnamon); }

.zk-cart-items {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.5rem;
}

.zk-cart-empty { color: var(--zk-text-muted); text-align: center; padding: 2rem 0; }

.zk-cart-list { list-style: none; margin: 0; padding: 0; }

.zk-cart-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .75rem 0;
    border-bottom: 1px solid var(--zk-border);
}

.zk-cart-item:last-child { border-bottom: none; }

.zk-cart-item-info { flex: 1; }
.zk-cart-item-info strong { display: block; font-size: .95rem; }
.zk-cart-item-info small { display: block; color: var(--zk-text-muted); font-size: .8rem; }

.zk-cart-item-controls {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-shrink: 0;
}

.zk-qty-btn {
    width: 28px;
    height: 28px;
    border: 1px solid var(--zk-border);
    border-radius: 50%;
    background: var(--zk-cream);
    font-size: 1rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--zk-transition);
}

.zk-qty-btn:hover { border-color: var(--zk-cinnamon); color: var(--zk-cinnamon); }

.zk-qty { min-width: 20px; text-align: center; font-weight: 600; }

.zk-item-price { font-weight: 700; color: var(--zk-cinnamon); font-size: .9rem; }

.zk-remove-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    opacity: .5;
    padding: 0;
    transition: var(--zk-transition);
}

.zk-remove-btn:hover { opacity: 1; }

.zk-cart-footer {
    padding: 1.25rem 1.5rem;
    border-top: 2px solid var(--zk-border);
    background: var(--zk-cream);
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.zk-cart-subtotal, .zk-cart-delivery-fee, .zk-cart-total-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .95rem;
}

.zk-cart-total-line { font-size: 1.1rem; border-top: 1px solid var(--zk-border); padding-top: .5rem; }

.zk-min-order-notice {
    background: #fff3e0;
    border: 1px solid #ffcc80;
    border-radius: var(--zk-radius-sm);
    padding: .5rem .75rem;
    font-size: .85rem;
    color: #e65100;
}

.zk-checkout-btn {
    border-radius: var(--zk-radius-sm) !important;
    padding: .85rem 1rem !important;
    text-align: center;
    font-size: 1rem;
}

/* ── Produkt-Modal ───────────────────────────────────────────────────────── */

.zk-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.6);
    z-index: 300;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    backdrop-filter: blur(3px);
}

.zk-modal--open { display: flex; }

.zk-modal {
    background: var(--zk-white);
    border-radius: var(--zk-radius);
    max-width: 520px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    box-shadow: var(--zk-shadow-lg);
    padding: 1.5rem;
    animation: zkModalIn .25s ease;
}

@keyframes zkModalIn {
    from { opacity: 0; transform: scale(.95) translateY(20px); }
    to   { opacity: 1; transform: scale(1)  translateY(0); }
}

.zk-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 1.75rem;
    cursor: pointer;
    color: var(--zk-text-muted);
    line-height: 1;
    padding: 0;
}

.zk-modal-close:hover { color: var(--zk-cinnamon); }

.zk-modal-title { margin: 0 2rem 0 0; font-size: 1.4rem; }
.zk-modal-base-price { color: var(--zk-cinnamon); font-weight: 700; margin: .25rem 0 1rem; }

.zk-modal-fieldset {
    border: 1px solid var(--zk-border);
    border-radius: var(--zk-radius-sm);
    padding: .75rem 1rem;
    margin-bottom: 1rem;
}

.zk-modal-fieldset legend {
    font-weight: 700;
    font-size: .95rem;
    padding: 0 .5rem;
    color: var(--zk-cinnamon-dark);
}

.zk-variant-group, .zk-extras-list { display: flex; flex-direction: column; gap: .5rem; }

.zk-variant-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .6rem .8rem;
    border: 2px solid var(--zk-border);
    border-radius: var(--zk-radius-sm);
    cursor: pointer;
    transition: var(--zk-transition);
}

.zk-variant-card input { position: absolute; opacity: 0; width: 0; }

.zk-variant-card--selected {
    border-color: var(--zk-cinnamon);
    background: #fff8f4;
}

.zk-variant-card:hover { border-color: var(--zk-cinnamon-light); }
.zk-variant-price { font-weight: 700; color: var(--zk-cinnamon); }

.zk-extra-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    cursor: pointer;
    padding: .4rem 0;
}

.zk-extra-item input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; accent-color: var(--zk-cinnamon); }
.zk-extra-name { flex: 1; }
.zk-extra-price { font-weight: 600; color: var(--zk-coriander); }

.zk-modal-footer {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1.25rem;
    flex-wrap: wrap;
}

.zk-modal-qty {
    display: flex;
    align-items: center;
    gap: .5rem;
    border: 2px solid var(--zk-border);
    border-radius: 50px;
    padding: .3rem .75rem;
    font-weight: 700;
    font-size: 1rem;
}

.zk-modal-qty .zk-qty-btn { border: none; background: none; width: 28px; height: 28px; font-size: 1.2rem; }

.zk-modal-add-btn { flex: 1; border-radius: var(--zk-radius-sm) !important; padding: .85rem !important; }

/* ── Checkout ────────────────────────────────────────────────────────────── */

.zk-checkout-page {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    max-width: 1100px;
    margin: 2rem auto;
    padding: 0 1rem 4rem;
}

@media (min-width: 768px) {
    .zk-checkout-page { grid-template-columns: 1fr 380px; }
}

.zk-checkout-page h1 { margin-top: 0; font-size: 1.75rem; color: var(--zk-cinnamon-dark); }

.zk-fieldset {
    border: 1px solid var(--zk-border);
    border-radius: var(--zk-radius);
    padding: 1.25rem;
    margin-bottom: 1.25rem;
}

.zk-fieldset legend {
    font-weight: 700;
    color: var(--zk-cinnamon-dark);
    font-size: 1rem;
    padding: 0 .5rem;
}

.zk-radio-group { display: flex; gap: .75rem; flex-wrap: wrap; }

.zk-radio-card {
    flex: 1;
    min-width: 120px;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .85rem 1rem;
    border: 2px solid var(--zk-border);
    border-radius: var(--zk-radius-sm);
    cursor: pointer;
    transition: var(--zk-transition);
}

.zk-radio-card input { accent-color: var(--zk-cinnamon); }

.zk-radio-card:has(input:checked) {
    border-color: var(--zk-cinnamon);
    background: #fff8f4;
}

.zk-radio-label { font-weight: 600; }

.zk-form-row { display: flex; flex-direction: column; gap: .4rem; margin-bottom: .9rem; }

.zk-form-row label { font-weight: 600; font-size: .9rem; }

.zk-form-row input, .zk-form-row textarea {
    padding: .7rem 1rem;
    border: 2px solid var(--zk-border);
    border-radius: var(--zk-radius-sm);
    font-size: 1rem;
    font-family: var(--zk-font);
    width: 100%;
    transition: border-color var(--zk-transition);
    background: var(--zk-white);
}

.zk-form-row input:focus, .zk-form-row textarea:focus {
    outline: none;
    border-color: var(--zk-cinnamon);
}

.zk-form-row-2col {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: .75rem;
}

.zk-checkout-notice {
    background: #ffebee;
    border: 1px solid #ef9a9a;
    border-radius: var(--zk-radius-sm);
    padding: .75rem 1rem;
    color: var(--zk-error);
    margin-top: .75rem;
    font-size: .9rem;
}

/* Bestellübersicht rechts */
.zk-order-summary {
    background: var(--zk-cream);
    border: 1px solid var(--zk-border);
    border-radius: var(--zk-radius);
    padding: 1.5rem;
    position: sticky;
    top: 80px;
}

.zk-order-summary h2 { margin-top: 0; font-size: 1.2rem; color: var(--zk-cinnamon-dark); }

.zk-co-items { list-style: none; padding: 0; margin: 0 0 1rem; }

.zk-co-items li {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    padding: .4rem 0;
    border-bottom: 1px solid var(--zk-border);
    font-size: .9rem;
}

.zk-co-items li:last-child { border-bottom: none; }

.zk-co-qty { font-weight: 700; color: var(--zk-cinnamon); flex-shrink: 0; }
.zk-co-name { flex: 1; }
.zk-co-price { font-weight: 700; flex-shrink: 0; }

.zk-order-totals { border-top: 2px solid var(--zk-border); padding-top: .75rem; display: flex; flex-direction: column; gap: .4rem; }

.zk-summary-row {
    display: flex;
    justify-content: space-between;
    font-size: .95rem;
}

.zk-summary-total {
    font-size: 1.1rem;
    border-top: 1px solid var(--zk-border);
    padding-top: .5rem;
    margin-top: .25rem;
}

/* ── Bestätigungsseite ───────────────────────────────────────────────────── */

.zk-confirmation-page {
    max-width: 600px;
    margin: 3rem auto;
    padding: 0 1rem;
}

.zk-confirmation-success {
    background: var(--zk-white);
    border: 2px solid var(--zk-coriander);
    border-radius: var(--zk-radius);
    padding: 2.5rem;
    text-align: center;
}

.zk-confirmation-icon { font-size: 4rem; margin-bottom: 1rem; }

.zk-confirmation-success h1 {
    color: var(--zk-coriander-dark);
    margin: 0 0 .5rem;
}

.zk-confirmation-number {
    font-size: 1.15rem;
    margin-bottom: 1rem;
}

.zk-confirmation-number strong {
    color: var(--zk-cinnamon);
    font-size: 1.3rem;
}

/* ── Warenkorb-Seite ─────────────────────────────────────────────────────── */

.zk-cart-page {
    max-width: 800px;
    margin: 2rem auto;
    padding: 0 1rem 4rem;
}

.zk-cart-page h1 { color: var(--zk-cinnamon-dark); }

.zk-cart-page-list { list-style: none; padding: 0; margin: 0 0 1.5rem; }

.zk-cart-page-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .85rem 0;
    border-bottom: 1px solid var(--zk-border);
}

.zk-cpi-info { flex: 1; }
.zk-cpi-info strong { display: block; }
.zk-cpi-info small { color: var(--zk-text-muted); font-size: .85rem; }
.zk-cpi-qty { display: flex; align-items: center; gap: .5rem; font-weight: 600; }
.zk-cpi-price { font-weight: 700; color: var(--zk-cinnamon); }

.zk-summary-box {
    background: var(--zk-cream);
    border: 1px solid var(--zk-border);
    border-radius: var(--zk-radius);
    padding: 1.25rem;
    margin-bottom: 1rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

/* ── Loading ─────────────────────────────────────────────────────────────── */

.zk-loading {
    color: var(--zk-text-muted);
    text-align: center;
    padding: 2rem;
}

/* ── Lieferzonenstatus im Checkout ──────────────────────────────────────── */

.zk-zone-status {
    margin-top: .6rem;
    font-size: .9rem;
    min-height: 1.4rem;
    transition: all .3s ease;
}

.zk-zone-checking { color: var(--zk-text-muted); }

.zk-zone-ok {
    display: inline-block;
    background: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #a5d6a7;
    border-radius: var(--zk-radius-sm);
    padding: .35rem .75rem;
    font-weight: 600;
}

.zk-zone-error {
    display: inline-block;
    background: #ffebee;
    color: #c62828;
    border: 1px solid #ef9a9a;
    border-radius: var(--zk-radius-sm);
    padding: .35rem .75rem;
    font-weight: 600;
}

/* ── body scroll lock ────────────────────────────────────────────────────── */

body.zk-sidebar-open, body.zk-modal-open { overflow: hidden; }

/* ── Responsive Tweaks ───────────────────────────────────────────────────── */

@media (max-width: 480px) {
    .zk-modal { padding: 1rem; }
    .zk-modal-footer { flex-direction: column; }
    .zk-modal-add-btn { width: 100%; }
    .zk-cart-item-controls { flex-wrap: wrap; }
    .zk-form-row-2col { grid-template-columns: 1fr 1fr; }
}

/* ══════════════════════════════════════════════════════════════════════════
   DESKTOP-LAYOUT (≥ 1024 px): Menü links, Warenkorb rechts
   ══════════════════════════════════════════════════════════════════════════ */

@media (min-width: 1024px) {

    /* Warenkorb-Button in der Sticky-Bar ausblenden – Cart ist immer sichtbar */
    .zk-cart-toggle { display: none; }

    /* Zweiteiliges Layout */
    .zk-main-layout {
        display: flex;
        align-items: flex-start;
        max-width: 1400px;
        margin: 0 auto;
        padding: 0 1.5rem;
        gap: 2rem;
    }

    /* Linke Spalte: Kategorienav + Produkte */
    .zk-menu-panel {
        flex: 1;
        min-width: 0;
    }

    /* Kategorienav im linken Panel – sticky relativ zum Viewport */
    .zk-menu-panel .zk-cat-nav {
        position: sticky;
        top: 56px; /* Höhe der sticky-bar */
        z-index: 90;
        margin: 0 -1.5rem;   /* Rand bis zur Panel-Kante */
        padding: .5rem 1.5rem;
    }

    /* Produktliste: kein max-width mehr, das übernimmt .zk-main-layout */
    .zk-menu-panel .zk-menu-content {
        max-width: none;
        padding: 1.5rem 0 4rem;
        margin: 0;
    }

    /* Auf Desktop 2 Spalten im Produktgrid (statt 3) – mehr Platz für Cart */
    .zk-menu-panel .zk-products-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Rechte Spalte: Warenkorb – immer sichtbar, scrollt mit */
    .zk-cart-sidebar {
        /* Mobile-Styles überschreiben */
        position: sticky !important;
        top: 56px;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: 380px;
        flex-shrink: 0;
        align-self: flex-start;
        height: calc(100vh - 56px);
        transform: none !important;     /* kein Slide-Out */
        transition: none !important;
        box-shadow: 0 0 0 1px var(--zk-border), var(--zk-shadow);
        border-radius: var(--zk-radius);
        overflow: hidden;
        z-index: 10;                    /* unterhalb Modal */
        display: flex !important;
        flex-direction: column;
    }

    /* Schließen-Button auf Desktop ausblenden */
    .zk-cart-sidebar .zk-cart-close { display: none; }

    /* Overlay auf Desktop nie anzeigen */
    .zk-cart-overlay { display: none !important; }

    /* body-scroll-lock auf Desktop nicht durch Sidebar auslösen */
    body.zk-sidebar-open { overflow: unset; }
}

@media (min-width: 1280px) {
    /* Auf großen Screens 3 Spalten im Produktgrid */
    .zk-menu-panel .zk-products-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ══════════════════════════════════════════════════════════════════════════
   MODAL: Optionsgruppen (Pflicht & Optional)
   ══════════════════════════════════════════════════════════════════════════ */

.zk-modal-fieldset--required {
    border-color: var(--zk-cinnamon-light);
}

.zk-modal-fieldset--optional {
    border-color: var(--zk-border);
}

/* Fehler-Hervorhebung wenn Pflicht-Gruppe nicht ausgewählt */
.zk-fieldset--error {
    border-color: var(--zk-error) !important;
    background: #fff5f5;
    animation: zkShake .3s ease;
}

.zk-fieldset--error legend {
    color: var(--zk-error) !important;
}

@keyframes zkShake {
    0%, 100% { transform: translateX(0); }
    25%       { transform: translateX(-4px); }
    75%       { transform: translateX(4px); }
}

/* Pflichtfeld-Stern */
.zk-required-star {
    color: var(--zk-error);
    font-weight: 700;
    margin-left: .15rem;
}

/* Optional-Tag */
.zk-optional-tag {
    color: var(--zk-text-muted);
    font-weight: 400;
    font-size: .8rem;
    margin-left: .25rem;
}

/* Optionen-Liste */
.zk-group-options {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin-top: .5rem;
}

/* Einzelne Option (Radio oder Checkbox) */
.zk-option-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .55rem .75rem;
    border: 2px solid var(--zk-border);
    border-radius: var(--zk-radius-sm);
    cursor: pointer;
    transition: var(--zk-transition);
    user-select: none;
}

.zk-option-item:hover {
    border-color: var(--zk-cinnamon-light);
    background: #fffaf6;
}

.zk-option-item--selected {
    border-color: var(--zk-cinnamon);
    background: #fff8f4;
}

.zk-option-item input[type="radio"],
.zk-option-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--zk-cinnamon);
    flex-shrink: 0;
}

.zk-option-name { flex: 1; font-size: .9rem; }

.zk-option-price {
    font-weight: 700;
    color: var(--zk-coriander);
    font-size: .875rem;
    white-space: nowrap;
}

/* Mengen-Stepper innerhalb einer Option (allow_quantity) */
.zk-option-qty-wrap {
    display: flex;
    align-items: center;
    gap: .3rem;
    background: var(--zk-cream-dark);
    border-radius: 50px;
    padding: .1rem .4rem;
    margin-left: .5rem;
}

.zk-option-qty-btn {
    background: none;
    border: none;
    font-size: .95rem;
    cursor: pointer;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: var(--zk-transition);
    color: var(--zk-cinnamon-dark);
    font-weight: 700;
}

.zk-option-qty-btn:hover { background: var(--zk-cinnamon-light); color: var(--zk-white); }

.zk-option-qty-val {
    min-width: 18px;
    text-align: center;
    font-weight: 700;
    font-size: .875rem;
}

/* Cart extras label */
.zk-cart-extras { color: var(--zk-text-muted); font-size: .8rem; margin-top: .1rem; }
