{"id":9083,"date":"2026-04-10T10:30:39","date_gmt":"2026-04-10T08:30:39","guid":{"rendered":"https:\/\/www.myslivna.com\/?page_id=9083"},"modified":"2026-05-07T10:10:50","modified_gmt":"2026-05-07T08:10:50","slug":"konfigurator","status":"publish","type":"page","link":"https:\/\/www.myslivna.com\/en\/konfigurator\/","title":{"rendered":"Konfigur\u00e1tor"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9083\" class=\"elementor elementor-9083\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5eb32e4 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"5eb32e4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-38c31f0 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"38c31f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"cs\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Chytr\u00fd konfigur\u00e1tor hostiny - Hotel Myslivna<\/title>\r\n    <!-- Fonty se nyn\u00ed na\u010d\u00edtaj\u00ed p\u0159\u00edmo ze vzhledu Myslivna.com (Zru\u0161eno na\u010d\u00edt\u00e1n\u00ed z Google Fonts) -->\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0\/css\/all.min.css\">\r\n    <style>\r\n        :root {\r\n            --forest-green: #013220;\r\n            --gold: #B8860B;\r\n            --gold-light: #D4AF37;\r\n            --cream: #FAF9F6;\r\n            --white: #ffffff;\r\n            --text-dark: #1a1a1a;\r\n            --text-muted: #666;\r\n            --transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);\r\n        }\r\n        body { \r\n            background: var(--cream); \r\n            font-family: inherit, sans-serif; \/* D\u011bd\u00ed p\u00edsmo z webu *\/\r\n            color: var(--text-dark); \r\n            margin: 0;\r\n            padding: 0;\r\n        }\r\n        h1, h2, h3, h4 { \r\n            font-family: inherit, serif; \/* D\u011bd\u00ed p\u00edsmo nadpis\u016f z webu *\/\r\n            color: var(--forest-green); \r\n            margin-top: 0;\r\n        }\r\n        \/* Z-INDEX OCHRANA A ROZLOZ\u011aN\u00cd PRO ELEMENTOR *\/\r\n        .wizard-step { \r\n            display: none; \r\n            margin: 20px auto; \r\n            max-width: 1100px; \r\n            padding: 0 10px; \r\n            animation: fadeIn 0.4s;\r\n            padding-bottom: 80px; \r\n            position: relative;\r\n            z-index: 10;\r\n        }\r\n        .wizard-step.active { display: block; }\r\n        @keyframes fadeIn { \r\n            from { opacity: 0; transform: translateY(15px); } \r\n            to { opacity: 1; transform: translateY(0); } \r\n        }\r\n        .section-card { \r\n            background: var(--white); \r\n            border-radius: 30px; \r\n            padding: 35px; \/* Kompaktn\u011bj\u0161\u00ed padding pro zamezen\u00ed o\u0159ezu ve widgetech *\/\r\n            box-shadow: 0 15px 50px rgba(0,0,0,0.05); \r\n            border: 1px solid rgba(184, 134, 11, 0.05); \r\n            margin-bottom: 30px; \r\n            position: relative;\r\n            z-index: 15;\r\n            overflow: visible; \/* Zabr\u00e1n\u00ed o\u0159ez\u00e1n\u00ed st\u00edn\u016f a obsahu *\/\r\n        }\r\n        .event-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-bottom: 25px; }\r\n        .event-card { background: rgba(0, 0, 0, 0.7); padding: 25px 15px; border-radius: 20px; text-align: center; cursor: pointer; transition: var(--transition); border: 1px solid rgba(255, 255, 255, 0.1); z-index: 20; position: relative; }\r\n        .event-card h3 { color: #fff !important; }\r\n        .event-card:hover { transform: translateY(-5px); background: rgba(0, 0, 0, 0.9); box-shadow: 0 15px 30px rgba(0,0,0,0.2); border-color: var(--gold); }\r\n        .event-card.selected { background: var(--forest-green); color: white; border-color: var(--forest-green); }\r\n        .event-card i { font-size: 2.5rem; color: var(--gold); margin-bottom: 15px; }\r\n        #location-grid .event-card { padding: 15px 10px; }\r\n        #location-grid .event-card i { font-size: 1.5rem; margin-bottom: 8px; }\r\n        \/* INPUTS *\/\r\n        .field-label { display: block; margin-bottom: 10px; font-weight: 700; font-size: 14px; text-transform: uppercase; color: var(--forest-green); letter-spacing: 0.5px; }\r\n        .input-base { width: 100%; border: 1px solid #ddd; padding: 0 20px; border-radius: 12px; font-family: inherit; font-size: 18px; font-weight: 600; background: white !important; color: #333 !important; transition: var(--transition); box-sizing: border-box; height: 60px !important; }\r\n        .input-base:focus { border-color: var(--gold); outline: none; background: white !important; }\r\n        select.input-base { cursor: pointer; appearance: menulist !important; -webkit-appearance: menulist !important; line-height: 60px !important; }\r\n        .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; }\r\n        \/* BUTTONS - AGRESIVN\u00cd VYNUCEN\u00cd P\u0158ES THEME CSS *\/\r\n        .myslivna-btn { background: var(--gold) !important; color: white !important; border: none !important; padding: 20px 40px !important; border-radius: 50px !important; font-weight: 700 !important; font-size: 18px !important; cursor: pointer !important; text-transform: uppercase !important; transition: var(--transition) !important; letter-spacing: 1px !important; display: block !important; text-align: center !important; position: relative !important; z-index: 9999 !important; box-sizing: border-box !important; text-decoration: none !important;}\r\n        .myslivna-btn:hover { background: var(--gold-light) !important; transform: translateY(-2px) !important; box-shadow: 0 10px 20px rgba(184, 134, 11, 0.2) !important; color: white !important; }\r\n        .myslivna-btn-secondary { background: #f0f0f0 !important; color: #333 !important; font-size: 14px !important; padding: 12px 25px !important; }\r\n        .myslivna-btn-secondary:hover { background: #e0e0e0 !important; transform: translateY(-2px) !important; color: #000 !important; }\r\n        \/* SATIETY METER *\/\r\n        .satiety-wrap { background: #fffcf5; border: 1px dashed var(--gold); padding: 25px; border-radius: 20px; margin-bottom: 30px; text-align: center; }\r\n        .sat-bar { height: 12px; background: #e0e0e0; border-radius: 20px; margin-top: 15px; overflow: hidden; }\r\n        .sat-fill { height: 100%; width: 0%; transition: width 0.5s ease-out, background-color 0.5s; }\r\n        \/* CATEGORY TABS *\/\r\n        .cat-tabs { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 10px; margin-bottom: 30px; scrollbar-width: none; }\r\n        .cat-tabs::-webkit-scrollbar { display: none; }\r\n        .cat-btn { flex-shrink: 0; background: white !important; border: 1px solid #ddd !important; padding: 12px 25px !important; border-radius: 30px !important; cursor: pointer !important; white-space: nowrap !important; font-weight: 700 !important; color: var(--forest-green) !important; transition: var(--transition) !important; text-transform: uppercase !important; font-size: 13px !important; min-width: 120px !important; text-align: center !important; }\r\n        .cat-btn:hover { border-color: var(--gold) !important; color: var(--gold) !important; }\r\n        .cat-btn.active { background: var(--forest-green) !important; color: white !important; border-color: var(--forest-green) !important; }\r\n        \/* GASTRO GRID & CARDS *\/\r\n        .gastro-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 25px; }\r\n        .food-card { background: var(--white); border-radius: 20px; border: 1px solid #eee; overflow: hidden; display: flex; flex-direction: column; transition: var(--transition); }\r\n        .food-card:hover { border-color: var(--gold); box-shadow: 0 10px 30px rgba(184, 134, 11, 0.1); transform: translateY(-5px); }\r\n        .food-card:hover .food-img-box img { transform: scale(1.1); }\r\n        .food-img-box { height: 160px; overflow: hidden; position: relative; background: #eee; }\r\n        .food-img-box img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1); }\r\n        .food-content { padding: 25px; display: flex; flex-direction: column; flex: 1; }\r\n        .food-title { font-size: 17px !important; font-weight: 700 !important; color: var(--forest-green) !important; margin-bottom: 8px !important; line-height: 1.3 !important;}\r\n        .food-desc { font-size: 13px !important; color: var(--text-muted) !important; flex: 1 !important; margin-bottom: 20px !important; }\r\n        \r\n        .food-price-row { display: flex !important; justify-content: space-between !important; align-items: flex-end !important; margin-bottom: 15px !important; }\r\n        .food-price { font-weight: 700 !important; font-size: 20px !important; color: #000 !important; }\r\n        \r\n        \/* QUANTITY BUTTONS *\/\r\n        .qty-box { background: #fafafa !important; border: 1px solid #ddd !important; border-radius: 12px !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 5px !important; }\r\n        .qty-btn { background: white !important; border: 1px solid #eee !important; width: 40px !important; height: 40px !important; border-radius: 8px !important; cursor: pointer !important; color: var(--forest-green) !important; font-size: 16px !important; box-shadow: 0 2px 5px rgba(0,0,0,0.05) !important; transition: 0.2s !important; display: flex !important; align-items: center !important; justify-content: center !important;}\r\n        .qty-btn:hover { background: var(--gold) !important; color: white !important; border-color: var(--gold) !important; }\r\n        .qty-add-btn { background: var(--cream) !important; border: 1px solid var(--gold) !important; color: var(--gold) !important; width: 100% !important; padding: 15px !important; border-radius: 12px !important; font-weight: 700 !important; cursor: pointer !important; transition: 0.2s !important; text-transform: uppercase !important; font-size: 13px !important; display: block !important; text-align: center !important;}\r\n        .qty-add-btn:hover { background: var(--gold) !important; color: white !important; }\r\n        \/* CHECKBOXES & RADIO CARDS *\/\r\n        .radio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; }\r\n        .radio-card { border: 1px solid #ddd; border-radius: 15px; padding: 20px; cursor: pointer; background: white; transition: var(--transition); }\r\n        .radio-card.active { border-color: var(--forest-green); border-width: 2px; background: #f0fdf4; }\r\n        \r\n        .checkbox-custom { width: 24px; height: 24px; accent-color: var(--forest-green); cursor: pointer; flex-shrink: 0;}\r\n        .service-row { display: flex; align-items: flex-start; gap: 15px; padding: 20px; border: 1px solid #ddd; border-radius: 15px; margin-bottom: 15px; background: white; transition: var(--transition);}\r\n        .service-row:hover { border-color: var(--gold); }\r\n        .service-row.active { border-color: var(--forest-green); background: #f0fdf4; border-width: 2px;}\r\n        \/* STICKY CART (LUXURY) *\/\r\n\/* GLASSMORPHISM CART *\/\r\n        .sticky-cart { \r\n            position: fixed; \r\n            bottom: 25px; \r\n            left: 50%; \r\n            transform: translateX(-50%); \r\n            background: rgba(26, 60, 40, 0.85); \/* Semi-transparent forest-green *\/\r\n            backdrop-filter: blur(12px);\r\n            -webkit-backdrop-filter: blur(12px);\r\n            color: white; \r\n            width: 90%; \r\n            max-width: 1000px; \r\n            border-radius: 50px; \r\n            padding: 15px 30px; \r\n            display: flex; \r\n            justify-content: space-between; \r\n            align-items: center; \r\n            z-index: 1000; \r\n            box-shadow: 0 10px 30px rgba(0,0,0,0.25), inset 0 1px 1px rgba(255,255,255,0.15); \r\n            border: 1px solid rgba(255,255,255,0.1); \r\n            transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s;\r\n        }\r\n        .sticky-cart:hover {\r\n            transform: translateX(-50%) translateY(-2px);\r\n            box-shadow: 0 20px 40px rgba(0,0,0,0.35), inset 0 1px 1px rgba(255,255,255,0.2); \r\n        }\r\n        .service-list-action { justify-content: space-between; }\r\n        \r\n       .summary-list-item { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid #eee; font-size: 15px; color: #333; }\r\n        .price-tag { font-weight: 700; color: var(--forest-green); }\r\n        .price-tag.discounted { color: #059669; }\r\n        .old-price { text-decoration: line-through; color: #999; font-size: 13px; margin-right: 8px; }\r\n        @media (max-width: 768px) {\r\n            h1 { font-size: 1.8rem !important; }\r\n            .section-card { padding: 25px 15px; margin-bottom: 15px; }\r\n            .form-row { grid-template-columns: 1fr; gap: 15px; margin-bottom: 15px; }\r\n            .event-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }\r\n            .event-card { padding: 15px 5px; border-radius: 15px; }\r\n            .event-card i { font-size: 1.4rem; margin-bottom: 8px; }\r\n            .event-card h3 { font-size: 12px !important; line-height: 1.2; }\r\n            #location-grid { grid-template-columns: 1fr !important; gap: 10px !important; }\r\n            \r\n            .gastro-grid { grid-template-columns: 1fr !important; gap: 15px; }\r\n            .food-img-box { height: 180px !important; }\r\n            .food-content { padding: 15px; }\r\n            .food-title { font-size: 15px !important; }\r\n            .food-price { font-size: 18px !important; }\r\n            \r\n            .qty-box { padding: 3px !important; }\r\n            .qty-btn { width: 35px !important; height: 35px !important; }\r\n            \r\n            \/* Kompaktn\u00ed spodn\u00ed ko\u0161\u00edk *\/\r\n            .sticky-cart { flex-direction: row; gap: 10px; border-radius: 20px; bottom: 10px; padding: 12px 15px; width: 95%; justify-content: space-between; }\r\n            .sticky-cart .myslivna-btn { width: auto !important; margin-top: 0 !important; padding: 10px 15px !important; font-size: 13px !important; }\r\n            #cart-total { font-size: 20px !important; }\r\n            \r\n            \/* Oprava zobrazen\u00ed porce *\/\r\n            .wizard-step div[style*=\"font-size:18px\"] { font-size: 15px !important; }\r\n            .wizard-step div[style*=\"font-size:14px\"] { font-size: 12px !important; }\r\n            \r\n            .hide-mobile { display: none !important; }\r\n            .cat-tabs { margin-bottom: 20px; }\r\n            .wizard-step { padding-bottom: 100px; } \/* M\u00edsto pro spodn\u00ed ko\u0161\u00edk *\/\r\n        }\r\n    \r\n        .modul-details { margin-top: 10px; background: rgba(188, 155, 77, 0.05); border-radius: 8px; font-size: 13px; line-height: 1.5; text-align: left; }\r\n        .modul-details summary { cursor: pointer; padding: 10px; font-weight: 700; color: var(--gold); border-bottom: 1px solid rgba(188, 155, 77, 0.2); }\r\n        .modul-details .modul-content { padding: 10px; color: var(--text-muted); }\r\n        .modul-content strong { color: var(--forest-green); display: block; margin-top: 8px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; }\r\n        input[type=number].qty-input::-webkit-inner-spin-button, input[type=number].qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }\r\n        .qty-input { width: 50px; text-align: center; font-weight: 700; color: var(--forest-green); font-size: 16px; border: none; background: transparent; outline: none; -moz-appearance: textfield; padding: 0; }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div id=\"app\">\r\n    <!-- KROK 1: ONBOARDING -->\r\n    <div id=\"step-1\" class=\"wizard-step active\">\r\n        <div class=\"section-card\" style=\"max-width: 800px; margin: 0 auto; text-align: center;\">\r\n            <i class=\"fas fa-utensils\" style=\"font-size: 3rem; color: var(--gold); margin-bottom: 20px;\"><\/i>\r\n            <h1 style=\"font-size: 2.5rem;\">Konfigur\u00e1tor hostiny<\/h1>\r\n            <p style=\"color: var(--text-muted); margin-bottom: 40px;\">Zadejte z\u00e1kladn\u00ed parametry Va\u0161\u00ed akce v Hotelu Myslivna.<\/p>\r\n            <div style=\"text-align: left; margin-bottom: 30px;\">\r\n                <label class=\"field-label\">N\u00e1zev akce<\/label>\r\n                <input type=\"text\" id=\"evName\" placeholder=\"Nap\u0159. Oslava 50. narozenin, Na\u0161e svatba\" class=\"input-base\">\r\n            <\/div>\r\n            <div class=\"event-grid\" id=\"type-grid\">\r\n                <div class=\"event-card selected\" onclick=\"window.app.setType('Svatba', this)\">\r\n                    <i class=\"fas fa-ring\"><\/i>\r\n                    <h3 style=\"margin-bottom:0;\">Svatba<\/h3>\r\n                <\/div>\r\n                <div class=\"event-card\" onclick=\"window.app.setType('Rodinn\u00e1 oslava', this)\">\r\n                    <i class=\"fas fa-glass-cheers\"><\/i>\r\n                    <h3 style=\"margin-bottom:0;\">Oslava<\/h3>\r\n                <\/div>\r\n                <div class=\"event-card\" onclick=\"window.app.setType('Firemn\u00ed akce', this)\">\r\n                    <i class=\"fas fa-users\"><\/i>\r\n                    <h3 style=\"margin-bottom:0;\">Firemn\u00ed<\/h3>\r\n                <\/div>\r\n            <\/div>\r\n            <div style=\"text-align: left; margin-bottom: 10px; margin-top: 10px;\">\r\n                <label class=\"field-label\">M\u00edsto kon\u00e1n\u00ed<\/label>\r\n            <\/div>\r\n            <div class=\"event-grid\" style=\"grid-template-columns: 1fr 1fr;\" id=\"location-grid\">\r\n                <div class=\"event-card selected\" onclick=\"window.app.setLocation('U n\u00e1s v restauraci', this)\" id=\"loc-Restaurace\">\r\n                    <i class=\"fas fa-home\"><\/i>\r\n                    <h3 style=\"margin-bottom:0;\">U n\u00e1s v restauraci<\/h3>\r\n                <\/div>\r\n                <div class=\"event-card\" onclick=\"window.app.setLocation('Vlastn\u00ed m\u00edsto', this)\" id=\"loc-Vlastni\">\r\n                    <i class=\"fas fa-truck\"><\/i>\r\n                    <h3 style=\"margin-bottom:0;\">Vlastn\u00ed m\u00edsto (Catering)<\/h3>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"form-row\" style=\"text-align: left;\">\r\n                <div>\r\n                    <label class=\"field-label\">Term\u00edn kon\u00e1n\u00ed<\/label>\r\n                    <input type=\"date\" id=\"evDate\" class=\"input-base\">\r\n                <\/div>\r\n                <div>\r\n                    <label class=\"field-label\">\u010cas za\u010d\u00e1tku<\/label>\r\n                    <select id=\"evTime\" class=\"input-base\">\r\n                        <option value=\"11:00\">11:00<\/option>\r\n                        <option value=\"11:30\">11:30<\/option>\r\n                        <option value=\"12:00\">12:00<\/option>\r\n                        <option value=\"12:30\">12:30<\/option>\r\n                        <option value=\"13:00\" selected>13:00<\/option>\r\n                        <option value=\"13:30\">13:30<\/option>\r\n                        <option value=\"14:00\">14:00<\/option>\r\n                        <option value=\"14:30\">14:30<\/option>\r\n                        <option value=\"15:00\">15:00<\/option>\r\n                        <option value=\"15:30\">15:30<\/option>\r\n                        <option value=\"16:00\">16:00<\/option>\r\n                        <option value=\"16:30\">16:30<\/option>\r\n                        <option value=\"17:00\">17:00<\/option>\r\n                        <option value=\"17:30\">17:30<\/option>\r\n                        <option value=\"18:00\">18:00<\/option>\r\n                        <option value=\"18:30\">18:30<\/option>\r\n                        <option value=\"19:00\">19:00<\/option>\r\n                        <option value=\"19:30\">19:30<\/option>\r\n                        <option value=\"20:00\">20:00<\/option>\r\n                    <\/select>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"form-row\" style=\"text-align: left;\">\r\n                <div>\r\n                    <label class=\"field-label\">Po\u010det dosp\u011bl\u00fdch<\/label>\r\n                    <input type=\"number\" id=\"evAd\" min=\"1\" value=\"20\" class=\"input-base\">\r\n                <\/div>\r\n                <div>\r\n                    <label class=\"field-label\" style=\"color: #059669;\">D\u011bti do 12 let (Sleva 25 %)<\/label>\r\n                    <input type=\"number\" id=\"evCh\" min=\"0\" value=\"0\" class=\"input-base\" style=\"border-color: #059669;\">\r\n                <\/div>\r\n            <\/div>\r\n            <button onclick=\"window.app.goto(2)\" class=\"myslivna-btn\" style=\"width: 100% !important; margin-top: 30px !important;\">\r\n                Sestavit sv\u00e1te\u010dn\u00ed menu <i class=\"fas fa-arrow-right\" style=\"margin-left: 10px;\"><\/i>\r\n            <\/button>\r\n        <\/div>\r\n    <\/div>\r\n    <!-- KROK 2: CATALOG -->\r\n    <div id=\"step-2\" class=\"wizard-step\">\r\n        <div class=\"section-card\">\r\n            \r\n            <div style=\"display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; margin-bottom:30px;\">\r\n                <div>\r\n                    <h1>V\u00fdb\u011br gastronomie<\/h1>\r\n                    <p id=\"cat-subtitle\" style=\"color:var(--text-muted); font-weight:600;\">20 osob \u2022 Svatba<\/p>\r\n                <\/div>\r\n                \r\n            <\/div>\r\n            <div class=\"satiety-wrap\">\r\n                <div style=\"display:flex; justify-content:space-between; font-weight:700;\">\r\n                    <span>Velikost porce na osobu<\/span>\r\n                    <span id=\"satiety-text\" style=\"color:#e74c3c;\">0 g (M\u00e1lo j\u00eddla)<\/span>\r\n                <\/div>\r\n                <div class=\"sat-bar\">\r\n                    <div id=\"satiety-fill\" class=\"sat-fill\" style=\"width:0%; background:#e74c3c;\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"cat-tabs\" id=\"cat-tabs\">\r\n                <!-- Tabs generov\u00e1ny dynamicky JS -->\r\n            <\/div>\r\n            <div class=\"gastro-grid\" id=\"catalog-grid\">\r\n                <!-- Polo\u017eky generov\u00e1ny dynamicky JS -->\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n    <!-- KROK 3: EXTRAS & DRINKS -->\r\n    <div id=\"step-3\" class=\"wizard-step\">\r\n        <div class=\"section-card\">\r\n            <div style=\"display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; margin-bottom:30px;\">\r\n                <div>\r\n                    <h1>Dopl\u0148ky a Pit\u00ed<\/h1>\r\n                    <p style=\"color:var(--text-muted); font-weight:600;\">Krok 3 ze 4 \u2022 V\u00fdb\u011br n\u00e1poj\u016f a slu\u017eeb<\/p>\r\n                <\/div>\r\n                \r\n            <\/div>\r\n            <div class=\"cat-tabs\" id=\"extra-tabs\">\r\n                <!-- Tabs generov\u00e1ny dynamicky -->\r\n            <\/div>\r\n            <div class=\"gastro-grid\" id=\"extra-grid\">\r\n                <!-- Polo\u017eky generov\u00e1ny dynamicky -->\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n    <!-- KROK 4: REKAPITULACE -->\r\n    <div id=\"step-4\" class=\"wizard-step\">\r\n        <div class=\"section-card\">\r\n            <div style=\"display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; margin-bottom:30px; border-bottom: 2px solid #f0f0f0; padding-bottom:30px;\">\r\n                <div>\r\n                    <h1>Polo\u017ekov\u00e1 Rekapitulace<\/h1>\r\n                    <p style=\"color:var(--text-muted); font-weight:600;\">Krok 4 ze 4<\/p>\r\n                <\/div>\r\n                <button onclick=\"window.app.goto(3)\" class=\"myslivna-btn myslivna-btn-secondary\" style=\"display:inline-block !important; width:auto !important;\">\r\n                    <i class=\"fas fa-plus-circle\"><\/i> Zm\u011bnit dopl\u0148ky\r\n                <\/button>\r\n            <\/div>\r\n            <div style=\"margin-bottom:40px;\">\r\n                <h3 style=\"margin-bottom:20px;\">Va\u0161e vybran\u00e9 menu a slu\u017eby<\/h3>\r\n                <div id=\"final-items-list\" style=\"background:#fff; border:1px solid #eee; border-radius:15px; padding:20px; margin-bottom: 20px;\">\r\n                    <!-- JS sem vykresl\u00ed polo\u017eky -->\r\n                <\/div>\r\n                \r\n                <div style=\"background:#fffcf0; border:1px dashed var(--gold); padding:20px; border-radius:15px; margin-bottom:20px;\">\r\n                    <h3 style=\"margin-top:0; color:var(--gold); font-size:16px; margin-bottom:12px;\">M\u00e1te slevov\u00fd voucher?<\/h3>\r\n                    <div style=\"display:flex; gap:10px;\">\r\n                        <input type=\"text\" id=\"voucherCode\" placeholder=\"K\u00f3d voucheru\" class=\"input-base\" style=\"padding: 10px 15px; font-size:14px;\">\r\n                        <button onclick=\"window.app.applyVoucher()\" class=\"myslivna-btn\" style=\"padding: 10px 25px !important; font-size:14px !important; width:auto !important; margin:0 !important;\">Uplatnit<\/button>\r\n                    <\/div>\r\n                    <div id=\"voucher-msg\" style=\"margin-top:10px; font-weight:700; color:#059669; font-size:13px; display:none;\"><i class=\"fas fa-check-circle\"><\/i> Slevy byly aplikov\u00e1ny.<\/div>\r\n                <\/div>\r\n                <div style=\"background:var(--forest-green); color:white; padding:30px; border-radius:20px; text-align:center;\">\r\n                    <div style=\"font-size:12px; text-transform:uppercase; color:var(--gold); letter-spacing:1px; margin-bottom:5px;\">Celkov\u00e1 cena k popt\u00e1vce<\/div>\r\n                    <div style=\"font-family: inherit, serif; font-size:40px; color:var(--gold); font-weight:700;\" id=\"summary-total\">0 K\u010d<\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <h3 style=\"margin-bottom: 20px;\">Dokon\u010den\u00ed popt\u00e1vky<\/h3>\r\n            <div class=\"form-row\">\r\n                <div>\r\n                    <label class=\"field-label\">Jm\u00e9no a p\u0159\u00edjmen\u00ed<\/label>\r\n                    <input type=\"text\" id=\"finalName\" class=\"input-base\" placeholder=\"Va\u0161e jm\u00e9no\">\r\n                <\/div>\r\n                <div>\r\n                    <label class=\"field-label\">Telefon<\/label>\r\n                    <input type=\"text\" id=\"finalPhone\" class=\"input-base\" placeholder=\"Tel. \u010d\u00edslo\">\r\n                <\/div>\r\n            <\/div>\r\n            <div style=\"margin-bottom:30px;\">\r\n                <label class=\"field-label\">E-mail<\/label>\r\n                <input type=\"email\" id=\"finalEmail\" class=\"input-base\" placeholder=\"E-mailov\u00e1 adresa\">\r\n            <\/div>\r\n            <button onclick=\"window.app.submit()\" id=\"btn-submit\" class=\"myslivna-btn\" style=\"width:100% !important; margin: 0 auto !important;\">ODESLAT POPT\u00c1VKU \u017dIV\u011a<\/button>\r\n        <\/div>\r\n    <\/div>\r\n    <!-- GLOB\u00c1LN\u00cd STICKY KO\u0160\u00cdK -->\r\n    <div id=\"global-cart\" class=\"sticky-cart\" style=\"display:none;\">\r\n        <div style=\"display:flex; align-items:center; gap:20px;\">\r\n            <div>\r\n                <div style=\"font-size: 11px; text-transform: uppercase; color: rgba(255,255,255,0.6);\">Aktu\u00e1ln\u00ed cena<\/div>\r\n                <div id=\"cart-total\" style=\"font-weight:700; font-size:26px; color:var(--gold);\">0 K\u010d<\/div>\r\n            <\/div>\r\n            <div id=\"cart-info-text\" class=\"hide-mobile\" style=\"font-size:13px; opacity:0.8; margin-left:10px;\">Vyberte si j\u00eddlo k hostin\u011b<\/div>\r\n        <\/div>\r\n        <div style=\"display:flex; gap:10px;\">\r\n            <button onclick=\"window.app.goBack()\" class=\"myslivna-btn myslivna-btn-secondary\" style=\"margin:0 !important; border: none !important; padding: 12px 20px !important;\">\r\n                <i class=\"fas fa-arrow-left\"><\/i> <span class=\"hide-mobile\">Zp\u011bt<\/span>\r\n            <\/button>\r\n            <button onclick=\"window.app.goNext()\" class=\"myslivna-btn\" style=\"width:auto !important; margin:0 !important; background:white !important; color:var(--forest-green) !important; border: 2px solid var(--gold) !important; padding: 12px 30px !important;\">\r\n                Dal\u0161\u00ed <i class=\"fas fa-arrow-right\" style=\"margin-left: 5px;\"><\/i>\r\n            <\/button>\r\n        <\/div>\r\n    <\/div>\r\n    <div style=\"text-align: center; margin-top: 50px; padding-bottom: 20px; font-size: 12px; color: var(--text-muted); opacity: 0.7;\">\r\n        * V\u0161echny zobrazen\u00e9 fotografie v konfigur\u00e1toru jsou pouze ilustra\u010dn\u00ed.\r\n    <\/div>\r\n<\/div>\r\n<script data-cookieconsent=\"ignore\">\r\n\/\/ DATAB\u00c1ZE POLO\u017dEK - ROZ\u0160\u00cd\u0158ENO O CATERING.DOCX\r\nconst MENU_ITEMS = [\r\n    { \r\n        id: 'm1', cat: 'V\u00fdb\u011bry \u0161\u00e9fkucha\u0159e', name: 'Tradi\u010dn\u00ed jiho\u010desk\u00fd raut', price: 690, weight: 800, \r\n        img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/jihocesky-raut-1.jpg',\r\n        desc: 'Osv\u011bd\u010den\u00e1 klasika pro ka\u017edou p\u0159\u00edle\u017eitost. Ide\u00e1ln\u00ed volba pro hosty, kte\u0159\u00ed miluj\u00ed poctivou \u010deskou kuchyni.<div class=\"modul-details\" style=\"margin-top:15px; background:rgba(255,255,255,0.5); padding:10px; border-radius:10px;\"><div class=\"modul-content\"><strong>Studen\u00e9 p\u0159edkrmy:<\/strong>Hov\u011bz\u00ed tatar\u00e1k s topinkami a \u010desnekem.<br>Kr\u00e9mov\u00e1 s\u00fdrov\u00e1 rol\u00e1da.<br>V\u00fdb\u011br jemn\u011b uzen\u00fdch specialit s nakl\u00e1dan\u00fdmi delikatesami.<strong>Tepl\u00e9 pokrmy:<\/strong>Variace vep\u0159ov\u00fdch a ku\u0159ec\u00edch mini \u0159\u00edze\u010dk\u016f.<br>Poctiv\u00fd zv\u011b\u0159inov\u00fd gul\u00e1\u0161ek.<br>Mini hamburgery a vyhl\u00e1\u0161en\u00e9 kap\u0159\u00ed \u0161kvarky s pikantn\u00ed majon\u00e9zou.<strong>Sal\u00e1ty a p\u0159\u00edlohy:<\/strong>\u0160opsk\u00fd a bramborov\u00fd sal\u00e1t.<br>Dom\u00e1c\u00ed brambor\u00e1\u010dky, variace dip\u016f a \u010derstv\u00e9 pe\u010divo.<strong>Sladk\u00e1 te\u010dka:<\/strong>Dom\u00e1c\u00ed jable\u010dn\u00fd z\u00e1vin se \u0161leha\u010dkou.<\/div><\/div>' \r\n    },\r\n    { \r\n        id: 'm2', cat: 'V\u00fdb\u011bry \u0161\u00e9fkucha\u0159e', name: 'T\u0159ebo\u0148sk\u00fd gurm\u00e1nsk\u00fd raut', price: 850, weight: 1000, \r\n        img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/trebonsky-raut.jpg',\r\n        desc: 'To nejlep\u0161\u00ed z T\u0159ebon\u011b na jednom stole. Zam\u011b\u0159eno na vyhl\u00e1\u0161en\u00e9 ryb\u00ed speciality a uzen\u00e9 lah\u016fdky.<div class=\"modul-details\" style=\"margin-top:15px; background:rgba(255,255,255,0.5); padding:10px; border-radius:10px;\"><div class=\"modul-content\"><strong>Studen\u00e9 p\u0159edkrmy:<\/strong>Tepl\u00e1 uzen\u00e1 k\u00fdta kr\u00e1jen\u00e1 p\u0159\u00edmo od kosti.<br>Tatar\u00e1k z t\u0159ebo\u0148sk\u00e9ho kapra.<strong>Tepl\u00e9 pokrmy:<\/strong>Zv\u011b\u0159inov\u00e1 sm\u011bs s houbami a pomalu pe\u010den\u00e1 krkovice vcelku.<br>Origin\u00e1ln\u00ed t\u0159ebo\u0148sk\u00e9 kap\u0159\u00ed hranolky.<br>Lehk\u00e9 zeleninov\u00e9 sot\u00e9 s tofu.<strong>Sal\u00e1ty a p\u0159\u00edlohy:<\/strong>Sal\u00e1t Coleslaw a variace \u010derstv\u00e9 trhan\u00e9 zeleniny.<br>Pe\u010den\u00e9 bramb\u016frky Grenaille, dipy a banketn\u00ed pe\u010divo.<strong>Sladk\u00e1 te\u010dka:<\/strong>Rakytn\u00edkov\u00fd cheesecake a ovocn\u00e1 m\u00edsa.<\/div><\/div>' \r\n    },\r\n    { \r\n        id: 'm3', cat: 'V\u00fdb\u011bry \u0161\u00e9fkucha\u0159e', name: 'Mysliveck\u00fd exkluzivn\u00ed raut', price: 950, weight: 1200, \r\n        img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/exklusive.jpg',\r\n        desc: 'V\u00fdkladn\u00ed sk\u0159\u00ed\u0148 na\u0161\u00ed kuchyn\u011b. Luxusn\u00ed kombinace u\u0161lechtil\u00e9 zv\u011b\u0159iny, cand\u00e1ta a pr\u00e9miov\u00fdch mas.<div class=\"modul-details\" style=\"margin-top:15px; background:rgba(255,255,255,0.5); padding:10px; border-radius:10px;\"><div class=\"modul-content\"><strong>Studen\u00e9 p\u0159edkrmy:<\/strong>V\u00fdb\u011br elegantn\u00edch kanapek.<br>Zv\u011b\u0159inov\u00e1 pa\u0161tika s brusinkami.<strong>Tepl\u00e9 pokrmy:<\/strong>Filety z cand\u00e1ta na zeleninov\u00e9m l\u016f\u017eku.<br>Slaninov\u00e1 korunka s \u010desnekov\u00fdm kaprem.<br>Zlatav\u00e9 ku\u0159ec\u00ed supr\u00eame s om\u00e1\u010dkou dle \u0161\u00e9fkucha\u0159e.<br>Dan\u010d\u00ed maso s ko\u0159enovou zeleninou na \u010derven\u00e9m v\u00edn\u011b.<br>Pomalu pe\u010den\u00fd hov\u011bz\u00ed ro\u0161t\u011bnec s om\u00e1\u010dkou z barevn\u00e9ho pep\u0159e.<strong>Sal\u00e1ty a p\u0159\u00edlohy:<\/strong>Zv\u011b\u0159inov\u00fd sal\u00e1t s trhan\u00fdm masem a bylinkov\u00fdm dresinkem.<br>Sv\u011b\u017e\u00ed mix zeleniny, brambor\u00e1\u010dky, dipy a v\u00fdb\u011br pe\u010diva.<strong>Sladk\u00e1 te\u010dka:<\/strong>\u010cokol\u00e1dov\u00fd mousse s vi\u0161n\u011bmi a variace ovoce.<\/div><\/div>' \r\n    },\r\n    \/\/ POL\u00c9VKY\r\n    { id: 'p1', cat: 'Pol\u00e9vky', name: 'Jiho\u010desk\u00e1 kulajda s vejcem', price: 60, weight: 330, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/kulajda.jpg', desc: 'S lesn\u00edmi houbami a \u010derstv\u00fdm koprem.' },\r\n    { id: 'p2', cat: 'Pol\u00e9vky', name: 'Ro\u017embersk\u00e1 ryb\u00ed pol\u00e9vka', price: 60, weight: 330, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/rybi.jpg', desc: 'Tradi\u010dn\u00ed v\u00fdvar s krutony.' },\r\n    { id: 'p3', cat: 'Pol\u00e9vky', name: 'Hov\u011bz\u00ed v\u00fdvar s masem', price: 60, weight: 330, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/vyvar.jpg', desc: 'S ko\u0159enovou zeleninou a nudlemi.' },\r\n    \/\/ P\u0158EDKRMY\r\n    { id: 'pr1', cat: 'P\u0159edkrmy', name: 'Zv\u011b\u0159inov\u00e1 pa\u0161tika', price: 96, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/pastika-brusinky.jpg', desc: 'S brusinkami a mandlemi.' },\r\n    { id: 'pr2', cat: 'P\u0159edkrmy', name: 'Dom\u00e1c\u00ed pa\u0161tika s cibulovou marmel\u00e1dou', price: 125, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/pastika-s-catni.jpg', desc: 'Tradi\u010dn\u00ed receptura s rozpe\u010den\u00fdm pe\u010divem.' },\r\n    { id: 'pr3', cat: 'P\u0159edkrmy', name: 'Hov\u011bz\u00ed tatar\u00e1k s topinkami', price: 220, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/tatarak.jpg', desc: 'Nam\u00edchan\u00fd s \u010desnekem a ko\u0159en\u00edm.' },\r\n    { id: 'pr4', cat: 'P\u0159edkrmy', name: 'Tatar\u00e1k z t\u0159ebo\u0148sk\u00e9ho kapra', price: 114, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/kapr-tatarak.jpg', desc: 'Netradi\u010dn\u00ed ryb\u00ed delikatesa.' },\r\n    { id: 'pr5', cat: 'P\u0159edkrmy', name: 'Variace kanapek (15 ks)', price: 58, weight: 55, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/jednohubky.jpg', desc: 'Mix tradi\u010dn\u00edch i gurm\u00e1nsk\u00fdch chut\u00ed.' },\r\n    { id: 'pr8', cat: 'P\u0159edkrmy', name: 'Grilovan\u00fd hermel\u00edn se sal\u00e1tkem', price: 119, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/hermelin.jpg', desc: 'S brusinkami a mixem listov\u00fdch sal\u00e1t\u016f.' },\r\n    { id: 'pr9', cat: 'P\u0159edkrmy', name: 'Caesar sal\u00e1t s parmaz\u00e1nem', price: 52, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/cesar.jpg', desc: 'Klasick\u00fd sal\u00e1t s krutony.' },\r\n    { id: 'pr10', cat: 'P\u0159edkrmy', name: 'V\u00fdb\u011br uzen\u00fdch specialit', price: 105, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/uzeniny.jpg', desc: 'S nakl\u00e1dan\u00fdmi lah\u016fdkami a kr\u00e9movou s\u00fdrovou rol\u00e1dou.' },\r\n    { id: 'prn0', cat: 'P\u0159edkrmy', name: 'Kr\u00e9mov\u00e1 s\u00fdrov\u00e1 rol\u00e1da', price: 115, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/syr-rolada.jpg', desc: 'Jemn\u00e1 s\u00fdrov\u00e1 chu\u0165 s bylinkami' },\r\n    { id: 'prn1', cat: 'P\u0159edkrmy', name: 'Uzen\u00e1 k\u00fdta od kosti', price: 58, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/kyta.jpg', desc: 'Poctiv\u00e1 chu\u0165 tradi\u010dn\u00edho uzen\u00e9ho masa' },\r\n    { id: 'prn3', cat: 'P\u0159edkrmy', name: 'Celozrnn\u00e9 mini sendvi\u010de', price: 58, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/minisendvice.jpg', desc: 'K\u0159upav\u00e1 energie v lehk\u00e9m balen\u00ed' },\r\n    { id: 'prn4', cat: 'P\u0159edkrmy', name: 'Vegansk\u00e1 pomaz\u00e1nka, zelenina, krekry', price: 45, weight: 80, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/krekry.jpg', desc: 'Zdrav\u00e9 rostlinn\u00e9 k\u0159up\u00e1n\u00ed pln\u00e9 barev' },\r\n    \/\/ HLAVN\u00cd J\u00cdDLA\r\n    { id: 'h1', cat: 'Hlavn\u00ed j\u00eddla', name: 'Hov\u011bz\u00ed sv\u00ed\u010dkov\u00e1 na smetan\u011b', price: 170, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/svickova.jpg', desc: 'S variac\u00ed houskov\u00fdch a karlovarsk\u00fdch knedl\u00edk\u016f.' },\r\n    { id: 'h2', cat: 'Hlavn\u00ed j\u00eddla', name: 'Konfitovan\u00e9 kachn\u00ed stehno', price: 198, weight: 250, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/kachna.jpg', desc: 'S \u010derven\u00fdm zel\u00edm a knedl\u00edkem.' },\r\n    { id: 'h3', cat: 'Hlavn\u00ed j\u00eddla', name: 'Dan\u010d\u00ed maso na \u010derven\u00e9m v\u00edn\u011b', price: 230, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/danek.jpg', desc: 'S ko\u0159enovou zeleninou a bylinkami.' },\r\n    { id: 'h4', cat: 'Hlavn\u00ed j\u00eddla', name: 'Pikantn\u00ed zv\u011b\u0159inov\u00fd gul\u00e1\u0161ek', price: 145, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/gulas.jpg', desc: 'S \u010derstvou cibulkou a chlebem.' },\r\n    { id: 'h6', cat: 'Hlavn\u00ed j\u00eddla', name: 'Ro\u0161t\u011bnec s pep\u0159ovou om\u00e1\u010dkou', price: 220, weight: 200, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/peprova.jpg', desc: 'Pomalu pe\u010den\u00fd s om\u00e1\u010dkou z barevn\u00e9ho pep\u0159e.' },\r\n    { id: 'h8', cat: 'Hlavn\u00ed j\u00eddla', name: 'Zlatav\u00e9 ku\u0159ec\u00ed supr\u00eame', price: 63, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/kure.jpg', desc: 'S jemnou om\u00e1\u010dkou dle \u0161\u00e9fkucha\u0159e.' },\r\n    { id: 'h9', cat: 'Hlavn\u00ed j\u00eddla', name: 'Variace mini \u0159\u00edze\u010dk\u016f', price: 68, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/rizecky.jpg', desc: 'Mix vep\u0159ov\u00fdch a ku\u0159ec\u00edch mas.' },\r\n    { id: 'h13', cat: 'Hlavn\u00ed j\u00eddla', name: 'Kap\u0159\u00ed \u0161kvarky s majon\u00e9zou', price: 79, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/skvarky.jpg', desc: 'Pikantn\u00ed chu\u0165ovka k pivu.' },\r\n    { id: 'h14', cat: 'Hlavn\u00ed j\u00eddla', name: 'Cand\u00e1t na zeleninov\u00e9m l\u016f\u017eku', price: 179, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/candat.jpg', desc: 'Jemn\u00e1 ryba na m\u00e1sle a bylink\u00e1ch.' },\r\n    { id: 'h17', cat: 'Hlavn\u00ed j\u00eddla', name: 'Kr\u010d\u00ednova ryb\u00ed m\u00edsa (pro 2-3 os)', price: 540, weight: 500, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/misa.jpg', desc: 'V\u00fdb\u011br t\u0159ebo\u0148sk\u00fdch ryb s dipem.' },\r\n    { id: 'h18', cat: 'Hlavn\u00ed j\u00eddla', name: 'Houbov\u00e9 kroupoto', price: 165, weight: 300, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/kroupeto.jpg', desc: 'S bylinkami a hoblinkami parmaz\u00e1nu.' },\r\n    \/\/ SAL\u00c1TY\r\n    { id: 'sa1', cat: 'Sal\u00e1ty a p\u0159\u00edlohy', name: 'Coleslaw', price: 75, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/coleslav.jpg', desc: 'Sv\u011b\u017e\u00ed zeln\u00fd sal\u00e1t s mrkv\u00ed a jemnou z\u00e1livkou.' },\r\n    { id: 'sa2', cat: 'Sal\u00e1ty a p\u0159\u00edlohy', name: '\u0160opsk\u00fd sal\u00e1t', price: 75, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/sopsky.jpg', desc: 'Klasick\u00fd sal\u00e1t s balk\u00e1nsk\u00fdm s\u00fdrem.' },\r\n    { id: 'sa3', cat: 'Sal\u00e1ty a p\u0159\u00edlohy', name: 'Bramborov\u00fd sal\u00e1t', price: 75, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/bramb-sal.jpg', desc: 'Tradi\u010dn\u00ed bramborov\u00fd sal\u00e1t pln\u00fd chut\u00ed.' },\r\n    { id: 'sa4', cat: 'Sal\u00e1ty a p\u0159\u00edlohy', name: 'Mix \u010derstv\u00e9 zeleniny', price: 75, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/zelenina.jpg', desc: 'V\u00fdb\u011br sez\u00f3nn\u00ed zeleniny pro lehk\u00e9 zakousnut\u00ed.' },\r\n    { id: 'hn5', cat: 'Hlavn\u00ed j\u00eddla', name: 'Zv\u011b\u0159inov\u00e1 sm\u011bs s houbami', price: 158, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/houbova.jpg', desc: 'Poctiv\u00e1 chu\u0165 lesa a hub' },\r\n    { id: 'hn6', cat: 'Hlavn\u00ed j\u00eddla', name: 'Pomalu pe\u010den\u00e1 krkovice', price: 180, weight: 200, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/krkovice.jpg', desc: '\u0160\u0165avnat\u00e9 maso pe\u010den\u00e9 s p\u00e9\u010d\u00ed' },\r\n    { id: 'hn7', cat: 'Hlavn\u00ed j\u00eddla', name: 'Mini hamburgery', price: 67, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/burgery.jpg', desc: 'Obl\u00edben\u00e1 klasika v mal\u00e9m vyd\u00e1n\u00ed' },\r\n    { id: 'hn8', cat: 'Hlavn\u00ed j\u00eddla', name: 'T\u0159ebo\u0148sk\u00e9 kap\u0159\u00ed hranolky', price: 89, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/kapri-hrany.jpg', desc: 'Vyhl\u00e1\u0161en\u00e1 specialita z m\u00edstn\u00edch ryb' },\r\n    { id: 'hn9', cat: 'Hlavn\u00ed j\u00eddla', name: 'Pstruh pe\u010den\u00fd na m\u00e1sle a bylink\u00e1ch', price: 46, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/pstruh.jpg', desc: 'Lehk\u00e1 ryba s v\u016fn\u00ed bylinek' },\r\n    { id: 'hn10', cat: 'Hlavn\u00ed j\u00eddla', name: 'Slaninov\u00e1 korunka s \u010desnekov\u00fdm kaprem', price: 380, weight: 500, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/kapr-se-slaninou.jpg', desc: 'Origin\u00e1ln\u00ed kombinace chut\u00ed a v\u016fn\u00ed' },\r\n    { id: 'hn11', cat: 'Hlavn\u00ed j\u00eddla', name: 'Pe\u010den\u00e9 bramb\u016frky Grenaille s koz\u00edm s\u00fdrem', price: 185, weight: 300, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/grenailee-syr.jpg', desc: 'Zlatav\u00e9 bramb\u016frky s jemn\u00fdm s\u00fdrem' },\r\n    { id: 'hn12', cat: 'Hlavn\u00ed j\u00eddla', name: 'Sal\u00e1t s trhan\u00fdm masem ze zv\u011b\u0159iny', price: 195, weight: 300, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/trhany.jpg', desc: 'Sv\u011b\u017e\u00ed mix s delik\u00e1tn\u00ed zv\u011b\u0159inou' },\r\n    \/\/ P\u0158\u00cdLOHY\r\n    { id: 's1', cat: 'Sal\u00e1ty a p\u0159\u00edlohy', name: 'Banketky, kaiserky a chl\u00e9b (3ks)', price: 55, weight: 200, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/pecivo.jpg', desc: 'V\u00fdb\u011br \u010derstv\u00e9ho sv\u011btl\u00e9ho a tmav\u00e9ho pe\u010diva.' },\r\n    { id: 's2', cat: 'Sal\u00e1ty a p\u0159\u00edlohy', name: 'Dom\u00e1c\u00ed brambor\u00e1\u010dky (3ks)', price: 55, weight: 200, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/bramboracky.jpg', desc: 'Zlatav\u00e9 a k\u0159upav\u00e9 dle na\u0161\u00ed receptury.' },\r\n    { id: 's3', cat: 'Sal\u00e1ty a p\u0159\u00edlohy', name: 'Brambory Grenaille', price: 55, weight: 200, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/grenaille.jpg', desc: 'Pe\u010den\u00e9 bramb\u016frky s rozmar\u00fdnem a sol\u00ed.' },\r\n    \/\/ DEZERTY\r\n    { id: 'd1', cat: 'Dezerty', name: 'Mysliveck\u00fd cheesecake', price: 110, weight: 120, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/chese-mysl.jpg', desc: 'S medem a vla\u0161sk\u00fdmi o\u0159echy.' },\r\n    { id: 'd3', cat: 'Dezerty', name: 'Tvarohov\u00fd dort s ovocem', price: 95, weight: 120, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/tvaroh.jpg', desc: 'Sv\u011b\u017e\u00ed dezert s lesn\u00edmi plody.' },\r\n    { id: 'd4', cat: 'Dezerty', name: 'Dom\u00e1c\u00ed jable\u010dn\u00fd z\u00e1vin', price: 75, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/zavin.jpg', desc: 'S vla\u0161sk\u00fdmi o\u0159echy a \u0161leha\u010dkou.' },\r\n    { id: 'd5', cat: 'Dezerty', name: '\u010cokol\u00e1dov\u00fd mousse s vi\u0161n\u011bmi', price: 90, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/mouse.jpg', desc: 'Intenzivn\u00ed \u010dokol\u00e1dov\u00e1 p\u011bna.' },\r\n    { id: 'd9', cat: 'Dezerty', name: 'Ovocn\u00e9 m\u00edsy', price: 80, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/ovoce.jpg', desc: 'Mix \u010derstv\u00e9ho sez\u00f3nn\u00edho ovoce.' },\r\n    { id: 'dn13', cat: 'Dezerty', name: 'Rakytn\u00edkov\u00fd cheesecake', price: 110, weight: 120, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/04\/rakytnik.jpg', desc: 'Sv\u011b\u017e\u00ed spojen\u00ed rakytn\u00edku a s\u00fdra' },\r\n        \/\/ N\u00c1POJE\r\n    \/\/ APERITIVY\r\n    { id: 'ap1', cat: 'N\u00e1poje', subcat: 'Aperitivy', name: 'Cinzano Bianco (0,1 l)', price: 75, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/cinzano.jpg', desc: 'Klasick\u00fd italsk\u00fd aperitiv.' },\r\n    { id: 'ap2', cat: 'N\u00e1poje', subcat: 'Aperitivy', name: 'Martini Extra Dry (0,1 l)', price: 85, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/martiny.jpg', desc: 'Extra such\u00e9 martini.' },\r\n    \/\/ V\u00cdNA KUB\u00cdK\r\n    { id: 'vk1', cat: 'N\u00e1poje', subcat: 'V\u00edna & Sekty', name: 'Chardonnay (0,15 l) - Kub\u00edk', price: 60, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/chardonay.jpg', desc: 'Such\u00e9 b\u00edl\u00e9 v\u00edno.' },\r\n    { id: 'vk2', cat: 'N\u00e1poje', subcat: 'V\u00edna & Sekty', name: 'Cuve\u00e9 Fresh\u016fvka (0,15 l) - Kub\u00edk', price: 66, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/fresh.jpg', desc: 'Such\u00e9 b\u00edl\u00e9 v\u00edno.' },\r\n    { id: 'vk3', cat: 'N\u00e1poje', subcat: 'V\u00edna & Sekty', name: 'P\u00e1lava (0,15 l) - Kub\u00edk', price: 66, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/palava.jpg', desc: 'Polosladk\u00e9 b\u00edl\u00e9 v\u00edno.' },\r\n    { id: 'vk4', cat: 'N\u00e1poje', subcat: 'V\u00edna & Sekty', name: 'Modr\u00fd Portugal (0,15 l) - Kub\u00edk', price: 60, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/portugal.jpg', desc: 'Such\u00e9 \u010derven\u00e9 v\u00edno.' },\r\n    { id: 'vk5', cat: 'N\u00e1poje', subcat: 'V\u00edna & Sekty', name: 'Frankovka Ros\u00e9 (0,15 l) - Kub\u00edk', price: 66, weight: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/rose.jpg', desc: 'Polosuch\u00e9 r\u016f\u017eov\u00e9 v\u00edno.' },\r\n    \/\/ \u0160UMIV\u00c1 V\u00cdNA\r\n    { id: 'sv1', cat: 'N\u00e1poje', subcat: 'V\u00edna & Sekty', name: 'Bohemia Sekt Brut (0,75 l)', price: 350, weight: 750, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/brut.jpg', desc: 'Such\u00fd sekt.' },\r\n    { id: 'sv2', cat: 'N\u00e1poje', subcat: 'V\u00edna & Sekty', name: 'Bohemia Sekt Demi Sec (0,75 l)', price: 350, weight: 750, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/bohemia-sec-1.jpg', desc: 'Polosuch\u00fd sekt.' },\r\n    { id: 'sv3', cat: 'N\u00e1poje', subcat: 'V\u00edna & Sekty', name: 'Prosecco (0,75 l)', price: 350, weight: 750, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/proseco.jpg', desc: 'Italsk\u00e9 perliv\u00e9 v\u00edno.' },\r\n    \/\/ LIHOVINY\r\n    { id: 'li1', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Tuzem\u00e1k (0,04 l)', price: 55, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/tuzemak.jpg', desc: 'Klasika z Bo\u017ekova.' },\r\n    { id: 'li2', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Bo\u017ekov REPUBLICA EXCLUSIVE (0,04 l)', price: 65, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/republica.jpg', desc: 'Pr\u00e9miov\u00fd \u010desk\u00fd rum.' },\r\n    { id: 'li3', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Beefeater Gin (0,04 l)', price: 70, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/gin.jpg', desc: 'Stylov\u00fd lond\u00fdnsk\u00fd gin.' },\r\n    { id: 'li4', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Vodka Finlandia (0,04 l)', price: 70, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/vodka.jpg', desc: '\u010cist\u00e1 finsk\u00e1 vodka.' },\r\n    { id: 'li5', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Becherovka (0,04 l)', price: 60, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/becher.jpg', desc: 'Bylinn\u00fd lik\u00e9r z Karlov\u00fdch Var\u016f.' },\r\n    { id: 'li6', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'J\u00e4germeister (0,04 l)', price: 75, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/jager.jpg', desc: 'N\u011bmeck\u00fd bylinn\u00fd lik\u00e9r.' },\r\n    { id: 'li7', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Fernet Stock - Citrus (0,04 l)', price: 55, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/fernet.jpg', desc: 'Citrusov\u00fd bylinn\u00fd lik\u00e9r.' },\r\n    { id: 'li8', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Rudolf Jel\u00ednek slivovice 45% (0,04 l)', price: 70, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/slivovice.jpg', desc: 'Tradi\u010dn\u00ed ovocn\u00fd destil\u00e1t.' },\r\n    { id: 'li9', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Metaxa ***** (0,04 l)', price: 85, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/metaxa.jpg', desc: '\u0158eck\u00e1 brandy.' },\r\n    { id: 'li10', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Tullamore Dew (0,0 Irish Whiskey (0,04 l)', price: 85, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/tulamore.jpg', desc: 'Jemn\u00e1 irsk\u00e1 whiskey.' },\r\n    { id: 'li11', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'L\u00e1ze\u0148sk\u00e1 brusinka (0,04 l)', price: 60, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/brusinka.jpg', desc: 'Ovocn\u00fd lik\u00e9r.' },\r\n    { id: 'li12', cat: 'N\u00e1poje', subcat: 'Lihoviny', name: 'Griotka (0,04 l)', price: 50, weight: 40, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/griotka.jpg', desc: 'Vi\u0161\u0148ov\u00fd lik\u00e9r.' },\r\n    { id: 'n3', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'To\u010den\u00e9 pivo (Regent 11\u00b0 sv\u011btl\u00e9)', price: 55, weight: 500, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/pivo.jpg', desc: '\u010cepovan\u00e9 lok\u00e1ln\u00ed sv\u011btl\u00e9 pivo.' },\r\n    { id: 'n3b', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'To\u010den\u00e9 pivo (Regent 13\u00b0 polotmav\u00e9)', price: 60, weight: 500, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/pivo-13.jpg', desc: '\u010cepovan\u00e9 lok\u00e1ln\u00ed polotmav\u00e9 pivo.' },\r\n    { id: 'n3c', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Sud piva Regent 11\u00b0 sv\u011btl\u00e9 (30 l)', price: 3300, weight: 30000, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/30L.jpg', desc: 'Sv\u011btl\u00e9 pivo v sudu (60 piv).' },\r\n    { id: 'n3d', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Sud piva Regent 11\u00b0 sv\u011btl\u00e9 (50 l)', price: 5500, weight: 50000, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/50L.jpg', desc: 'Sv\u011btl\u00e9 pivo v sudu (100 piv).' },\r\n    { id: 'n3e', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Sud piva Regent 13\u00b0 polotmav\u00e9 (30 l)', price: 3600, weight: 30000, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/30L.jpg', desc: 'Polotmav\u00e9 pivo v sudu (60 piv).' },\r\n    { id: 'n3f', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Sud piva Regent 13\u00b0 polotmav\u00e9 (50 l)', price: 6000, weight: 50000, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/50L.jpg', desc: 'Polotmav\u00e9 pivo v sudu (100 piv).' },\r\n    { id: 'n4', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Dom\u00e1c\u00ed limon\u00e1da (2 druhy)', price: 75, weight: 400, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/limca.jpg', desc: 'Osv\u011b\u017euj\u00edc\u00ed ovocn\u00e9 limon\u00e1dy.' },\r\n    { id: 'n5', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Miner\u00e1ln\u00ed voda perliv\u00e1 a neperliv\u00e1', price: 45, weight: 330, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/mattoni.jpg', desc: 'Balen\u00e1 voda.' },\r\n    { id: 'n6', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Voda s citr\u00f3nem', price: 60, weight: 1000, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/voda.jpg', desc: 'Ve d\u017eb\u00e1nech.' },\r\n    { id: 'n7', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Ovocn\u00e9 d\u017eusy (jable\u010dn\u00fd, pomeran\u010dov\u00fd)', price: 55, weight: 250, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/dzusy.jpg', desc: 'Rozl\u00e9van\u00e9 d\u017eusy.' },\r\n    { id: 'n8', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Pepsi, Mirinda, 7UP, Tonic', price: 55, weight: 250, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/tonic-pepsi-7up-mirinda.jpg', desc: 'Sycen\u00e9 n\u00e1poje.' },\r\n    { id: 'n9', cat: 'N\u00e1poje', subcat: 'Nealko & Pivo', name: 'Variace k\u00e1vy a v\u00fdb\u011br \u010daj\u016f', price: 65, weight: 100, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/kava.jpg', desc: 'K\u00e1va a \u010daje na vy\u017e\u00e1d\u00e1n\u00ed.' },\r\n    \r\n    { id: 'n10', cat: 'N\u00e1poje', subcat: 'Korkovn\u00e9', name: 'Servis vlastn\u00edho v\u00edna (korkovn\u00e9)', price: 150, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/korkovne-vino.jpg', desc: 'Slu\u017eba na p\u0159inesen\u00e9 vlastn\u00ed v\u00edno (cena za 1 l\u00e1hev).' },\r\n    { id: 'n11', cat: 'N\u00e1poje', subcat: 'Korkovn\u00e9', name: 'Servis vlastn\u00edho destil\u00e1tu (korkovn\u00e9)', price: 300, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/korkovne-destilaty.jpg', desc: 'Slu\u017eba na p\u0159inesen\u00fd vlastn\u00ed tvrd\u00fd alkohol (cena za 1 l\u00e1hev).' },\r\n    \/\/ SLU\u017dBY\r\n    { id: 'sl1', cat: 'Slu\u017eby', name: 'Ubytov\u00e1n\u00ed na hotelu', price: 1500, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/ubytovani.jpg', desc: 'Pokoj v\u010d. sn\u00eddan\u011b (max 27 l\u016f\u017eek).' },\r\n    { id: 'sl2', cat: 'Slu\u017eby', name: 'Doprava (Rozvoz)', price: 15, img: 'https:\/\/www.myslivna.com\/wp-content\/uploads\/2026\/05\/doprava.jpg', desc: 'Odvoz host\u016f po akci nebo doprava cateringu na m\u00edsto (cena za 1 km).' },\r\n];\r\nconst CATEGORIES = [...new Set(MENU_ITEMS.map(i => i.cat))];\r\nconst GASTRO_CATS = CATEGORIES.filter(c => !['N\u00e1poje', 'Slu\u017eby'].includes(c));\r\nconst EXTRA_CATS = ['N\u00e1poje', 'Slu\u017eby'];\r\nwindow.app = {\r\n    state: {\r\n        step: 1,\r\n        type: 'Svatba',\r\n        location: 'U n\u00e1s v restauraci',\r\n        adults: 20,\r\n        kids: 0,\r\n        cart: {}, \r\n        activeGastroCat: GASTRO_CATS[0],\r\n        activeExtraCat: EXTRA_CATS[0],\r\n        activeBeverageSubcat: 'Nealko & Pivo',\r\n        voucherType: null\r\n    },\r\n    init() {\r\n        this.renderTabs();\r\n        this.renderCatalog();\r\n        this.renderExtraTabs();\r\n        this.renderExtraCatalog();\r\n        this.calc();\r\n    },\r\n    setType(t, el) {\r\n        this.state.type = t;\r\n        document.querySelectorAll('#type-grid .event-card').forEach(c => c.classList.remove('selected'));\r\n        el.classList.add('selected');\r\n        let box = document.getElementById('wedding-corkage-box');\r\n        if (box) box.style.display = t === 'Svatba' ? 'block' : 'none';\r\n        this.calc();\r\n    },\r\n    setLocation(l, el) {\r\n        this.state.location = l;\r\n        document.getElementById('loc-Restaurace').classList.remove('selected');\r\n        document.getElementById('loc-Vlastni').classList.remove('selected');\r\n        el.classList.add('selected');\r\n        this.calc();\r\n    },\r\n    goto(step) {\r\n        if (step === 2) {\r\n            this.state.adults = parseInt(document.getElementById('evAd').value) || 1;\r\n            this.state.kids = parseInt(document.getElementById('evCh').value) || 0;\r\n            document.getElementById('cat-subtitle').innerText = `${this.state.adults + this.state.kids} osob \u2022 ${this.state.type}`;\r\n            document.getElementById('cart-info-text').innerText = 'Sestavte si sv\u00e9 menu';\r\n        }\r\n        if (step === 3) {\r\n            document.getElementById('cart-info-text').innerText = 'Vyberte si n\u00e1poje a slu\u017eby';\r\n        }\r\n        if (step === 4) {\r\n            this.renderFinalList();\r\n        }\r\n        document.querySelectorAll('.wizard-step').forEach(e => e.classList.remove('active'));\r\n        document.getElementById(`step-${step}`).classList.add('active');\r\n        document.getElementById('global-cart').style.display = (step === 1 || step === 4) ? 'none' : 'flex';\r\n        this.state.step = step;\r\n        document.getElementById('app').scrollIntoView({behavior: 'smooth', block: 'start'});\r\n        this.calc();\r\n    },\r\n    goNext() {\r\n        if (Object.keys(this.state.cart).length === 0) return alert(\"Nezvolili jste zat\u00edm \u017e\u00e1dn\u00fd produkt. Pros\u00edm, vyberte si n\u011bco z nab\u00eddky.\");\r\n        if (this.state.step === 2) this.goto(3);\r\n        else if (this.state.step === 3) this.goto(4);\r\n    },\r\n    goBack() {\r\n        if (this.state.step === 2) this.goto(1);\r\n        else if (this.state.step === 3) this.goto(2);\r\n    },\r\n    setCat(c) {\r\n        this.state.activeGastroCat = c;\r\n        this.renderTabs();\r\n        this.renderCatalog();\r\n    },\r\n    \r\n    setBeverageSubcat(sc) {\r\n        this.state.activeBeverageSubcat = sc;\r\n        this.renderExtraTabs();\r\n        this.renderExtraCatalog();\r\n    },\r\n    setExtraCat(c) {\r\n        this.state.activeExtraCat = c;\r\n        this.renderExtraTabs();\r\n        this.renderExtraCatalog();\r\n    },\r\n    setQty(id, val) {\r\n        if (isNaN(val) || val <= 0) delete this.state.cart[id];\r\n        else {\r\n            if (id === 'sl1' && val > 27) val = 27;\r\n            this.state.cart[id] = val;\r\n        }\r\n        this.renderCatalog();\r\n        this.renderExtraCatalog();\r\n        this.calc();\r\n    },\r\n    changeQty(id, delta) {\r\n        let item = MENU_ITEMS.find(x => x.id === id);\r\n        let current = this.state.cart[id] || 0;\r\n        let guests = this.state.adults + this.state.kids;\r\n        \r\n        if (delta > 0) {\r\n            \/\/ Moduly vs Custom J\u00eddlo + Exkluzivita mezi moduly\r\n            if (GASTRO_CATS.includes(item.cat)) {\r\n                const isModule = item.cat === 'V\u00fdb\u011bry \u0161\u00e9fkucha\u0159e';\r\n                Object.keys(this.state.cart).forEach(cid => {\r\n                    let it = MENU_ITEMS.find(x => x.id === cid);\r\n                    if (it && GASTRO_CATS.includes(it.cat)) {\r\n                        \/\/ Pokud p\u0159ep\u00edn\u00e1m mezi modulem a custom j\u00eddlem NEBO pokud vyb\u00edr\u00e1m jin\u00fd modul\r\n                        if (isModule !== (it.cat === 'V\u00fdb\u011bry \u0161\u00e9fkucha\u0159e') || (isModule && cid !== id)) {\r\n                            delete this.state.cart[cid];\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        }\r\n        if (current === 0 && delta > 0) {\r\n            if (item.id === 'n3c' || item.id === 'n3d' || item.id === 'n3e' || item.id === 'n3f') {\r\n                current = 1;\r\n            } else if (item.cat === 'N\u00e1poje') {\r\n                if (item.subcat === 'Nealko & Pivo' && item.id !== 'n3' && item.id !== 'n3b') {\r\n                    current = guests;\r\n                } else {\r\n                    current = this.state.adults;\r\n                }\r\n            }\r\n            else if (item.id === 'sl1') current = guests; \r\n            else if (item.id === 'sl2') current = 1;\r\n            else current = guests;\r\n        } else current += delta;\r\n        if (current <= 0) delete this.state.cart[id];\r\n        else {\r\n            if (item.id === 'sl1' && current > 27) current = 27;\r\n            this.state.cart[id] = current;\r\n        }\r\n        \r\n        this.renderCatalog();\r\n        this.renderExtraCatalog();\r\n        this.calc();\r\n    },\r\n    renderTabs() {\r\n        let html = '';\r\n        GASTRO_CATS.forEach((c, idx) => {\r\n            if (idx === 1) html += `<div style=\"display:flex; align-items:center; padding: 0 15px; font-weight:800; font-size:10px; color:var(--gold); letter-spacing:1px; white-space:nowrap; border-left: 1px solid #ddd; border-right: 1px solid #ddd; margin: 0 5px;\">NEBO VLASTN\u00cd V\u00ddB\u011aR<\/div>`;\r\n            html += `<button onclick=\"window.app.setCat('${c}')\" class=\"cat-btn ${c === this.state.activeGastroCat ? 'active' : ''}\">${c}<\/button>`;\r\n        });\r\n        document.getElementById('cat-tabs').innerHTML = html;\r\n    },\r\n    renderExtraTabs() {\r\n        let html = EXTRA_CATS.map(c => \r\n            `<button onclick=\"window.app.setExtraCat('${c}')\" class=\"cat-btn ${c === this.state.activeExtraCat ? 'active' : ''}\">${c}<\/button>`\r\n        ).join('');\r\n        \r\n        if (this.state.activeExtraCat === 'N\u00e1poje') {\r\n            const subcats = ['Nealko & Pivo', 'V\u00edna & Sekty', 'Aperitivy', 'Lihoviny', 'Korkovn\u00e9'];\r\n            html += `<div style=\"width: 100%; margin-top: 15px;\"><\/div>`; \r\n            html += subcats.map(sc => \r\n                `<button onclick=\"window.app.setBeverageSubcat('${sc}')\" class=\"cat-btn ${sc === this.state.activeBeverageSubcat ? 'active' : ''}\" style=\\\"font-size:11px !important; text-transform:none !important; font-weight:500 !important; padding:6px 14px !important; min-width:auto; letter-spacing:normal !important; opacity:0.9;\\\">${sc}<\/button>`\r\n            ).join('');\r\n        }\r\n        \r\n        document.getElementById('extra-tabs').innerHTML = html;\r\n        document.getElementById('extra-tabs').style.flexWrap = 'wrap';\r\n    },\r\n    renderCatalog() {\r\n        const items = MENU_ITEMS.filter(i => i.cat === this.state.activeGastroCat);\r\n        document.getElementById('catalog-grid').innerHTML = items.map(i => this.renderCard(i)).join('');\r\n    },\r\n    renderExtraCatalog() {\r\n        const isBottleLayout = this.state.activeExtraCat === 'N\u00e1poje' && ['V\u00edna & Sekty', 'Aperitivy', 'Lihoviny'].includes(this.state.activeBeverageSubcat);\r\n        document.getElementById('extra-grid').style.gridTemplateColumns = isBottleLayout ? 'repeat(auto-fill, minmax(220px, 1fr))' : 'repeat(auto-fill, minmax(280px, 1fr))';\r\n        document.getElementById('extra-grid').style.display = 'grid';\r\n        const items = MENU_ITEMS.filter(i => i.cat === this.state.activeExtraCat && (i.cat !== 'N\u00e1poje' || !i.subcat || i.subcat === this.state.activeBeverageSubcat));\r\n        document.getElementById('extra-grid').innerHTML = items.map(i => this.renderCard(i)).join('');\r\n    },\r\n    renderCard(i) {\r\n        const qty = this.state.cart[i.id] || 0;\r\n        const sub = (i.id === 'sl1') ? 'os' : (i.id === 'sl2' ? 'km' : (i.id === 'n10' || i.id === 'n11' ? 'lahv\u00ed' : 'ks'));\r\n        const defaultImg = 'https:\/\/images.unsplash.com\/photo-1546069901-ba9599a7e63c?auto=format&fit=crop&q=80&w=400';\r\n        const isBottle = i.cat === 'N\u00e1poje' && ['V\u00edna & Sekty', 'Aperitivy', 'Lihoviny'].includes(i.subcat);\r\n        const imgHeight = isBottle ? '260px' : '160px';\r\n        const imgFit = isBottle ? 'object-fit: contain; background: white;' : 'object-fit: cover;';\r\n        return `\r\n        <div class=\"food-card\">\r\n            <div class=\"food-img-box\" style=\"height: ${imgHeight}; background: ${isBottle ? 'white' : '#eee'};\">\r\n                <img decoding=\"async\" src=\"${i.img || defaultImg}\" alt=\"${i.name}\" loading=\"lazy\" style=\"${imgFit}\">\r\n            <\/div>\r\n            <div class=\"food-content\">\r\n                <h3 class=\"food-title\">${i.name}<\/h3>\r\n                <div class=\"food-desc\">${i.desc}<\/div>\r\n                ${i.id === 'sl2' ? `<div style=\"margin-top:5px; margin-bottom:10px;\"><a href=\"https:\/\/www.goo` + `gle.com\/ma` + `ps\/dir\/\/Ro\u017embersk\u00e1+33,+379+01+T\u0159ebo\u0148\" target=\"_blank\" style=\"color:var(--gold); font-size:12px; font-weight:700; text-decoration:none; display:inline-block; padding: 4px 0;\"><i class=\"fas fa-map-marker-alt\"><\/i> \ud83d\udccd Zjistit vzd\u00e1lenost z T\u0159ebon\u011b (M` + `apy)<\/a><\/div>` : ''}\r\n                <div class=\"food-price-row\">\r\n                    <div><span class=\"food-price\">${i.price} K\u010d<\/span><\/div>\r\n                <\/div>\r\n                ${qty > 0 ? `\r\n                    <div class=\"qty-box\">\r\n                        <button class=\"qty-btn\" onclick=\"window.app.changeQty('${i.id}', -1)\"><i class=\"fas fa-minus\"><\/i><\/button>\r\n                        <div style=\"display:flex; align-items:center;\">\r\n                            <input type=\"number\" class=\"qty-input\" value=\"${qty}\" onchange=\"window.app.setQty('${i.id}', parseInt(this.value) || 0)\" onfocus=\"this.select()\">\r\n                            <span style=\"font-size:12px; font-weight:700; color:var(--forest-green); margin-left: 2px;\">${sub}<\/span>\r\n                        <\/div>\r\n                        <button class=\"qty-btn\" onclick=\"window.app.changeQty('${i.id}', 1)\"><i class=\"fas fa-plus\"><\/i><\/button>\r\n                    <\/div>\r\n                    <div style=\"text-align: center; margin-top: 10px;\">\r\n                        <span onclick=\"window.app.setQty('${i.id}', 0)\" style=\"color: #e74c3c; font-size: 13px; font-weight: 700; cursor: pointer; text-transform: uppercase;\"><i class=\"fas fa-times\"><\/i> Odebrat<\/span>\r\n                    <\/div>\r\n                ` : `\r\n                    <button class=\"qty-add-btn\" onclick=\"window.app.changeQty('${i.id}', 1)\"><i class=\"fas fa-plus\"><\/i> Vybrat<\/button>\r\n                `}\r\n            <\/div>\r\n        <\/div>`;\r\n    },\r\n    applyVoucher() {\r\n        const code = document.getElementById('voucherCode').value.toUpperCase();\r\n        if (['SALON10', 'SVATBA10', 'VOUCHER10'].includes(code)) {\r\n            this.state.voucherType = 'SVATBA'; \r\n            document.getElementById('voucher-msg').style.display='block';\r\n        } else {\r\n            this.state.voucherType = null;\r\n            document.getElementById('voucher-msg').style.display='none';\r\n            alert('Neplatn\u00fd nebo pro\u0161l\u00fd k\u00f3d.');\r\n        }\r\n        this.renderFinalList();\r\n        this.calc();\r\n    },\r\n    calc() {\r\n        let ad = this.state.adults;\r\n        let ch = this.state.kids;\r\n        let guests = ad + ch;\r\n        if (guests === 0) return;\r\n        let totalWeight = 0;\r\n        let finalPrice = 0;\r\n        let factor = this.state.voucherType === 'SVATBA' ? 0.9 : 1;\r\n        Object.entries(this.state.cart).forEach(([id, qty]) => {\r\n            let item = MENU_ITEMS.find(x => x.id === id);\r\n            if (item) {\r\n                let p = item.price;\r\n                if (ch > 0 && (GASTRO_CATS.includes(item.cat) || item.cat === 'N\u00e1poje')) {\r\n                    p *= (ad * 1 + ch * 0.75) \/ guests;\r\n                }\r\n                if (item.id === 'sl2') p = p * 2; \/\/ Cesta tam i zp\u011bt\r\n                finalPrice += p * qty;\r\n                if (GASTRO_CATS.includes(item.cat)) totalWeight += (item.weight || 0) * qty;\r\n            }\r\n        });\r\n        finalPrice *= factor;\r\n        document.getElementById('cart-total').innerText = Math.round(finalPrice).toLocaleString() + ' K\u010d';\r\n        document.getElementById('summary-total').innerText = Math.round(finalPrice).toLocaleString() + ' K\u010d';\r\n        let wpp = totalWeight \/ guests;\r\n        let fill = Math.min((wpp \/ 1000) * 100, 100);\r\n        let sLab = 'M\u00e1lo j\u00eddla'; let sCol = '#e74c3c';\r\n        if (wpp >= 300) { sLab = 'Lehk\u00e9'; sCol = '#f1c40f'; }\r\n        if (wpp >= 500) { sLab = 'Ide\u00e1ln\u00ed'; sCol = '#2ecc71'; }\r\n        if (wpp >= 800) { sLab = 'Hostina'; sCol = '#9b59b6'; }\r\n        \r\n        const sf = document.getElementById('satiety-fill');\r\n        const st = document.getElementById('satiety-text');\r\n        if (sf && st) {\r\n            sf.style.width = fill + '%'; sf.style.backgroundColor = sCol;\r\n            st.innerText = `${wpp.toFixed(0)} g (${sLab})`; st.style.color = sCol;\r\n        }\r\n    },\r\n    renderFinalList() {\r\n        const box = document.getElementById('final-items-list');\r\n        const factor = this.state.voucherType === 'SVATBA' ? 0.9 : 1;\r\n        let ad = this.state.adults;\r\n        let ch = this.state.kids;\r\n        let guests = ad + ch;\r\n        let html = '';\r\n        Object.entries(this.state.cart).forEach(([id, qty]) => {\r\n            let item = MENU_ITEMS.find(x => x.id === id);\r\n            let pEffective = item.price;\r\n            if (ch > 0 && (GASTRO_CATS.includes(item.cat) || item.cat === 'N\u00e1poje')) {\r\n                pEffective *= (ad * 1 + ch * 0.75) \/ guests;\r\n            }\r\n            if (item.id === 'sl2') pEffective = pEffective * 2; \/\/ Cesta tam i zp\u011bt\r\n            let rowTotalOld = pEffective * qty;\r\n            let rowTotalNew = rowTotalOld * factor;\r\n            html += `\r\n            <div class=\"summary-list-item\">\r\n                <div style=\"flex:1;\">\r\n                    <strong style=\"color:var(--forest-green);\">${item.id === 'sl2' ? qty + ' km ' + item.name + ' (tam i zp\u011bt)' : item.id === 'sl1' ? qty + ' os ' + item.name : (item.id === 'n10' || item.id === 'n11' ? qty + ' lahv\u00ed ' + item.name : qty + 'x ' + item.name)}<\/strong><br>\r\n                    <span style=\"font-size:11px; opacity:0.6; text-transform:uppercase;\">${item.cat}<\/span>\r\n                <\/div>\r\n                <div style=\"text-align:right;\">\r\n                    ${factor < 1 ? `<span class=\"old-price\">${Math.round(rowTotalOld).toLocaleString()} K\u010d<\/span>` : ''}\r\n                    <span class=\"price-tag ${factor < 1 ? 'discounted' : ''}\">${Math.round(rowTotalNew).toLocaleString()} K\u010d<\/span>\r\n                <\/div>\r\n            <\/div>`;\r\n        });\r\n        box.innerHTML = html || '<p style=\"text-align:center; opacity:0.5; padding:20px;\">Zat\u00edm jste nic nevybrali.<\/p>';\r\n    },\r\n    renderSimpleRow(label, oldPrice, newPrice, hasDiscount) {\r\n        return `\r\n        <div class=\"summary-list-item\">\r\n            <strong style=\"color:var(--forest-green);\">${label}<\/strong>\r\n            <div style=\"text-align:right;\">\r\n                ${hasDiscount ? `<span class=\"old-price\">${Math.round(oldPrice).toLocaleString()} K\u010d<\/span>` : ''}\r\n                <span class=\"price-tag ${hasDiscount ? 'discounted' : ''}\">${Math.round(newPrice).toLocaleString()} K\u010d<\/span>\r\n            <\/div>\r\n        <\/div>`;\r\n    },\r\n    submit() {\r\n        const name = document.getElementById('finalName').value;\r\n        const email = document.getElementById('finalEmail').value;\r\n        const phone = document.getElementById('finalPhone').value;\r\n        if (!name || !email || !phone) return alert('Dopl\u0148te pros\u00edm jm\u00e9no, email a telefon.');\r\n        \r\n        document.getElementById('btn-submit').innerText = 'ODES\u00cdL\u00c1M...';\r\n        \r\n        \/\/ ZDE DOPL\u0147TE V\u00c1\u0160 E-MAIL, KAM MAJ\u00cd CHODIT POPT\u00c1VKY\r\n        const targetEmail = 'info@myslivna.com'; \r\n        \r\n        let polozkyStr = \"\";\r\n        Object.entries(this.state.cart).forEach(([id, qty]) => {\r\n            const item = MENU_ITEMS.find(i => i.id === id);\r\n            if (item) {\r\n                const isKm = item.id === 'sl2';\r\n                const isOs = item.id === 'sl1';\r\n                const isBottles = item.id === 'n10' || item.id === 'n11';\r\n                const label = isKm ? `${qty} km (tam i zp\u011bt)` : isOs ? `${qty} os` : isBottles ? `${qty} lahv\u00ed` : `${qty}x`;\r\n                polozkyStr += `- ${label} ${item.name}\\n`;\r\n            }\r\n        });\r\n        const voucherStr = this.state.voucherType ? 'Ano' : 'Ne';\r\n\r\n        const payload = {\r\n            _subject: `POPT\u00c1VKA HOTEL MYSLIVNA: ${this.state.type} - ${name}`,\r\n            jmeno: name, email: email, telefon: phone,\r\n            cena: document.getElementById('summary-total').innerText,\r\n            obsah: `Host\u00e9 celkem: ${this.state.adults + this.state.kids} (Dosp\u011bl\u00ed: ${this.state.adults}, D\u011bti: ${this.state.kids})\\nTyp: ${this.state.type}\\nM\u00edsto: ${this.state.location}\\nVoucher uplatn\u011bn: ${voucherStr}\\n\\nVybran\u00e9 polo\u017eky:\\n${polozkyStr || '\u017d\u00e1dn\u00e9 konkr\u00e9tn\u00ed polo\u017eky.'}`\r\n        };\r\n        \r\n        fetch(`https:\/\/formsubmit.co\/ajax\/${targetEmail}`, {\r\n            method: 'POST',\r\n            headers: { \r\n                'Content-Type': 'application\/json',\r\n                'Accept': 'application\/json'\r\n            },\r\n            body: JSON.stringify(payload)\r\n        }).then(r => r.json())\r\n        .then(data => {\r\n            if (data.success) {\r\n                alert('Va\u0161e popt\u00e1vka byla odesl\u00e1na. Brzy se V\u00e1m ozveme!');\r\n            } else {\r\n                alert('P\u0159i odes\u00edl\u00e1n\u00ed nastala chyba, zkuste to znovu.');\r\n            }\r\n        }).catch(err => {\r\n            alert('Chyba p\u0159i odes\u00edl\u00e1n\u00ed zkontrolujte p\u0159ipojen\u00ed.');\r\n        }).finally(() => {\r\n            document.getElementById('btn-submit').innerText = 'ODESLAT POPT\u00c1VKU \u017dIV\u011a';\r\n        });\r\n    }\r\n};\r\nwindow.app.init();\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Chytr\u00fd konfigur\u00e1tor hostiny &#8211; Hotel Myslivna Konfigur\u00e1tor hostiny Zadejte z\u00e1kladn\u00ed parametry Va\u0161\u00ed akce v Hotelu Myslivna. N\u00e1zev akce Svatba Oslava Firemn\u00ed M\u00edsto kon\u00e1n\u00ed U n\u00e1s v restauraci Vlastn\u00ed m\u00edsto (Catering) Term\u00edn kon\u00e1n\u00ed \u010cas za\u010d\u00e1tku 11:0011:3012:0012:3013:0013:3014:0014:3015:0015:3016:0016:3017:0017:3018:0018:3019:0019:3020:00 Po\u010det dosp\u011bl\u00fdch D\u011bti do 12 let (Sleva 25 %) Sestavit sv\u00e1te\u010dn\u00ed menu V\u00fdb\u011br gastronomie 20 osob \u2022 Svatba Velikost porce na osobu 0 g (M\u00e1lo j\u00eddla) Dopl\u0148ky a Pit\u00ed Krok 3 ze 4 \u2022 V\u00fdb\u011br n\u00e1poj\u016f a slu\u017eeb Polo\u017ekov\u00e1 Rekapitulace Krok 4 ze 4 Zm\u011bnit dopl\u0148ky Va\u0161e vybran\u00e9 menu a slu\u017eby M\u00e1te slevov\u00fd voucher? Uplatnit Slevy byly aplikov\u00e1ny. Celkov\u00e1 cena k popt\u00e1vce 0 K\u010d Dokon\u010den\u00ed popt\u00e1vky Jm\u00e9no a p\u0159\u00edjmen\u00ed Telefon E-mail ODESLAT POPT\u00c1VKU \u017dIV\u011a Aktu\u00e1ln\u00ed cena 0 K\u010d Vyberte si j\u00eddlo k hostin\u011b Zp\u011bt Dal\u0161\u00ed * V\u0161echny zobrazen\u00e9 fotografie v konfigur\u00e1toru jsou pouze ilustra\u010dn\u00ed.<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-9083","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/www.myslivna.com\/en\/wp-json\/wp\/v2\/pages\/9083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.myslivna.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.myslivna.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.myslivna.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.myslivna.com\/en\/wp-json\/wp\/v2\/comments?post=9083"}],"version-history":[{"count":14,"href":"https:\/\/www.myslivna.com\/en\/wp-json\/wp\/v2\/pages\/9083\/revisions"}],"predecessor-version":[{"id":9216,"href":"https:\/\/www.myslivna.com\/en\/wp-json\/wp\/v2\/pages\/9083\/revisions\/9216"}],"wp:attachment":[{"href":"https:\/\/www.myslivna.com\/en\/wp-json\/wp\/v2\/media?parent=9083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}