<?php
declare(strict_types=1);
header('Content-Type: text/html; charset=UTF-8');
ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
date_default_timezone_set('Europe/Berlin');

$availableLanguages = [
    'de' => 'Deutsch',
    'en' => 'English',
    'tr' => 'Türkçe',
    'ar' => 'العربية'
];

$uiText = [
    'page_title' => [
        'de' => 'Mr. Shak Mak – Weiden',
        'en' => 'Mr. Shak Mak – Weiden',
        'tr' => 'Mr. Shak Mak – Weiden',
        'ar' => 'مستر شاك ماك – فايدن'
    ],
    'meta_description' => [
        'de' => 'MR. SHAK MAK in Weiden – türkisches Restaurant & Imbiss mit Steak Döner, Pute Döner, Yaprak, Iskender, Adana, Kebap, Tellergerichten, Kindermenüs, Fingerfood, Ayran und Softdrinks. Pizza. Mo–Sa 11:00–22:00, Sonntag geschlossen. Nur Barzahlung.',
        'en' => 'MR. SHAK MAK in Weiden – Turkish restaurant and snack bar with steak doner, turkey doner, Yaprak, Iskender, Adana, kebap, plate dishes, kids menus, finger food, Ayran and soft drinks. Pizza. Mon–Sat 11:00–22:00, Sunday closed. Cash only.',
        'tr' => 'Weiden’de MR. SHAK MAK – Steak döner, hindi döner, Yaprak, İskender, Adana, kebap, tabak yemekleri, çocuk menüleri, finger food, ayran ve meşrubatlar sunan Türk restoranı ve büfe. Pizza. Pazartesi–Cumartesi 11:00–22:00, pazar kapalı. Sadece nakit ödeme.',
        'ar' => 'MR. SHAK MAK في فايدن – مطعم ومحل وجبات تركية يقدم دونر ستيك، دونر ديك رومي، يابراك، إسكندر، أضنة، كباب، أطباق، وجبات أطفال، وجبات خفيفة، عيران ومشروبات غازية. بيتزا. الاثنين–السبت 11:00–22:00، الأحد مغلق. الدفع نقداً فقط.'
    ],
    'og_title' => [
        'de' => 'MR. SHAK MAK – Steak Döner & türkische Spezialitäten in Weiden',
        'en' => 'MR. SHAK MAK – Steak Doner & Turkish specialties in Weiden',
        'tr' => 'MR. SHAK MAK – Weiden’de Steak Döner ve Türk lezzetleri',
        'ar' => 'MR. SHAK MAK – دونر ستيك وتخصصات تركية في فايدن'
    ],
    'og_description' => [
        'de' => 'Steak Döner, Pute Döner, Yaprak, Iskender, Adana, Tellergerichte, Kindermenüs, Fingerfood und Getränke – Pizza. Mo–Sa 11:00–22:00 in der Bahnhofstraße 39 in Weiden. Nur Barzahlung.',
        'en' => 'Steak doner, turkey doner, Yaprak, Iskender, Adana, plate dishes, kids menus, finger food and drinks – pizza. Mon–Sat 11:00–22:00 at Bahnhofstraße 39 in Weiden. Cash only.',
        'tr' => 'Weiden Bahnhofstraße 39’da steak döner, hindi döner, Yaprak, İskender, Adana, tabak yemekleri, çocuk menüleri, finger food ve içecekler – pizza. Pazartesi–Cumartesi 11:00–22:00. Sadece nakit ödeme.',
        'ar' => 'دونر ستيك، دونر ديك رومي، يابراك، إسكندر، أضنة، أطباق، وجبات أطفال، وجبات خفيفة ومشروبات – بيتزا. الاثنين–السبت 11:00–22:00 في Bahnhofstraße 39 في فايدن. الدفع نقداً فقط.'
    ],
    'menu_title' => [
        'de' => 'SPEISEKARTE',
        'en' => 'MENU',
        'tr' => 'MENÜ',
        'ar' => 'قائمة الطعام'
    ],
    'preorder' => [
        'de' => 'Telefonische Vorbestellung:',
        'en' => 'Phone pre-order:',
        'tr' => 'Telefonla ön sipariş:',
        'ar' => 'الطلب المسبق عبر الهاتف:'
    ],
    'cash_only' => [
        'de' => 'nur Barzahlung möglich',
        'en' => 'cash payment only',
        'tr' => 'sadece nakit ödeme mümkündür',
        'ar' => 'الدفع نقداً فقط'
    ],
    'currently_open' => [
        'de' => 'aktuell geöffnet',
        'en' => 'currently open',
        'tr' => 'şu anda açık',
        'ar' => 'مفتوح حالياً'
    ],
    'currently_closed' => [
        'de' => 'aktuell geschlossen',
        'en' => 'currently closed',
        'tr' => 'şu anda kapalı',
        'ar' => 'مغلق حالياً'
    ],
    'nav_menu' => [
        'de' => 'Speisekarte',
        'en' => 'Menu',
        'tr' => 'Menü',
        'ar' => 'قائمة الطعام'
    ],
    'nav_hours' => [
        'de' => 'Öffnungszeiten',
        'en' => 'Opening hours',
        'tr' => 'Çalışma saatleri',
        'ar' => 'ساعات العمل'
    ],
    'nav_quality' => [
        'de' => 'Unsere Qualität',
        'en' => 'Our quality',
        'tr' => 'Kalitemiz',
        'ar' => 'جودتنا'
    ],
    'nav_location' => [
        'de' => 'Standort',
        'en' => 'Location',
        'tr' => 'Konum',
        'ar' => 'الموقع'
    ],
    'nav_contact' => [
        'de' => 'Kontakt',
        'en' => 'Contact',
        'tr' => 'İletişim',
        'ar' => 'التواصل'
    ],
    'nav_production' => [
        'de' => 'Herstellung',
        'en' => 'Production',
        'tr' => 'Üretim',
        'ar' => 'التحضير'
    ],
    'nav_imprint' => [
        'de' => 'Impressum',
        'en' => 'Legal notice',
        'tr' => 'Yasal bilgiler',
        'ar' => 'البيانات القانونية'
    ],
    'language_aria' => [
        'de' => 'Sprache wählen',
        'en' => 'Choose language',
        'tr' => 'Dil seçin',
        'ar' => 'اختر اللغة'
    ],
    'hours_title' => [
        'de' => 'Öffnungszeiten',
        'en' => 'Opening hours',
        'tr' => 'Çalışma saatleri',
        'ar' => 'ساعات العمل'
    ],
    'hours_text' => [
        'de' => 'Montag – Samstag: 11:00 – 21:30<br>Sonntag: 11:00 - 21:00<br>',
        'en' => 'Monday – Saturday: 11:00 – 21:30<br>Sunday: 11:00 - 21:00<br>',
        'tr' => 'Pazartesi – Cumartesi: 11:00 – 21:30<br>Pazar: 11:00 - 21:00<br>',
        'ar' => 'الاثنين – السبت: 11:00 – 21:30<br>الأحد: 11:00 - 21:00<br>'
    ],
    'quality_title' => [
        'de' => 'Unsere Qualität',
        'en' => 'Our quality',
        'tr' => 'Kalitemiz',
        'ar' => 'جودتنا'
    ],
    'quality_text' => [
        'de' => 'Selbst gespießt. Purer Geschmack.',
        'en' => 'Skewered in-house. Pure flavor.',
        'tr' => 'Kendi şişimiz. Saf lezzet.',
        'ar' => 'يتم تحضير السيخ لدينا. مذاق أصيل.'
    ],
    'quality_link' => [
        'de' => '>> Infos zur Herstellung <<',
        'en' => '>> Production info <<',
        'tr' => '>> Üretim bilgileri <<',
        'ar' => '>> معلومات التحضير <<'
    ],
    'location_title' => [
        'de' => 'Standort',
        'en' => 'Location',
        'tr' => 'Konum',
        'ar' => 'الموقع'
    ],
    'maps_open' => [
        'de' => '(in Google Maps öffnen)',
        'en' => '(open in Google Maps)',
        'tr' => '(Google Maps’te aç)',
        'ar' => '(فتح في خرائط Google)'
    ],
    'distance_measure' => [
        'de' => '📍 Entfernung messen',
        'en' => '📍 Measure distance',
        'tr' => '📍 Mesafeyi ölç',
        'ar' => '📍 قياس المسافة'
    ],
    'contact_title' => [
        'de' => 'Kontakt',
        'en' => 'Contact',
        'tr' => 'İletişim',
        'ar' => 'التواصل'
    ],
    'google_review' => [
        'de' => 'auf Google bewerten',
        'en' => 'review on Google',
        'tr' => 'Google’da değerlendir',
        'ar' => 'قيّمنا على Google'
    ],
    'tripadvisor_review' => [
        'de' => 'auf TripAdvisor bewerten',
        'en' => 'review on TripAdvisor',
        'tr' => 'TripAdvisor’da değerlendir',
        'ar' => 'قيّمنا على TripAdvisor'
    ],
    'restaurant_guru_recommended' => [
        'de' => 'Empfohlen',
        'en' => 'Recommended',
        'tr' => 'Tavsiye edilir',
        'ar' => 'موصى به'
    ],
    'footer_rights' => [
        'de' => 'Alle Rechte vorbehalten.',
        'en' => 'All rights reserved.',
        'tr' => 'Tüm hakları saklıdır.',
        'ar' => 'جميع الحقوق محفوظة.'
    ],
    'made_by' => [
        'de' => 'made by @h1rule',
        'en' => 'made by @h1rule',
        'tr' => '@h1rule tarafından yapıldı',
        'ar' => 'صنع بواسطة @h1rule'
    ],
    'close_label' => [
        'de' => 'Schließen',
        'en' => 'Close',
        'tr' => 'Kapat',
        'ar' => 'إغلاق'
    ],
    'lightbox_label' => [
        'de' => 'Bildanzeige',
        'en' => 'Image view',
        'tr' => 'Görsel görünümü',
        'ar' => 'عرض الصورة'
    ],
    'lightbox_alt' => [
        'de' => 'Großansicht',
        'en' => 'Large view',
        'tr' => 'Büyük görünüm',
        'ar' => 'عرض كبير'
    ],
    'gps_not_supported' => [
        'de' => 'GPS nicht unterstützt',
        'en' => 'GPS not supported',
        'tr' => 'GPS desteklenmiyor',
        'ar' => 'GPS غير مدعوم'
    ],
    'gps_searching' => [
        'de' => 'Standort wird gesucht...',
        'en' => 'Searching location...',
        'tr' => 'Konum aranıyor...',
        'ar' => 'جارٍ البحث عن الموقع...'
    ],
    'gps_error' => [
        'de' => 'Standortfehler (GPS an?)',
        'en' => 'Location error (GPS on?)',
        'tr' => 'Konum hatası (GPS açık mı?)',
        'ar' => 'خطأ في الموقع (هل GPS مفعّل؟)'
    ],
    'image_alt_logo' => [
        'de' => 'Logo',
        'en' => 'Logo',
        'tr' => 'Logo',
        'ar' => 'الشعار'
    ]
];

