/* ============================================================
   Grill Point Amelsbüren · Webdesign mit ❤ bei geniuz.net
   Look & Feel der gedruckten Speisekarte:
   Kohle-Schwarz, Flammen-Orange, Pacifico-Script, Ubuntu
   ============================================================ */

:root{
  --bg:        #0c0b09;
  --bg-soft:   #14110d;
  --panel:     #1a1611;
  --panel-2:   #211b14;
  --line:      #2c251c;
  --orange:    #f7941d;
  --orange-2:  #ee5f24;
  --red:       #e8452a;
  --flame:     linear-gradient(100deg,#f7a31d 0%,#f07c1e 45%,#e8452a 100%);
  --text:      #f4ede3;
  --muted:     #b3a797;
  --muted-2:   #8d8273;
  --shadow:    0 18px 50px rgba(0,0,0,.55);
  --radius:    14px;
  --font-script:'Pacifico',cursive;
  --font-body: 'Ubuntu',system-ui,-apple-system,'Segoe UI',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}
a{color:var(--orange);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:4px}

.container{width:min(1120px,92%);margin-inline:auto}

/* ---------- Signatur: oranger Hairline-Divider wie auf der Karte ---------- */
.rule{
  height:3px;border:0;border-radius:99px;
  background:var(--flame);
  width:120px;margin:14px 0 0;
}
.rule.center{margin-inline:auto}

/* ---------- Holzlamellen-Motiv vom Flyer ---------- */
.wood{
  background:
    repeating-linear-gradient(90deg,
      #6e4f33 0px, #7d5b3b 7px, #8a6745 13px, #5d422a 15px, #100d0a 15px, #100d0a 21px);
}

/* ============================================================
   Header
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(12,11,9,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header .container{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:.65rem 0;
}
.brand img{height:44px;width:auto}
.main-nav{display:flex;gap:1.6rem;align-items:center}
.main-nav a{
  color:var(--text);font-weight:500;font-size:.95rem;
  letter-spacing:.02em;
}
.main-nav a:not(.btn-call):not(.nav-call):hover{color:var(--orange);text-decoration:none}
.main-nav a.btn-call:hover{color:#fff;text-decoration:none}

.btn-call{
  display:inline-flex;align-items:center;gap:.55rem;
  background:var(--flame);
  color:#fff;font-weight:700;
  padding:.62rem 1.25rem;border-radius:99px;
  box-shadow:0 6px 18px rgba(238,95,36,.35);
  transition:transform .15s ease, box-shadow .15s ease;
  white-space:nowrap;
}
.btn-call:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(238,95,36,.45);text-decoration:none;color:#fff}
.btn-call svg{flex:none}
.nav-call{display:none}

/* Burger (mobil) */
.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;padding:.4rem;
}
.nav-toggle span{
  display:block;width:26px;height:3px;border-radius:2px;
  background:var(--text);margin:5px 0;transition:transform .25s,opacity .25s;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ============================================================
   Hero – Döner großflächig im Hintergrund, dunkles Overlay
   ============================================================ */
.hero{
  position:relative;overflow:hidden;
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background-size:cover;
  background-position:center 38%;
  transform:scale(1.04);
  animation:heroDrift 26s ease-in-out infinite alternate;
}
@keyframes heroDrift{
  from{transform:scale(1.04) translateX(0)}
  to{transform:scale(1.1) translateX(-1.5%)}
}
.hero-bg::after{ /* schwarzes Overlay + Lesbarkeits-Verlauf von links */
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(8,7,5,.94) 0%, rgba(8,7,5,.82) 38%, rgba(8,7,5,.45) 70%, rgba(8,7,5,.55) 100%),
    linear-gradient(180deg, rgba(8,7,5,.55) 0%, transparent 30%, transparent 60%, rgba(12,11,9,.92) 100%);
}
.hero::before{ /* schmales Holzlamellen-Band links wie auf dem Flyer */
  content:"";position:absolute;inset:0 auto 0 0;width:56px;z-index:2;
  background:
    repeating-linear-gradient(90deg,
      #6e4f33 0px,#7d5b3b 7px,#8a6745 13px,#5d422a 15px,#0c0b09 15px,#0c0b09 21px);
  opacity:.9;
  box-shadow:8px 0 24px rgba(0,0,0,.5);
  mask-image:linear-gradient(180deg,#000 70%,transparent);
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);
}
.hero::after{ /* oranger Flammen-Saum unten, Zitat der Karten-Divider */
  content:"";position:absolute;left:0;right:0;bottom:0;height:4px;z-index:3;
  background:var(--flame);
}
.hero .container{
  position:relative;z-index:2;
  min-height:min(82vh,820px);
  display:flex;flex-direction:column;justify-content:center;
  padding:5rem 0 5.5rem;
  max-width:1120px;
}
.hero-inner{max-width:620px}
.hero-logo{width:min(440px,90%);height:auto;margin-bottom:1.5rem;filter:drop-shadow(0 10px 30px rgba(0,0,0,.6))}
.hero h1{
  color:var(--text);line-height:1.45;
  text-shadow:0 2px 18px rgba(0,0,0,.7);
}
.hero h1 .h1-kw{
  display:block;
  font-family:var(--font-script);font-weight:400;
  font-size:clamp(1.5rem,3.2vw,2.2rem);
}
.hero h1 .h1-loc{
  display:block;margin-top:.4rem;
  font-family:var(--font-body);font-weight:600;
  font-size:clamp(.98rem,1.9vw,1.18rem);
  color:#e7ddd0;letter-spacing:.01em;
}
.hero p.claim{
  margin-top:.9rem;color:#d8cfc2;max-width:46ch;font-size:1.05rem;
  text-shadow:0 1px 10px rgba(0,0,0,.7);
}
.hero-phone{
  margin-top:2rem;
  display:inline-flex;align-items:center;gap:.9rem;
  background:var(--flame);
  border-radius:14px;
  padding:.9rem 1.6rem;
  color:#fff;font-weight:700;font-size:clamp(1.25rem,2.6vw,1.7rem);
  letter-spacing:.04em;
  box-shadow:0 14px 34px rgba(238,95,36,.35);
  transition:transform .15s ease;
}
.hero-phone:hover{transform:translateY(-2px);text-decoration:none;color:#fff}
.hero-phone small{
  display:block;font-size:.72rem;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;opacity:.92;
}
.hero-note{margin-top:.8rem;color:#bfb4a5;font-size:.9rem;text-shadow:0 1px 8px rgba(0,0,0,.7)}

/* ============================================================
   Sektionen
   ============================================================ */
section{padding:4.5rem 0}
.section-head{margin-bottom:2.4rem}
.section-head.center{text-align:center}
.eyebrow{
  color:var(--orange);font-size:.82rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
}
h2.script{
  font-family:var(--font-script);font-weight:400;
  font-size:clamp(2rem,4.4vw,2.9rem);
  margin-top:.35rem;
}
.section-head p.sub{color:var(--muted);margin-top:.8rem;max-width:60ch}
.section-head.center p.sub{margin-inline:auto}

/* ---------- Über uns / Highlights ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.card{
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;
  color:inherit;text-decoration:none;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
a.card:hover{
  transform:translateY(-4px);
  border-color:rgba(247,148,29,.55);
  box-shadow:0 16px 38px rgba(0,0,0,.45);
  text-decoration:none;color:inherit;
}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .35s ease}
a.card:hover img{transform:scale(1.045)}
.card .card-body{padding:1.25rem 1.35rem 1.5rem;display:flex;flex-direction:column;flex:1}
.card h3{
  font-family:var(--font-script);font-weight:400;font-size:1.45rem;
  margin-bottom:.4rem;
}
.card p{color:var(--muted);font-size:.95rem}

/* ============================================================
   Speisekarte
   ============================================================ */
.menu-section{
  background:
    radial-gradient(800px 400px at 110% 0%, rgba(238,95,36,.10), transparent 55%),
    var(--bg-soft);
  border-block:1px solid var(--line);
}

.menu-tabs{
  position:sticky;top:var(--header-h,64px);z-index:40;
  display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;
  margin-bottom:2.4rem;
  padding:.7rem .8rem;
  background:rgba(18,15,11,.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}

/* Scroll-Ziele unterhalb von Header + Sticky-Tabs einrasten lassen */
#speisekarte{scroll-margin-top:var(--header-h,64px)}
.menu-group{scroll-margin-top:calc(var(--header-h,64px) + var(--tabs-h,56px) + 1rem)}
.menu-panel{scroll-margin-top:calc(var(--header-h,64px) + var(--tabs-h,56px) + .5rem)}
.menu-tab{
  flex:0 0 auto;white-space:nowrap;
  background:var(--panel);border:1px solid var(--line);color:var(--muted);
  font-family:var(--font-body);font-weight:600;font-size:.95rem;
  padding:.6rem 1.15rem;border-radius:99px;cursor:pointer;
  transition:color .15s,border-color .15s,background .15s;
}
.menu-tab:hover{color:var(--text);border-color:var(--orange)}
.menu-tab[aria-selected="true"]{
  background:var(--flame);border-color:transparent;color:#fff;
  box-shadow:0 6px 16px rgba(238,95,36,.3);
}

.menu-panel{display:none}
.menu-panel.active{display:block;animation:fadeUp .3s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.menu-group{margin-bottom:2.6rem}
.menu-group:last-child{margin-bottom:0}
.menu-group > h3{
  font-family:var(--font-script);font-weight:400;
  font-size:1.7rem;color:var(--text);
}
.menu-group > .group-note{
  color:var(--muted-2);font-size:.9rem;margin-top:.15rem;
}
.menu-group > .rule{width:90px;margin-top:.65rem;margin-bottom:1.3rem}

.menu-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.4rem 2.6rem}
.menu-item{
  display:flex;align-items:baseline;gap:.6rem;
  padding:.55rem 0;border-bottom:1px dashed rgba(179,167,151,.18);
}
.menu-item .num{
  flex:none;color:var(--orange);font-weight:700;font-size:.85rem;min-width:1.7em;
}
.menu-item .name{font-weight:600}
.menu-item .desc{
  display:block;color:var(--muted-2);font-weight:400;font-size:.88rem;line-height:1.45;
}
.menu-item .dots{
  flex:1;border-bottom:2px dotted rgba(179,167,151,.3);
  transform:translateY(-4px);min-width:18px;
}
.menu-item .price{
  flex:none;font-weight:700;color:var(--orange);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.menu-item .price .p2{margin-left:.9em}
.price-cols{
  display:flex;justify-content:flex-end;gap:1.2em;
  color:var(--muted-2);font-size:.8rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;
  padding:0 0 .3rem;
}

/* Menü-Nummern (M1–M12) im Script-Stil der Karte */
.menu-item .mnum{
  flex:none;font-family:var(--font-script);color:var(--text);
  font-size:1.15rem;min-width:2.2em;
  -webkit-text-stroke:.5px var(--orange);
}

/* Pizza-Größen-Toggle – klebt als eigene Leiste direkt unter den Kategorien */
.size-bar{
  position:sticky;
  top:calc(var(--header-h,64px) + var(--tabs-h,56px));
  z-index:35;
  display:flex;justify-content:center;
  margin:0 0 1.5rem;
  padding:.55rem 0 .65rem;
  background:rgba(20,17,13,.94);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.size-toggle{
  display:inline-flex;background:var(--panel);border:1px solid var(--line);
  border-radius:99px;padding:.3rem;gap:.3rem;
}
.size-toggle button{
  border:0;background:transparent;color:var(--muted);cursor:pointer;
  font-family:var(--font-body);font-weight:700;font-size:.92rem;
  padding:.5rem 1.2rem;border-radius:99px;transition:background .15s,color .15s;
}
.size-toggle button[aria-pressed="true"]{background:var(--flame);color:#fff}

.menu-hint{
  margin-top:2.2rem;text-align:center;color:var(--muted-2);font-size:.9rem;
}
.menu-hint a{font-weight:600}

/* ============================================================
   Bewertungen – Google-Reviews-Laufband (eine Reihe)
   ============================================================ */
.reviews-section{
  background:
    radial-gradient(820px 420px at -8% 0%, rgba(238,95,36,.10), transparent 55%),
    var(--bg-soft);
  border-block:1px solid var(--line);
  overflow:hidden;
}

/* Google-Kopfzeile mit Gesamtbewertung */
.rv-head{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:1rem 1.35rem;margin-bottom:2.2rem;
}
.rv-head-l{display:flex;align-items:center;gap:.85rem}
.rv-brand{color:var(--text);font-weight:500;font-size:1rem}
.rv-rate{display:flex;align-items:center;gap:.55rem;margin-top:.15rem}
.rv-rate strong{color:var(--text);font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums}
.rv-count{
  color:var(--orange);font-size:.74rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;
  background:rgba(247,148,29,.14);border-radius:99px;padding:.12rem .6rem;
}
.rv-write{
  display:inline-flex;align-items:center;gap:.5rem;flex:none;
  background:var(--flame);color:#fff;font-weight:700;font-size:.92rem;
  padding:.62rem 1.2rem;border-radius:99px;white-space:nowrap;
  box-shadow:0 6px 18px rgba(238,95,36,.35);
  transition:transform .15s ease, box-shadow .15s ease;
}
.rv-write:hover{color:#fff;text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 24px rgba(238,95,36,.45)}
.rv-write svg{flex:none}

/* Laufbänder – volle Breite, weiche Ränder */
.rv-marquee{
  overflow:hidden;
  -webkit-mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.rv-track{display:flex;gap:1.1rem;width:max-content;padding:.55rem .55rem}
.rv-track.is-ready.rv-track--left{animation:rvLeft 120s linear infinite}
.rv-marquee:hover .rv-track{animation-play-state:paused}
@keyframes rvLeft{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Einzelne Bewertungskarte */
.rv-card{
  flex:0 0 322px;width:322px;margin:0;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.1rem 1.25rem 1.2rem;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
}
.rv-card-top{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}
.rv-av{
  flex:none;width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;color:#fff;font-weight:700;font-size:1.15rem;
}
.rv-name{font-weight:600;color:var(--text);font-size:1rem;line-height:1.2;margin-bottom:.22rem}
.rv-glogo{margin-left:auto;flex:none;align-self:flex-start}
.rv-stars,.rv-glogo-lg{flex:none}
.rv-stars{
  position:relative;display:inline-block;line-height:1;
  font-size:.95rem;letter-spacing:1.5px;color:#3a3228;white-space:nowrap;
}
.rv-stars i{
  position:absolute;left:0;top:0;overflow:hidden;
  width:var(--rate,100%);color:var(--orange);font-style:normal;
}
.rv-text{
  color:var(--muted);font-size:.95rem;line-height:1.55;margin:0;
  display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;
}

@media (prefers-reduced-motion:reduce){
  .rv-track{animation:none!important}
}
@media (max-width:720px){
  .rv-card{flex-basis:280px;width:280px}
  .rv-head{padding:.9rem 1rem}
}

/* ============================================================
   Öffnungszeiten – Flyer-Optik
   ============================================================ */
.hours-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;
}
.hours-card{
  position:relative;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:2.2rem 2.4rem;box-shadow:var(--shadow);overflow:hidden;
}
.hours-card::before{ /* Lamellen-Streifen links */
  content:"";position:absolute;inset:0 auto 0 0;width:14px;
  background:var(--flame);
}
.hours-table{width:100%;border-collapse:collapse}
.hours-table th,.hours-table td{
  text-align:left;padding:.7rem 0;border-bottom:1px dashed rgba(179,167,151,.18);
  font-size:1.02rem;
}
.hours-table tr:last-child th,.hours-table tr:last-child td{border-bottom:0}
.hours-table th{font-weight:700;color:var(--text)}
.hours-table td{text-align:right;color:var(--muted)}
.hours-table .closed td{color:var(--red);font-weight:700}
.today-badge{
  display:inline-block;background:rgba(247,148,29,.15);color:var(--orange);
  font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  border-radius:99px;padding:.15rem .6rem;margin-left:.5rem;vertical-align:middle;
}

/* ---------- Live-Öffnungsstatus (grün geöffnet / rot geschlossen) ---------- */
.open-status{
  display:inline-flex;align-items:center;gap:.55rem;
  background:var(--panel);border:1px solid var(--line);
  border-radius:99px;padding:.5rem .95rem;
  font-size:.96rem;line-height:1.2;
}
.open-status:empty{display:none} /* bis JS den Status berechnet hat */
.open-status .os-dot{
  width:.64rem;height:.64rem;border-radius:50%;flex:none;background:var(--muted-2);
}
.open-status .os-text strong{color:var(--text);font-weight:700}
.open-status .os-sub{color:var(--muted)}
.open-status.is-open .os-dot{
  background:#35d07f;box-shadow:0 0 0 4px rgba(53,208,127,.18);
  animation:osPulse 2.4s ease-in-out infinite;
}
.open-status.is-open .os-text strong{color:#46d98a}
.open-status.is-closed .os-dot{background:var(--red);box-shadow:0 0 0 4px rgba(232,69,42,.16)}
.open-status.is-closed .os-text strong{color:#f0795f}
@keyframes osPulse{
  0%,100%{box-shadow:0 0 0 4px rgba(53,208,127,.18)}
  50%{box-shadow:0 0 0 7px rgba(53,208,127,.03)}
}
/* Hero-Variante: auf dem dunklen Bild leicht abgesetzt */
.hero .open-status{
  margin-top:1.1rem;
  display:flex;width:fit-content; /* eigene Zeile unter dem Telefon-Button (auch Desktop) */
  background:rgba(12,11,9,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border-color:rgba(255,255,255,.14);
}

/* ============================================================
   Kontakt / Anfahrt
   ============================================================ */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem;align-items:stretch}
.contact-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:2.2rem 2.4rem;display:flex;flex-direction:column;gap:1.4rem;
}
.contact-row{display:flex;gap:1rem;align-items:flex-start}
.contact-row .ico{
  flex:none;width:42px;height:42px;border-radius:12px;
  background:var(--flame);display:grid;place-items:center;color:#fff;
}
.contact-row h3{font-size:1rem;font-weight:700;margin-bottom:.15rem}
.contact-row p{color:var(--muted);font-size:.98rem}
.map-frame{
  display:flex;flex-direction:column;
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  min-height:380px;box-shadow:var(--shadow);
}
.map-frame iframe{width:100%;flex:1;min-height:300px;border:0;display:block;filter:grayscale(.25) contrast(1.05)}
.map-bar{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem 1rem;
  padding:.85rem 1.1rem;background:var(--panel);border-top:1px solid var(--line);
}
.map-addr{display:flex;flex-direction:column;line-height:1.35;color:var(--muted);font-size:.92rem;margin:0}
.map-addr strong{color:var(--text);font-weight:700;font-size:1rem}
.map-route{
  display:inline-flex;align-items:center;gap:.5rem;flex:none;
  background:var(--flame);color:#fff;font-weight:700;font-size:.92rem;
  padding:.6rem 1.05rem;border-radius:99px;white-space:nowrap;
  box-shadow:0 6px 18px rgba(238,95,36,.35);
  transition:transform .15s ease, box-shadow .15s ease;
}
.map-route:hover{color:#fff;text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 24px rgba(238,95,36,.45)}

/* ============================================================
   Footer
   ============================================================ */
.site-footer{
  border-top:1px solid var(--line);
  background:#0a0908;
  padding:3rem 0 2rem;
}
.footer-grid{
  display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2.5rem;align-items:start;
}
.site-footer img.flogo{height:52px;width:auto;margin-bottom:1rem}
.site-footer p,.site-footer li{color:var(--muted-2);font-size:.92rem}
.site-footer h4{
  font-size:.8rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.9rem;
}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:.45rem}
.site-footer a{color:var(--muted)}
.site-footer a:hover{color:var(--orange)}
.footer-bottom{
  margin-top:2.5rem;padding-top:1.4rem;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  color:var(--muted-2);font-size:.85rem;
}
.footer-bottom .heart{color:var(--red)}

/* ============================================================
   Mobiler Anruf-FAB
   ============================================================ */
.call-fab{
  position:fixed;right:1.1rem;bottom:1.1rem;z-index:70;
  display:none;align-items:center;justify-content:center;
  width:60px;height:60px;border-radius:50%;
  background:var(--flame);color:#fff;
  box-shadow:0 12px 28px rgba(238,95,36,.5);
}
.call-fab:hover{text-decoration:none}

/* ============================================================
   Unterseiten (Impressum / Datenschutz)
   ============================================================ */
.legal{padding:4rem 0;min-height:60vh}
.legal h1{
  font-family:var(--font-script);font-weight:400;
  font-size:clamp(2rem,4vw,2.7rem);margin-bottom:2rem;
}
.legal h2{font-size:1.2rem;margin:2.2rem 0 .7rem}
.legal h3{font-size:1.02rem;margin:1.5rem 0 .5rem}
.legal p,.legal li{color:var(--muted);font-size:.97rem;margin-bottom:.7rem}
.legal ul{padding-left:1.3rem}
.legal .placeholder{
  background:rgba(247,148,29,.12);border:1px dashed var(--orange);
  border-radius:8px;padding:.15rem .5rem;color:var(--orange);font-weight:600;
}

/* ============================================================
   404 – Seite nicht gefunden
   ============================================================ */
.notfound{
  min-height:68vh;display:grid;place-items:center;text-align:center;
  padding:5rem 0;
  background:
    radial-gradient(720px 360px at 50% 0%, rgba(238,95,36,.12), transparent 62%),
    var(--bg-soft);
  border-bottom:1px solid var(--line);
}
.notfound .nf-code{
  font-family:var(--font-script);line-height:1;
  font-size:clamp(4.5rem,16vw,9rem);
  background:var(--flame);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:var(--orange);
  filter:drop-shadow(0 12px 30px rgba(238,95,36,.35));
}
.notfound h1{
  font-family:var(--font-script);font-weight:400;
  font-size:clamp(1.6rem,4vw,2.4rem);margin:.4rem 0 1rem;color:var(--text);
}
.notfound .nf-text{color:var(--muted);max-width:52ch;margin:0 auto 2rem}
.nf-actions{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-bottom:2.2rem}
.nf-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.82rem 1.7rem;border-radius:99px;font-weight:700;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s, color .15s;
}
.nf-btn.primary{background:var(--flame);color:#fff;box-shadow:0 8px 22px rgba(238,95,36,.35)}
.nf-btn.primary:hover{color:#fff;text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 28px rgba(238,95,36,.45)}
.nf-btn.ghost{background:var(--panel);border:1px solid var(--line);color:var(--text)}
.nf-btn.ghost:hover{border-color:var(--orange);color:var(--orange);text-decoration:none}
.notfound .hero-phone{margin-top:0}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:980px){
  .hero .container{min-height:74vh;padding:3.6rem 0 4rem}
  .cards{grid-template-columns:1fr 1fr}
  .menu-list{grid-template-columns:1fr}
  .hours-wrap,.contact-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .hero::before{width:26px}
  .hero-bg{background-position:68% 38%}
  .menu-tabs{
    /* bleibt sticky – auf mehrere Zeilen umgebrochen, damit alle Kategorien sichtbar sind */
    flex-wrap:wrap;justify-content:center;
    gap:.38rem;
    padding:.55rem .6rem;
    border-radius:14px;
  }
  .menu-tab{
    font-size:.82rem;
    padding:.42rem .78rem;
  }
  .main-nav{
    position:fixed;inset:64px 0 auto 0;
    background:rgba(12,11,9,.98);border-bottom:1px solid var(--line);
    flex-direction:column;align-items:flex-start;
    padding:1.4rem 6%;gap:1.1rem;
    transform:translateY(calc(-100% - 70px));transition:transform .28s ease;
  }
  .main-nav.open{transform:none}
  .main-nav .btn-call{display:none}
  .main-nav .nav-call{
    display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
    align-self:stretch;margin-top:.5rem;
    background:var(--flame);color:#fff;font-weight:700;
    padding:.75rem 1.2rem;border-radius:99px;
    box-shadow:0 6px 18px rgba(238,95,36,.35);
  }
  .nav-toggle{display:block}
  .cards{grid-template-columns:1fr}
  .call-fab{display:flex}
  section{padding:3.2rem 0}
  .hours-card,.contact-card{padding:1.7rem 1.5rem}
  .footer-grid{grid-template-columns:1fr}
  .map-route{width:100%;justify-content:center;padding:.85rem 1.1rem;font-size:1rem}
}
