:root{
  --navy:#0f2746; --gold:#c6a15a; --bg:#f6f8fb; --card:#fff;
  --text:#1f2a37; --muted:#55657e; --line:rgba(15,39,70,.14);
  --shadow:0 14px 30px rgba(15,39,70,.16);
}
*{box-sizing:border-box}
.menu-page{background:var(--bg)}

/* HERO */
.hero-section{position:relative;min-height:420px}
.hero-background{position:absolute;inset:0}
.hero-image{width:100%;height:100%;object-fit:cover;object-position:center 46%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.55))}
.hero-content{position:relative;display:flex;justify-content:center;padding-top:88px}
.hero-text{background:rgba(255,255,255,.94);border:1px solid rgba(198,161,90,.5);border-radius:20px;padding:28px 30px;text-align:center;width:min(980px,92vw);box-shadow:0 24px 60px rgba(0,0,0,.20)}
.hero-tagline{display:block;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--navy)}
.hero-title{margin:.2rem 0 0;color:var(--navy);font-weight:900;letter-spacing:.2px;font-size:clamp(2rem,4vw,3rem)}
.hero-description{color:var(--muted)}
.hero-stats{display:flex;gap:22px;justify-content:center;margin-top:.6rem}
.stat-number{font-weight:900;color:var(--navy)} .stat-label{color:var(--muted)}

/* KATEGORIEN */
.menu-categories{padding:1.8rem 0}
.container{max-width:1180px;margin-inline:auto;padding:0 14px}
.categories-wrapper h2{color:var(--navy);margin:0 0 .8rem}
.categories-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.category-btn{appearance:none;cursor:pointer;border:1px solid var(--line);background:linear-gradient(180deg,#fff,#eef3f8);color:var(--navy);padding:.55rem 1rem;border-radius:999px;font-weight:800}
.category-btn:hover,.category-btn.active{border-color:var(--gold);box-shadow:0 8px 18px rgba(198,161,90,.28)}
.show-more-wrapper{margin-top:.8rem}
.show-more-btn{appearance:none;border:1px solid var(--line);background:#fff;color:var(--navy);padding:.55rem 1rem;border-radius:10px;cursor:pointer}

/* LAYOUT */
.menu-section{padding:1rem 0 2rem}
.menu-layout{display:grid;grid-template-columns:2fr 1fr;gap:16px}
@media (max-width:1080px){.menu-layout{grid-template-columns:1fr}}
.menu-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}

/* Karten */
.menu-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}
.menu-card:focus{outline:3px solid rgba(198,161,90,.55);outline-offset:2px}
.menu-card .title{margin:0 0 .25rem;color:var(--text)}
.menu-card .desc{margin:0 0 .35rem;color:var(--muted);min-height:2.1em}
.menu-card .meta{display:flex;justify-content:space-between;align-items:center;gap:10px}
.menu-card .price{font-weight:900;color:var(--navy)}
.badge-v{border:1px solid rgba(30,155,100,.4);background:linear-gradient(180deg,#e7f5e7,#dbefdb);padding:.1rem .4rem;border-radius:8px;font-size:.85rem}
.badge-al{display:inline-flex;gap:.2rem;flex-wrap:wrap;margin-left:auto}
.badge-chip{border:1px solid rgba(15,39,70,.18);background:linear-gradient(180deg,#fff,#f3f6f9);border-radius:8px;padding:.05rem .35rem;font-size:.8rem;color:var(--navy)}

/* RECHTES PANEL */
.right-panel{position:sticky;top:86px;align-self:start;display:flex;flex-direction:column;gap:12px}
.infobox{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}
.ibox-head{display:flex;gap:.7rem;align-items:flex-start}
.ibox-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(180deg,#eef3f8,#e6edf6);border:1px solid #d6e2f7;color:var(--navy);font-weight:800}
.ibox-title{margin:.1rem 0;color:var(--navy)} .ibox-sub{margin:0;color:var(--muted)}
.ibox-list{margin:.5rem 0 0;padding-left:1.1rem;color:var(--muted)}
.ibox-list li{margin:.18rem 0}

/* Detailpanel inkl. Tabs */
.menu-detail-panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow);min-height:260px}
.detail-placeholder{display:grid;place-items:center;text-align:center;color:var(--muted);min-height:240px}
.detail-head{margin-bottom:.6rem}
.detail-title{margin:.2rem 0;color:var(--navy)}
.detail-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.4rem 0 .6rem}
.detail-tab{border:1px solid var(--line);background:#fff;color:var(--navy);padding:.35rem .7rem;border-radius:999px;font-weight:700}
.detail-tab.active,.detail-tab:hover{border-color:var(--gold);box-shadow:0 6px 14px rgba(198,161,90,.25)}
.detail-body{color:var(--text)}
.detail-body p{margin:.2rem 0}
.detail-section{display:none}
.detail-section.active{display:block}
.allergen-note{margin-top:.5rem;color:var(--muted);font-size:.92rem}