$requestedLanguage = isset($_GET['lang']) ? strtolower(trim((string)$_GET['lang'])) : '';
if (array_key_exists($requestedLanguage, $availableLanguages)) {
    $currentLanguage = $requestedLanguage;
    setcookie('mrshakmak_language', $currentLanguage, [
        'expires' => time() + 31536000,
        'path' => '/',
        'secure' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'),
        'httponly' => false,
        'samesite' => 'Lax'
    ]);
} else {
    $cookieLanguage = isset($_COOKIE['mrshakmak_language']) ? strtolower(trim((string)$_COOKIE['mrshakmak_language'])) : '';
    $currentLanguage = array_key_exists($cookieLanguage, $availableLanguages) ? $cookieLanguage : 'de';
}

function e($value): string
{
    return htmlspecialchars((string)$value, ENT_QUOTES, 'UTF-8');
}

function uiText(string $key, string $language): string
{
    global $uiText;

    if (isset($uiText[$key][$language])) {
        return (string)$uiText[$key][$language];
    }

    if (isset($uiText[$key]['de'])) {
        return (string)$uiText[$key]['de'];
    }

    return '';
}

function menuText($value, string $language): string
{
    if (is_array($value)) {
        if (isset($value[$language]) && !is_array($value[$language])) {
            return (string)$value[$language];
        }

        if (isset($value['de']) && !is_array($value['de'])) {
            return (string)$value['de'];
        }

        foreach ($value as $entry) {
            if (!is_array($entry)) {
                return (string)$entry;
            }
        }

        return '';
    }

    return (string)$value;
}

function languageUrl(string $language): string
{
    $path = parse_url($_SERVER['REQUEST_URI'] ?? '', PHP_URL_PATH);
    if (!is_string($path) || $path === '') {
        $path = '/';
    }

    return $path . '?lang=' . rawurlencode($language);
}

$now   = new DateTime('now');
$day   = (int)$now->format('N');
$isOpen = false;

if ($day >= 1 && $day <= 6) {
    $start = (clone $now)->setTime(11, 0, 0);
    $end   = (clone $now)->setTime(21, 30, 0);
    $isOpen = ($now >= $start && $now < $end);
} elseif ($day === 7) {
    $start = (clone $now)->setTime(11, 0, 0);
    $end   = (clone $now)->setTime(21, 0, 0);
    $isOpen = ($now >= $start && $now < $end);
}

$statusText  = $isOpen ? uiText('currently_open', $currentLanguage) : uiText('currently_closed', $currentLanguage);
$statusClass = $isOpen ? 'status-open' : 'status-closed';

function getCategoryIconFiles($categoryName, array $items = []): array
{
    $texts = [menuText($categoryName, 'de')];

    foreach ($items as $item) {
        if (is_array($item)) {
            if (isset($item['label'])) {
                $texts[] = menuText($item['label'], 'de');
            }
            if (isset($item['description'])) {
                $texts[] = menuText($item['description'], 'de');
            }
        }
    }

    $text = mb_strtolower(implode(' ', $texts));
    $icons = [];

    if (
        mb_stripos($text, 'yaprak') !== false ||
        mb_stripos($text, 'kalb') !== false ||
        mb_stripos($text, 'steak') !== false ||
        mb_stripos($text, 'rind') !== false
    ) {
        $icons[] = 'steak.png';
    }

    if (
        mb_stripos($text, 'pute') !== false ||
        mb_stripos($text, 'hähnchen') !== false ||
        mb_stripos($text, 'hÃ¤hnchen') !== false ||
        mb_stripos($text, 'haehnchen') !== false ||
        mb_stripos($text, 'huhn') !== false ||
        mb_stripos($text, 'chicken') !== false
    ) {
        $icons[] = 'chicken.png';
    }

    return array_values(array_unique($icons));
}

function renderCategoryTitle(string $categoryName, array $iconFiles = [], bool $showHalalLogo = false): string
{
    $html = '<span class="category-heading-inner">';
    $html .= '<span class="category-heading-text">' . e($categoryName) . '</span>';

    if (!empty($iconFiles) || $showHalalLogo) {
        $html .= '<span class="category-heading-icons">';

        foreach ($iconFiles as $iconFile) {
            $src = e((string)$iconFile);
            $html .= '<img class="category-meat-icon" src="' . $src . '" alt="">';
        }

        if ($showHalalLogo) {
            $html .= '<img class="category-halal-icon" src="https://mr.shak-mak.de/halal.png" alt="Halal">';
        }

        $html .= '</span>';
    }

    $html .= '</span>';
    return $html;
}

