/* ============================================================
   RHEIN DÖNER — mobile customer site
   Same street-food brand as the TV boards, rebuilt as a real
   responsive document (phone-first). Reads menu from data.js.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Bebas+Neue&family=Oswald:wght@400;500;600;700&family=Barlow:ital,wght@0,400;0,500;0,600;1,500&display=swap');

:root {
  --bg:      #0c0b08;
  --bg-2:    #15120c;
  --ink:     #f7f1e1;
  --muted:   #a99d82;
  --muted-2: #6f6650;
  --accent:  #ffc21e;
  --accent-d:#e69a00;
  --green:   #4cae6a;
  --red:     #e2402b;
  --line:    rgba(255,194,30,.18);
  --card:    rgba(255,255,255,.025);

  --display: "Anton", system-ui, sans-serif;
  --head:    "Bebas Neue", system-ui, sans-serif;
  --name:    "Oswald", system-ui, sans-serif;
  --body:    "Barlow", system-ui, -apple-system, sans-serif;

  --head-h:  56px;   /* sticky header height */
  --nav-h:   50px;   /* sticky category nav height */
  --maxw:    680px;  /* readable column on large screens */
}

* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }

html { scroll-behavior:smooth; }

body {
  font-family:var(--body);
  color:var(--ink);
  background:var(--bg);
  background-image:
    radial-gradient(120% 60% at 80% -8%, #241d12 0%, transparent 52%),
    radial-gradient(90% 50% at 0% 8%, #1a2418 0%, transparent 46%),
    linear-gradient(170deg, var(--bg-2) 0%, var(--bg) 48%, #070603 100%);
  background-attachment:fixed;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img { display:block; max-width:100%; }
a { color:inherit; }

/* film grain — kept very subtle on mobile */
.grain {
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ============================================================
   HEADER
   ============================================================ */
.site-head {
  position:sticky; top:0; z-index:40;
  height:var(--head-h);
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:0 16px;
  background:rgba(10,9,6,.82);
  backdrop-filter:blur(12px) saturate(1.2);
  -webkit-backdrop-filter:blur(12px) saturate(1.2);
  border-bottom:1px solid var(--line);
}
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; min-width:0; }
.flame { width:30px; height:30px; flex:0 0 auto; display:grid; place-items:center; }
.flame svg { width:100%; height:100%; filter:drop-shadow(0 0 8px rgba(255,150,30,.6)); animation:flicker 2.6s ease-in-out infinite; }
@keyframes flicker { 0%,100%{opacity:1;transform:scale(1);} 45%{opacity:.85;transform:scale(.96) rotate(-1deg);} 70%{opacity:.95;transform:scale(1.03);} }
.brand-name {
  font-family:var(--display); font-size:22px; letter-spacing:.5px;
  text-transform:uppercase; white-space:nowrap;
}
.brand-name b { color:var(--accent); font-weight:400; }

.open-pill {
  flex:0 0 auto;
  font-family:var(--body); font-weight:700; font-size:11px; letter-spacing:.6px;
  text-transform:uppercase; padding:5px 11px; border-radius:999px;
  display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
}
.open-pill::before { content:""; width:7px; height:7px; border-radius:50%; }
.open-pill.is-open  { color:#bff0cc; background:rgba(76,174,106,.16); box-shadow:inset 0 0 0 1px rgba(76,174,106,.4); }
.open-pill.is-open::before  { background:var(--green); box-shadow:0 0 8px var(--green); animation:pulse 2s infinite; }
.open-pill.is-closed { color:#f3b6ad; background:rgba(226,64,43,.14); box-shadow:inset 0 0 0 1px rgba(226,64,43,.4); }
.open-pill.is-closed::before { background:var(--red); }
@keyframes pulse { 0%,100%{opacity:1;} 50%{opacity:.35;} }

/* ============================================================
   CATEGORY NAV (sticky, horizontal scroll)
   ============================================================ */
.catnav {
  position:sticky; top:var(--head-h); z-index:39;
  height:var(--nav-h);
  display:flex; align-items:center; gap:9px;
  padding:0 16px;
  overflow-x:auto; overflow-y:hidden;
  background:rgba(10,9,6,.78);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
}
.catnav::-webkit-scrollbar { display:none; }
.catnav a {
  flex:0 0 auto; scroll-snap-align:start;
  font-family:var(--head); font-size:17px; letter-spacing:1.2px;
  text-transform:uppercase; text-decoration:none; color:var(--muted);
  padding:6px 14px; border:1px solid transparent; border-radius:999px;
  transform:skewX(-7deg); transition:color .2s, background .2s, border-color .2s;
  white-space:nowrap;
}
.catnav a > span { display:inline-block; transform:skewX(7deg); }
.catnav a.active {
  color:#1a1205; background:var(--accent);
  box-shadow:0 4px 14px rgba(255,194,30,.28);
}

/* ============================================================
   HERO
   ============================================================ */
main { max-width:var(--maxw); margin:0 auto; position:relative; z-index:2; }

.hero {
  text-align:center; padding:46px 20px 30px;
  position:relative;
}
.hero-kicker {
  font-family:var(--body); font-weight:600; letter-spacing:4px; font-size:11px;
  text-transform:uppercase; color:var(--accent); margin-bottom:14px;
}
.hero-name {
  font-family:var(--display); font-size:clamp(64px, 22vw, 110px);
  line-height:.82; letter-spacing:1px; text-transform:uppercase;
  text-shadow:0 6px 30px rgba(0,0,0,.6);
}
.hero-name b { color:var(--accent); font-weight:400;
  text-shadow:0 0 40px rgba(255,194,30,.35); }
.hero-tag {
  font-family:var(--body); font-style:italic; font-weight:500;
  color:var(--muted); font-size:16px; margin-top:16px;
}
.hero-meta { display:flex; flex-direction:column; align-items:center; gap:9px; margin-top:24px; }
.meta-chip {
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--body); font-weight:500; font-size:13.5px; letter-spacing:.3px;
  color:var(--ink); text-decoration:none;
  padding:9px 16px; border-radius:999px;
  background:var(--card); border:1px solid var(--line);
}
.meta-chip svg { width:15px; height:15px; fill:var(--accent); flex:0 0 auto; }
a.meta-chip:active { background:rgba(255,194,30,.08); }

/* ============================================================
   MENU
   ============================================================ */
.menu { padding:8px 16px 40px; }

.section { padding-top:30px; scroll-margin-top:calc(var(--head-h) + var(--nav-h) + 8px); }

.banner {
  position:relative; align-self:flex-start; display:inline-block;
  margin-bottom:6px; padding:7px 22px 9px;
  transform:skewX(-7deg);
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.5));
}
.banner::before {
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, var(--accent) 0%, var(--accent-d) 100%);
  filter:url(#grunge);
}
.banner::after {
  content:""; position:absolute; inset:0; z-index:1; opacity:.15; mix-blend-mode:multiply;
  background-image:radial-gradient(rgba(0,0,0,.85) 1px, transparent 1.4px);
  background-size:6px 6px;
}
.banner h2 {
  position:relative; z-index:2;
  font-family:var(--display); font-size:30px; letter-spacing:1px; line-height:1;
  text-transform:uppercase; color:#1a1205; transform:skewX(7deg);
  text-shadow:0 1px 0 rgba(255,255,255,.25);
}

.note {
  font-family:var(--body); font-style:italic; font-weight:500; font-size:13.5px;
  color:var(--accent); margin:8px 2px 4px; letter-spacing:.2px;
}

/* group sub-heading (e.g. Spaghetti / Penne under Pasta) */
.group { margin-top:14px; }
.glabel {
  display:inline-block; font-family:var(--head); font-size:21px; letter-spacing:1.8px;
  color:var(--accent); text-transform:uppercase; margin:6px 0 2px;
  border-bottom:2px solid var(--line); padding:0 2px 3px;
}
.gnote { display:block; font-family:var(--body); font-style:italic; font-size:12.5px;
  color:var(--muted); margin:2px 0 4px; }

/* item rows */
.list { margin-top:8px; }
.item {
  display:grid; grid-template-columns:1fr auto; align-items:baseline;
  column-gap:12px; padding:11px 2px;
}
.item + .item { border-top:1px dashed rgba(255,255,255,.08); }
.item .iname {
  font-family:var(--name); font-weight:600; font-size:17px; line-height:1.15;
  color:var(--ink); text-transform:uppercase; letter-spacing:.2px;
}
.item .price {
  font-family:var(--head); font-size:22px; line-height:1; color:var(--accent);
  letter-spacing:.5px; white-space:nowrap; text-align:right;
  text-shadow:0 0 16px rgba(255,194,30,.18);
}
.item .price small { font-size:15px; opacity:.85; }
.item .ing {
  grid-column:1 / -1;
  font-family:var(--body); font-weight:400; font-size:13.5px; line-height:1.4;
  color:var(--muted); margin-top:3px; max-width:42ch;
}

/* section photo accent */
.sec-photo {
  position:relative; margin:14px 0 2px;
  display:grid; place-items:center; min-height:0;
}
.sec-photo::before {
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:70%; height:70%;
  background:radial-gradient(55% 55% at 50% 50%, rgba(255,168,40,.18), transparent 72%);
  filter:blur(18px); z-index:0;
}
.sec-photo img {
  position:relative; z-index:1;
  width:auto; max-width:200px; max-height:170px; object-fit:contain;
  filter:drop-shadow(0 16px 22px rgba(0,0,0,.5));
  animation:floaty 7s ease-in-out infinite;
}
@keyframes floaty { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-9px);} }

@media (prefers-reduced-motion: reduce) {
  .flame svg, .sec-photo img, .open-pill.is-open::before { animation:none; }
  html { scroll-behavior:auto; }
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-foot { padding:24px 16px calc(96px + env(safe-area-inset-bottom)); }
.foot-banner {
  text-align:center; margin:14px 0 26px;
}
.foot-banner span {
  display:inline-block; transform:skewX(-7deg);
  font-family:var(--display); font-size:30px; letter-spacing:2px; text-transform:uppercase;
  color:var(--accent); padding:4px 18px;
  background:linear-gradient(90deg, transparent, rgba(255,194,30,.08), transparent);
}
.foot-grid { display:grid; gap:26px; }
@media (min-width:560px){ .foot-grid { grid-template-columns:1fr 1fr; gap:34px; } }
.foot-block h3 {
  font-family:var(--head); font-size:20px; letter-spacing:2px; color:var(--ink);
  text-transform:uppercase; margin-bottom:10px; padding-bottom:6px;
  border-bottom:1px solid var(--line);
}
.foot-block a { color:var(--muted); text-decoration:none; line-height:1.6; font-size:14.5px; }
.foot-block a:active { color:var(--accent); }

.hours { width:100%; border-collapse:collapse; }
.hours td { padding:4px 0; font-size:14px; color:var(--muted); vertical-align:top; }
.hours td.day { font-family:var(--body); font-weight:600; color:var(--ink); }
.hours td.time { text-align:right; font-family:var(--name); letter-spacing:.3px; }
.hours tr.today td { color:var(--accent); }
.hours tr.today td.day { color:var(--accent); }
.hours-note { font-size:11.5px; color:var(--muted-2); margin-top:8px; font-style:italic; }

.foot-credit {
  text-align:center; margin-top:30px;
  font-family:var(--body); font-weight:600; letter-spacing:3px; font-size:12px;
  color:var(--muted-2); text-transform:uppercase;
}
.foot-credit .dot { color:var(--red); }

/* ============================================================
   FLOATING CALL BUTTON
   ============================================================ */
.fab {
  position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom));
  z-index:50;
  display:inline-flex; align-items:center; gap:9px;
  padding:13px 20px; border-radius:999px; text-decoration:none;
  font-family:var(--display); font-size:17px; letter-spacing:.5px; text-transform:uppercase;
  color:#1a1205; background:linear-gradient(180deg, var(--accent), var(--accent-d));
  box-shadow:0 8px 24px rgba(0,0,0,.5), 0 0 0 1px rgba(255,194,30,.4);
}
.fab svg { width:19px; height:19px; fill:#1a1205; }
.fab:active { transform:translateY(1px); }
.fab[hidden] { display:none; }

/* ============================================================
   INTRO REVEAL (one staggered page-load, kept gentle)
   ============================================================ */
.section, .hero > * { animation:fadeUp .6s ease both; }
.hero-kicker { animation-delay:.05s; }
.hero-name   { animation-delay:.12s; }
.hero-tag    { animation-delay:.2s; }
.hero-meta   { animation-delay:.28s; }
@keyframes fadeUp { from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;} }
@media (prefers-reduced-motion: reduce) {
  .section, .hero > * { animation:none; }
}
