{"id":732,"date":"2025-02-04T16:02:07","date_gmt":"2025-02-04T15:02:07","guid":{"rendered":"https:\/\/enigma.swallnet.com\/?page_id=732"},"modified":"2025-11-18T16:38:30","modified_gmt":"2025-11-18T15:38:30","slug":"expedice-vita-caroli","status":"publish","type":"page","link":"https:\/\/enigma.swallnet.com\/index.php\/expedice-vita-caroli\/","title":{"rendered":"Expedice Vita Caroli"},"content":{"rendered":"<!-- Enigma Web Log Active -->\n\n\n\n<h2 class=\"wp-block-heading\">Expedice Vita Caroli<\/h2>\n\n\n    <div class=\"review-summary\">\n        <div class=\"star-rating-row\">\n            <div id=\"star-container-4\" class=\"star-rating\"><\/div>\n        <\/div>\n        <div class=\"review-meta-row\">\n            <div class=\"review-summary-text\" id=\"review-summary-text-4\"><\/div>\n        <\/div>\n    <\/div>\n\n    <style>\n        .review-summary {\n            max-width: 300px;\n        }\n\n        .star-rating-row {\n            display: flex;\n            justify-content: flex-start;\n            margin-bottom: 4px;\n        }\n\n        .star-rating {\n            display: flex;\n            font-size: 24px;\n            color: gold;\n            min-width: 130px;\n        }\n\n        .star {\n            position: relative;\n            width: 1em;\n            height: 1em;\n            margin-right: 4px;\n            display: inline-block;\n            background: lightgray;\n            clip-path: polygon(\n                50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%,\n                50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%\n            );\n        }\n\n        .star.filled {\n            background: gold;\n        }\n\n        .star.half::before {\n            content: '';\n            position: absolute;\n            width: 50%;\n            height: 100%;\n            background: gold;\n            left: 0;\n        }\n\n        .review-meta-row {\n            font-size: 14px;\n            color: white;\n        }\n\n        .review-summary-text {\n            color: #ccc;\n            font-weight: 500;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n        document.addEventListener(\"DOMContentLoaded\", function() {\n            const adventureId = 4;\n            const summaryTextId = 'review-summary-text-' + adventureId;\n            const starsId = 'star-container-' + adventureId;\n\n            if (typeof renderEnigmaRating === 'function') {\n                renderEnigmaRating(adventureId, function(totalReviews, averageRating) {\n                    const summary = document.getElementById(summaryTextId);\n                    if (summary && !isNaN(averageRating)) {\n                        summary.textContent = `${totalReviews} hodnocen\u00ed (${averageRating.toFixed(1)})`;\n                    }\n                });\n            }\n        });\n    <\/script>\n    \n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-843cb96b wp-block-columns-is-layout-flex block-visibility-hide-small-screen\" style=\"margin-top:0;margin-bottom:0;padding-right:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wp-block-paragraph\" style=\"font-size:22px\"><strong>P\u0159\u00edb\u011bh<\/strong><\/p>\n<\/div>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">Legenda prav\u00ed, \u017ee Vita Caroli, vlastn\u00ed \u017eivotopis Karla IV., obsahoval v\u00edc ne\u017e jen p\u0159\u00edb\u011bh jeho vl\u00e1dy. Mezi str\u00e1nkami t\u00e9to slavn\u00e9 knihy se \u00fadajn\u011b skr\u00fdval tajn\u00fd vzkaz pro budouc\u00ed mlad\u00e9 generace. Po stalet\u00ed byla tato str\u00e1nka z rukopisu ztracena, ukryt\u00e1 na bezpe\u010dn\u00e9m m\u00edst\u011b a nikdo netu\u0161il, kde ji hledat. A\u017e do te\u010f.<br>Nyn\u00ed je ten spr\u00e1vn\u00fd \u010das, kdy\u017e kone\u010dn\u011b p\u0159i\u0161li ti, pro kter\u00e9 je poselstv\u00ed ur\u010deno. A proto byla vyjevena prvn\u00ed stopa a vzkaz \u010dek\u00e1 na sv\u00e9 odhalen\u00ed. Ale pozor, \u010das ut\u00edk\u00e1\u2026 Poda\u0159\u00ed se v\u00e1m z\u00edskat Karl\u016fv vzkaz d\u011btem 21. stolet\u00ed d\u0159\u00edv, ne\u017e zmiz\u00ed znovu v hlubin\u00e1ch \u010dasu?<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">Jsi p\u0159ipraven vydat se po stop\u00e1ch tohoto d\u00e1vn\u00e9ho tajemstv\u00ed? Tv\u016fj \u00fakol je jasn\u00fd: sledovat indicie, lu\u0161tit h\u00e1danky a postupn\u011b skl\u00e1dat vzkaz, kter\u00fd Karel IV. zanechal budouc\u00edm generac\u00edm. Vydej se na cestu starou Prahou, odhalte historick\u00e9 stopy a objev pravdu ukrytou mezi zdmi m\u011bsta<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\"><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-style-rounded wp-duotone-unset-2 is-style-rounded--1\" style=\"margin-top:var(--wp--preset--spacing--70);margin-right:0;margin-bottom:var(--wp--preset--spacing--70);margin-left:0\"><img data-dominant-color=\"636e6c\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"514\" src=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/Expedice_Vita_Caroli_3_small.webp\" alt=\"\" class=\"wp-image-1384 not-transparent\" style=\"--dominant-color: #636e6c; object-fit:cover\" srcset=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/Expedice_Vita_Caroli_3_small.webp 900w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/Expedice_Vita_Caroli_3_small-300x171.webp 300w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/Expedice_Vita_Caroli_3_small-768x439.webp 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6418681a wp-block-columns-is-layout-flex block-visibility-hide-large-screen block-visibility-hide-medium-screen\" style=\"padding-right:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wp-block-paragraph\" style=\"font-size:22px\"><strong>P\u0159\u00edb\u011bh<\/strong><\/p>\n<\/div>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">Legenda prav\u00ed, \u017ee Vita Caroli, vlastn\u00ed \u017eivotopis Karla IV., obsahoval v\u00edc ne\u017e jen p\u0159\u00edb\u011bh jeho vl\u00e1dy. Mezi str\u00e1nkami t\u00e9to slavn\u00e9 knihy se \u00fadajn\u011b skr\u00fdval tajn\u00fd vzkaz pro budouc\u00ed mlad\u00e9 generace. Po stalet\u00ed byla tato str\u00e1nka z rukopisu ztracena, ukryt\u00e1 na bezpe\u010dn\u00e9m m\u00edst\u011b a nikdo netu\u0161il, kde ji hledat. A\u017e do te\u010f.<br>Nyn\u00ed je ten spr\u00e1vn\u00fd \u010das, kdy\u017e kone\u010dn\u011b p\u0159i\u0161li ti, pro kter\u00e9 je poselstv\u00ed ur\u010deno. A proto byla vyjevena prvn\u00ed stopa a vzkaz \u010dek\u00e1 na sv\u00e9 odhalen\u00ed. Ale pozor, \u010das ut\u00edk\u00e1\u2026 Poda\u0159\u00ed se v\u00e1m z\u00edskat Karl\u016fv vzkaz d\u011btem 21. stolet\u00ed d\u0159\u00edv, ne\u017e zmiz\u00ed znovu v hlubin\u00e1ch \u010dasu?<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">Jsi p\u0159ipraven vydat se po stop\u00e1ch tohoto d\u00e1vn\u00e9ho tajemstv\u00ed? Tv\u016fj \u00fakol je jasn\u00fd: sledovat indicie, lu\u0161tit h\u00e1danky a postupn\u011b skl\u00e1dat vzkaz, kter\u00fd Karel IV. zanechal budouc\u00edm generac\u00edm. Vydej se na cestu starou Prahou, odhalte historick\u00e9 stopy a objev pravdu ukrytou mezi zdmi m\u011bsta.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\"><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-style-rounded wp-duotone-unset-4 is-style-rounded--3\" style=\"margin-top:var(--wp--preset--spacing--40);margin-right:0;margin-bottom:var(--wp--preset--spacing--40);margin-left:0\"><img data-dominant-color=\"636e6c\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"514\" src=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/Expedice_Vita_Caroli_3_small.webp\" alt=\"\" class=\"wp-image-1384 not-transparent\" style=\"--dominant-color: #636e6c; object-fit:cover\" srcset=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/Expedice_Vita_Caroli_3_small.webp 900w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/Expedice_Vita_Caroli_3_small-300x171.webp 300w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/Expedice_Vita_Caroli_3_small-768x439.webp 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6418681a wp-block-columns-is-layout-flex block-visibility-hide-small-screen\" style=\"padding-right:0;padding-left:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full is-resized is-style-rounded is-style-rounded--5\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)\"><img data-dominant-color=\"6f5d4b\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"514\" src=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/deti_v_knihovne_1_small.webp\" alt=\"\" class=\"wp-image-1383 not-transparent\" style=\"--dominant-color: #6f5d4b; object-fit:cover;width:400px;height:350px\" srcset=\"https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/deti_v_knihovne_1_small.webp 900w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/deti_v_knihovne_1_small-300x171.webp 300w, https:\/\/enigma.swallnet.com\/wp-content\/uploads\/2025\/04\/deti_v_knihovne_1_small-768x439.webp 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p class=\"wp-block-paragraph\" style=\"font-size:22px\"><strong>Kl\u00ed\u010dov\u00e9 prvky hry<\/strong><\/p>\n\n\n\n<ul style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\" class=\"wp-block-list\">\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">Dobrodru\u017en\u00e9 p\u00e1tr\u00e1n\u00ed: Hra t\u011b provede malebn\u00fdmi uli\u010dkami Prahy, kde bude\u0161 muset hledat skryt\u00e9 indicie a spojovat jednotliv\u00e9 \u010d\u00e1sti tajemn\u00e9ho vzkazu.<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">Historick\u00e9 souvislosti: Ka\u017ed\u00e9 m\u00edsto, kter\u00e9 nav\u0161t\u00edv\u00ed\u0161, je spojen\u00e9 s Karlovou \u00e9rou. Pono\u0159 se do jeho odkazu a odhal p\u0159\u00edb\u011bhy, kter\u00e9 z\u016fstaly zapomenuty.<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">T\u00fdmov\u00e1 spolupr\u00e1ce: Hra je navr\u017eena tak, aby byla ide\u00e1ln\u00ed pro rodiny s d\u011btmi nebo mal\u00e9 skupiny. Spolupracujte, diskutujte a spojujte sv\u00e9 znalosti.<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">nteraktivn\u00ed technologie: Vyu\u017eij telefon s GPS a fotoapar\u00e1tem k \u0159e\u0161en\u00ed \u00fakol\u016f a odhalov\u00e1n\u00ed stop. Hra kombinuje tradi\u010dn\u00ed h\u00e1danky s modern\u00edmi prvky pro maxim\u00e1ln\u00ed z\u00e1\u017eitek.<\/li>\n\n\n\n<li>Trasa vhodn\u00e1 pr\u00e1v\u011b pro d\u011bti. D\u00e9lka trasy je 2\u20132,5 hodiny, co\u017e je ide\u00e1ln\u00ed pro dobrodru\u017en\u00e9 dopoledne \u010di odpoledne.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\">    <div style=\"text-align: center; margin-bottom: 10px;\">\n    <div style=\"display: inline-block;\">\n        <span style=\"font-weight: bold; color: red; margin-right: 10px;\">\n        P\u0159ihlaste se nebo si \u00fa\u010det zalo\u017ete na dv\u011b kliknut\u00ed \u2013 a z\u00edskejte slevu jako nikde jinde!        <\/span>\n        <a href=\"https:\/\/enigma.swallnet.com\/index.php\/login\"\n        class=\"wp-block-button__link wp-element-button\"\n        style=\"display: inline-block; white-space: nowrap; background: #22445d; color: white; padding: 8px 16px; border-radius: 5px; text-decoration: none;\">\n        Vyzkou\u0161ejte Ihned        <\/a>\n    <\/div>\n    <\/div>\n    <\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-regular has-small-font-size block-visibility-hide-small-screen\" style=\"padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--30)\"><table class=\"has-border-color has-primary-border-color has-fixed-layout\" style=\"border-width:7px\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">PO\u010cET T\u00ddM\u016e<\/th><th>POPIS<\/th><th class=\"has-text-align-center\" data-align=\"center\">CENA<\/th><th class=\"has-text-align-center\" data-align=\"center\"><\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>jeden hr\u00e1\u010d<\/strong><\/td><td>S\u00f3lo v\u00fdzva s Karlem IV.<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><strong>    <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"4\"\n          data-multiplayer=\"0\"\n          data-user-id=\"0\">\n        ...\n    <\/span>\n\n    <style>\n        \/* m\u016f\u017ee\u0161 upravit podle sv\u00e9ho designu \/ p\u0159esunout do CSS souboru *\/\n        .enigma-price-original {\n            text-decoration: line-through;\n            color: #e74c3c;      \/* \u010derven\u00e1 *\/\n            margin-right: 6px;\n            font-weight: 500;\n        }\n        .enigma-price-user {\n            color: #ffffff;      \/* b\u00edl\u00e1 \u2013 po\u010d\u00edt\u00e1m s tmav\u00fdm pozad\u00edm boxu *\/\n            font-weight: 700;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        document.querySelectorAll('.enigma-dynamic-price').forEach(function (span) {\n            if (span.dataset.loaded === \"1\") return;\n            span.dataset.loaded = \"1\";\n\n            const adventureId = span.dataset.adventureId;\n            const multiplayer = span.dataset.multiplayer;\n            const userId = span.dataset.userId;\n\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${adventureId}&multiplayer=${multiplayer}&userId=${userId}`)\n                .then(response => response.json())\n                .then(data => {\n                    const orig = Number(data.originalPrice);\n                    const user = Number(\n                        (data.userPrice !== undefined) ? data.userPrice : data.finalPrice\n                    );\n\n                    if (!isFinite(orig) || !isFinite(user)) {\n                        span.textContent = '\u2013';\n                        return;\n                    }\n\n                    \/\/ Pokud je cena stejn\u00e1 (\u017e\u00e1dn\u00e1 user sleva) \u2192 zobraz jedno \u010d\u00edslo\n                    if (Math.abs(orig - user) < 0.01) {\n                        span.textContent = user.toFixed(0) + ' K\u010d';\n                    } else {\n                        span.innerHTML =\n                            '<span class=\"enigma-price-original\">' +\n                                orig.toFixed(0) + ' K\u010d' +\n                            '<\/span>' +\n                            '<span class=\"enigma-price-user\">' +\n                                user.toFixed(0) + ' K\u010d' +\n                            '<\/span>';\n                    }\n                })\n                .catch(() => {\n                    span.textContent = '\u2013';\n                });\n        });\n    });\n    <\/script>\n    <\/strong><\/strong><\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">    <form class=\"enigma-add-to-cart-form\"\n          method=\"post\"\n          action=\"\"\n          data-user-id=\"0\"\n          data-game-id=\"4\"\n          data-game-name=\"Expedice Vita Caroli\"\n          data-multiplayer=\"0\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"4\">\n        <input type=\"hidden\" name=\"game_name\" value=\"Expedice Vita Caroli\">\n        <input type=\"hidden\" name=\"price\" value=\"\">\n        <input type=\"hidden\" name=\"original_price\" value=\"\">\n        <input type=\"hidden\" name=\"multiplayer\" value=\"0\">\n        <input type=\"hidden\" name=\"enigma_add_to_cart\" value=\"1\">\n\n        <button type=\"submit\" class=\"wp-block-button__link wp-element-button\">\n            Koupit        <\/button>\n    <\/form>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener('DOMContentLoaded', function () {\n        document.querySelectorAll('.enigma-add-to-cart-form').forEach(function(form) {\n            if (form.dataset.listenerAttached === \"true\") return;\n            form.dataset.listenerAttached = \"true\";\n\n            form.addEventListener('submit', function (e) {\n                e.preventDefault();\n\n                const userId = parseInt(form.dataset.userId) || 0;\n                const gameId = parseInt(form.dataset.gameId);\n                const multiplayer = parseInt(form.dataset.multiplayer);\n                const gameName = form.dataset.gameName;\n\n                const priceField = form.querySelector('input[name=\"price\"]');\n\n                fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${gameId}&multiplayer=${multiplayer}&userId=${userId}`)\n                    .then(res => res.json())\n                    .then(data => {\n                        const finalPrice = data.finalPrice;\n                        const originalPrice = data.originalPrice;\n\n                        priceField.value = finalPrice;\n                        \n                        \/\/ dodani original ceny\n                        const originalPriceField = form.querySelector('input[name=\"original_price\"]');\n                        if (originalPriceField) {\n                            originalPriceField.value = originalPrice;\n                        }\n\n                        \/\/ Odeslat analytiku\n                        fetch('https:\/\/enigma.swallnet.com\/api\/marketing\/add-to-cart', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                userId: userId,\n                                game_id: gameId,\n                                game_name: gameName,\n                                price: finalPrice,\n                                multiplayer: multiplayer\n                            })\n                        });\n                    })\n                    .finally(() => {\n                        \/\/ Po fetchi i analytice formul\u00e1\u0159 ode\u0161leme\n                        form.submit();\n                    });\n            });\n        });\n    });\n    <\/script>\n    <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>v\u00edce hr\u00e1\u010d\u016f<\/strong><\/td><td>Hra v jednom t\u00fdmu (libovoln\u00fd po\u010det hr\u00e1\u010d\u016f).<\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><strong>    <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"4\"\n          data-multiplayer=\"1\"\n          data-user-id=\"0\">\n        ...\n    <\/span>\n\n    <style>\n        \/* m\u016f\u017ee\u0161 upravit podle sv\u00e9ho designu \/ p\u0159esunout do CSS souboru *\/\n        .enigma-price-original {\n            text-decoration: line-through;\n            color: #e74c3c;      \/* \u010derven\u00e1 *\/\n            margin-right: 6px;\n            font-weight: 500;\n        }\n        .enigma-price-user {\n            color: #ffffff;      \/* b\u00edl\u00e1 \u2013 po\u010d\u00edt\u00e1m s tmav\u00fdm pozad\u00edm boxu *\/\n            font-weight: 700;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        document.querySelectorAll('.enigma-dynamic-price').forEach(function (span) {\n            if (span.dataset.loaded === \"1\") return;\n            span.dataset.loaded = \"1\";\n\n            const adventureId = span.dataset.adventureId;\n            const multiplayer = span.dataset.multiplayer;\n            const userId = span.dataset.userId;\n\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${adventureId}&multiplayer=${multiplayer}&userId=${userId}`)\n                .then(response => response.json())\n                .then(data => {\n                    const orig = Number(data.originalPrice);\n                    const user = Number(\n                        (data.userPrice !== undefined) ? data.userPrice : data.finalPrice\n                    );\n\n                    if (!isFinite(orig) || !isFinite(user)) {\n                        span.textContent = '\u2013';\n                        return;\n                    }\n\n                    \/\/ Pokud je cena stejn\u00e1 (\u017e\u00e1dn\u00e1 user sleva) \u2192 zobraz jedno \u010d\u00edslo\n                    if (Math.abs(orig - user) < 0.01) {\n                        span.textContent = user.toFixed(0) + ' K\u010d';\n                    } else {\n                        span.innerHTML =\n                            '<span class=\"enigma-price-original\">' +\n                                orig.toFixed(0) + ' K\u010d' +\n                            '<\/span>' +\n                            '<span class=\"enigma-price-user\">' +\n                                user.toFixed(0) + ' K\u010d' +\n                            '<\/span>';\n                    }\n                })\n                .catch(() => {\n                    span.textContent = '\u2013';\n                });\n        });\n    });\n    <\/script>\n    <\/strong><\/strong><\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">    <form class=\"enigma-add-to-cart-form\"\n          method=\"post\"\n          action=\"\"\n          data-user-id=\"0\"\n          data-game-id=\"4\"\n          data-game-name=\"Expedice Vita Caroli\"\n          data-multiplayer=\"1\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"4\">\n        <input type=\"hidden\" name=\"game_name\" value=\"Expedice Vita Caroli\">\n        <input type=\"hidden\" name=\"price\" value=\"\">\n        <input type=\"hidden\" name=\"original_price\" value=\"\">\n        <input type=\"hidden\" name=\"multiplayer\" value=\"1\">\n        <input type=\"hidden\" name=\"enigma_add_to_cart\" value=\"1\">\n\n        <button type=\"submit\" class=\"wp-block-button__link wp-element-button\">\n            Koupit        <\/button>\n    <\/form>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener('DOMContentLoaded', function () {\n        document.querySelectorAll('.enigma-add-to-cart-form').forEach(function(form) {\n            if (form.dataset.listenerAttached === \"true\") return;\n            form.dataset.listenerAttached = \"true\";\n\n            form.addEventListener('submit', function (e) {\n                e.preventDefault();\n\n                const userId = parseInt(form.dataset.userId) || 0;\n                const gameId = parseInt(form.dataset.gameId);\n                const multiplayer = parseInt(form.dataset.multiplayer);\n                const gameName = form.dataset.gameName;\n\n                const priceField = form.querySelector('input[name=\"price\"]');\n\n                fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${gameId}&multiplayer=${multiplayer}&userId=${userId}`)\n                    .then(res => res.json())\n                    .then(data => {\n                        const finalPrice = data.finalPrice;\n                        const originalPrice = data.originalPrice;\n\n                        priceField.value = finalPrice;\n                        \n                        \/\/ dodani original ceny\n                        const originalPriceField = form.querySelector('input[name=\"original_price\"]');\n                        if (originalPriceField) {\n                            originalPriceField.value = originalPrice;\n                        }\n\n                        \/\/ Odeslat analytiku\n                        fetch('https:\/\/enigma.swallnet.com\/api\/marketing\/add-to-cart', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                userId: userId,\n                                game_id: gameId,\n                                game_name: gameName,\n                                price: finalPrice,\n                                multiplayer: multiplayer\n                            })\n                        });\n                    })\n                    .finally(() => {\n                        \/\/ Po fetchi i analytice formul\u00e1\u0159 ode\u0161leme\n                        form.submit();\n                    });\n            });\n        });\n    });\n    <\/script>\n    <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table is-style-regular has-small-font-size block-visibility-hide-large-screen block-visibility-hide-medium-screen\" style=\"padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--30)\"><table class=\"has-border-color has-primary-border-color has-fixed-layout\" style=\"border-width:7px\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">PO\u010cET T\u00ddM\u016e<\/th><th class=\"has-text-align-center\" data-align=\"center\">CENA<\/th><th class=\"has-text-align-center\" data-align=\"center\"><\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>jeden hr\u00e1\u010d<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><strong><strong>    <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"4\"\n          data-multiplayer=\"0\"\n          data-user-id=\"0\">\n        ...\n    <\/span>\n\n    <style>\n        \/* m\u016f\u017ee\u0161 upravit podle sv\u00e9ho designu \/ p\u0159esunout do CSS souboru *\/\n        .enigma-price-original {\n            text-decoration: line-through;\n            color: #e74c3c;      \/* \u010derven\u00e1 *\/\n            margin-right: 6px;\n            font-weight: 500;\n        }\n        .enigma-price-user {\n            color: #ffffff;      \/* b\u00edl\u00e1 \u2013 po\u010d\u00edt\u00e1m s tmav\u00fdm pozad\u00edm boxu *\/\n            font-weight: 700;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        document.querySelectorAll('.enigma-dynamic-price').forEach(function (span) {\n            if (span.dataset.loaded === \"1\") return;\n            span.dataset.loaded = \"1\";\n\n            const adventureId = span.dataset.adventureId;\n            const multiplayer = span.dataset.multiplayer;\n            const userId = span.dataset.userId;\n\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${adventureId}&multiplayer=${multiplayer}&userId=${userId}`)\n                .then(response => response.json())\n                .then(data => {\n                    const orig = Number(data.originalPrice);\n                    const user = Number(\n                        (data.userPrice !== undefined) ? data.userPrice : data.finalPrice\n                    );\n\n                    if (!isFinite(orig) || !isFinite(user)) {\n                        span.textContent = '\u2013';\n                        return;\n                    }\n\n                    \/\/ Pokud je cena stejn\u00e1 (\u017e\u00e1dn\u00e1 user sleva) \u2192 zobraz jedno \u010d\u00edslo\n                    if (Math.abs(orig - user) < 0.01) {\n                        span.textContent = user.toFixed(0) + ' K\u010d';\n                    } else {\n                        span.innerHTML =\n                            '<span class=\"enigma-price-original\">' +\n                                orig.toFixed(0) + ' K\u010d' +\n                            '<\/span>' +\n                            '<span class=\"enigma-price-user\">' +\n                                user.toFixed(0) + ' K\u010d' +\n                            '<\/span>';\n                    }\n                })\n                .catch(() => {\n                    span.textContent = '\u2013';\n                });\n        });\n    });\n    <\/script>\n    <\/strong><\/strong><\/strong><\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">    <form class=\"enigma-add-to-cart-form\"\n          method=\"post\"\n          action=\"\"\n          data-user-id=\"0\"\n          data-game-id=\"4\"\n          data-game-name=\"Expedice Vita Caroli\"\n          data-multiplayer=\"0\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"4\">\n        <input type=\"hidden\" name=\"game_name\" value=\"Expedice Vita Caroli\">\n        <input type=\"hidden\" name=\"price\" value=\"\">\n        <input type=\"hidden\" name=\"original_price\" value=\"\">\n        <input type=\"hidden\" name=\"multiplayer\" value=\"0\">\n        <input type=\"hidden\" name=\"enigma_add_to_cart\" value=\"1\">\n\n        <button type=\"submit\" class=\"wp-block-button__link wp-element-button\">\n            Koupit        <\/button>\n    <\/form>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener('DOMContentLoaded', function () {\n        document.querySelectorAll('.enigma-add-to-cart-form').forEach(function(form) {\n            if (form.dataset.listenerAttached === \"true\") return;\n            form.dataset.listenerAttached = \"true\";\n\n            form.addEventListener('submit', function (e) {\n                e.preventDefault();\n\n                const userId = parseInt(form.dataset.userId) || 0;\n                const gameId = parseInt(form.dataset.gameId);\n                const multiplayer = parseInt(form.dataset.multiplayer);\n                const gameName = form.dataset.gameName;\n\n                const priceField = form.querySelector('input[name=\"price\"]');\n\n                fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${gameId}&multiplayer=${multiplayer}&userId=${userId}`)\n                    .then(res => res.json())\n                    .then(data => {\n                        const finalPrice = data.finalPrice;\n                        const originalPrice = data.originalPrice;\n\n                        priceField.value = finalPrice;\n                        \n                        \/\/ dodani original ceny\n                        const originalPriceField = form.querySelector('input[name=\"original_price\"]');\n                        if (originalPriceField) {\n                            originalPriceField.value = originalPrice;\n                        }\n\n                        \/\/ Odeslat analytiku\n                        fetch('https:\/\/enigma.swallnet.com\/api\/marketing\/add-to-cart', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                userId: userId,\n                                game_id: gameId,\n                                game_name: gameName,\n                                price: finalPrice,\n                                multiplayer: multiplayer\n                            })\n                        });\n                    })\n                    .finally(() => {\n                        \/\/ Po fetchi i analytice formul\u00e1\u0159 ode\u0161leme\n                        form.submit();\n                    });\n            });\n        });\n    });\n    <\/script>\n    <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>1 t\u00fdm<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong><strong><strong><strong>    <span class=\"enigma-dynamic-price\"\n          data-adventure-id=\"4\"\n          data-multiplayer=\"1\"\n          data-user-id=\"0\">\n        ...\n    <\/span>\n\n    <style>\n        \/* m\u016f\u017ee\u0161 upravit podle sv\u00e9ho designu \/ p\u0159esunout do CSS souboru *\/\n        .enigma-price-original {\n            text-decoration: line-through;\n            color: #e74c3c;      \/* \u010derven\u00e1 *\/\n            margin-right: 6px;\n            font-weight: 500;\n        }\n        .enigma-price-user {\n            color: #ffffff;      \/* b\u00edl\u00e1 \u2013 po\u010d\u00edt\u00e1m s tmav\u00fdm pozad\u00edm boxu *\/\n            font-weight: 700;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        document.querySelectorAll('.enigma-dynamic-price').forEach(function (span) {\n            if (span.dataset.loaded === \"1\") return;\n            span.dataset.loaded = \"1\";\n\n            const adventureId = span.dataset.adventureId;\n            const multiplayer = span.dataset.multiplayer;\n            const userId = span.dataset.userId;\n\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${adventureId}&multiplayer=${multiplayer}&userId=${userId}`)\n                .then(response => response.json())\n                .then(data => {\n                    const orig = Number(data.originalPrice);\n                    const user = Number(\n                        (data.userPrice !== undefined) ? data.userPrice : data.finalPrice\n                    );\n\n                    if (!isFinite(orig) || !isFinite(user)) {\n                        span.textContent = '\u2013';\n                        return;\n                    }\n\n                    \/\/ Pokud je cena stejn\u00e1 (\u017e\u00e1dn\u00e1 user sleva) \u2192 zobraz jedno \u010d\u00edslo\n                    if (Math.abs(orig - user) < 0.01) {\n                        span.textContent = user.toFixed(0) + ' K\u010d';\n                    } else {\n                        span.innerHTML =\n                            '<span class=\"enigma-price-original\">' +\n                                orig.toFixed(0) + ' K\u010d' +\n                            '<\/span>' +\n                            '<span class=\"enigma-price-user\">' +\n                                user.toFixed(0) + ' K\u010d' +\n                            '<\/span>';\n                    }\n                })\n                .catch(() => {\n                    span.textContent = '\u2013';\n                });\n        });\n    });\n    <\/script>\n    <\/strong><\/strong><\/strong><\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">    <form class=\"enigma-add-to-cart-form\"\n          method=\"post\"\n          action=\"\"\n          data-user-id=\"0\"\n          data-game-id=\"4\"\n          data-game-name=\"Expedice Vita Caroli\"\n          data-multiplayer=\"1\">\n\n        <input type=\"hidden\" name=\"game_id\" value=\"4\">\n        <input type=\"hidden\" name=\"game_name\" value=\"Expedice Vita Caroli\">\n        <input type=\"hidden\" name=\"price\" value=\"\">\n        <input type=\"hidden\" name=\"original_price\" value=\"\">\n        <input type=\"hidden\" name=\"multiplayer\" value=\"1\">\n        <input type=\"hidden\" name=\"enigma_add_to_cart\" value=\"1\">\n\n        <button type=\"submit\" class=\"wp-block-button__link wp-element-button\">\n            Koupit        <\/button>\n    <\/form>\n\n    <script data-jetpack-boost=\"ignore\">\n    document.addEventListener('DOMContentLoaded', function () {\n        document.querySelectorAll('.enigma-add-to-cart-form').forEach(function(form) {\n            if (form.dataset.listenerAttached === \"true\") return;\n            form.dataset.listenerAttached = \"true\";\n\n            form.addEventListener('submit', function (e) {\n                e.preventDefault();\n\n                const userId = parseInt(form.dataset.userId) || 0;\n                const gameId = parseInt(form.dataset.gameId);\n                const multiplayer = parseInt(form.dataset.multiplayer);\n                const gameName = form.dataset.gameName;\n\n                const priceField = form.querySelector('input[name=\"price\"]');\n\n                fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/price?adventureId=${gameId}&multiplayer=${multiplayer}&userId=${userId}`)\n                    .then(res => res.json())\n                    .then(data => {\n                        const finalPrice = data.finalPrice;\n                        const originalPrice = data.originalPrice;\n\n                        priceField.value = finalPrice;\n                        \n                        \/\/ dodani original ceny\n                        const originalPriceField = form.querySelector('input[name=\"original_price\"]');\n                        if (originalPriceField) {\n                            originalPriceField.value = originalPrice;\n                        }\n\n                        \/\/ Odeslat analytiku\n                        fetch('https:\/\/enigma.swallnet.com\/api\/marketing\/add-to-cart', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/json' },\n                            body: JSON.stringify({\n                                userId: userId,\n                                game_id: gameId,\n                                game_name: gameName,\n                                price: finalPrice,\n                                multiplayer: multiplayer\n                            })\n                        });\n                    })\n                    .finally(() => {\n                        \/\/ Po fetchi i analytice formul\u00e1\u0159 ode\u0161leme\n                        form.submit();\n                    });\n            });\n        });\n    });\n    <\/script>\n    <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:22px\"><strong>Dal\u0161\u00ed informace<\/strong><\/p>\n\n\n\n<ul style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0\" class=\"wp-block-list\">\n<li style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">Pro koho je hra vhodn\u00e1?\n<ul class=\"wp-block-list\">\n<li>Doporu\u010den\u00fd v\u011bk: 8\u201312 let s doprovodem.<\/li>\n\n\n\n<li>Ide\u00e1ln\u00ed pro rodiny, a v\u016fbec pro v\u0161echny co se cht\u011bj\u00ed dozv\u011bd\u011bt v\u00edce o Otci vlasti.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">Co je pot\u0159eba ke h\u0159e?\n<ul class=\"wp-block-list\">\n<li>Pln\u011b nabit\u00fd telefon s povolenou GPS<\/li>\n\n\n\n<li>Fotoapar\u00e1t v telefonu (n\u011bkter\u00e9 \u00fakoly vy\u017eaduj\u00ed po\u0159\u00edzen\u00ed fotografi\u00ed)<\/li>\n\n\n\n<li>Pohodlnou obuv a oble\u010den\u00ed vhodn\u00e9 pro venkovn\u00ed dobrodru\u017estv\u00ed<\/li>\n\n\n\n<li>Chu\u0165 lu\u0161tit z\u00e1hady a objevovat historii!<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)\">\ud83d\udd0d P\u0159ipraven na Expedici Vita Caroli? P\u0159ijmi v\u00fdzvu a odhal tajemstv\u00ed, kter\u00e9 Karel IV. zanechal budouc\u00edm&nbsp;generac\u00edm!<\/li>\n<\/ul>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-752eff22 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-752eff22 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-0d5e80e3 wp-block-columns-is-layout-flex\" style=\"padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-0d5e80e3 wp-block-columns-is-layout-flex\" style=\"padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">    <div class=\"leaderboard-container\">\n        <h1>Nejlep\u0161\u00ed hr\u00e1\u010di<\/h1>\n        <table id=\"leaderboard-table\">\n            <thead>\n                <tr>\n                    <th>Po\u0159ad\u00ed<\/th>\n                    <th>P\u0159ezd\u00edvka<\/th>\n                    <th>Sk\u00f3re<\/th>\n                <\/tr>\n            <\/thead>\n            <tbody>\n                <!-- Dynamically inserted data -->\n            <\/tbody>\n        <\/table>\n        <div id=\"error-message\" class=\"error\"><\/div>\n    <\/div>\n\n    <style>\n        .leaderboard-container {\n            max-width: 800px;\n            margin: 0 auto;\n            background: #383838;\n            border-radius: 15px;\n            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n            padding: 20px;\n        }\n        h1 {\n            text-align: center;\n            color: white;\n        }\n        table {\n            width: 100%;\n            border-collapse: collapse;\n            margin-top: 20px;\n        }\n        th, td {\n            text-align: left;\n            padding: 12px;\n            border-bottom: 1px solid #9CA3AF;\n        }\n        th {\n            background-color: #0F3D57;\n            color: white;\n        }\n        tr:hover {\n            background-color: #265A7C;\n        }\n        #leaderboard-table tbody tr:nth-child(1) td {\n            color: #C4A85E;\n            font-weight: bold;\n        }\n        #leaderboard-table tbody tr:nth-child(2) td {\n            color: #A8A9AD;\n            font-weight: bold;\n        }\n        #leaderboard-table tbody tr:nth-child(3) td {\n            color: #CD7F32; \/* Bronze *\/\n            font-weight: bold;\n        }\n        .error {\n            color: red;\n            text-align: center;\n            margin-top: 20px;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\" type=\"text\/javascript\">\n    \/\/ <![CDATA[\n    (function(){\n        async function fetchLeaderboard(adventureId, maxRecords, webLocale) {\n            try {\n                \/\/const response = await fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/leaderboard?adventureId=${adventureId}&maxRecords=${maxRecords}&webLocale=${webLocale}`);\n                const response = await fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/leaderboard?adventureId=${adventureId}&maxRecords=${maxRecords}&webLocale=cs`);\n                if (!response.ok) {\n                    throw new Error(`HTTP error! Status: ${response.status}`);\n                }\n                const data = await response.json();\n                populateLeaderboardTable(data);\n            } catch (error) {\n                document.getElementById('error-message').textContent = 'Nepoda\u0159ilo se na\u010d\u00edst data \u017eeb\u0159\u00ed\u010dku: ' + error.message;\n            }\n        }\n\n        function populateLeaderboardTable(data) {\n            const tableBody = document.getElementById('leaderboard-table').querySelector('tbody');\n            tableBody.innerHTML = ''; \/\/ Clear previous data\n\n            Object.values(data).forEach(record => {\n                const row = document.createElement('tr');\n\n                const rankCell = document.createElement('td');\n                rankCell.textContent = record.rank;\n\n                const nickNameCell = document.createElement('td');\n                nickNameCell.textContent = record.nickName;\n\n                const scoreCell = document.createElement('td');\n                scoreCell.textContent = record.score;\n\n                row.appendChild(rankCell);\n                row.appendChild(nickNameCell);\n                row.appendChild(scoreCell);\n\n                tableBody.appendChild(row);\n            });\n        }\n\n        const adventureId = 4;\n        const maxRecords  = 10;\n        const webLocale   = null;\n        fetchLeaderboard(adventureId, maxRecords, webLocale);\n    })();\n    \/\/ ]]>\n    <\/script>\n    \n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">    <div class=\"detailed-review-wrapper\" data-adventure-id=\"4\">\n        <h3>Hodnocen\u00ed u\u017eivatel\u016f<\/h3>\n\n        <div id=\"category-ratings-4\" class=\"category-ratings\">\n            <div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-0-adventure-4\"><\/div><div class=\"numeric-average\" id=\"avg-0-adventure-4\"><\/div><span class=\"category-label\">Celkov\u00fd z\u00e1\u017eitek<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-1-adventure-4\"><\/div><div class=\"numeric-average\" id=\"avg-1-adventure-4\"><\/div><span class=\"category-label\">H\u00e1danky<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-2-adventure-4\"><\/div><div class=\"numeric-average\" id=\"avg-2-adventure-4\"><\/div><span class=\"category-label\">Lokalita<\/span><\/div><div class=\"rating-row\"><div class=\"star-rating\" id=\"cat-3-adventure-4\"><\/div><div class=\"numeric-average\" id=\"avg-3-adventure-4\"><\/div><span class=\"category-label\">Z\u00e1bava<\/span><\/div>        <\/div>\n\n        <h4>Vybran\u00e9 recenze<\/h4>\n        <div id=\"published-reviews-4\" class=\"published-reviews\"><\/div>\n    <\/div>\n\n    <style>\n        .rating-row {\n            display: flex;\n            align-items: center;\n            margin-bottom: 10px;\n            gap: 10px;\n        }\n        .category-label {\n            font-weight: bold;\n            color: white;\n        }\n        .numeric-average {\n            width: 40px;\n            text-align: right;\n            font-weight: bold;\n            color: white;\n        }\n        .star-rating {\n            display: flex;\n            font-size: 24px;\n        }\n        .star {\n            width: 1em;\n            height: 1em;\n            background: lightgray;\n            clip-path: polygon(\n                50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%,\n                50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%\n            );\n            margin-right: 5px;\n            position: relative;\n        }\n        .star.filled {\n            background: gold;\n        }\n        .star.half::before {\n            content: '';\n            position: absolute;\n            width: 50%;\n            height: 100%;\n            background: gold;\n            left: 0;\n        }\n        .published-review {\n            margin-bottom: 20px;\n            background: #f9f9f9;\n            padding: 10px;\n            border-radius: 5px;\n            border-left: 4px solid #ccc;\n        }\n        .published-review .review-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 5px;\n        }\n        .published-review .review-nickname {\n            font-weight: bold;\n            color: #333;\n        }\n        .published-review .review-stars {\n            display: flex;\n        }\n        .published-review .review-text {\n            font-style: italic;\n            color: #333;\n            margin-top: 5px;\n        }\n    <\/style>\n\n    <script data-jetpack-boost=\"ignore\">\n        document.addEventListener(\"DOMContentLoaded\", function () {\n            const adventureId = 4;\n            fetch(`https:\/\/enigma.swallnet.com\/api\/adventure\/review-details?adventureId=${adventureId}&webLocale=`)\n                .then(res => res.json())\n                .then(data => {\n                    if (!data.success) return;\n\n                    const averages = [\n                        data.categoryAverages[0], \/\/ Overall Experience\n                        data.categoryAverages[1], \/\/ Puzzles\n                        data.categoryAverages[2], \/\/ Locality\n                        data.categoryAverages[3]  \/\/ Fun\n                    ];\n\n                    averages.forEach((avg, index) => {\n                        renderStars(\"cat-\" + index + \"-adventure-\" + adventureId, avg);\n                        const numeric = document.getElementById(\"avg-\" + index + \"-adventure-\" + adventureId);\n                        if (numeric && avg !== undefined && !isNaN(avg)) {\n                            numeric.textContent = avg.toFixed(1);\n                        }\n                    });\n\n                    const container = document.getElementById(\"published-reviews-\" + adventureId);\n                    data.publishedReviews.forEach(review => {\n                        const div = document.createElement(\"div\");\n                        div.classList.add(\"published-review\");\n\n                        const header = document.createElement(\"div\");\n                        header.classList.add(\"review-header\");\n\n                        const nick = document.createElement(\"div\");\n                        nick.classList.add(\"review-nickname\");\n                        nick.textContent = review.nickName;\n\n                        const stars = document.createElement(\"div\");\n                        stars.classList.add(\"review-stars\");\n                        renderStars(stars, review.average);\n\n                        header.appendChild(nick);\n                        header.appendChild(stars);\n\n                        const textDiv = document.createElement(\"div\");\n                        textDiv.classList.add(\"review-text\");\n                        textDiv.textContent = `\"${review.text}\"`;\n\n                        div.appendChild(header);\n                        div.appendChild(textDiv);\n                        container.appendChild(div);\n                    });\n                });\n\n            function renderStars(containerOrId, avg) {\n                const container = (typeof containerOrId === \"string\") ? document.getElementById(containerOrId) : containerOrId;\n                if (!container) return;\n                container.innerHTML = '';\n                for (let i = 1; i <= 5; i++) {\n                    const star = document.createElement(\"div\");\n                    star.classList.add(\"star\");\n                    if (i <= Math.floor(avg)) {\n                        star.classList.add(\"filled\");\n                    } else if (i - avg < 1) {\n                        star.classList.add(\"half\");\n                    }\n                    container.appendChild(star);\n                }\n            }\n        });\n    <\/script>\n    \n<\/div>\n<\/div>\n\n\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Expedice Vita Caroli P\u0159\u00edb\u011bh Legenda prav\u00ed, \u017ee Vita Caroli, vlastn\u00ed \u017eivotopis Karla IV., obsahoval v\u00edc ne\u017e jen p\u0159\u00edb\u011bh jeho vl\u00e1dy. Mezi str\u00e1nkami t\u00e9to slavn\u00e9 knihy se \u00fadajn\u011b skr\u00fdval tajn\u00fd vzkaz pro budouc\u00ed mlad\u00e9 generace. Po stalet\u00ed byla tato str\u00e1nka z rukopisu ztracena, ukryt\u00e1 na bezpe\u010dn\u00e9m m\u00edst\u011b a nikdo netu\u0161il, kde ji hledat. A\u017e do te\u010f.Nyn\u00ed [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"footnotes":""},"class_list":["post-732","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/732","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/comments?post=732"}],"version-history":[{"count":67,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/732\/revisions"}],"predecessor-version":[{"id":2201,"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/pages\/732\/revisions\/2201"}],"wp:attachment":[{"href":"https:\/\/enigma.swallnet.com\/index.php\/wp-json\/wp\/v2\/media?parent=732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}