/* =================================================================
   SPEISEKARTE — Seitenspezifisches Stylesheet
   ================================================================= */

.menu-note{
  font-family:var(--f-body); font-style:italic; font-size:.9rem; color:var(--c-ink-soft);
  max-width:560px; margin:1.4rem auto 0; padding-top:1.2rem; border-top:1px solid var(--c-line);
}

/* -----------------------------------------------------------------
   Sprungmarken-Navigation (sticky)
   ----------------------------------------------------------------- */
.menu-jump{
  position:sticky; top:0; z-index:100;
  background:rgba(251,248,242,.96); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--c-line);
}
.menu-jump-inner{
  display:flex; gap:28px; overflow-x:auto; padding:16px 28px;
  font-family:var(--f-label); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.menu-jump-inner::-webkit-scrollbar{ display:none; }
.menu-jump-inner a{ color:var(--c-ink-soft); transition:color .3s ease; flex-shrink:0; }
.menu-jump-inner a:hover{ color:var(--c-gold); }

/* -----------------------------------------------------------------
   Menü-Räume (Sektionen)
   ----------------------------------------------------------------- */
.menu-room{ padding:64px 0; scroll-margin-top:70px; }
.menu-list{ list-style:none; margin:0; padding:0; max-width:820px; }
.menu-list li{ padding:20px 0; border-bottom:1px solid var(--c-line); }
.menu-list li:last-child{ border-bottom:0; }
.menu-line{ display:flex; align-items:baseline; gap:10px; }
.dish{
  font-family:var(--f-display); font-weight:600; font-size:1.22rem;
  color:var(--c-brown-deep);
}
.dots{
  flex:1; min-width:20px; border-bottom:1px dotted var(--c-gold-dim); transform:translateY(-4px);
}
.price{ font-family:var(--f-label); font-size:1rem; color:var(--c-gold); white-space:nowrap; }
.desc{ margin:.4em 0 0; color:var(--c-ink-soft); font-size:.98rem; }

/* Kategorie-Beschreibung unter der Überschrift */
.category-desc{
  color:var(--c-ink-soft); font-style:italic; font-size:1rem; margin-top:-.6em; margin-bottom:2rem;
}

/* Allergen-Hinweis neben dem Gerichtnamen */
.allergens{
  font-family:var(--f-label); font-size:.68rem; color:var(--c-ink-soft);
  letter-spacing:.04em; margin-left:.5em; white-space:nowrap;
}

/* -----------------------------------------------------------------
   Unterkategorie-Header (z.B. "Caesar Salad" innerhalb Salate)
   ----------------------------------------------------------------- */
.subcategory-header{
  font-family:var(--f-display); font-weight:600; font-size:1.12rem;
  color:var(--c-brown); margin:2rem 0 .4rem; padding-top:1rem;
  border-top:1px solid var(--c-gold-dim);
}
.subcategory-desc{
  color:var(--c-ink-soft); font-style:italic; font-size:.94rem; margin-bottom:.6rem;
}

/* -----------------------------------------------------------------
   Extras-Liste (Pizza-Extras, Beilagen)
   ----------------------------------------------------------------- */
.extras-grid{
  display:grid; grid-template-columns:1fr; gap:14px;
  max-width:820px; margin-top:1.8rem;
}
.extras-row{
  display:flex; gap:12px; align-items:baseline;
  padding:12px 0; border-bottom:1px solid var(--c-line);
}
.extras-row:last-child{ border-bottom:0; }
.extras-price{
  font-family:var(--f-label); font-size:.9rem; color:var(--c-gold);
  white-space:nowrap; min-width:70px;
}
.extras-items{
  font-size:.94rem; color:var(--c-ink-soft); line-height:1.5;
}

/* -----------------------------------------------------------------
   Dressings-Hinweis
   ----------------------------------------------------------------- */
.dressing-note{
  margin-top:1.4rem; padding:16px 20px;
  border-left:2px solid var(--c-gold);
  background:rgba(180,134,63,.06);
  font-size:.94rem; color:var(--c-ink-soft); font-style:italic;
}

/* -----------------------------------------------------------------
   Mittagsmenü — Tages-Tabs
   ----------------------------------------------------------------- */
.mittag-section{
  background:linear-gradient(135deg, rgba(180,134,63,.08) 0%, rgba(241,232,216,.5) 100%);
  border:1px solid var(--c-gold-dim);
  padding:2.5rem 2rem;
  margin-top:1rem;
}
.mittag-zeitraum{
  font-family:var(--f-label); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--c-gold); margin-bottom:1.6rem; text-align:center;
}
.mittag-hinweis{
  font-family:var(--f-body); font-style:italic; font-size:.9rem;
  color:var(--c-ink-soft); text-align:center; margin-bottom:2rem;
}