function renderMenuItemList(array $items, string $language): string
{
    $html = '<ul>';

    foreach ($items as $item) {
        if (!is_array($item)) {
            continue;
        }

        $label = menuText($item['label'] ?? '', $language);
        $labelBase = menuText($item['label'] ?? '', 'de');
        $price = isset($item['price']) ? (string)$item['price'] : '';
        $description = menuText($item['description'] ?? '', $language);
        $style = isset($item['style']) ? (string)$item['style'] : 'label-bg';
        $labelLowerBase = mb_strtolower($labelBase);
        $isBratwurstDoener = (
            mb_stripos($labelLowerBase, 'bratwurst') !== false &&
            (
                mb_stripos($labelLowerBase, 'döner') !== false ||
                mb_stripos($labelLowerBase, 'dÃ¶ner') !== false ||
                mb_stripos($labelLowerBase, 'doener') !== false
            )
        );

        $isExtraLine = false;
        $labelTrimBase = ltrim(mb_strtolower($labelBase));
        if (mb_stripos($labelTrimBase, 'nach wunsch') === 0) {
            $isExtraLine = true;
        }

        $html .= '<li>';

        if ($isExtraLine) {
            $html .= '<span><small>' . e($label) . '</small></span>';
        } else {
            if ($style === 'shimmer') {
                $html .= '<span class="shimmer-bg' . ($isBratwurstDoener ? ' item-special-highlight' : '') . '"><span class="shimmer"><span class="menu-label-text">' . e($label) . '</span></span></span>';
            } else {
                $html .= '<span class="label-bg' . ($isBratwurstDoener ? ' item-special-highlight' : '') . '"><span class="menu-label-text">' . e($label) . '</span></span>';
            }
        }

        if ($price !== '') {
            $html .= '<span class="price-bg">' . e($price) . '</span>';
        } else {
            $html .= '<span></span>';
        }

        if ($description !== '' && !$isExtraLine) {
            $html .= '<small>' . e($description) . '</small>';
        }

        $html .= '</li>';
    }

    $html .= '</ul>';
    return $html;
}

$menuData = [];
$menuJsonPath = __DIR__ . '/speisekarte.json';
if (is_readable($menuJsonPath)) {
    $json = file_get_contents($menuJsonPath);
    if ($json !== false) {
        $decoded = json_decode($json, true);
        if (is_array($decoded)) {
            $menuData = $decoded;
        }
    }
}

if (!empty($menuData)) {
    $bayernCategories = [];
    $otherCategories = [];
    foreach ($menuData as $catSort) {
        $catSortName = isset($catSort['category']) ? trim(menuText($catSort['category'], 'de')) : '';
        if ($catSortName === 'Bayern Döner' || $catSortName === 'Bayern DÃ¶ner') {
            $bayernCategories[] = $catSort;
        } else {
            $otherCategories[] = $catSort;
        }
    }
    if (!empty($bayernCategories)) {
        $menuData = array_merge($bayernCategories, $otherCategories);
    }
}

$pideItems = [];
$pideCategoryRaw = 'Pide';
foreach ($menuData as $catTmp) {
    $catTmpName = isset($catTmp['category']) ? menuText($catTmp['category'], 'de') : '';
    if (
        $catTmpName === 'Pide' &&
        isset($catTmp['items']) &&
        is_array($catTmp['items'])
    ) {
        $pideItems = $catTmp['items'];
        $pideCategoryRaw = $catTmp['category'];
        break;
    }
}
?>

<div id="xmas-popup-overlay">
  <div id="xmas-popup">
    <button id="xmas-popup-close" aria-label="<?= e(uiText('close_label', $currentLanguage)) ?>">×</button>
    <iframe id="xmas-popup-frame" src="https://mr.shak-mak.de/weihnachten/" loading="lazy"></iframe>
  </div>
</div>

<style>
#xmas-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.8);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 99999;
}
#xmas-popup {
  position: relative;
  max-width: 900px;
  width: 90vw;
  height: 80vh;
  background: #000;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 0 40px rgba(0,0,0,0.9);
}
#xmas-popup-frame {
  width: 100%;
  height: 100%;
  border: none;
}
#xmas-popup-close {
  position: absolute;
  top: 8px;
  right: 12px;
  font-size: 48px;
  line-height: 1;
  border: none;
  background: transparent;
  color: #ffffff;
  cursor: pointer;
  padding: 0;
  z-index: 100000;
}
#xmas-popup-close:hover {
  transform: scale(1.1);
}
@media (max-width: 600px) {
  #xmas-popup {
    width: 95vw;
    height: 85vh;
  }
  #xmas-popup-close {
    font-size: 40px;
  }
}
</style>

<script>
(function () {
  var now = new Date();
  var start = new Date(2025, 11, 16, 0, 0, 0);
  var end = new Date(2026, 0, 4, 23, 59, 59);
  if (now >= start && now <= end) {
    var overlay = document.getElementById("xmas-popup-overlay");
    var closeBtn = document.getElementById("xmas-popup-close");
    if (overlay && closeBtn) {
      overlay.style.display = "flex";
      closeBtn.addEventListener("click", function () {
        overlay.style.display = "none";
      });
    }
  }
})();
</script>