/* Tabs */
.mittag-tabs{
  display:flex; gap:0; border-bottom:2px solid var(--c-gold-dim);
  margin-bottom:1.8rem; overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.mittag-tabs::-webkit-scrollbar{ display:none; }
.mittag-tab{
  font-family:var(--f-label); font-size:.76rem; letter-spacing:.1em; text-transform:uppercase;
  padding:12px 20px; cursor:pointer; white-space:nowrap;
  color:var(--c-ink-soft); background:transparent; border:none;
  border-bottom:2px solid transparent; margin-bottom:-2px;
  transition:color .3s ease, border-color .3s ease;
}
.mittag-tab:hover{ color:var(--c-gold); }
.mittag-tab.is-active{
  color:var(--c-gold); border-bottom-color:var(--c-gold); font-weight:500;
}

/* Tab-Panels */
.mittag-panel{ display:none; }
.mittag-panel.is-active{ display:block; }
.mittag-datum{
  font-family:var(--f-label); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--c-ink-soft); margin-bottom:1rem;
}
.mittag-gericht{
  display:flex; align-items:baseline; gap:10px;
  padding:14px 0; border-bottom:1px solid var(--c-line);
}
.mittag-gericht:last-child{ border-bottom:0; }
.mittag-label{
  font-family:var(--f-label); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--c-gold); min-width:80px; flex-shrink:0;
}
.mittag-name{
  font-family:var(--f-display); font-weight:600; font-size:1.1rem; color:var(--c-brown-deep);
  flex:1;
}
.mittag-preis{
  font-family:var(--f-label); font-size:.95rem; color:var(--c-gold); white-space:nowrap;
}

/* Fallback / Error */
.mittag-fallback{
  text-align:center; padding:2rem; color:var(--c-ink-soft); font-style:italic;
}

/* -----------------------------------------------------------------
   Mittagsbuffet — Highlight-Box
   ----------------------------------------------------------------- */
.buffet-box{
  background:var(--c-brown-deep); color:var(--c-cream);
  padding:2.8rem 2.2rem; text-align:center;
  position:relative; overflow:hidden;
  margin-top:1rem;
}
.buffet-box::before{
  content:""; position:absolute; inset:6px;
  border:1px solid rgba(217,189,140,.3);
  pointer-events:none;
}
.buffet-tag{
  font-family:var(--f-label); font-size:.74rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--c-gold-light); margin-bottom:.6rem;
}
.buffet-title{
  font-family:var(--f-display); font-weight:700; font-size:clamp(1.6rem,3vw,2.2rem);
  color:var(--c-white); margin-bottom:.3em;
}
.buffet-subtitle{
  font-family:var(--f-display); font-style:italic; font-size:1.15rem;
  color:var(--c-gold-light); margin-bottom:1.2rem;
}
.buffet-desc{
  font-size:.98rem; color:rgba(241,232,216,.78); max-width:480px; margin:0 auto 1.6rem;
}
.buffet-preise{
  display:flex; justify-content:center; gap:3rem; margin-bottom:1.4rem;
  flex-wrap:wrap;
}
.buffet-preis-item{
  text-align:center;
}
.buffet-preis-label{
  font-family:var(--f-label); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--c-gold-light); display:block; margin-bottom:.3em;
}
.buffet-preis-value{
  font-family:var(--f-display); font-weight:700; font-size:1.8rem; color:var(--c-white);
}
.buffet-preis-hint{
  font-family:var(--f-label); font-size:.68rem; color:rgba(241,232,216,.55);
  margin-top:.2em; display:block;
}
.buffet-hinweis{
  font-style:italic; font-size:.88rem; color:rgba(241,232,216,.6);
  margin-top:.8rem;
}
.buffet-zeitraum{
  font-family:var(--f-label); font-size:.7rem; letter-spacing:.12em;
  color:rgba(241,232,216,.45); margin-top:1.4rem;
}
.buffet-hidden{ display:none; }

/* -----------------------------------------------------------------
   Allergen-Legende
   ----------------------------------------------------------------- */