<!DOCTYPE html>
<html lang="<?= e($currentLanguage) ?>" dir="<?= $currentLanguage === 'ar' ? 'rtl' : 'ltr' ?>">
<head>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2748426141881305" crossorigin="anonymous"></script>
  <meta charset="UTF-8">
  <meta name="robots" content="index, follow">
  <link rel="canonical" href="https://www.mr-shak-mak.de/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title><?= e(uiText('page_title', $currentLanguage)) ?></title>
  <meta name="description" content="<?= e(uiText('meta_description', $currentLanguage)) ?>">
  <meta name="keywords" content="Mr. Shak Mak, Steak Döner Weiden, Döner Weiden, Yaprak Döner, türkisches Restaurant Weiden, Imbiss Weiden, Iskender Weiden, Adana Kebap, Köfte, Tavuk Şiş, Süt Dana Şiş, Dönerbox, Lahmacun, Dürüm, Döner Teller, Kindermenü Döner, Fingerfood, Baklava, türkischer Imbiss, Döner Lieferservice Weiden, Döner zum Mitnehmen Weiden, Pizza Weiden, türkische Pizza, Bahnhofstraße 39 Weiden">
  <meta name="robots" content="index,follow">
  <link rel="canonical" href="https://mr.shak-mak.de/nbg">
  <meta property="og:type" content="restaurant">
  <meta property="og:site_name" content="MR. SHAK MAK">
  <meta property="og:title" content="<?= e(uiText('og_title', $currentLanguage)) ?>">
  <meta property="og:description" content="<?= e(uiText('og_description', $currentLanguage)) ?>">
  <meta property="og:url" content="https://mr.shak-mak.de/weiden">
  <meta property="og:locale" content="de_DE">
  <meta name="twitter:card" content="summary">
  <meta name="twitter:title" content="<?= e(uiText('og_title', $currentLanguage)) ?>">
  <meta name="twitter:description" content="<?= e(uiText('og_description', $currentLanguage)) ?>">
  <meta property="article:tag" content="Döner">
  <meta property="article:tag" content="Steak Döner">
  <meta property="article:tag" content="Yaprak">
  <meta property="article:tag" content="Pute Döner">
  <meta property="article:tag" content="Iskender">
  <meta property="article:tag" content="Adana Kebap">
  <meta property="article:tag" content="Köfte">
  <meta property="article:tag" content="türkisches Restaurant Weiden">
  <meta property="article:tag" content="Pizza Weiden">
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MM2SSXGV');</script>
<!-- End Google Tag Manager -->
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": ["Restaurant", "FastFoodRestaurant"],
    "name": "MR. SHAK MAK",
    "url": "https://mr.shak-mak.de/nbg",
    "image": "https://mr.shak-mak.de/weiden/logo.png",
    "telephone": "+49-961-39881868",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Bahnhofstraße 39",
      "addressLocality": "Weiden",
      "postalCode": "92637",
      "addressCountry": "DE"
    },
    "servesCuisine": [
      "Türkische Küche",
      "Döner",
      "Fast Food",
      "Grill",
      "Pizza"
    ],
    "priceRange": "€",
    "paymentAccepted": "Cash",
    "openingHoursSpecification": [
      {
        "@type": "OpeningHoursSpecification",
        "dayOfWeek": [
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday"
        ],
        "opens": "11:00",
        "closes": "22:00"
      }
    ],
    "description": "MR. SHAK MAK in Weiden – türkischer Imbiss mit Steak Döner, Pute Döner, Yaprak, Iskender, Adana, Köfte, Tavuk Şiş, Süt Dana Şiş, Dönerboxen, Lahmacun, Dürüm, Tellergerichten, Kindermenüs, Fingerfood, Baklava und Softdrinks. Nur Barzahlung. Pizza.",
    "menu": "https://mr.shak-mak.de/nbg",
    "hasMenuSection": [
      {
        "@type": "MenuSection",
        "name": "Yaprak / Steak Döner",
        "description": "Steak Döner, Steak Dönerbox, Lahmacun Steak Döner, Steak Dönerteller mit Salat, Pommes oder Reis, auf Wunsch mit gegrillten Tomaten und milder Peperoni."
      },
      {
        "@type": "MenuSection",
        "name": "Special Döner",
        "description": "Burger Style Döner Menü, Burger Style Kindermenü, Ekmek Arası Döner, Chili Cheese Döner, Mix Döner (Steak/Pute) mit Salat und Soße."
      },
      {
        "@type": "MenuSection",
        "name": "Pute Döner",
        "description": "Döner Pute, Dönerbox Pute, Lahmacun Pute, Dönerteller Pute mit Salat, Pommes oder Reis, auf Wunsch mit gegrillten Tomaten und milder Peperoni."
      },
      {
        "@type": "MenuSection",
        "name": "Dürüm / Wrap",
        "description": "Dürüm Steak Döner, Dürüm Pute, Dürüm Adana mit scharfer Hackfleischfüllung nach Adana-Art, auf Wunsch mit gegrillten Tomaten und milder Peperoni."
      },
      {
        "@type": "MenuSection",
        "name": "Tellergerichte",
        "description": "Iskender, Adana Şiş, Köfte, Beyti/Kebap, Tavuk Şiş, Süt Dana Şiş, jeweils mit Fladen, Reis oder Pommes, gegrillten Tomaten, Peperoni und Salat."
      },
      {
        "@type": "MenuSection",
        "name": "Finger Food",
        "description": "Pommes Frites, Mozzarella Sticks, Gözleme, Chili Cheese, Chicken Nuggets, Baklava und Imperatore Soße."
      },
      {
        "@type": "MenuSection",
        "name": "Getränke",
        "description": "Coca Cola, Fanta, Mezzo Mix, Uludağ Gazoz, Wasser, Ayran und weitere Softdrinks."
      },
      {
        "@type": "MenuSection",
        "name": "Pizza",
        "description": "Auswahl an Pizzen mit klassischen und türkisch inspirierten Belägen."
      }
    ]
  }
  </script>
  <meta name="keywords" content="Döner, Doner, Kebab, Kebap, Yaprak, Steak, Shak Mak, çakmak, Pizza, Cakmak, Marco, Mr. Shak Mak, Shak, Mak, Bayern, Leberkäse, Weißwurst, Leberkäs, Weißwurst, Bratwurst, Foodtruck, Weiden, Tirschenreuth, Weiden, München, Berlin, Weiden, Frankfurt, Truck, Mobil, Adana Kebap, Ege Kebab, Mee Döner, Mustis Kebab, Saray Kebab, City Kebab, Döner Test, Onetz, Yaprak Döner, Yaprak Et, Grillfleisch, Dönerstag, Dönerbox, Dürüm, Lahmacun, Pide, Ayran, Türk mutfagi, Türkische Küche, Traditional Döner, Steak Döner, Original Döner, Best Döner, Top Kebab, Döner Ranking, Bestes Fleisch, Handmade, Street Food, Halal, Halāl, Hamburg, Stuttgart, Köln, Leipzig, Essen, Dortmund, Fast Food, Grill, Grillteller, Turkish BBQ, Turkish Streetfood, Döner near me, Best Döner Germany, Lunch, Abendessen, Mitnehmen, Schnellrestaurant, Foodporn, Kebapçı, Dönerci, Et Döner, Chicken Döner, Kalbfleisch, Döner Teller, Rollo, Knoblauchsoße, Scharfe Soße, Family Business, Traditionsbetrieb, Döner Erfinder, Beef Wrap, German Kebap, Anatolisch, Anatolian Food, Orient, Orientalisch, Mr. Shak Mak Weiden, Dönerteller, Mega Döner, Streetfood Festival, Dürüm Weiden, Tirschenreuth Döner, Beste Sauce, Frischer Salat, Foodlove, Meatlover, Gemüse Döner, Vegan Döner, Hausdöner, Dönerwagen, Lieferdienst, Dönerservice, Turkish Wrap, Kalbfleischspieß, Original Rezept, Kebab Shop, Turkish Restaurant, Shisha Lounge, Grillhaus, Handmade Sauce, Mr. Shak Mak Weiden, Döner Imperium, Kebap Empire, Best Döner 2025, Food Trend, TikTok Döner, Insta Kebab, Halal Meat, Frische Zutaten, Dönersalat, Brotzeit, Essenswagen, Testsieger 2025, 1. Platz Döner, Top bewertet, Lokal Weiden, Bahnhofstraße 39, Originalrezept, Steakspieß, Mittagsangebot, Snack, Premium Döner, Grillmeister">
  <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;800&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-pEcS6g3t3lHgrq+fC41j6svw/l2lfHJo+Ql4G+WCZhiP2qWwL5xlO1Bj8cxI4gFhPvLo5Rtk6LqKtC+xYJPsZA==" crossorigin="anonymous" referrerpolicy="no-referrer"/>
  <script async src="https://www.googletagmanager.com/gtag/js?id=G-9XJ1E98GLN"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'G-9XJ1E98GLN');
  </script>
  <style>
    :root{
      --bg:#111;
      --text:#eee;
      --accent:#e7b63c;
      --accent-hover:#f5cf4b;
      --border:#444;
      --black:#000;
      --white:#fff;
      --danger:#c62828;
      --ok:#1b5e20
    }
    [data-theme="light"]{
      --bg:#fff;
      --text:#333;
      --border:#ddd
    }
    *{
      margin:0;
      padding:0;
      box-sizing:border-box
    }
    body{
      font-family:'Poppins',sans-serif;
      background:var(--bg);
      color:var(--text);
      line-height:1.6
    }

    .shimmer{
      display:inline-block;
      background:linear-gradient(90deg,var(--accent),#fff,var(--accent));
      background-size:200% 200%;
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
      animation:shimmer 2.8s infinite linear;
      font-weight:600
    }
    @keyframes shimmer{
      0%{background-position:200% 0}
      100%{background-position:-200% 0}
    }
    .shimmer-bg{
      display:inline-block;
      background:#000;
      padding:.1em .35em;
      border-radius:2px;
      line-height:1
    }

    .label-bg{
      display:inline-block;
      background:#000;
      color:#fff;
      padding:.1em .35em;
      border-radius:2px;
      line-height:1;
      font-weight:600
    }
    .price-bg{
      background:#fff;
      color:#000;
      padding:.1em .4em;
      border-radius:3px;
      font-weight:600;
      font-size:.75em
    }
    .fullrow{
      display:block!important
    }

    .invert-anim-wrapper{
      display:inline-block;
      line-height:1;
      border-radius:2px;
      position:relative
    }
    .invert-anim-bg{
      display:block;
      padding:.1em .35em;
      border-radius:2px;
      animation:invbg 2.8s infinite linear
    }
    .invert-anim-text{
      display:block;
      font-weight:600;
      text-align:left;
      animation:invtext 2.8s infinite linear
    }
    @keyframes invbg{
      0%{background:#000}
      50%{background:#fff}
      100%{background:#000}
    }
    @keyframes invtext{
      0%{color:#fff}
      50%{color:#000}
      100%{color:#fff}
    }

    .bayern-block{
      background:var(--black);
      color:var(--white);
      border:1px solid rgba(255,255,255,.14);
      border-radius:6px;
      padding:.9rem .9rem .6rem;
      margin-top:.5rem
    }
    .bayern-list{
      list-style:none;
      margin:0;
      padding:0
    }
    .bayern-list li{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:.5rem;
      margin-bottom:.55rem;
      align-items:start
    }
    .bayern-list li > span:first-child{
      min-width:0;
      overflow-wrap:anywhere;
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      gap:.3rem
    }
    .bayern-list li small{
      grid-column:1 / -1;
      font-size:.75em;
      color:rgba(255,255,255,.8);
      line-height:1.3;
      margin-top:.2rem
    }
    .badge-unavail{
      background:var(--danger);
      color:#fff;
      font-weight:800;
      font-size:.72rem;
      line-height:1.2;
      padding:.12rem .4rem;
      border-radius:3px;
      text-transform:uppercase;
      display:inline-block;
      white-space:normal
    }

    .subcat{
      font-size:1.2rem;
      font-weight:800;
      text-transform:uppercase;
      border-bottom:2px solid #111;
      padding-bottom:.3rem;
      margin:1rem 0 .8rem;
      color:inherit
    }
    .menu-grid{
      display:flex;
      flex-wrap:wrap;
      gap:3rem;
      max-width:1400px;
      width:100%;
      margin:auto;
      padding:0 1rem
    }
    @media(min-width:769px){
      .menu-col{
        flex:0 0 calc((100% - 15rem)/6);
        min-width:250px
      }
    }
    .menu-col{
      flex:1
    }
    .menu-col h3{
      font-size:1.2rem;
      font-weight:800;
      text-transform:uppercase;
      border-bottom:2px solid #111;
      padding-bottom:.3rem;
      margin-bottom:1rem
    }
    .category-heading-inner{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:.75rem;
      width:100%
    }
    .category-heading-text{
      min-width:0;
      overflow-wrap:anywhere
    }
    .category-heading-icons{
      display:inline-flex;
      align-items:center;
      justify-content:flex-end;
      gap:.35rem;
      flex:0 0 auto;
      margin-left:auto
    }
    .category-meat-icon{
      width:28px;
      height:28px;
      object-fit:contain;
      display:inline-block;
      flex:0 0 auto;
      filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))
    }
    .category-halal-icon{
      height:30px;
      width:auto;
      max-width:78px;
      object-fit:contain;
      display:inline-block;
      flex:0 0 auto;
      filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))
    }
    .menu-col ul{
      list-style:none
    }
    .menu-col ul li{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:.5rem;
      margin-bottom:.75rem;
      font-weight:400;
      align-items:center
    }
    .menu-col ul li>span:first-child,
    .menu-col ul li>.invert-anim-wrapper:first-child{
      min-width:0;
      justify-self:start;
      align-self:center;
      display:flex;
      align-items:center
    }
    .menu-col ul li span:last-child{
      text-align:right;
      white-space:nowrap;
      align-self:center;
      display:flex;
      align-items:center
    }
    #speisekarte .menu-col ul li small{
      font-size:.75em;
      color:#000;
      display:block;
      margin-top:.25rem;
      line-height:1.3;
      grid-column:1 / -1
    }
    .bayern-list li small{
      color:#fff!important
    }
    .menu-col.getraenke{
      margin:0 auto
    }

    .menu-col.bayern-doener-highlight{
      position:relative;
      flex:0 0 100%;
      max-width:100%;
      border:0;
      border-radius:0;
      padding:0;
      background:transparent;
      color:#111;
      box-shadow:none;
      overflow:visible
    }
    .menu-col.bayern-doener-highlight h3{
      display:block;
      color:#111;
      background:transparent;
      border-bottom:2px solid #000;
      padding-bottom:.35rem;
      margin-bottom:1rem
    }
    .menu-col.bayern-doener-highlight ul{
      border:2px solid #000;
      border-radius:8px;
      padding:1rem;
      background:transparent;
      box-shadow:none
    }
    .menu-col.bayern-doener-highlight .label-bg,
    .menu-col.bayern-doener-highlight .shimmer-bg{
      background:#000!important;
      border:1px solid rgba(255,255,255,.18)!important;
      border-radius:6px;
      padding:.16em .48em;
      overflow:hidden;
      box-shadow:0 0 0 rgba(31,126,219,0)!important;
      animation:bayernLabelGlow 7s ease-in-out infinite
    }
    .menu-col.bayern-doener-highlight .shimmer{
      background:none!important;
      -webkit-text-fill-color:initial;
      color:inherit;
      animation:none
    }
    .menu-col.bayern-doener-highlight .menu-label-text{
      display:inline-block;
      font-weight:900;
      color:transparent;
      -webkit-text-fill-color:transparent;
      background:
        repeating-linear-gradient(135deg,#ffffff 0 9px,#ffffff 9px 16px,#1f7edb 16px 26px,#1f7edb 26px 34px);
      background-size:88px 88px;
      -webkit-background-clip:text;
      background-clip:text;
      animation:bayernTextMove 8.5s linear infinite,bayernTextPulse 5.5s ease-in-out infinite;
      text-shadow:0 0 2px rgba(255,255,255,.42),0 0 2px rgba(31,126,219,.28);
      -webkit-text-stroke:.2px rgba(255,255,255,.28)
    }
    .menu-col.bayern-doener-highlight ul li small{
      color:#111!important
    }
    @keyframes bayernTextMove{
      0%{background-position:0 0}
      100%{background-position:176px 88px}
    }
    @keyframes bayernTextPulse{
      0%,100%{filter:brightness(1) saturate(1.08)}
      50%{filter:brightness(1.22) saturate(1.35)}
    }
    @keyframes bayernLabelGlow{
      0%,100%{border-color:rgba(255,255,255,.18);box-shadow:0 0 0 rgba(31,126,219,0)!important}
      50%{border-color:rgba(255,255,255,.5);box-shadow:0 0 9px rgba(31,126,219,.32)!important}
    }
    .menu-label-with-icon{display:inline-flex!important;align-items:center!important;gap:.35rem!important}
    .menu-label-icon{width:22px;height:22px;object-fit:contain;display:inline-block;flex:0 0 auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}
    .item-special-highlight{position:relative;border:2px solid rgba(255,255,255,.9);border-radius:9px;padding:.42rem .55rem;background:rgba(0,0,0,.55);box-shadow:0 0 12px rgba(231,182,60,.65),inset 0 0 12px rgba(231,182,60,.16);animation:bratwurstBorderGlow 2.2s ease-in-out infinite}
    @keyframes bratwurstBorderGlow{0%,100%{border-color:rgba(231,182,60,.75);box-shadow:0 0 10px rgba(231,182,60,.55),inset 0 0 10px rgba(231,182,60,.12)}50%{border-color:rgba(255,255,255,1);box-shadow:0 0 22px rgba(231,182,60,1),inset 0 0 16px rgba(255,255,255,.2)}}

    a{
      color:inherit;
      text-decoration:none;
      transition:color .3s ease;
      display:flex;
      flex-direction:column;
      align-items:center;
      text-align:center
    }
    a img.icon{
      width:16px;
      height:16px;
      border:0 solid var(--accent);
      transition:filter .3s ease
    }
    a:hover img.icon{
      filter:brightness(1.2)
    }
    a span{
      margin-top:.5rem;
      font-size:.9rem
    }
    a img.qr{
      width:64px;
      height:64px;
      border:.5px solid var(--accent);
      margin-top:.5rem
    }

    header,nav,section,footer{
      max-width:1400px;
      margin:auto
    }
    header{
      position:relative;
      text-align:center;
      padding:3rem 1rem 1rem
    }
    #theme-toggle{
      position:absolute;
      top:1rem;
      left:1rem;
      background:none;
      border:none;
      color:var(--text);
      font-weight:600;
      cursor:pointer;
      font-size:1rem
    }
    .city-list{
      position:absolute;
      top:1rem;
      right:1rem;
      font-size:1rem;
      font-weight:600;
      color:var(--text);
      white-space:nowrap
    }
    .language-switcher{
      margin-top:.25rem;
      display:flex;
      gap:.35rem;
      justify-content:flex-end;
      align-items:center;
      flex-wrap:wrap;
      font-size:.68rem;
      line-height:1.1;
      font-weight:700
    }
    .language-switcher a{
      display:inline-flex;
      flex-direction:row;
      align-items:center;
      justify-content:center;
      text-align:center;
      padding:.14rem .35rem;
      border:1px solid rgba(231,182,60,.42);
      border-radius:3px;
      color:var(--text);
      background:transparent;
      transition:background .2s ease,color .2s ease,border-color .2s ease
    }
    .language-switcher a:hover,
    .language-switcher a.active{
      background:var(--accent);
      color:#111;
      border-color:var(--accent)
    }
    .menu-lang-ar .category-heading-text,
    .menu-lang-ar .menu-label-text,
    .menu-lang-ar small{
      direction:rtl;
      unicode-bidi:plaintext
    }

    nav{
      display:flex;
      justify-content:center;
      flex-wrap:wrap;
      gap:1.5rem;
      padding:1rem 0;
      border-top:1px solid var(--border);
      border-bottom:1px solid var(--border);
      background:var(--bg)
    }
    nav a:hover{
      color:var(--accent)
    }
    body.site-lang-ar section:not(#speisekarte),
    body.site-lang-ar footer,
    body.site-lang-ar nav a,
    body.site-lang-ar .payment-banner,
    body.site-lang-ar .preorder{
      direction:rtl;
      unicode-bidi:plaintext
    }

    #speisekarte{
      background:var(--accent);
      color:#111;
      padding:3rem 1rem
    }
    #speisekarte .menu-title{
      text-align:center;
      font-size:2.5rem;
      font-weight:800;
      margin-bottom:.5rem;
      color:#fff
    }
    #speisekarte .preorder{
      border:2px solid #000;
      padding:.5rem 1rem;
      display:block;
      width:max-content;
      margin:0 auto 2rem;
      font-weight:600;
      color:#111
    }

    .payment-banner{
      border:2px solid #000;
      background:var(--bg);
      color:var(--text);
      padding:.5rem 1rem;
      margin:1rem auto 1.5rem;
      width:max-content;
      text-align:center;
      border-radius:4px
    }
    .payment-icons{
      display:flex;
      justify-content:center;
      gap:1rem;
      margin-top:.5rem
    }
    .payment-icons .icon{
      position:relative;
      width:32px;
      height:32px
    }
    .payment-icons .icon img,
    .payment-icons .icon i{
      width:100%;
      height:100%;
      font-size:32px
    }
    .payment-icons .icon.disabled img,
    .payment-icons .icon.disabled i{
      opacity:.6;
      filter:grayscale(100%) brightness(180%)
    }
    .payment-icons .icon.disabled::after{
      content:'';
      position:absolute;
      top:50%;
      left:0;
      width:100%;
      height:2px;
      background:var(--accent);
      transform:rotate(-45deg)
    }

    section:not(#speisekarte){
      padding:2rem 1rem;
      border-top:1px solid var(--border);
      text-align:center
    }
    section:nth-of-type(even):not(#speisekarte){
      background:var(--bg)
    }
    section:not(#speisekarte) h2{
      font-size:2rem;
      font-weight:600;
      color:var(--accent);
      margin-bottom:1rem
    }

    #fleisch .image-gallery,
    #kundenbilder .image-gallery{
      display:flex;
      flex-wrap:wrap;
      gap:1rem;
      justify-content:center;
      margin-top:1rem
    }
    #fleisch .image-gallery img,
    #kundenbilder .image-gallery img{
      border:.5px solid var(--accent);
      max-width:200px;
      width:100%;
      object-fit:cover
    }
    #kundenbilder .image-gallery img{
      cursor:zoom-in
    }

    .open-status{
      display:inline-block;
      margin-top:.5rem;
      font-weight:800;
      padding:.25rem .5rem;
      border-radius:4px
    }
    .status-open{
      background:var(--ok);
      color:#fff
    }
    .status-closed{
      background:var(--danger);
      color:#fff
    }

    #standort small{
      display:block;
      margin-top:.5rem
    }
    
    /* NEUER STYLE FÜR DEN BUTTON */
    .measure-btn {
      margin-top: 1rem;
      cursor: pointer;
      background: var(--accent);
      color: #111;
      border: none;
      padding: 0.5rem 1rem;
      border-radius: 4px;
      font-weight: 700;
      font-family: inherit;
      transition: filter 0.3s;
      display: inline-block;
    }
    .measure-btn:hover {
      filter: brightness(1.15);
    }
    
    #kontakt p{
      display:flex;
      flex-wrap:wrap;
      justify-content:center;
      gap:2rem
    }

    footer{
      text-align:center;
      padding:2rem 1rem;
      color:var(--text);
      font-size:1rem
    }
    footer small{
      display:block;
      font-size:.6rem;
      margin-top:.5rem;
      color:rgba(238,238,238,0.7)
    }

    .lightbox{
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.85);
      display:none;
      align-items:center;
      justify-content:center;
      padding:2rem;
      z-index:1000
    }
    .lightbox.open{
      display:flex
    }
    .lightbox img{
      max-width:90vw;
      max-height:85vh
    }
    .lightbox .close{
      position:absolute;
      top:1rem;
      right:1rem;
      background:transparent;
      border:0;
      color:#fff;
      font-size:2rem;
      line-height:1;
      cursor:pointer
    }

    @media(min-width:1024px){
      .bayern-list li > span:first-child{
        flex-direction:column;
        align-items:flex-start;
        gap:.25rem
      }
      .badge-unavail{
        margin-top:.15rem
      }
    }
    @media(max-width:768px){
      .category-meat-icon{
        width:24px;
        height:24px
      }
      .category-halal-icon{
        height:26px;
        max-width:66px
      }
      header h1{
        font-size:2.5rem
      }
      nav{
        flex-direction:column;
        gap:1rem;
        align-items:center
      }
      .menu-grid{
        flex-direction:column;
        align-items:center
      }
      .menu-col{
        width:100%;
        max-width:400px;
        text-align:left
      }
      .city-list{
        position:relative;
        top:auto;
        right:auto;
        margin-top:1rem
      }
      .language-switcher{
        justify-content:center
      }
    }
  </style>
</head>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MM2SSXGV"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<body data-theme="dark" class="site-lang-<?= e($currentLanguage) ?>">

<script>
(function () {
    var now = new Date();
    if (now.getMonth() !== 11) return;

    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    var flakes = [];
    var flakeCount = 150;

    canvas.id = 'snow-canvas';
    canvas.style.position = 'fixed';
    canvas.style.top = 0;
    canvas.style.left = 0;
    canvas.style.width = '100vw';
    canvas.style.height = '100vh';
    canvas.style.pointerEvents = 'none';
    canvas.style.zIndex = '999999';
    document.body.appendChild(canvas);

    function resize() {
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;
    }

    function createFlakes() {
        flakes = [];
        for (var i = 0; i < flakeCount; i++) {
            flakes.push({
                x: Math.random() * canvas.width,
                y: Math.random() * canvas.height,
                r: 1 + Math.random() * 3,
                vx: -0.5 + Math.random(),
                vy: 0.7 + Math.random() * 1.2,
                alpha: 0.4 + Math.random() * 0.6
            });
        }
    }

    function update() {
        for (var i = 0; i < flakes.length; i++) {
            var f = flakes[i];
            f.y += f.vy;
            f.x += f.vx;

            if (f.y > canvas.height) {
                f.y = -5;
                f.x = Math.random() * canvas.width;
            }

            if (f.x > canvas.width) f.x = 0;
            if (f.x < 0) f.x = canvas.width;
        }
    }

    function draw() {
        ctx.clearRect(0, 0, canvas.width, canvas.height);
        ctx.fillStyle = '#fff';
        for (var i = 0; i < flakes.length; i++) {
            var f = flakes[i];
            ctx.globalAlpha = f.alpha;
            ctx.beginPath();
            ctx.arc(f.x, f.y, f.r, 0, Math.PI * 2);
            ctx.fill();
        }
        ctx.globalAlpha = 1;
    }

    function loop() {
        update();
        draw();
        requestAnimationFrame(loop);
    }

    window.addEventListener('resize', resize);

    resize();
    createFlakes();
    loop();
})();
</script>

  <header>
    <img src="https://mr.shak-mak.de/images/logo.png?=<?= time(); ?>" width="50%" alt="<?= e(uiText('image_alt_logo', $currentLanguage)) ?>">
    <div class="city-list">
      <a href="https://mr.shak-mak.de/weiden?=<?= time(); ?>">Weiden</a><br>
      <div class="language-switcher" aria-label="<?= e(uiText('language_aria', $currentLanguage)) ?>">
        <?php foreach ($availableLanguages as $languageCode => $languageLabel): ?>
          <a href="<?= e(languageUrl($languageCode)) ?>" class="<?= $currentLanguage === $languageCode ? 'active' : '' ?>"><?= e($languageLabel) ?></a>
        <?php endforeach; ?>
      </div>
    </div>
  </header>

  <nav>
    <a href="#speisekarte"><?= e(uiText('nav_menu', $currentLanguage)) ?></a>
    <a href="#zeiten"><?= e(uiText('nav_hours', $currentLanguage)) ?></a>
    <a href="#fleisch"><?= e(uiText('nav_quality', $currentLanguage)) ?></a>
    <a href="#standort"><?= e(uiText('nav_location', $currentLanguage)) ?></a>
    <a href="#kontakt"><?= e(uiText('nav_contact', $currentLanguage)) ?></a>
    <a href="https://mr.shak-mak.de/herstellung/?=<?= time(); ?>"><?= e(uiText('nav_production', $currentLanguage)) ?></a>
    <a href="https://mr.shak-mak.de/impressum/?=<?= time(); ?>"><?= e(uiText('nav_imprint', $currentLanguage)) ?></a>
    <a href="https://kebabradar.de/?bude=3d4U6Q7d6H">Kebab Radar</a>
 </nav>

  <section id="speisekarte" class="menu-lang-<?= e($currentLanguage) ?>">
   <div class="menu-title"><?= e(uiText('menu_title', $currentLanguage)) ?></div>
    <div class="preorder">
     <big><big><?= e(uiText('preorder', $currentLanguage)) ?>
      <a href="tel://004996139881868">0961-39881868</a></big></big>
    </div>

    <div class="menu-grid">
      <?php foreach ($menuData as $category): ?>
        <?php
          $categoryRaw = $category['category'] ?? '';
          $categoryNameBase = trim(menuText($categoryRaw, 'de'));
          $categoryName = menuText($categoryRaw, $currentLanguage);
          $items = isset($category['items']) && is_array($category['items']) ? $category['items'] : [];

          if ($categoryNameBase === 'Pide') {
              continue;
          }

          $colClass = 'menu-col';
          if ($categoryNameBase === 'Getränke' || $categoryNameBase === 'GetrÃ¤nke') {
              $colClass .= ' getraenke';
          }
          if ($categoryNameBase === 'Bayern Döner' || $categoryNameBase === 'Bayern DÃ¶ner') {
              $colClass .= ' bayern-doener-highlight';
          }

          $categoryIconFiles = getCategoryIconFiles($categoryRaw, $items);
          $showHalalLogo = !empty($categoryIconFiles);
        ?>
        <div class="<?= e($colClass) ?>">
          <h3><?= renderCategoryTitle($categoryName, $categoryIconFiles, $showHalalLogo) ?></h3>
          <?= renderMenuItemList($items, $currentLanguage) ?>

          <?php if (($categoryNameBase === 'Döner Burger' || $categoryNameBase === 'DÃ¶ner Burger') && !empty($pideItems)): ?>
            <?php $pideCategoryIconFiles = getCategoryIconFiles($pideCategoryRaw, $pideItems); ?>
            <h3 style="margin-top:1.8rem;"><?= renderCategoryTitle(menuText($pideCategoryRaw, $currentLanguage), $pideCategoryIconFiles, !empty($pideCategoryIconFiles)) ?></h3>
            <?= renderMenuItemList($pideItems, $currentLanguage) ?>
          <?php endif; ?>
        </div>
      <?php endforeach; ?>
    </div>

    <p><br></p>
    <div class="payment-banner">
      <p><b><?= e(uiText('cash_only', $currentLanguage)) ?></b></p>
      <div class="payment-icons">
        <div class="icon"><img src="https://cdn.simpleicons.org/cashapp/e7b63c" alt="Cash"></div>
        <div class="icon disabled"><img src="https://cdn.simpleicons.org/googlepay/e7b63c" alt="Google Pay"></div>
        <div class="icon disabled"><img src="https://cdn.simpleicons.org/applepay/e7b63c" alt="Apple Pay"></div>
        <div class="icon disabled"><img src="https://cdn.simpleicons.org/mastercard/e7b63c" alt="MasterCard"></div>
        <div class="icon disabled"><img src="https://cdn.simpleicons.org/visa/e7b63c" alt="Visa"></div>
      </div>
    </div>
  </section>

  <section id="zeiten">
    <h2><?= e(uiText('hours_title', $currentLanguage)) ?></h2>
    <p><?= uiText('hours_text', $currentLanguage) ?></p>
    <div class="open-status <?= htmlspecialchars($statusClass, ENT_QUOTES, 'UTF-8') ?>"><?= htmlspecialchars($statusText, ENT_QUOTES, 'UTF-8') ?></div>
  </section>

  <section id="fleisch">
    <h2><?= e(uiText('quality_title', $currentLanguage)) ?></h2>
    <p><?= e(uiText('quality_text', $currentLanguage)) ?> <strong><a href="https://mr.shak-mak.de/herstellung/?=<?= time(); ?>"><u><?= e(uiText('quality_link', $currentLanguage)) ?></u></a></strong></p>
    <div class="image-gallery">
      <img src="https://mr.shak-mak.de/images/marco.jpg" alt="Marco">
    </div>
  </section>

  <section id="standort">
    <h2><?= e(uiText('location_title', $currentLanguage)) ?></h2>
    <p>
      Bahnhofstraße 39<br>
      92637 Weiden<br>
      <a href="https://maps.app.goo.gl/Bv9xDQCgYNo2stxn6" target="_blank"><small><?= e(uiText('maps_open', $currentLanguage)) ?></small></a>
      <br>
      <button id="btn-measure" class="measure-btn" data-lat="49.67663" data-lon="12.16439"><?= e(uiText('distance_measure', $currentLanguage)) ?></button>
    </p>
  </section>

  <section id="kontakt">
    <h2><?= e(uiText('contact_title', $currentLanguage)) ?></h2>
    <p>
      <a href="mailto:weiden@mr.shak-mak.de">
        <img class="icon" src="https://cdn.simpleicons.org/gmail/e7b63c" alt="E-Mail">
        <span>weiden@mr.shak-mak.de</span>
        <img class="qr" src="https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=mailto:weiden@mr.shak-mak.de" alt="QR E-Mail">
      </a>
      <a href="https://instagram.com/_mr.shakmak_" target="_blank">
        <img class="icon" src="https://cdn.simpleicons.org/instagram/e7b63c" alt="Instagram">
        <span>_mr.shakmak_</span>
        <img class="qr" src="https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=https://instagram.com/_mr.shakmak_" alt="QR Instagram">
      </a>
      <a href="https://tiktok.com/@marco.cakmak.baye" target="_blank">
        <img class="icon" src="https://cdn.simpleicons.org/tiktok/e7b63c" alt="TikTok">
        <span>@marco.cakmak.baye</span>
        <img class="qr" src="https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=https://tiktok.com/@marco.cakmak.baye" alt="QR TikTok">
      </a>
      <a href="tel://004996139881868">
        <img class="icon" src="https://cdn.simpleicons.org/whatsapp/e7b63c" alt="WhatsApp">
        <span>0961-39881868</span>
        <img class="qr" src="https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=tel://004996139881868" alt="QR Telefon">
      </a>
      <a href="https://g.page/r/CaXvr7DzbFeFEAE/review" target="_blank">
        <img class="icon" src="https://cdn.simpleicons.org/googlemaps/e7b63c" alt="GoogleMaps">
        <span><?= e(uiText('google_review', $currentLanguage)) ?></span>
        <img class="qr" src="https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=https://search.google.com/local/writereview?placeid=ChIJR8SRJAA5oEcRpe-vsPNsV4U" alt="QR Google Maps">
      </a>
      <a href="https://www.tripadvisor.de/ClientLink?value=WldiXy9Vc2VyUmV2aWV3RWRpdC1nNDI4MzY5MS1kMzMyNzg3NzUtTXJfU2hha19NYWstRXNjaGVuYW5hdGlvbmF0ZV9CYXZhcmlh" target="_blank">
        <img class="icon" src="https://cdn.simpleicons.org/tripadvisor/e7b63c" alt="TripAdvisor">
        <span><?= e(uiText('tripadvisor_review', $currentLanguage)) ?></span>
        <img class="qr" src="https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=https://www.tripadvisor.de/ClientLink?value=WldiXy9Vc2VyUmV2aWV3RWRpdC1nNDI4MzY5MS1kMzMyNzg3NzUtTXJfU2hha19NYWstRXNjaGVuYW5hdGlvbmF0ZV9CYXZhcmlh" alt="QR TripAdvisor">
      </a>
    </p>
  </section>