.allergen-legend{
  max-width:820px; margin-top:2rem;
  padding:1.6rem; border:1px solid var(--c-line); background:rgba(251,248,242,.5);
}
.allergen-legend h4{
  font-family:var(--f-label); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--c-gold); margin-bottom:.8rem; font-weight:500;
}
.allergen-legend p{
  font-size:.82rem; color:var(--c-ink-soft); line-height:1.7; margin-bottom:.5em;
}
.allergen-legend p:last-child{ margin-bottom:0; }

/* -----------------------------------------------------------------
   Responsive
   ----------------------------------------------------------------- */
@media (max-width:640px){
  .menu-room{ padding:44px 0; }
  .mittag-section{ padding:1.6rem 1rem; }
  .mittag-tab{ padding:10px 14px; font-size:.7rem; }
  .mittag-gericht{ flex-wrap:wrap; gap:4px; }
  .mittag-label{ min-width:auto; width:100%; }
  .mittag-name{ width:100%; }
  .buffet-box{ padding:2rem 1.4rem; }
  .buffet-preise{ gap:1.6rem; }
  .extras-row{ flex-wrap:wrap; }
  .dish{ font-size:1.1rem; }
}

/* ==========================================================
   HAPPY HOUR SECTION
   ========================================================== */
.happyhour-section {
  padding: 64px 0;
  scroll-margin-top: 70px;
}

.happyhour-box {
  background: linear-gradient(135deg, rgba(180, 134, 63, 0.08) 0%, rgba(251, 248, 242, 0.65) 100%);
  border: 1px solid rgba(217, 189, 140, 0.45);
  box-shadow: 0 8px 30px rgba(52, 36, 26, 0.06);
  padding: 2.5rem 2rem;
  max-width: 820px;
  margin: 0 auto;
}

.happyhour-tabs {
  display: flex;
  justify-content: center;
  gap: 8px;
  border-bottom: 2px solid rgba(217, 189, 140, 0.3);
  margin-bottom: 1.8rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.happyhour-tabs::-webkit-scrollbar { display: none; }

.happyhour-tab {
  font-family: var(--f-label, 'Cinzel', Georgia, serif);
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 12px 18px;
  cursor: pointer;
  white-space: nowrap;
  color: var(--c-ink-soft, #6C6057);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: all 0.3s ease;
}

.happyhour-tab:hover {
  color: var(--c-gold, #C3A266);
}

.happyhour-tab.is-active {
  color: var(--c-brown-deep, #34241A);
  border-bottom-color: var(--c-gold, #C3A266);
  font-weight: 700;
}

.happyhour-panel {
  display: none;
  animation: hhFadeIn 0.35s ease;
}
.happyhour-panel.is-active {
  display: block;
}

@keyframes hhFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.happyhour-zeit {
  font-family: var(--f-label, 'Cinzel', Georgia, serif);
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-gold, #C3A266);
  margin-bottom: 1.4rem;
  text-align: center;
}

.happyhour-item {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(217, 189, 140, 0.2);
}
.happyhour-item:last-child {
  border-bottom: none;
}

.happyhour-item-badge {
  font-family: var(--f-label, 'Cinzel', Georgia, serif);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-gold, #C3A266);
  background: rgba(195, 162, 102, 0.12);
  padding: 3px 8px;
  border-radius: 2px;
  min-width: 80px;
  text-align: center;
  flex-shrink: 0;
}

.happyhour-item-details {
  flex: 1;
}

.happyhour-item-name {
  font-family: var(--f-display, 'Cormorant Garamond', Georgia, serif);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--c-brown-deep, #34241A);
  display: block;
}

.happyhour-item-desc {
  font-size: 0.88rem;
  color: var(--c-ink-soft, #6C6057);
  margin: 3px 0 0;
  font-style: italic;
}

.happyhour-item-price {
  font-family: var(--f-label, 'Cinzel', Georgia, serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--c-gold, #C3A266);
  white-space: nowrap;
}

.happyhour-loading {
  text-align: center;
  font-style: italic;
  color: var(--c-ink-soft, #6C6057);
}

@media (max-width: 640px) {
  .happyhour-box { padding: 1.8rem 1.2rem; }
  .happyhour-tab { padding: 10px 12px; font-size: 0.72rem; }
  .happyhour-item {
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
  }
  .happyhour-item-price {
    align-self: flex-end;
    margin-top: -1.2rem;
  }
}