<center><link href="https://awards.infcdn.net/2024/circle_v2.css" rel="stylesheet"/><div id="circle-r-ribbon" onclick="if(event.target.nodeName.toLowerCase() != 'a') {window.open(this.querySelector('.r-ribbon_title').href);return 0;}" class=""> <div class="r-ribbon_ahead "> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="160px" height="160px" viewBox="0 0 160 160"> <defs> <path id="heading-arc" d="M 30 80 a 50 50 0 1 1 100 0"></path> </defs> <text class="r-ribbon_ahead-heading " fill="#000" text-anchor="middle"> <textPath startOffset="50%" xlink:href="#heading-arc"><?= e(uiText('restaurant_guru_recommended', $currentLanguage)) ?></textPath> </text> </svg> </div> <p class="r-ribbon_year"><?php echo date("Y"); ?></p> <a href="https://restaurantguru.com/Mr-Shak-Mak-%E2%80%94-Weiden-Weiden" class="r-ribbon_title f11" target="_blank">Mr. Shak Mak — Weiden</a> <div class="r-ribbon_ahead r-ribbon_ahead-bottom"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120px" height="120px" viewBox="0 0 120 120"> <defs> <path id="subheading-arc" d="M 12 60 a 48 48 0 0 0 96 0"></path> </defs> <text class="r-ribbon_ahead-subh" fill="#000" text-anchor="middle"> <textPath startOffset="50%" xlink:href="#subheading-arc"><a href="https://restaurantguru.com" target="_blank">Restaurant Guru</a></textPath> </text> </svg> </div></div></center>



  <footer>
    © <?= date('Y') ?> Mr. Shak Mak – <?= e(uiText('footer_rights', $currentLanguage)) ?>
    <small><a href="https://instagram.com/h1rule/"><?= e(uiText('made_by', $currentLanguage)) ?></a></small>
  </footer>

  <div id="lightbox" class="lightbox" aria-modal="true" role="dialog" aria-label="<?= e(uiText('lightbox_label', $currentLanguage)) ?>">
    <button class="close" aria-label="<?= e(uiText('close_label', $currentLanguage)) ?>">×</button>
    <img alt="<?= e(uiText('lightbox_alt', $currentLanguage)) ?>">
  </div>

  <script>
    const btn = document.getElementById('theme-toggle');
    const root = document.documentElement;
    if (btn) {
      btn.addEventListener('click', () => {
        const next = root.getAttribute('data-theme') === 'dark' ? 'light' : 'dark';
        root.setAttribute('data-theme', next);
        btn.textContent = next === 'light' ? 'DUNKEL' : 'HELL';
        localStorage.setItem('theme', next);
      });
      if (localStorage.getItem('theme') === 'light') {
        root.setAttribute('data-theme', 'light');
        btn.textContent = 'DUNKEL';
      }
    }

    const lb = document.getElementById('lightbox');
    const lbImg = lb.querySelector('img');
    const lbClose = lb.querySelector('button.close');
    function openLightbox(src, alt) {
      lbImg.src = src;
      lbImg.alt = alt || 'Bild';
      lb.classList.add('open');
    }
    function closeLightbox() {
      lb.classList.remove('open');
      lbImg.src = '';
    }
    lbClose.addEventListener('click', closeLightbox);
    lb.addEventListener('click', (e)=>{
      if(e.target===lb) closeLightbox();
    });
    document.addEventListener('keydown', (e)=>{
      if(e.key==='Escape' && lb.classList.contains('open')) closeLightbox();
    });

    // === ENTFERNUNG MESSEN LOGIK ===
    function deg2rad(deg) { return deg * (Math.PI/180); }
    function calcDist(lat1, lon1, lat2, lon2) {
      var R = 6371; 
      var dLat = deg2rad(lat2-lat1);
      var dLon = deg2rad(lon2-lon1);
      var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
              Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
              Math.sin(dLon/2) * Math.sin(dLon/2);
      var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
      return R * c;
    }

    const mBtn = document.getElementById('btn-measure');
    if(mBtn) {
      mBtn.addEventListener('click', function() {
        if(!navigator.geolocation) {
          mBtn.innerText = <?= json_encode(uiText('gps_not_supported', $currentLanguage), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
          return;
        }
        const originalText = mBtn.innerText;
        mBtn.innerText = <?= json_encode(uiText('gps_searching', $currentLanguage), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
        
        const targetLat = parseFloat(mBtn.dataset.lat);
        const targetLon = parseFloat(mBtn.dataset.lon);

        navigator.geolocation.getCurrentPosition(function(pos) {
          const dist = calcDist(pos.coords.latitude, pos.coords.longitude, targetLat, targetLon);
          mBtn.innerText = "📍 " + dist.toFixed(1) + " km";
        }, function(err) {
          console.error(err);
          mBtn.innerText = <?= json_encode(uiText('gps_error', $currentLanguage), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
          setTimeout(()=> mBtn.innerText = originalText, 3000);
        }, { enableHighAccuracy: true, timeout: 5000 });
      });
    }
  </script>

</body>
</html>
