{"id":2281,"date":"2024-05-27T14:05:30","date_gmt":"2024-05-27T13:05:30","guid":{"rendered":"https:\/\/foxinaboxgames.com\/adelaide\/?post_type=product&#038;p=2281"},"modified":"2026-07-24T11:29:50","modified_gmt":"2026-07-24T01:29:50","slug":"wild-west-escape-room-gold-coast","status":"publish","type":"product","link":"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/","title":{"rendered":"WILD WEST SALOON"},"content":{"rendered":"<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0\">\n<div class=\"wp-block-cover alignfull is-light has-custom-content-position is-position-bottom-center\" style=\"padding-bottom:2rem\"><video class=\"wp-block-cover__video-background intrinsic-ignore\" autoplay muted loop playsinline src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Wild-West-Web-1.mp4\" poster=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Wild-West-Poster-Image.jpg\" data-object-fit=\"cover\"><\/video><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#4a2d1e\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-group alignwide has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\n<h1 class=\"wp-block-heading alignwide has-text-align-left has-custom-white-color has-text-color has-link-color has-larger-font-size wp-elements-380206cafd5ad2b07fbae8de750f0538\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--50);line-height:0.9\">WILD WEST SALOON<\/h1>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-tertiary-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"margin-top:0;margin-bottom:0;padding-top:5rem;padding-bottom:5rem\">\n<div class=\"wp-block-group alignwide has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns alignwide stack-on-tablet-portrait is-layout-flex wp-container-core-columns-is-layout-123045d2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\" style=\"padding-bottom:var(--wp--preset--spacing--50)\">Wild West Saloon Escape Room on the GOLD COAST<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Experience the GOLD COAST\u2019s Easiest &amp; Most Fun Family-Friendly Escape Room!<\/h3>\n\n\n\n<p>Ready for a rootin&#8217; tootin&#8217; good time in Surfers Paradise? Wild West Saloon at Fox in a Box is the perfect escape room experience for families and first-timers! Immerse your gang in a lively &#8220;spaghetti western&#8221; adventure and see if you can get your hands on the gold before the Sheriff returns. It&#8217;s an escape room with fun for all ages!<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Location:<\/h4>\n\n\n\n<p>Conveniently located in the heart of Surfers Paradise<\/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<div class=\"wp-block-group has-custom-white-background-color has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-b91ec625 wp-block-group-is-layout-constrained\" style=\"border-radius:4px;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--60)\">\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-6edfc491 wp-block-group-is-layout-flex\" style=\"border-bottom-color:var(--wp--preset--color--offwhite);border-bottom-width:1px;padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--50)\">\n<h3 class=\"wp-block-heading has-small-font-size\">number of players<\/h3>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\">2-7<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-f335b412 wp-block-group-is-layout-flex\" style=\"border-bottom-color:var(--wp--preset--color--offwhite);border-bottom-width:1px;padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)\">\n<h3 class=\"wp-block-heading has-small-font-size\">recommended minimum age<\/h3>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\">+10<\/h3>\n<\/div>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color has-small-font-size wp-elements-ddae342c8d15cbe5cb0925976a287fa0\" style=\"margin-bottom:var(--wp--preset--spacing--70)\">Families, first-timers, friends, and anyone seeking a lighthearted adventure<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-button-arrow\"><a class=\"wp-block-button__link wp-element-button\" href=\"#Book-Now\">Book now<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0\">\n<div class=\"wp-block-media-text alignfull is-stacked-on-mobile is-image-fill-element has-custom-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-9b233401ad29290a2866dbed8ddc2217\" style=\"grid-template-columns:40% auto\"><figure class=\"wp-block-media-text__media\"><img decoding=\"async\" width=\"690\" height=\"800\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5.jpeg\" alt=\"A woman and two children playing cards.\" class=\"wp-image-2284 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5.jpeg 690w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5-259x300.jpeg 259w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5-10x12.jpeg 10w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5-600x696.jpeg 600w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-80fc7f10 wp-block-group-is-layout-constrained\" style=\"padding-top:5vw;padding-right:var(--wp--preset--spacing--60);padding-bottom:5vw;padding-left:var(--wp--preset--spacing--60)\">\n<h3 class=\"wp-block-heading has-extra-large-font-size\">The Story<\/h3>\n\n\n\n<div class=\"wp-block-columns remove-bottom is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:75%\">\n<p style=\"padding-top:var(--wp--preset--spacing--50)\">Step into a bustling saloon in a small Wild West town. Gold miners and prospectors gather here, and the town&#8217;s most prized possession &#8211; a stash of glittering gold \u2013 is kept locked away in the Saloon safe. You and your trusty gang have spotted an opportunity! Can you work out how to get your hands on the gold before the Sheriff and his deputies return to town? Live your own spaghetti western as the absolute star of the show and immerse yourself in the magic of the Wild West Saloon!<\/p>\n\n\n\n<p style=\"padding-top:var(--wp--preset--spacing--50)\">This fun-filled escape room in Surfers Paradise promises a lively adventure where teamwork and quick thinking will help your gang strike it rich!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-offwhite-background-color has-background has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)\">\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading has-text-align-center has-extra-large-font-size\" style=\"padding-top:0;padding-bottom:0\">Why Choose Wild West Saloon?<\/h3>\n<\/div>\n\n\n\n<div style=\"height:2em\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group alignwide is-layout-grid wp-container-core-group-is-layout-d8c4a1bc wp-block-group-is-layout-grid\">\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-4f9f0532 wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading has-small-font-size\">Perfect for Families<\/h4>\n\n\n\n<p class=\"has-extra-small-font-size\">This <strong>escape room<\/strong> is very popular for families, with its fun, all-ages appeal, making it an ideal activity for everyone from youngsters to grandparents.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-4f9f0532 wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading has-small-font-size\">Easiest &amp; Fun<\/h4>\n\n\n\n<p class=\"has-extra-small-font-size\">Recognised as our easiest escape room, it&#8217;s specifically designed to be highly accessible and enjoyable for first-timers, ensuring a great experience without frustration.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-4f9f0532 wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading has-small-font-size\">Immersive Western Vibe<\/h4>\n\n\n\n<p class=\"has-extra-small-font-size\">Step into a meticulously crafted Wild West setting that transports you straight into your favorite spaghetti western, a theme that everyone loves!<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-4f9f0532 wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading has-small-font-size\">Lighthearted Adventure<\/h4>\n\n\n\n<p class=\"has-extra-small-font-size\">Unlike some of our more intense rooms, Wild West Saloon focuses purely on fun, laughter, and collaborative problem-solving in a relaxed atmosphere.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-secondary-background-color has-background has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-media-text alignfull is-stacked-on-mobile is-image-fill-element\" style=\"padding-top:0;padding-bottom:0\"><figure class=\"wp-block-media-text__media\"><img decoding=\"async\" width=\"914\" height=\"560\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/02\/Golden-Nugget-Saloon.jpg\" alt=\"A woman and two children playing the piano.\" class=\"wp-image-539 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/02\/Golden-Nugget-Saloon.jpg 914w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/02\/Golden-Nugget-Saloon-300x184.jpg 300w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/02\/Golden-Nugget-Saloon-768x471.jpg 768w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/02\/Golden-Nugget-Saloon-600x368.jpg 600w\" sizes=\"(max-width: 914px) 100vw, 914px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-52d62ebf wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--80);padding-left:var(--wp--preset--spacing--60)\">\n<h2 class=\"wp-block-heading has-large-font-size\">What Makes Fox in a Box GOLD COAST Special?<\/h2>\n\n\n\n<div style=\"height:2em\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Fox in a Box is part of a world-famous escape room network, trusted by millions of players around the globe.<\/p>\n\n\n\n<p>Our Wild West Saloon room is one of the most beloved escape rooms in Surfers Paradise, offering a unique blend of adventure and enjoyment that truly appeals to everyone.<\/p>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-secondary-color has-black-background-color has-text-color has-background has-link-color wp-elements-48083d104ff3ad041088959ab7c87264 has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"min-height:0vh;padding-top:0;padding-bottom:0\">\n<div class=\"wp-block-media-text alignfull has-media-on-the-right is-stacked-on-mobile is-image-fill-element\"><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group has-small-font-size has-global-padding is-layout-constrained wp-container-core-group-is-layout-20bc5a55 wp-block-group-is-layout-constrained\" style=\"padding-top:0;padding-right:var(--wp--preset--spacing--60);padding-bottom:0;padding-left:var(--wp--preset--spacing--60)\">\n<div style=\"height:150px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Ready to Rustle Up Some Gold?<\/h2>\n\n\n\n<p>Step into the lively world of Wild West Saloon and get ready for an escape room experience of a lifetime. Gather your family or friends and see if your gang can pull off the ultimate heist!<\/p>\n\n\n\n<div style=\"height:150px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div><figure class=\"wp-block-media-text__media\"><img decoding=\"async\" width=\"1024\" height=\"660\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/07\/Fox-in-a-Box-Gold-Coast-Wild-West-Saloon-1024x660.jpg\" alt=\"A group of people posing for a photo.\" class=\"wp-image-7178 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/07\/Fox-in-a-Box-Gold-Coast-Wild-West-Saloon-1024x660.jpg 1024w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/07\/Fox-in-a-Box-Gold-Coast-Wild-West-Saloon-300x193.jpg 300w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/07\/Fox-in-a-Box-Gold-Coast-Wild-West-Saloon-768x495.jpg 768w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/07\/Fox-in-a-Box-Gold-Coast-Wild-West-Saloon-18x12.jpg 18w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/07\/Fox-in-a-Box-Gold-Coast-Wild-West-Saloon-600x387.jpg 600w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/07\/Fox-in-a-Box-Gold-Coast-Wild-West-Saloon.jpg 1080w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-offwhite-background-color has-background has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)\">\n<div class=\"wp-block-columns alignwide are-vertically-aligned-center stack-on-tablet-portrait is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-content-justification-center is-layout-constrained wp-block-column-is-layout-constrained\" style=\"flex-basis:70%\">\n<h3 class=\"wp-block-heading alignwide has-text-align-left has-large-font-size\">Why the GOLD COAST Loves Fox In A Box Escape Rooms<\/h3>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns alignwide stack-on-tablet-portrait is-layout-flex wp-container-core-columns-is-layout-8054f645 wp-block-columns-is-layout-flex\" style=\"padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--50)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:20%\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/02\/stars_64dp_E8EAED_FILL0_wght100_GRAD0_opsz48-1.svg\" alt=\"Black outlined star icon representing rating, favorite, or highlight.\" class=\"wp-image-2878\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">5-star reviews across Google, TripAdvisor &amp; Facebook<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:20%\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/02\/Vector.svg\" alt=\"Black checkmark icon indicating success, confirmation, or task completion.\" class=\"wp-image-2875\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">The Gold Coast\u2019s best escape room venue<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:20%\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/02\/Vector-1.svg\" alt=\"Black X icon representing error, cancellation, or closing action.\" class=\"wp-image-2876\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">8 themed rooms for all ages and occasions<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:20%\">\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/02\/Vector-1-1.svg\" alt=\"Black checkmark icon representing success, confirmation, or task completion.\" class=\"wp-image-2894\" style=\"width:50px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">World-class sets, exciting missions, and friendly hosts<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:20%\">\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"53\" height=\"60\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/06\/Asset-2.png\" alt=\"A calendar icon with a check mark.\" class=\"wp-image-6567\" style=\"width:40px\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/06\/Asset-2.png 53w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2025\/06\/Asset-2-11x12.png 11w\" sizes=\"(max-width: 53px) 100vw, 53px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">Easy online bookings &amp; flexible session times<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0\">\n<div class=\"wp-block-media-text alignfull is-stacked-on-mobile is-image-fill-element stack-on-tablet-portrait has-black-background-color has-background\"><figure class=\"wp-block-media-text__media\"><img decoding=\"async\" width=\"690\" height=\"800\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8.jpeg\" alt=\"A hallway with wooden walls and wooden floors.\" class=\"wp-image-2287 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8.jpeg 690w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8-259x300.jpeg 259w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8-10x12.jpeg 10w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8-600x696.jpeg 600w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-24060b52 wp-block-group-is-layout-constrained\" style=\"padding-top:4vw;padding-right:var(--wp--preset--spacing--60);padding-bottom:4vw;padding-left:var(--wp--preset--spacing--60)\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f0342b05 wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:90%\">\n<h3 class=\"wp-block-heading has-custom-white-color has-text-color has-link-color has-extra-large-font-size wp-elements-edec64b12adef4fba9139e8b0853e040\">Book Your Wild West Saloon Adventure Today!<\/h3>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-left is-layout-flex wp-container-core-buttons-is-layout-a8261ec1 wp-block-buttons-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--60)\">\n<div class=\"wp-block-button is-style-button-arrow\"><a class=\"wp-block-button__link wp-element-button\">\u7acb\u5373\u9810\u8a02<\/a><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignwide has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:5rem;padding-bottom:5rem\">\n<figure class=\"wp-block-gallery alignwide has-nested-images columns-4 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full has-custom-border\"><img decoding=\"async\" width=\"690\" height=\"800\" data-id=\"2284\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5.jpeg\" alt=\"A woman and two children playing cards.\" class=\"wp-image-2284\" style=\"border-radius:4px\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5.jpeg 690w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5-259x300.jpeg 259w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5-10x12.jpeg 10w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-1-5-600x696.jpeg 600w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border\"><img decoding=\"async\" width=\"690\" height=\"800\" data-id=\"2285\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-2-5.jpeg\" alt=\"A woman and two children playing the piano.\" class=\"wp-image-2285\" style=\"border-radius:4px\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-2-5.jpeg 690w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-2-5-259x300.jpeg 259w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-2-5-10x12.jpeg 10w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-2-5-600x696.jpeg 600w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border\"><img decoding=\"async\" width=\"690\" height=\"800\" data-id=\"2286\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-3-5.jpeg\" alt=\"A room with a piano and a bar.\" class=\"wp-image-2286\" style=\"border-radius:4px\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-3-5.jpeg 690w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-3-5-259x300.jpeg 259w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-3-5-10x12.jpeg 10w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-3-5-600x696.jpeg 600w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border\"><img decoding=\"async\" width=\"690\" height=\"800\" data-id=\"2287\" src=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8.jpeg\" alt=\"A hallway with wooden walls and wooden floors.\" class=\"wp-image-2287\" style=\"border-radius:4px\" srcset=\"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8.jpeg 690w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8-259x300.jpeg 259w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8-10x12.jpeg 10w, https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mask-group-8-600x696.jpeg 600w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/figure>\n<\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-offwhite-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" id=\"Book-Now\" style=\"margin-top:0;margin-bottom:0;padding-top:3rem;padding-bottom:3rem\">\n<div class=\"wp-block-group alignwide has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\"><h2 style=\"margin-bottom:var(--wp--preset--spacing--20);\" class=\"alignwide wp-block-post-title has-extra-large-font-size\">WILD WEST SALOON<\/h2>\n\n\n<h4 class=\"wp-block-heading alignwide\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:4rem\">Book a game<\/h4>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 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%\">\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\"><div data-block-name=\"woocommerce\/add-to-cart-form\" class=\"wp-block-add-to-cart-form wc-block-add-to-cart-form wc-block-add-to-cart-form--input wp-block-woocommerce-add-to-cart-form\" ><div class=\"woocommerce-notices-wrapper\"><\/div>\n<script type=\"text\/javascript\">\n  var siteData = {\n    id: 65  };\n  window.fiabDepositText = {\n    note: \"You will pay 40\\u20ac now\"  };\n  window.fiabH2hPersonTypeMap = {};\n  window.fiabBookingContext = {\n    product_id: 2281,\n    product_name: \"WILD WEST SALOON\",\n    currency: \"AUD\",\n    city: \"Gold Coast\",\n    affiliation: \"Fox in a Box Gold Coast\",\n    site_id: 65,\n    item_location_id: \"gold_coast_\",\n    is_staff: false,\n\tenable_last_minute_reservations: 'no',\n\tlast_minute_fee: 0,\n\tdisable_sleep_mode: 'no'\n};\n  window.fiabOperatingHours = {\n    first: \"10:00\", \/\/ e.g. \"09:30:00\"\n    last: \"22:00\"     \/\/ e.g. \"21:30:00\"\n  };\n<\/script>\n\n<style>\n  .single-product .fc-daygrid-event.booked .fc-event-title:after {\n    content: \"Booked\" !important;\n  }\n\n  .single-product .fc-daygrid-event.booked .fc-event-title[data-booked-time]:after {\n    content: \"Booked\\A\" attr(data-booked-time) !important;\n\twhite-space: pre;\n  }\n\n  .single-product .fc-daygrid-event.booked.selected .fc-event-title:after {\n    content: \"Selected \" !important;\n  }\n\n  .fc-header-toolbar {\n    width: 100% !important;\n  }\n\n  .booking-form.multiple .fc-header-toolbar,\n  .booking-form.single .fc-header-toolbar {\n    background: #ED6B06 !important;\n    padding: 20px 30px !important;\n    border-top-left-radius: 5px !important;\n    border-top-right-radius: 5px !important;\n  }\n\n  \/* Alignment placeholders (days that share a time lattice but open later\/earlier):\n     keep the cell so identical clock times line up, but render it as clean empty\n     space instead of a white box. *\/\n  .single-product .fc-daygrid-event.not-available {\n    background: transparent !important;\n    border-color: transparent !important;\n    box-shadow: none !important;\n    color: transparent !important;\n    cursor: default !important;\n    pointer-events: none !important;\n  }\n<\/style>\n\n<script type=\"text\/javascript\">\n\/**\n * H2H person-type remapping.\n *\n * When a head-to-head slot click switches the add-to-cart product ID to the\n * linked room, the form's person-type field names (keyed by the current room's\n * person-type post IDs) no longer match the linked room's person-type IDs.\n * WooCommerce Bookings then can't find any persons data and validation fails\n * with \"The minimum persons per group is N\".\n *\n * This function renames both the hidden number inputs (rendered by WC Bookings'\n * number.php template) and the custom radio buttons so they carry the correct\n * person-type IDs for whichever product is currently selected.\n *\/\n(function() {\n  var originalProductId = window.fiabBookingContext ? window.fiabBookingContext.product_id : null;\n  var map = window.fiabH2hPersonTypeMap || {};\n  var reverseMap = {};\n  for (var k in map) {\n    if (map.hasOwnProperty(k)) {\n      reverseMap[map[k]] = k;\n    }\n  }\n  \/\/ Track whether fields are currently using original or linked IDs\n  var isRemapped = false;\n\n  window.fiabRemapPersonTypes = function(newProductId) {\n    if (!originalProductId || !Object.keys(map).length) return;\n\n    var needsLinked = String(newProductId) !== String(originalProductId);\n    \/\/ Already in the correct state\n    if (needsLinked === isRemapped) return;\n\n    var activeMap = needsLinked ? map : reverseMap;\n\n    for (var fromId in activeMap) {\n      if (!activeMap.hasOwnProperty(fromId)) continue;\n      var toId = activeMap[fromId];\n      var oldName = 'wc_bookings_field_persons_' + fromId;\n      var newName = 'wc_bookings_field_persons_' + toId;\n\n      \/\/ Rename hidden number inputs (from WC Bookings number.php template)\n      var hiddenInput = document.getElementById(oldName);\n      if (hiddenInput) {\n        hiddenInput.name = newName;\n        hiddenInput.id = 'wc_bookings_field_persons_' + toId;\n      }\n\n      \/\/ Rename custom radio buttons\n      var radios = document.querySelectorAll('input[name=\"' + oldName + '\"]');\n      radios.forEach(function(radio) {\n        radio.name = newName;\n      });\n    }\n\n    isRemapped = needsLinked;\n  };\n})();\n<\/script>\n\n<noscript>\u770b\u8d77\u6765\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301Javascript.<\/noscript>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/hammer.js\/2.0.8\/hammer.min.js\"><\/script>\n\n\n<script type=\"text\/javascript\">\n\n\t\/\/ WordPress time format settings\n\tconst wpTimeFormat = {\n\t\tis24h: true,\n\t\tformat: \"H:i\"\t};\n\n\t\/\/ Function to format time according to WordPress settings\n\tfunction formatTimeAccordingToWP(date) {\n\t\tif (wpTimeFormat.is24h) {\n\t\t\treturn date.toLocaleString('en-US', { \n\t\t\t\thour: '2-digit', \n\t\t\t\tminute: '2-digit', \n\t\t\t\thour12: false \n\t\t\t});\n\t\t} else {\n\t\t\treturn date.toLocaleString('en-US', { \n\t\t\t\thour: 'numeric', \n\t\t\t\tminute: '2-digit', \n\t\t\t\thour12: true \n\t\t\t});\n\t\t}\n\t}\n\n\t\t\tfunction getOperationalReferenceTime(eventDate) {\n\n\t\t\tconst now = new Date();\n\t\t\tif (!window.fiabOperatingHours) {\n\t\t\t\treturn now; \/\/ fallback safety\n\t\t\t}\n\n\t\t\t \/\/ NEW: bypass sleep mode completely\n\t\t\tif (fiabBookingContext.disable_sleep_mode === 'yes') {\n\t\t\t\treturn now;\n\t\t\t}\n\n\t\t\tconst [firstHour, firstMin] = fiabOperatingHours.first.split(':').map(Number);\n\t\t\tconst [lastHour, lastMin] = fiabOperatingHours.last.split(':').map(Number);\n\t\t\t\n\n\t\t\t\/\/ First slot today\n\t\t\tconst firstSlotToday = new Date(now);\n\t\t\tfirstSlotToday.setHours(firstHour, firstMin, 0, 0);\n\n\t\t\t\/\/ Last slot today\n\t\t\tconst lastSlotToday = new Date(now);\n\t\t\tlastSlotToday.setHours(lastHour, lastMin, 0, 0);\n\n\t\t\t\/\/ First slot tomorrow\n\t\t\tconst firstSlotTomorrow = new Date(firstSlotToday);\n\t\t\tfirstSlotTomorrow.setDate(firstSlotTomorrow.getDate() + 1);\n\n\t\t\t\/\/ --- Sleep mode logic ---\n\t\t\tif (now < firstSlotToday) {\n\t\t\t\t\/\/ Before opening \u2192 freeze at today opening\n\t\t\t\treturn firstSlotToday;\n\t\t\t}\n\t\t\tif (now > lastSlotToday) {\n\t\t\t\t\/\/ After closing \u2192 freeze at tomorrow opening\n\t\t\t\treturn firstSlotTomorrow;\n\t\t\t}\n\t\t\t\/\/ During working hours\n\t\t\treturn now;\n\t\t}\n\n\n\tdocument.addEventListener('DOMContentLoaded', function() {\n\n\t\/\/ \ud83d\udd25 LOAD REAL SETTINGS (bypass cache)\n\tjQuery.post(ajax_script.ajaxurl, {\n\t\taction: 'get_last_minute_settings'\n\t}, function(response) {\n\n\t\tif (!response.success) return;\n\n\t\twindow.fiabBookingContext.enable_last_minute_reservations = response.data.enable_reservations;\n\t\twindow.fiabBookingContext.last_minute_fee = response.data.amount;\n\t\twindow.fiabBookingContext.disable_sleep_mode = response.data.disable_sleep_mode;\n\t\twindow.fiabBookingContext.is_staff = response.data.is_staff;\n\n\t});\n\n\t\tconst defaultPlayers = product_data.default_players;\n\n\t\t\/\/ Find the radio input for the default number of players and select it\n\t\t\/\/ Only apply defaultPlayers to the first person type (Adults), others default to 0\n\t\tconst personTypeGroupsInit = document.querySelectorAll(\".persons-type\");\n\t\tpersonTypeGroupsInit.forEach((group, index) => {\n\t\t\tconst radios = group.querySelectorAll(\".persons-number-selector\");\n\t\t\tconst targetValue = index === 0 ? String(defaultPlayers) : \"0\";\n\t\t\tradios.forEach(input => {\n\t\t\t\tif (input.value === targetValue) {\n\t\t\t\t\tinput.checked = true;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tvar myTranslations = {\"changeDate\":\"Change Date\"};\n\t\tconst locale = document.documentElement.lang;\t\n\t\t\n\t\t\/\/ --- Bosanski (bs) nazivi datuma + lokalizacija Pikaday popup-a ---\n\t\t\/\/ Chrome ICU nema bs nazive mjeseci\/dana pa native Intl vraca \"M07\".\n\t\t\/\/ Za 'bs' formatiramo rucno; ostali jezici koriste Intl (ispravno).\n\t\tvar FOX_BS_MONTHS = ['januar','februar','mart','april','maj','juni','juli','august','septembar','oktobar','novembar','decembar'];\n\t\tvar FOX_BS_DAYS   = ['nedjelja','ponedjeljak','utorak','srijeda','\u010detvrtak','petak','subota'];\n\t\tvar FOX_NAV_LABELS = { en:['Previous Month','Next Month'], bs:['Prethodni mjesec','Sljede\u0107i mjesec'], hr:['Prethodni mjesec','Sljede\u0107i mjesec'], de:['Voriger Monat','N\u00e4chster Monat'], fr:['Mois pr\u00e9c\u00e9dent','Mois suivant'], nl:['Vorige maand','Volgende maand'], es:['Mes anterior','Mes siguiente'], sv:['F\u00f6reg\u00e5ende m\u00e5nad','N\u00e4sta m\u00e5nad'], zh:['\u4e0a\u4e2a\u6708','\u4e0b\u4e2a\u6708'] };\n\t\tfunction foxCap(s){ return s ? s.charAt(0).toUpperCase() + s.slice(1) : s; }\n\t\tfunction foxIsBs(){ return \/^bs\/i.test(locale || ''); }\n\t\t\/\/ FullCalendar dayHeaderFormat (bs): \"Pet, 10. jul\"\n\t\tfunction foxBsDayHeader(arg){\n\t\t\tvar d = arg.date, dow = new Date(Date.UTC(d.year, d.month, d.day)).getUTCDay();\n\t\t\treturn foxCap(FOX_BS_DAYS[dow].slice(0,3)) + ', ' + d.day + '. ' + FOX_BS_MONTHS[d.month].slice(0,3);\n\t\t}\n\t\t\/\/ FullCalendar titleFormat (bs): raspon \"10. \u2013 16. juli 2026.\" (end je inkluzivan)\n\t\tfunction foxBsTitle(arg){\n\t\t\tvar s = arg.start, e = arg.end;\n\t\t\tif (s.year === e.year && s.month === e.month) return s.day + '. \u2013 ' + e.day + '. ' + FOX_BS_MONTHS[s.month] + ' ' + s.year + '.';\n\t\t\tif (s.year === e.year) return s.day + '. ' + FOX_BS_MONTHS[s.month] + ' \u2013 ' + e.day + '. ' + FOX_BS_MONTHS[e.month] + ' ' + s.year + '.';\n\t\t\treturn s.day + '. ' + FOX_BS_MONTHS[s.month] + ' ' + s.year + '. \u2013 ' + e.day + '. ' + FOX_BS_MONTHS[e.month] + ' ' + e.year + '.';\n\t\t}\n\t\t\/\/ Pikaday i18n (svi jezici preko Intl, bs iz rucnih nizova)\n\t\tfunction foxPikadayI18n(){\n\t\t\tvar lang2 = (locale || 'en').slice(0,2), months=[], weekdays=[], weekdaysShort=[];\n\t\t\tif (foxIsBs()) {\n\t\t\t\tfor (var m=0;m<12;m++){ months.push(foxCap(FOX_BS_MONTHS[m])); }\n\t\t\t\tfor (var d=0;d<7;d++){ weekdays.push(foxCap(FOX_BS_DAYS[d])); weekdaysShort.push(foxCap(FOX_BS_DAYS[d].slice(0,3))); }\n\t\t\t} else {\n\t\t\t\tvar mf=new Intl.DateTimeFormat(locale,{month:'long'}), wf=new Intl.DateTimeFormat(locale,{weekday:'long'}), wsf=new Intl.DateTimeFormat(locale,{weekday:'short'});\n\t\t\t\tfor (var m2=0;m2<12;m2++){ months.push(foxCap(mf.format(new Date(2021,m2,1)))); }\n\t\t\t\tfor (var d2=0;d2<7;d2++){ var day=new Date(2021,7,1+d2); weekdays.push(foxCap(wf.format(day))); weekdaysShort.push(foxCap(wsf.format(day))); }\n\t\t\t}\n\t\t\tvar nav = FOX_NAV_LABELS[lang2] || FOX_NAV_LABELS.en;\n\t\t\treturn { previousMonth:nav[0], nextMonth:nav[1], months:months, weekdays:weekdays, weekdaysShort:weekdaysShort };\n\t\t}\n\n\t\t\/\/ Show initial loading state\n\t\tjQuery('#calendar-single').addClass('loading-spinner');\n\t\t\n\t\t\/\/ Set proper height and positioning for loading state\n\t\tjQuery('#calendar-single').css({\n\t\t\t'min-height': '500px',\n\t\t\t'position': 'relative',\n\t\t\t'background': '#f9f9f9',\n\t\t\t'width': '100%',\n\t\t\t'overflow': 'hidden'\n\t\t});\n\t\t\n\t\t\/\/ Ensure calendar content maintains width\n\t\tjQuery('#calendar-single .fc-view-harness, #calendar-single .fc-scrollgrid').css({\n\t\t\t'width': '100%',\n\t\t\t'min-width': '100%',\n\t\t\t'max-width': '100%'\n\t\t});\n\t\t\n\t\t\/\/ Add initial loading message with fade-in effect\n\t\tif (!jQuery('#calendar-single .initial-loading').length) {\n\t\t\tjQuery('#calendar-single').append('<div class=\"initial-loading\">Loading calendar...<\/div>');\n\t\t\t\/\/ Trigger fade-in animation\n\t\t\tsetTimeout(function() {\n\t\t\t\tjQuery('#calendar-single .initial-loading').css('opacity', '1');\n\t\t\t}, 100);\n\t\t}\n\n\t    var calendarEl = document.getElementById('calendar-single');\n\t    var calendar = new FullCalendar.Calendar(calendarEl, {\n\t    \tlocale: 'zh',\n\t\t\tinitialView: 'dayGridFourDay',\n\t\t\theight:'auto',\n\t\t\tinitialDate: '' || new Date().toISOString().split('T')[0],\n\t\t\teventDisplay: 'block',\n\t\t\ttimeZone: 'local', \n\t\t\tviews: {\n\t\t\t    dayGridFourDay: {\n\t\t\t        type: 'dayGridWeek',\n\t\t\t        slotMinTime: '10:00',\n\t    \t\t\tslotMaxTime: '00:00',\n\t\t\t        duration: { days: jQuery(window).width() < 765 ? 3 : 7 },\n\t\t\t        \/\/ dayHeaderFormat: { weekday: 'short', month: 'short', day: 'numeric', omitCommas: false },\n\t\t\t        \/\/ eventTimeFormat: { \/\/ like '14:30:00'\n\t\t\t\t\t\/\/     hour: '2-digit',\n\t\t\t\t\t\/\/     minute: '2-digit',\n\t\t\t\t\t\/\/     meridiem: 'short',\n\t\t\t\t\t\/\/     hour12: true\n\t\t\t\t\t\/\/ },\n\t\t\t\t\tdayHeaderFormat: { weekday: 'short', month: 'short', day: 'numeric', omitCommas: false },\n\t\t\t\t\t\/\/ \u2b07\ufe0f Time format depends on WP time format\n\t\t\t\t\teventTimeFormat: {\n\t\t\t\t\t\thour: '2-digit',\n\t\t\t\t\t\tminute: '2-digit',\n\t\t\t\t\t\thour12: false,\n\t\t\t\t\t\tmeridiem: false\t\t\t\t\t},\n\n\t\t\t\t\t\/\/ If you also want the slot labels to follow WP format:\n\t\t\t\t\tslotLabelFormat: {\n\t\t\t\t\t\thour: '2-digit',\n\t\t\t\t\t\tminute: '2-digit',\n\t\t\t\t\t\thour12: false,\n\t\t\t\t\t\tmeridiem: false\t\t\t\t\t}\n\t\t\t    }\n\t\t\t},\n\t\t\tbuttonIcons: false,\n\t\t\theaderToolbar: {\n\t\t\t    left: 'prev',\n\t\t\t    center: 'title',\n\t\t\t    right: 'next' \/\/ user can switch between the two\n\t\t\t},\n\t\t\t\/\/ validRange: function(nowDate) {\n\t\t\t\/\/   return {\n\t\t\t\/\/     start: nowDate\n\t\t\t\/\/   };\n\t\t\t\/\/ },\n\t\t\tcustomButtons: {\n\t\t\t\tdatepicker: {\n\t\t\t\t\ttext: (locale === 'fr-CA') ? 'Changer la date' :\n\t\t\t\t\t\t(locale === 'zh-HK') ? '\u66f4\u6539\u65e5\u671f' :\n\t\t\t\t\t\t(locale === 'hr')    ? 'Promijeni datum' :\n\t\t\t\t\t\t(locale === 'hr_HR') ? 'Promijeni datum' :\n\t\t\t\t\t\t(locale === 'bs-BA') ? 'Promijeni datum' :\n\t\t\t\t\t\t(locale === 'es-MX') ? 'Cambiar fecha' :\n\t\t\t\t\t\t(locale === 'de-AT') ? 'Datum \u00e4ndern' :\n\t\t\t\t\t\t(locale === 'nl-NL') ? 'Datum wijzigen' :\n\t\t\t\t\t\t(myTranslations?.changeDate ?? 'Change date'),\n\t\t\t\t\tclick: function (e) {\n\t\t\t\t\t\tpicker.show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t        },\n\t        headerToolbar: {\n\t            left: 'prev',\n\t            center: 'datepicker title',\n\t            right: 'next'\n\t        },\n\t\t\tfirstDay: 1,\n\t\t\tallDaySlot: false,\n\t\t\tloading: function(isLoading) {\n\t\t\t\tif (isLoading) {\n\t\t\t\t\t\/\/ Simple loading state - just add loading class\n\t\t\t\t\tjQuery('#calendar-single').addClass('loading-spinner');\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ Remove loading class when done\n\t\t\t\t\tjQuery('#calendar-single').removeClass('loading-spinner');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\teventClick: function(calEvent, jsEvent, view) {\n\t\t\t\t  \tvar el = calEvent.el;\n\t\t\t\t\tvar ev = calEvent.event;\n\t\t\t\t\tvar $el = jQuery(el);\n\n\n\t\t\t\t\tif (jQuery(el).hasClass('selected-block')) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\n\t\t\t\tif ( jQuery(calEvent.el).hasClass(\"available\") ) {\n\t\t\t\t\ttry {\n\t\t\t\t\tconst blockId  = calEvent.event.id || calEvent.event._def.publicId;\n\t\t\t\t\tconst startISO = calEvent.event.startStr;\n\t\t\t\t\tconst startDate = new Date(startISO);\n\n\t\t\t\t\tfireSelectTimeSlot({\n\t\t\t\t\t\titem_id: fiabBookingContext.product_id.toString(),\n\t\t\t\t\t\titem_location_id: fiabBookingContext.item_location_id,\n\t\t\t\t\t\tlocation_name: fiabBookingContext.city,\n\n\t\t\t\t\t\tbooking_date: startDate.toISOString().split('T')[0], \/\/ YYYY-MM-DD\n\t\t\t\t\t\tbooking_time: startDate.toTimeString().slice(0, 5),  \/\/ HH:mm\n\t\t\t\t\t\tblock_id: blockId,\n\t\t\t\t\t\tselection_source: \"calendar\"\n\t\t\t\t\t});\n\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\/\/ silent fail (UI must not break)\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t}\n\n\n\n\t\t\t\t\tdocument.querySelector('.wc-booking-product-id').value = calEvent.event._def.extendedProps.product_id;\n\t\t\t\t\tif (window.fiabRemapPersonTypes) window.fiabRemapPersonTypes(calEvent.event._def.extendedProps.product_id);\n\n\t\t\t\t\tjQuery( \".submit-form-book\" ).css(\"display\", \"block\");\n\t\t\t\t\tjQuery( \".last-minute-notice\" ).css(\"display\", \"none\");\n\n\t\t\t\tif(siteData.id === 17){\n\n\t\t\t\t\t\t\/\/ \ud83d\udd25 STOCKHOLM (keep as is)\n\t\t\t\t\t\tapplyPaletteToEl(el, SELECTED_PALETTE);\n\n\t\t\t\t\t\trestorePrevSelection();\n\n\t\t\t\t\t\t_selEvent = ev;\n\t\t\t\t\t\t_selEl = el;\n\n\t\t\t\t\t\tel.classList.remove('selected-block');\n\t\t\t\t\t\tel.classList.add('selected-block');\n\n\t\t\t\t\t} else if (siteData.id === 12){\n\n\t\t\t\t\t\t\/\/ \ud83d\udd25 MADRID (NEW - SAME BEHAVIOR AS STOCKHOLM BUT WITH MADRID FUNCTIONS)\n\t\t\t\t\t\tMADRID_applyPaletteToEl(el, MADRID_SELECTED_PALETTE);\n\n\t\t\t\t\t\tMADRID_restorePrevSelection();\n\n\t\t\t\t\t\tMADRID_selEvent = ev;\n\t\t\t\t\t\tMADRID_selEl = el;\n\n\t\t\t\t\t\tel.classList.remove('selected-block');\n\t\t\t\t\t\tel.classList.add('selected-block');\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\/\/ \ud83d\udd25 ALL OTHER CITIES (keep old simple behavior)\n\t\t\t\t\t\tlet x = document.getElementsByClassName(\"selected-block\");\n\t\t\t\t\t\tif (x.length > 0) { x[0].classList.remove(\"selected-block\"); }\n\n\t\t\t\t\t\tjQuery(calEvent.el).addClass('selected-block');\n\t\t\t\t\t}\n\t\t\t\t   \n\t\t\t\t\tjQuery( \".empty-state\" ).remove();\n\n\t\t\t\t    var timestamp = new Date().getUTCMilliseconds();\n\n\t\t\t\t\t\/\/ jQuery('input[name=\"wc_bookings_field_persons\"]').prop('checked', false);\n\n\t\t\t\t\t\/\/ \/\/ Select the first radio button\n\t\t\t\t\t\/\/ jQuery('input[name=\"wc_bookings_field_persons\"]').first().prop('checked', true);\n\n\t\t\t\t\t\/\/ Remove focus from all radio buttons\n\t\t\t\t\t\/\/ jQuery('input[name=\"wc_bookings_field_persons\"]').blur();\n\n\t\t\t\t    jQuery( \"#wc_bookings_field_start_date\" ).val( calEvent.event.startStr ).change();\n\n\t\t\t\t\tvar event_date = new Date(calEvent.event.startStr);\n\n\t\t\t\t\t\/\/ Sleep-mode aware reference time\n\t\t\t\t\tvar referenceTime = getOperationalReferenceTime(event_date);\n\n\t\t\t\t\tvar diff = event_date - referenceTime;\n\t\t\t\t\tvar minsDiff = Math.floor(diff \/ 60000);\n\n\t\t\t\t\t\/\/ Format time according to WordPress settings\n\t\t\t\t\tvar time = formatTimeAccordingToWP(event_date);\n\t\t\t\t\tvar dd = event_date.getDate();\n\t\t\t\t\tvar mm = event_date.getMonth()+1;\n\t\t\t\t\tvar month = event_date.toLocaleString('default', { month: 'long' });\n\t\t\t\t\tvar yyyy = event_date.getFullYear();\n\n\t\t\t\t\tjQuery( '.booking-date-text' ).empty();\n\t\t\t        jQuery( '.booking-date-text' ).prepend( month + ' ' + dd + ', ' + yyyy );\n\n\t\t\t        jQuery( '.booking-time-text' ).empty();\n\t\t\t        jQuery( '.booking-time-text' ).prepend( time );\n\n\n\t\t\t        jQuery( \".selected-room.data\" ).css(\"display\", \"block\");\n\n\t\t\t\t\tif (minsDiff < product_data.advance_call_confirmation_window) {\n\n\t\t\t\t\t    \/\/ CASE: sleep mode DISABLED \u2192 simple rule\n\t\t\t\t\t\tif (fiabBookingContext.disable_sleep_mode === 'yes') {\n\t\t\t\t\t\t\tjQuery(\".last-minute-notice\").css(\"display\", \"block\");\n\t\t\t\t\t\t\tjQuery(\".submit-form-book\").css(\"display\", \"none\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (Boolean(fiabBookingContext.is_staff) === false) {\n\t\t\t\t\t\t\t\tlet displayNotice = 'block'\n\t\t\t\t\t\t\t\tlet displayBook = 'block'\n\t\t\t\t\t\t\t\tif (fiabBookingContext.enable_last_minute_reservations === 'no') {\n\n\t\t\t\t\t\t\t\t\tdisplayNotice = 'block'\n\t\t\t\t\t\t\t\t\tdisplayBook = 'none'\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tdisplayNotice = 'none'\n\t\t\t\t\t\t\t\t\tdisplayBook = 'block'\n\t\t\t\t\t\t\t\t\tjQuery(\".submit-form-book\").css(\"display\", \"block\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tjQuery(\".last-minute-notice\").css(\"display\", displayNotice);\n\t\t\t\t\t\t\t\tjQuery(\".submit-form-book\").css(\"display\", displayBook);\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\n\n\t\t\t\t\t}\n\t\t\t\t\tif ( product_data.maximum_bookable_days_in_future > 0 ) {\n\n\t\t\t\t\t\tlet currentDate = new Date();\n\t\t\t\t\t\tlet timestampDaysFromToday = currentDate.getTime() + (product_data.maximum_bookable_days_in_future * 24 * 60 * 60 * 1000); \/\/ 90 days in milliseconds\n\n\t\t\t\t\t\t\/\/ Check if the event start date is no later than 90 days from today\n\t\t\t\t\t\tif (event_date <= timestampDaysFromToday) {\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tjQuery( \".submit-form-book\" ).css(\"display\", \"none\");\n\t\t\t        \t\tjQuery( \".maximum-days-in-future-notice\" ).css(\"display\", \"block\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t    jQuery(\"#trigger_calc\").val(timestamp).change();\n\n\t\t\t\t    jQuery([document.documentElement, document.body]).animate({\n\t\t\t\t        scrollTop: jQuery(\".booking-form-right\").offset().top\n\t\t\t\t    }, 1000);\n\t\t\t\t\n\t\t\t\t} else if ( jQuery(calEvent.el).hasClass(\"selected\") ) {\n\t\t\t\t\t\/\/console.log( 'selected' );\n\t\t\t\t\twindow.location.href = ajax_script.woo_cart_url;\n\t\t\t\t} else {\n\t\t\t\t\t\/\/console.log( 'booked' );\n\t\t\t\t}\t\n\n\t\t\t},\n\t\t\t\n\t\t\tevents: function(info, successCallback, failureCallback) {\n\t\t\t\t\/\/ Safely check if window.is_single_h2h is defined and parse it only if it is.\n\t\t\t\tvar isSingleH2h = window.is_single_h2h !== undefined ? JSON.parse(window.is_single_h2h) : false;\n\n\t\t\t\tvar data = {\n\t\t\t\t\taction: 'get_blocks',\n\t\t\t\t\tstart: info.startStr.valueOf(),\n\t\t\t\t\tend: info.endStr.valueOf(),\n\t\t\t\t\tid: jQuery(\".wc-booking-product-id\").val()\n\t\t\t\t};\n\n\t\t\t\tif (!isSingleH2h) {\n\t\t\t\t\t\/\/ Fetch events for the single room\n\t\t\t\t\tjQuery.post(ajax_script.ajaxurl, data, function(response) {\n\t\t\t\t\t\tvar obj = jQuery.parseJSON(response);\n\t\t\t\t\t\tif (obj.success) {\n\t\t\t\t\t\t\tvar events = jQuery.parseJSON(obj.data);\n\n\t\t\t\t\t\t\t\/\/ COLOR BLOCKS FOR STOCKHOLM\n\t\t\t\t\t\t\tif(siteData.id === 17){\n\t\t\t\t\t\t\t\tevents = decorateByTier(events);       \n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif(siteData.id === 12){\n\t\t\t\t\t\t\t\tevents = MADRID_decorateByTier(events);       \n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsuccessCallback(events);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.log('Error fetching events for single room');\n\t\t\t\t\t\t\t\/\/ Render an empty calendar instead of leaving it on \"loading\".\n\t\t\t\t\t\t\tsuccessCallback([]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}).fail(function() {\n\t\t\t\t\t\tconsole.log('AJAX request failed');\n\t\t\t\t\t\tfailureCallback('AJAX request failed');\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ Fetch events for both Room 1 and Room 2\n\t\t\t\t\tvar dataRoom1 = { ...data, id: jQuery(\".wc-booking-product-id\").val() };\n\t\t\t\t\tvar dataRoom2 = { ...data, id: window.second_room_product_id };\n\n\t\t\t\t\t\/\/ Use Promise.all to fetch both requests in parallel\n\t\t\t\t\tPromise.all([\n\t\t\t\t\t\tjQuery.post(ajax_script.ajaxurl, dataRoom1),\n\t\t\t\t\t\tjQuery.post(ajax_script.ajaxurl, dataRoom2)\n\t\t\t\t\t]).then(function(responses) {\n\t\t\t\t\t\tvar responseRoom1 = responses[0];\n\t\t\t\t\t\tvar responseRoom2 = responses[1];\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar objRoom1 = jQuery.parseJSON(responseRoom1);\n\t\t\t\t\t\tvar objRoom2 = jQuery.parseJSON(responseRoom2);\n\n\t\t\t\t\t\tif (objRoom1.success || objRoom2.success) {\n\t\t\t\t\t\t\t\/\/ Combine both events (Room 1 and Room 2)\n\t\t\t\t\t\t\tvar eventsRoom1 = objRoom1.success ? jQuery.parseJSON(objRoom1.data) : [];\n\t\t\t\t\t\t\tvar eventsRoom2 = objRoom2.success ? jQuery.parseJSON(objRoom2.data) : [];\n\n\t\t\t\t\t\t\t\/\/ Merge events and handle duplicate filtering\n\t\t\t\t\t\t\tvar allEvents = eventsRoom1.concat(eventsRoom2);\n\t\t\t\t\t\t\tlet mergedBookings;\n\t\t\t\t\t\t\tvar hasAnotherProduct = window.has_another_product !== undefined ? JSON.parse(window.has_another_product) : false;\n\t\t\t\t\t\t\tif(!hasAnotherProduct){\n\t\t\t\t\t\t\t\tmergedBookings = mergeBookings(eventsRoom1, eventsRoom2);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmergedBookings = mergeBookingsSameRoom(eventsRoom1, eventsRoom2);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\/\/ COLOR BLOCKS FOR STOCKHOLM\n\t\t\t\t\t\t\tif(siteData.id === 17){\n       \t\t\t\t\t\t\tmergedBookings = decorateByTier(mergedBookings);     \n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif(siteData.id === 12){\n       \t\t\t\t\t\t\tmergedBookings = MADRID_decorateByTier(mergedBookings);     \n\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\/\/ Pass the merged events to the success callback\n\t\t\t\t\t\t\tsuccessCallback(mergedBookings);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.log('Error fetching events for both rooms');\n\t\t\t\t\t\t\t\/\/ Render an empty calendar instead of leaving it on \"loading\".\n\t\t\t\t\t\t\tsuccessCallback([]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}).catch(function(error) {\n\t\t\t\t\t\tconsole.log('Error fetching events:', error);\n\t\t\t\t\t\t\/\/ Resolve FullCalendar's loading state so it renders (possibly empty)\n\t\t\t\t\t\t\/\/ instead of spinning forever when the merge\/fetch fails.\n\t\t\t\t\t\tfailureCallback(error);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t\/\/ Ensure that the time is added after the event is rendered.\n\t\t\teventsSet: function(info) {\n\t\t\t\t\/\/ Run after the browser paints this render so the booked blocks exist.\n\t\t\t\t\/\/ The old waitForElement used a MutationObserver that only reacts to\n\t\t\t\t\/\/ FUTURE mutations; when the blocks were already in the DOM it never\n\t\t\t\t\/\/ fired, so the time was dropped intermittently and only the (translated)\n\t\t\t\t\/\/ \"Booked\" label showed. requestAnimationFrame always runs and is not racy.\n\t\t\t\t\/\/ Note: the \"Booked\" label itself is rendered from PHP via CSS content;\n\t\t\t\t\/\/ here we only set the data-booked-time attribute (the time value).\n\t\t\t\trequestAnimationFrame(function() {\n\t\t\t\t\tdocument.querySelectorAll('.fc-event.booked').forEach(function(event) {\n\t\t\t\t\t\tvar eventTitle = event.querySelector('.fc-event-title');\n\t\t\t\t\t\tvar eventTime  = event.querySelector('.fc-event-time');\n\t\t\t\t\t\t\/\/ NB: keep these as two separate guards. Combining them with a\n\t\t\t\t\t\t\/\/ double-ampersand operator breaks this page: the render pipeline\n\t\t\t\t\t\t\/\/ turns a raw double ampersand into an HTML entity, producing\n\t\t\t\t\t\t\/\/ invalid JS and a calendar stuck on \"loading\". These guards avoid\n\t\t\t\t\t\t\/\/ any ampersand.\n\t\t\t\t\t\tif (!eventTitle) return;\n\t\t\t\t\t\tif (!eventTime) return;\n\t\t\t\t\t\teventTitle.setAttribute('data-booked-time', eventTime.textContent.trim());\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t    });\n\n\t    calendar.render();\n\n\t\t\/\/ Remove initial loading state after calendar is rendered\n\t\tsetTimeout(function() {\n\t\t\t\/\/ Fade out initial loading message\n\t\t\tjQuery('#calendar-single .initial-loading').css({\n\t\t\t\t'opacity': '0',\n\t\t\t\t'transition': 'opacity 0.3s ease-in-out'\n\t\t\t});\n\t\t\t\n\t\t\t\/\/ Wait for fade-out, then clean up\n\t\t\tsetTimeout(function() {\n\t\t\t\t\/\/ Remove initial loading styling\n\t\t\t\tjQuery('#calendar-single').css({\n\t\t\t\t\t'min-height': 'auto',\n\t\t\t\t\t'background': 'transparent',\n\t\t\t\t\t'position': 'relative'\n\t\t\t\t});\n\t\t\t\t\/\/ Remove initial loading message\n\t\t\t\tjQuery('#calendar-single .initial-loading').remove();\n\t\t\t}, 300); \/\/ Match the fade-out duration\n\t\t}, 500);\n\n\t\t\/\/ Add Hammer.js to detect swipe gestures\n\t\tvar hammer = new Hammer(document.getElementById('calendar-single'));\n\n\t\t\/\/ Detect swipe left (to go to the next week or day)\n\t\thammer.on('swipeleft', function() {\n\t\t  calendar.next(); \/\/ Go to the next week or day\n\t\t});\n\n\t\t\/\/ Detect swipe right (to go to the previous week or day)\n\t\thammer.on('swiperight', function() {\n\t\t  calendar.prev(); \/\/ Go to the previous week or day\n\t\t});\n\n\t    jQuery(calendarEl).data('fullCalendarObj', calendar);\n\n\t\tvar picker = new Pikaday({\n\t\t\tfield: document.querySelector('.fc-datepicker-button'),\n\t\t\tformat: 'yy-mm-dd',\n\t\t\tfirstDay: 1, \/\/ Make Monday the first day of the week\n\t\t\ti18n: foxPikadayI18n(),\n\t\t\tonSelect: function(dateString) {\n\t\t\t\tpicker.gotoDate(new Date(dateString));\n\t\t\t\tcalendar.gotoDate(new Date(dateString));\n\t\t\t}\n\t\t});\n\n\n\t\tfunction mergeBookings(response1, response2) {\n\t\t\t\tlet mergedEvents = [];\n\n\t\t\t\t\/\/ Create a mapping of block IDs from both responses\n\t\t\t\tlet events1 = response1.reduce((map, event) => {\n\t\t\t\t\tmap[event.id] = event; \/\/ Map block ID to event\n\t\t\t\t\treturn map;\n\t\t\t\t}, {});\n\n\t\t\t\tlet events2 = response2.reduce((map, event) => {\n\t\t\t\t\tmap[event.id] = event; \/\/ Map block ID to event\n\t\t\t\t\treturn map;\n\t\t\t\t}, {});\n\n\t\t\t\t\/\/ Iterate through each event in the first response\n\t\t\t\tfor (let id in events1) {\n\t\t\t\t\tlet event1 = events1[id];\n\t\t\t\t\tlet event2 = events2[id];\n\n\t\t\t\t\t\/\/ Guard: if the other room has no matching block (e.g. the two rooms\n\t\t\t\t\t\/\/ have different availability for this period), keep this room's block\n\t\t\t\t\t\/\/ instead of throwing on the undefined event. Without this the whole\n\t\t\t\t\t\/\/ events callback throws and the calendar is stuck on \"loading\".\n\t\t\t\t\tif (!event2) {\n\t\t\t\t\t\tmergedEvents.push(event1);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ If the block is booked in Room 1 but available in Room 2\n\t\t\t\t\tif (event1.classNames.includes('booked') && event2.classNames.includes('available')) {\n\t\t\t\t\t\t\/\/ Replace the booked event from Room 1 with the available event from Room 2\n\t\t\t\t\t\tevent1 = { ...event1, ...event2 }; \/\/ Replace properties of event1 with event2\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ If the block is booked in Room 2 but available in Room 1\n\t\t\t\t\tif (event2.classNames.includes('booked') && event1.classNames.includes('available')) {\n\t\t\t\t\t\t\/\/ Replace the booked event from Room 2 with the available event from Room 1\n\t\t\t\t\t\tevent2 = { ...event2, ...event1 }; \/\/ Replace properties of event2 with event1\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ Add the merged event (from either Room 1 or Room 2)\n\t\t\t\t\tif (event1.classNames.includes('booked') || event2.classNames.includes('booked')) {\n\t\t\t\t\t\t\/\/ Keep it as booked if both are booked\n\t\t\t\t\t\tmergedEvents.push(event1.classNames.includes('booked') ? event1 : event2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\/\/ Keep it available if either is available\n\t\t\t\t\t\tmergedEvents.push(event1.classNames.includes('available') ? event1 : event2);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t\/\/ Return the merged events array\n\t\t\t\treturn mergedEvents;\n\t\t\t}\n\n\n\t\tfunction mergeBookingsSameRoom(response1, response2) {\n\t\t\tconst byId = (arr = []) => {\n\t\t\t\tconst m = new Map();\n\t\t\t\tfor (const ev of arr) m.set(ev.id, ev);\n\t\t\t\treturn m;\n\t\t\t};\n\n\t\t\tconst map1 = byId(response1);\n\t\t\tconst map2 = byId(response2);\n\n\t\t\tconst ids = new Set([...map1.keys(), ...map2.keys()]);\n\n\t\t\tconst hasClass = (ev, cls) =>\n\t\t\t\t!!ev && !!ev.classNames && ev.classNames.split(\/\\s+\/).includes(cls);\n\n\t\t\tconst stripAvailability = (classes = \"\") =>\n\t\t\t\tclasses.split(\/\\s+\/).filter(c => c && c !== \"booked\" && c !== \"available\" && c !== \"not-available\");\n\n\t\t\tconst merged = [];\n\n\t\t\tfor (const id of ids) {\n\t\t\t\tconst e1 = map1.get(id);\n\t\t\t\tconst e2 = map2.get(id);\n\n\t\t\t\t\/\/ Determine availability states for each room\n\t\t\t\tconst r1Booked = hasClass(e1, \"booked\");\n\t\t\t\tconst r2Booked = hasClass(e2, \"booked\");\n\t\t\t\tconst r1Available = hasClass(e1, \"available\");\n\t\t\t\tconst r2Available = hasClass(e2, \"available\");\n\n\t\t\t\t\/\/ Merge rule:\n\t\t\t\t\/\/ 1) booked if any is booked\n\t\t\t\t\/\/ 2) else available only if both available\n\t\t\t\t\/\/ 3) else not-available\n\t\t\t\tlet availabilityClass;\n\t\t\t\tif (r1Booked || r2Booked) {\n\t\t\t\tavailabilityClass = \"booked\";\n\t\t\t\t} else if (r1Available && r2Available) {\n\t\t\t\tavailabilityClass = \"available\";\n\t\t\t\t} else {\n\t\t\t\tavailabilityClass = \"not-available\";\n\t\t\t\t}\n\n\t\t\t\t\/\/ Base event (prefer response1\u2019s metadata if present, else response2)\n\t\t\t\tconst base = e1 || e2 || { id };\n\n\t\t\t\t\/\/ Build classNames: keep all non-availability classes, add the computed one\n\t\t\t\tconst classes = new Set([\n\t\t\t\t...stripAvailability(e1?.classNames),\n\t\t\t\t...stripAvailability(e2?.classNames),\n\t\t\t\tavailabilityClass,\n\t\t\t\t]);\n\n\t\t\t\tmerged.push({\n\t\t\t\t...base,\n\t\t\t\tclassNames: [...classes].join(\" \"),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ Optional: stable sort by start time if present\n\t\t\tmerged.sort((a, b) => (a.start || \"\").localeCompare(b.start || \"\"));\n\t\t\treturn merged;\n\t\t}\n\n\t});\n\n<\/script>\n\n<form class=\"cart\" method=\"post\" enctype='multipart\/form-data' data-nonce=\"f262b49afc\" action=\"\">\n\n\t<div class=\"form-loader\" style=\"display:none\">\n\t\t<div class=\"left-element\"><\/div>\n\t\t<div class=\"right-element\"><\/div>\n\t<\/div>\n\n\t<div id=\"wc-bookings-booking-form\" class=\"wc-bookings-booking-form\" style=\"display:none\">\n\n\t\t\n\t\t<div class=\"booking-form single\">\n\t\t\t<div class=\"booking-form-inner booking-form-left woo\">\n\t\t\t\t<div id=\"calendar-single\"><\/div>\n\t\t\t\t<p class=\"form-field form-field-wide wc_bookings_field_persons_36547\">\n\t<label for=\"wc_bookings_field_persons_36547\">Adults:<\/label>\n\t<input\n\t\ttype=\"number\"\n\t\tvalue=\"0\"\n\t\tstep=\"1\"\n\t\tmin=\"0\"\n\t\tmax=\"7\"\n\t\tname=\"wc_bookings_field_persons_36547\"\n\t\tid=\"wc_bookings_field_persons_36547\"\n\t\t\/> <\/p>\n<p class=\"form-field form-field-wide wc_bookings_field_persons_36548\">\n\t<label for=\"wc_bookings_field_persons_36548\">Kids (ages 8-14):<\/label>\n\t<input\n\t\ttype=\"number\"\n\t\tvalue=\"0\"\n\t\tstep=\"1\"\n\t\tmin=\"0\"\n\t\tmax=\"7\"\n\t\tname=\"wc_bookings_field_persons_36548\"\n\t\tid=\"wc_bookings_field_persons_36548\"\n\t\t\/> 8-14 years old<\/p>\n<fieldset class=\"wc-bookings-date-picker wc_bookings_field_start_date\">\n\t<p class=\"wc-bookings-date-picker-timezone-block\" style=\"\" align=\"center\">\n\t\t\u65f6\u95f4\u5728\t\t<span class=\"wc-bookings-date-picker-timezone\">Australia\/Brisbane<\/span>\n\t<\/p>\n\t<div class=\"picker\" data-display=\"always_visible\" data-default-availability=\"false\" data-min_date=\"0\" data-max_date=\"+12m\" data-default_date=\"2026-07-29\"><\/div>\n\t\t<div class=\"wc-bookings-date-picker-date-fields\">\n\t\t\t\t<label>\n\t\t\t<input type=\"text\" autocomplete=\"off\" name=\"wc_bookings_field_start_date_month\" placeholder=\"mm\" size=\"2\" class=\"required_for_calculation booking_date_month\" \/>\n\t\t\t<span>\u6708\u4efd<\/span>\n\t\t<\/label> \/ <label>\n\t\t\t<input type=\"text\" autocomplete=\"off\" name=\"wc_bookings_field_start_date_day\" placeholder=\"dd\" size=\"2\" class=\"required_for_calculation booking_date_day\" \/>\n\t\t\t<span>\u65e5<\/span>\n\t\t<\/label>\n\t\t\t\t\/ <label>\n\t\t\t<input type=\"text\" autocomplete=\"off\" value=\"2026\" name=\"wc_bookings_field_start_date_year\" placeholder=\"YYYY\" size=\"4\" class=\"required_for_calculation booking_date_year\" \/>\n\t\t\t<span>\u5e74<\/span>\n\t\t<\/label>\n\t<\/div>\n<\/fieldset>\n<div class=\"form-field form-field-wide\">\n\t\t\t<ul class=\"block-picker\">\n\t\t\t<li>\u8bf7\u5728\u4e0a\u9762\u9009\u62e9\u4e00\u4e2a\u65e5\u671f\u4ee5\u67e5\u770b\u53ef\u7528\u65f6\u95f4<\/li>\n\t\t<\/ul>\n\t\t<input type=\"hidden\" class=\"required_for_calculation\" name=\"wc_bookings_field_start_date_time\" id=\"wc_bookings_field_start_date\" \/>\n<\/div>\n<div class=\"timezone-details\" style=\"display: none;\">\n\t<input type=\"hidden\" name=\"wc_bookings_field_start_date_local_timezone\" \/>\n<\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"booking-form-inner booking-form-right woo\" id=\"Players\">\n\t\t\t\t\n\t\t\t\t<div class='single-room-booking-summary'>\n\t\t\t\t\t\t<div class='section-title'>Booking summary<\/div>\n\t\t\t\t\t\t<p class='empty-state'>Please choose available timeslot for this room.<\/p>\n\t                <div class=\"additional-booking-data\" style=\"display: none !important;\"><\/div>\n\n\t\t\t\t<div class=\"multiple-booking-check\">\n\t\t\t\t\n\t\t\t\t<div class=\"title\">Need to book for more than 6 people?<\/div>\n\t\t\t\t\t<div class=\"link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/multiple-rooms-booking\/\">Book multiple rooms \u2192<\/a><\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t\n\n\t\t\t\t<div class=\"selected-room data\" style=\"display: none;\">\n\t\t            <div class=\"room-name\">WILD WEST SALOON<\/div>\n\t\t            <div class=\"room-booking-data\"><span><span>Booking Date<\/span>:<\/span> <span class=\"booking-date-text\"><\/span><\/div>\n\t\t            <div class=\"room-booking-data\" style=\"margin-bottom: .8rem;\"><span><span>Booking Time<\/span>:<\/span> <span class=\"booking-time-text\"><\/span><\/div>\n\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"number-of-persons-selector has-primary-color\">Select Number of Players<\/div>\n\n\t\t\t\t\t\t\t<div class=\"person-type-name\">Adults<\/div>\n\n\t\t\t\t\t\t\t<ul class=\"persons-type\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36547\" id=\"36547_0\" value=\"0\" ><label for=\"36547_0\">0<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36547\" id=\"36547_1\" value=\"1\" ><label for=\"36547_1\">1<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36547\" id=\"36547_2\" value=\"2\" checked><label for=\"36547_2\">2<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36547\" id=\"36547_3\" value=\"3\" ><label for=\"36547_3\">3<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36547\" id=\"36547_4\" value=\"4\" ><label for=\"36547_4\">4<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36547\" id=\"36547_5\" value=\"5\" ><label for=\"36547_5\">5<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36547\" id=\"36547_6\" value=\"6\" ><label for=\"36547_6\">6<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36547\" id=\"36547_7\" value=\"7\" ><label for=\"36547_7\">7<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t<script type=\"text\/javascript\">\n\n\t\t\t\t\t\t\t\tjQuery('input[name=wc_bookings_field_persons_36547]').change(function (e) {\n\t\t\t\t\t\t\t\t  \t\/\/ Use the radio's current name (may have been remapped for H2H)\n\t\t\t\t\t\t\t\t  \tvar hiddenInput = document.getElementById(e.target.name);\n\t\t\t\t\t\t\t\t  \tif (hiddenInput) hiddenInput.value = e.target.value;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t<\/script>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"number-of-persons-selector has-primary-color\">Select Number of Players<\/div>\n\n\t\t\t\t\t\t\t<div class=\"person-type-name\">Kids (ages 8-14)<\/div>\n\n\t\t\t\t\t\t\t<ul class=\"persons-type\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36548\" id=\"36548_0\" value=\"0\" checked><label for=\"36548_0\">0<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36548\" id=\"36548_1\" value=\"1\" ><label for=\"36548_1\">1<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36548\" id=\"36548_2\" value=\"2\" ><label for=\"36548_2\">2<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36548\" id=\"36548_3\" value=\"3\" ><label for=\"36548_3\">3<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36548\" id=\"36548_4\" value=\"4\" ><label for=\"36548_4\">4<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36548\" id=\"36548_5\" value=\"5\" ><label for=\"36548_5\">5<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36548\" id=\"36548_6\" value=\"6\" ><label for=\"36548_6\">6<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    <li><input type=\"radio\" class=\"persons-number-selector\" name=\"wc_bookings_field_persons_36548\" id=\"36548_7\" value=\"7\" ><label for=\"36548_7\">7<\/label><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\n\t\t\t\t\t\t\t<script type=\"text\/javascript\">\n\n\t\t\t\t\t\t\t\tjQuery('input[name=wc_bookings_field_persons_36548]').change(function (e) {\n\t\t\t\t\t\t\t\t  \t\/\/ Use the radio's current name (may have been remapped for H2H)\n\t\t\t\t\t\t\t\t  \tvar hiddenInput = document.getElementById(e.target.name);\n\t\t\t\t\t\t\t\t  \tif (hiddenInput) hiddenInput.value = e.target.value;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t<\/script>\n\n\t\t\t\t\t\t\t\t\t        <\/div>\n\n\n\t\t\t\t<div class=\"wc-bookings-booking-cost price\" style=\"display:none\" data-raw-price=\"\"><\/div>\n\t\t\t\t<div class=\"wc-bookings-booking-cost_per_person\" style=\"display:none\" data-raw-price=\"\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"add-to-cart\" value=\"2281\" class=\"wc-booking-product-id\" \/>\t\t\n\t\t\t\t<div class=\"room-price-from\"><\/div>\n\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"submit-form-book wc-bookings-booking-form-button single_add_to_cart_button button alt\">Book this game<\/button>\n\n\t\t\t\t\n\t\t\t\t\t<div class=\"last-minute-notice\">\n\t\t\t\t\t<span class=\"last-minute-notice-title\">\n\t\t\t\t\t\tIMPORTANT NOTICE!\t\t\t\t\t<\/span>\n\t\t\t\t\t<br\/><br\/>\n\n\t\t\t\t\t<p>If you want to play the last minute games you have to give us a call to check the availability on <a href=\"tel:07 5539 8009\">07 5539 8009<\/a>. We can not guarantee that there will be an available game master to take your game.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"maximum-days-in-future-notice\"><span class=\"maximum-days-in-future-notice-title\">IMPORTANT NOTICE!<\/span><br\/><br\/>\n\t\t\t\tPlease note that our online booking system allows reservations for events within a -day period. For bookings beyond this timeframe, we\u2019d love to assist you directly. To discuss availability and secure your preferred date, please call us at <br\/><a href=\"tel:07 5539 8009\">07 5539 8009<\/a><\/div>\n\t\t\t\t<input type=\"hidden\" id=\"timezone_offset\" name=\"timezone_offset\" value=\"0\"\/>\n\n\t\t\t\t<input type=\"hidden\" id=\"trigger_calc\" name=\"trigger_calc\" class=\"trigger_calc\" value=\"0\">\n\n\t            <\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t<\/div>\n\n\t\n\t<script type=\"text\/javascript\">\n\n\t\twindow.__fiab_last_selected_block_id = null;\n\t\twindow.__fiab_last_players = null;\n\t\twindow.__fiab_add_to_cart_fired = false;\n\n\n\t\tfunction fireSelectTimeSlot(payload) {\n\t\tif (!payload || !payload.block_id) return;\n\n\t\t\/\/ \u274c isti slot ponovo \u2192 ne \u0161alji\n\t\tif (window.__fiab_last_selected_block_id === payload.block_id) return;\n\n\t\twindow.__fiab_last_selected_block_id = payload.block_id;\n\t\t  window.__fiab_add_to_cart_fired = false; \/\/ \u2705 RESET\n\n\n\n\t\tfiabPushEvent(\"select_time_slot\", payload);\n\t\t}\n\n\t\tfunction fireUpdatePlayers(payload) {\n  if (!payload || typeof payload.players !== 'number') return;\n\n  \/\/ \u274c isti broj kao prethodni\n  if (window.__fiab_last_players === payload.players) return;\n\n  window.__fiab_last_players = payload.players;\n  window.__fiab_add_to_cart_fired = false; \/\/ \u2705 RESET\n\n\n  fiabPushEvent(\"update_players\", payload);\n}\n\njQuery(document).on('click', '.submit-form-book', function (e) {\n\n  if (window.__fiab_add_to_cart_fired) return;\n  window.__fiab_add_to_cart_fired = true;\n\n\tlet price = fiabGetBookingPrice();\n\n\tconst depositChecked = document.getElementById('pay-deposit')?.checked;\n\n\t\/\/ \u2705 ONLY for site 17\n\tif (siteData.id === 12 && depositChecked) {\n\t\tprice = 40;\n\t}\n\n\tconst players = fiabGetSelectedPlayersFromDOM();\n\n\n  \/\/ mora postojati kompletan booking kontekst\n  if (\n    !window.__fiab_last_selected_block_id ||\n    players === null ||\n    !price\n  ) {\n\tconsole.log(window.__fiab_last_selected_block_id)\n\tconsole.log(window.__fiab_last_players)\n\t\tconsole.log(price)\n\n    return;\n  }\n\n  const bookingDate = document.querySelector('.booking-date-text')?.textContent || null;\n  const bookingTime = document.querySelector('.booking-time-text')?.textContent || null;\n\n  \/\/ --- A4: GA4 ecommerce ---\n  fiabPushEcommerceEvent(\n    \"add_to_cart\",\n    [{\n      item_id: fiabBookingContext.product_id.toString(),\n      item_name: fiabBookingContext.product_name,\n      item_category: \"escape_room\",\n\n      price: price,\n      quantity: 1,\n\n      booking_date: fiabNormalizeDate(bookingDate),\n      booking_time: bookingTime,\n      block_id: window.__fiab_last_selected_block_id,\n      number_of_players: players\n    }],\n    {\n      value: price,\n      commerce_flow: \"booking\"\n    }\n  );\n\n  \/\/ --- A5: hold_started ---\n  fiabPushEvent(\"hold_started\", {\n    hold_minutes: 15\n  });\n});\n\nfunction fiabNormalizeDate(dateInput) {\n  const d = new Date(dateInput);\n  if (isNaN(d)) return null;\n\n  return d.toISOString().split('T')[0]; \/\/ YYYY-MM-DD\n}\n\n\nfunction fiabGetBookingPrice() {\n  \/\/ 1\ufe0f\u20e3 Ideal case \u2013 raw price (ako postoji)\n  const rawEl = document.querySelector('.wc-bookings-booking-cost[data-raw-price]');\n  if (rawEl) {\n    const raw = parseFloat(rawEl.getAttribute('data-raw-price'));\n    if (!isNaN(raw) && raw > 0) return raw;\n  }\n\n  \/\/ 2\ufe0f\u20e3 Visible calculated price (naj\u010de\u0161\u0107i real case)\n  const priceEl = document.querySelector(\n    '.woocommerce-Price-amount .price-number-only'\n  );\n  if (priceEl) {\n    const val = parseFloat(\n      priceEl.textContent.replace(',', '.')\n    );\n    if (!isNaN(val) && val > 0) return val;\n  }\n\n  \/\/ 3\ufe0f\u20e3 Fallback \u2013 ni\u0161ta jo\u0161 nije spremno\n  return null;\n}\n\nfunction fiabGetSelectedPlayersFromDOM() {\n  const el = document.querySelector('.persons-number-selector:checked');\n  if (!el) return null;\n\n  const val = parseInt(el.value, 10);\n  return isNaN(val) ? null : val;\n}\n\n\n\n\nlet priceTimeout = null;\nlet lastPrice = null;\n\nconst bookingCostEl = document.querySelector('.wc-bookings-booking-cost');\n\nif (bookingCostEl) {\n  console.log('FIAB: observing booking cost');\n\n  const observer = new MutationObserver(() => {\n    clearTimeout(priceTimeout);\n\n    priceTimeout = setTimeout(() => {\n      const text = bookingCostEl.textContent || '';\n      const normalized = text.replace(\/[^\\d.,]\/g, '').replace(',', '.');\n      const newPrice = parseFloat(normalized);\n\n      if (!newPrice || newPrice === lastPrice) return;\n\n      lastPrice = newPrice;\n\n      if (\n        window.__fiab_pending_players !== null &&\n        window.__fiab_last_selected_block_id\n      ) {\n        fireUpdatePlayers({\n          item_id: fiabBookingContext.product_id.toString(),\n          block_id: window.__fiab_last_selected_block_id,\n          players: window.__fiab_pending_players,\n          currency: fiabBookingContext.currency,\n          value: newPrice\n        });\n\n        window.__fiab_pending_players = null;\n      }\n    }, 400);\n  });\n\n  observer.observe(bookingCostEl, {\n    childList: true,\n    subtree: true,\n    characterData: true\n  });\n}\n\n\n\n\n\t\t\n\t\tfunction convertTimestampToISO(timestamp) {\n\t\t\tlet date = new Date(timestamp * 1000); \/\/ Convert seconds to milliseconds\n\t\t\tlet isoString = date.toISOString(); \/\/ Convert to ISO format\n\n\t\t\t\/\/ adjust the timezone offset manually (+01:00)\n\t\t\tlet formattedDate = isoString.split('.')[0] + ''; \/\/ Remove milliseconds and add timezone\n\n\t\t\treturn formattedDate;\n\t\t}\n\n\t\tfunction checkSelected() {\n\t\t\t\n\n\t\t\tif ( block_data.block_id !== '' ) {\n\t\t\t\t\tlet convertedDate = convertTimestampToISO(block_data.block_id);\n\t\t\t\t\tconst url = new URL(window.location.href);\n\t\t\t\t\tconst params = url.searchParams;\n\t\t\t\t\tconst source   = params.get('source');\n\t\t\t\t\tconst position = params.get('position');\n\n\t\t\t\t\t\t\t\tfireSelectTimeSlot({\n\t\t\t\t\titem_id: fiabBookingContext.product_id.toString(),\n\t\t\t\t\titem_location_id: fiabBookingContext.item_location_id,\n\t\t\t\t\tlocation_name: fiabBookingContext.city,\n\n\t\t\t\t\tbooking_date: convertedDate.split('T')[0],\n\t\t\t\t\tbooking_time: convertedDate.split('T')[1].slice(0, 5),\n\t\t\t\t\tblock_id: block_data.block_id,\n\t\t\t\t\tselection_source: source,\n\t\t\t\t\tindex: Number(position)\n\t\t\t\t\t});\n\n\n\t\t\t\t\/\/console.log(block_data.block_id);\n\n\t\t\t\tvar calendar = jQuery('#calendar-single').data('fullCalendarObj');\n\t    \t\tvar timestamp = new Date().getUTCMilliseconds();\n\n\t    \t\tvar event = calendar.getEventById( block_data.block_id );\n\t\t\t\t\tdocument.querySelector('.wc-booking-product-id').value = event._def.extendedProps.product_id;\n\t\t\t\t\tif (window.fiabRemapPersonTypes) window.fiabRemapPersonTypes(event._def.extendedProps.product_id);\n\n\t\t\t\t\/\/console.log(calendar);\n\t    \t\t\/\/console.log(event.startStr);\n\n\t\t\t    jQuery(\"#wc_bookings_field_start_date\").val(convertedDate).change();\n\n\t\t\t    if ( block_data_persons.persons !== '' ) {\n\t\t    \t\tjQuery(\"input[name=wc_bookings_field_persons][value=\" + block_data_persons.persons + \"]\").attr('checked', 'checked');\n\t\t    \t}\n\t\t\t    \n\t\t\t    jQuery( \".last-minute-notice\" ).css(\"display\", \"none\");\n\t\t\t    \n\t\t\t    var event_date = new Date(convertedDate);\n\t\t\t\tvar dd = event_date.getDate();\n\t\t\t\tvar mm = event_date.getMonth()+1;\n\t\t\t\tvar month = event_date.toLocaleString('default', { month: 'long' });\n\n\t\t\t\t\/\/ Format time according to WordPress settings\n\t\t\t\tvar time = formatTimeAccordingToWP(event_date);\n\n\t\t\t\tvar yyyy = event_date.getFullYear();\n\n\t\t\t\tjQuery( '.block-' + block_data.block_id ).addClass('selected-block');\n\t\t\t\tjQuery( \".empty-state\" ).remove();\n\n\t\t\t\tjQuery( '.booking-date-text' ).empty();\n\t\t        jQuery( '.booking-date-text' ).prepend( month + ' ' + dd + ', ' + yyyy );\n\n\t\t        jQuery( '.booking-time-text' ).empty();\n\t\t        jQuery( '.booking-time-text' ).prepend( time );\n\n\t\t        jQuery( \".selected-room.data\" ).css(\"display\", \"block\");\n\t\t\t\t\n\t\t\t\tconst defaultPlayers = product_data.default_players;\n\n\t\t\t\t\t\/\/ Find the radio input for the default number of players and select it\n\t\t\t\t\t\/\/ Only apply defaultPlayers to the first person type (Adults), others default to 0\n\t\t\t\t\tconst personTypeGroups = document.querySelectorAll(\".persons-type\");\n\t\t\t\t\tpersonTypeGroups.forEach((group, index) => {\n\t\t\t\t\t\tconst radios = group.querySelectorAll(\".persons-number-selector\");\n\t\t\t\t\t\tconst targetValue = index === 0 ? String(defaultPlayers) : \"0\";\n\t\t\t\t\t\tradios.forEach(input => {\n\t\t\t\t\t\t\tif (input.value === targetValue) {\n\t\t\t\t\t\t\t\tinput.checked = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t    jQuery( \"#trigger_calc\").val(timestamp).change();\n\n\t\t\t    jQuery( \".form-loader\" ).css(\"display\", \"none\");\n\t\t\t\tjQuery( \".booking-form-left.woo\" ).removeClass('hidden');\n\t\t\t\tjQuery( \".booking-form-right.woo\" ).removeClass('hidden');\n\n\t\t\t\tconst current_date = new Date();\n\t\t\t\tconst current_hour = current_date.getHours();\n\t\t\t\tconst current_min = current_date.getMinutes();\n\t\t\t\t\t\/\/ Sleep-mode aware reference time\n\t\t\t\t\tvar referenceTime = getOperationalReferenceTime(event_date);\n\n\t\t\t\t\tvar diff = event_date - referenceTime;\n\t\t\t\t\tvar minsDiff = Math.floor(diff \/ 60000);\n\n\t\t\t\t\tif (minsDiff < product_data.advance_call_confirmation_window) {\n\n\t\t\t\t\t    \/\/ CASE: sleep mode DISABLED \u2192 simple rule\n\t\t\t\t\t\tif (fiabBookingContext.disable_sleep_mode === 'yes') {\n\t\t\t\t\t\t\tjQuery(\".last-minute-notice\").css(\"display\", \"block\");\n\t\t\t\t\t\t\tjQuery(\".submit-form-book\").css(\"display\", \"none\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (Boolean(fiabBookingContext.is_staff) === false) {\n\t\t\t\t\t\t\t\tlet displayNotice = 'block'\n\t\t\t\t\t\t\t\tlet displayBook = 'block'\n\t\t\t\t\t\t\t\tif (fiabBookingContext.enable_last_minute_reservations === 'no') {\n\n\t\t\t\t\t\t\t\t\tdisplayNotice = 'block'\n\t\t\t\t\t\t\t\t\tdisplayBook = 'none'\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tdisplayNotice = 'none'\n\t\t\t\t\t\t\t\t\tdisplayBook = 'block'\n\t\t\t\t\t\t\t\t\tjQuery(\".submit-form-book\").css(\"display\", \"block\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tjQuery(\".last-minute-notice\").css(\"display\", displayNotice);\n\t\t\t\t\t\t\t\tjQuery(\".submit-form-book\").css(\"display\", displayBook);\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\n\n\t\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tjQuery( \".form-loader\" ).css(\"display\", \"none\");\n\t\t\t\tjQuery( \".booking-form-left.woo\" ).removeClass('hidden');\n\t\t\t\tjQuery( \".booking-form-right.woo\" ).removeClass('hidden');\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tfunction loadFrame() {\n\t\t\tlet availableDate = document.querySelectorAll(\".single-product a.ui-state-default\");\n\t\t\tif ( document.contains(availableDate[0]) ) {\n\t\t\t\tavailableDate[0].click();\n\t\t\t}\n\t\t}\n\n\t\tfunction waitForElement(selector, callback) {\n\t\t\tlet observer = new MutationObserver((mutations, me) => {\n\t\t\t\tlet element = document.querySelector(selector);\n\t\t\t\tif (element) {\n\t\t\t\t\tme.disconnect(); \/\/ Stop observing once the element is found\n\t\t\t\t\tcallback(element);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tobserver.observe(document, { childList: true, subtree: true });\n\t\t}\n\n\t\t\/\/ Usage: Trigger function when element loads\n\t\twaitForElement('.single-product a.ui-state-default', function(el) {\n\t\t\twindow.onload = setTimeout(loadFrame, 1000);\n\t\t\twindow.onload = setTimeout(checkSelected, 1100);\n\n\t\t\tif ( block_data.block_id !== '' ) {\n\t\t\t\twindow.onload = setTimeout(enableifSelected, 2000);\n\t\t\t}\n\t\t});\n\n\t\t(function () {\n            if ((window.location.hash || '').toLowerCase() !== '#players') return;\n            if ('scrollRestoration' in history) history.scrollRestoration = 'manual';\n            function waitForElements(selector, callback) {\n                const existing = document.querySelectorAll(selector);\n                if (existing.length) return callback(existing);\n                const observer = new MutationObserver((mutations, me) => {\n                const els = document.querySelectorAll(selector);\n                if (els.length) {\n                    me.disconnect();\n                    callback(els);\n                }\n                });\n                observer.observe(document.documentElement, { childList: true, subtree: true });\n            }\n            function scrollToTarget(target, headerOffset) {\n                const y = target.getBoundingClientRect().top + window.pageYOffset - headerOffset;\n                \/\/ force visible movement (instant jump), then smooth adjust\n                window.scrollTo(0, y);\n                setTimeout(() => window.scrollTo({ top: y, behavior: 'smooth' }), 50);\n            }\n            const headerOffset = 0; \/\/ set if sticky header\n            window.addEventListener('load', function () {\n                waitForElements('#Players', function (els) {\n                \/\/ pick the LAST one (usually the actual section down the page)\n                const el = els[els.length - 1];\n                \/\/ scroll to a container around it (more \u201csection-like\u201d)\n                const target =\n                    el.closest('#Players') ||\n                    \/\/ el.closest(\u2018form\u2019) ||\n                    \/\/ el.closest(\u2018.elementor-section\u2019) ||\n                    el;\n                scrollToTarget(target, headerOffset);\n                \/\/ re-run after lazyload\/layout shifts\n                setTimeout(() => scrollToTarget(target, headerOffset), 800);\n                setTimeout(() => scrollToTarget(target, headerOffset), 1600);\n                });\n            });\n        })();\n\n\t\tfunction enableifSelected() {\n\t\t\tjQuery('.submit-form-book').removeClass('disabled').prop('disabled', false);\n\t\t\tjQuery( '.block-' + block_data.block_id ).addClass('selected-block');\n\t\t}\n\n\t\tjQuery( document ).ready(function() {\n\t\t\t\/\/ Usage: Trigger function when element loads\n\t\t\twaitForElement('.block-' + block_data.block_id, function(el) {\n\t\t\t\tjQuery( '.block-' + block_data.block_id ).addClass('selected-block');\n\t\t\t});\n\n\t\t\tif ( block_data.block_id !== '' ) {\n\t\t\t\twaitForElement('.submit-form-book', function(el) {\n\t\t\t\t\tjQuery('.submit-form-book').removeClass('disabled').prop('disabled', false);\n\t\t\t\t});\n\t\t\t\twindow.onload = setTimeout(enableifSelected, 2000);\n\t\t\t}\n\n\t\t\t(function () {\n\n\t\t\tif (!window.fiabBookingContext) return;\n\n\t\t\t\/\/ za\u0161tita od duplog fire-a\n\t\t\tif (window.__fiab_view_item_fired) return;\n\t\t\twindow.__fiab_view_item_fired = true;\n\n\t\t\tfiabPushEcommerceEvent(\n\t\t\t\t\"view_item\",\n\t\t\t\t[{\n\t\t\t\titem_id: fiabBookingContext.product_id.toString(),\n\t\t\t\titem_name: fiabBookingContext.product_name,\n\t\t\t\titem_category: \"escape_room\",\n\t\t\t\t}],\n\t\t\t\t{\n\t\t\t\tcommerce_flow: \"booking\"\n\t\t\t\t}\n\t\t\t);\n\t\t\t})();\n\n\n\n\t\t});\n\n\t\tjQuery(\"p.form-field.form-field-wide\").detach().prependTo( jQuery(\".additional-booking-data\") );\n\t\t\tdocument.addEventListener('DOMContentLoaded', function () {\n\t\t\tconst checkbox = document.getElementById('pay-deposit');\n\t\t\tconst hidden = document.getElementById('pay_deposit_input');\n\t\t\tconst note = document.getElementById('pay-deposit-note');\n\n\t\t\tif (!checkbox || !hidden || !note || siteData.id !== 12) return;\n\n\t\t\tfunction updateDepositNote() {\n\t\t\t\thidden.value = checkbox.checked ? '1' : '';\n\n\t\t\t\tif (checkbox.checked) {\n\t\t\t\tnote.textContent = window.fiabDepositText?.note || 'You will pay 40\u20ac now';\n\t\t\t\tnote.style.display = 'block';\n\t\t\t\t} else {\n\t\t\t\tnote.textContent = '';\n\t\t\t\tnote.style.display = 'none';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcheckbox.addEventListener('change', updateDepositNote);\n\t\t\tupdateDepositNote();\n\t\t\t});\n   \n\t<\/script>\n\n\t\t\n<input type=\"hidden\" name=\"trp-form-language\" value=\"zh\"\/><\/form>\n\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:2rem;padding-bottom:4rem\">\n<div class=\"wp-block-group alignwide has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading alignwide has-extra-large-font-size\" style=\"padding-bottom:3rem\">Other rooms<\/h3>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 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 class=\"available-rooms-holder home\"><div class=\"single-room-grid\">\n            <a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/\" title=\"PRISON BREAK\">\n            <div style=\"background-image: url(https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/prison-f-1.jpg);\" class=\"room-top-section\">\n                <div class=\"tags\"><div class=\"tag\">Featured<\/div><\/div>\n                \n            <\/div>\n        <\/a>\n            <div class=\"room-middle-section\">\n                <div class=\"room-name\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/\">PRISON BREAK<\/a><\/div>\n                <div class=\"room-info-link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/\">Explore the PRISON BREAK escape room details<\/a><\/div>\n            <\/div><div class=\"room-bottom-section\">\n                <div class=\"book-today\">Book today<\/div>\n                <div class=\"room-available-blocks\"><div class=\"single-block available block-1785319200 block-1785319200-2260\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/?date=2026-07-29&block_id=1785319200&source=other_rooms#Players\">10:00<\/button><\/div><div class=\"single-block booked block-1785324600 block-1785324600-2260\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785330000 block-1785330000-2260\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/?date=2026-07-29&block_id=1785330000&source=other_rooms#Players\">13:00<\/button><\/div><div class=\"single-block available block-1785335400 block-1785335400-2260\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/?date=2026-07-29&block_id=1785335400&source=other_rooms#Players\">14:30<\/button><\/div><div class=\"single-block available block-1785340800 block-1785340800-2260\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/?date=2026-07-29&block_id=1785340800&source=other_rooms#Players\">16:00<\/button><\/div><div class=\"single-block available block-1785346200 block-1785346200-2260\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/?date=2026-07-29&block_id=1785346200&source=other_rooms#Players\">17:30<\/button><\/div><div class=\"single-block booked block-1785351600 block-1785351600-2260\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785357000 block-1785357000-2260\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/?date=2026-07-29&block_id=1785357000&source=other_rooms#Players\">20:30<\/button><\/div><div class=\"single-block available block-1785362400 block-1785362400-2260\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-escape-room-gold-coast\/?date=2026-07-29&block_id=1785362400&source=other_rooms#Players\">22:00<\/button><\/div><\/div>\n            <\/div><\/div><div class=\"single-room-grid\">\n            <a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/\" title=\"PRISON BREAK: HEAD TO HEAD\">\n            <div style=\"background-image: url(https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/prison-f-1.jpg);\" class=\"room-top-section\">\n                <div class=\"tags\"><\/div>\n                \n            <\/div>\n        <\/a>\n            <div class=\"room-middle-section\">\n                <div class=\"room-name\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/\">PRISON BREAK: HEAD TO HEAD<\/a><\/div>\n                <div class=\"room-info-link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/\">Explore the PRISON BREAK: HEAD TO HEAD escape room details<\/a><\/div>\n            <\/div><div class=\"room-bottom-section\">\n                <div class=\"book-today\">Book today<\/div>\n                <div class=\"room-available-blocks\"><div class=\"single-block booked block-1785319200 block-1785319200-2360\"><a>Booked<\/a><\/div><div class=\"single-block booked block-1785324600 block-1785324600-2360\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785330000 block-1785330000-2360\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/?date=2026-07-29&block_id=1785330000&source=other_rooms#Players\">13:00<\/button><\/div><div class=\"single-block available block-1785335400 block-1785335400-2360\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/?date=2026-07-29&block_id=1785335400&source=other_rooms#Players\">14:30<\/button><\/div><div class=\"single-block available block-1785340800 block-1785340800-2360\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/?date=2026-07-29&block_id=1785340800&source=other_rooms#Players\">16:00<\/button><\/div><div class=\"single-block available block-1785346200 block-1785346200-2360\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/?date=2026-07-29&block_id=1785346200&source=other_rooms#Players\">17:30<\/button><\/div><div class=\"single-block booked block-1785351600 block-1785351600-2360\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785357000 block-1785357000-2360\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/?date=2026-07-29&block_id=1785357000&source=other_rooms#Players\">20:30<\/button><\/div><div class=\"single-block available block-1785362400 block-1785362400-2360\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/prison-break-competitive-escape-room-gold-coast\/?date=2026-07-29&block_id=1785362400&source=other_rooms#Players\">22:00<\/button><\/div><\/div>\n            <\/div><\/div><div class=\"single-room-grid\">\n            <a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/cold-war-bunker-escape-room-gold-coast\/\" title=\"The BUNKER\">\n            <div style=\"background-image: url(https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/The-Bunker-1.jpeg);\" class=\"room-top-section\">\n                <div class=\"tags\"><\/div>\n                \n            <\/div>\n        <\/a>\n            <div class=\"room-middle-section\">\n                <div class=\"room-name\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/cold-war-bunker-escape-room-gold-coast\/\">The BUNKER<\/a><\/div>\n                <div class=\"room-info-link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/cold-war-bunker-escape-room-gold-coast\/\">Explore the The BUNKER escape room details<\/a><\/div>\n            <\/div><div class=\"room-bottom-section\">\n                <div class=\"book-today\">Book today<\/div>\n                <div class=\"room-available-blocks\"><div class=\"single-block booked block-1785319200 block-1785319200-2246\"><a>Booked<\/a><\/div><div class=\"single-block booked block-1785324600 block-1785324600-2246\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785330000 block-1785330000-2246\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/cold-war-bunker-escape-room-gold-coast\/?date=2026-07-29&block_id=1785330000&source=other_rooms#Players\">13:00<\/button><\/div><div class=\"single-block booked block-1785335400 block-1785335400-2246\"><a>Booked<\/a><\/div><div class=\"single-block booked block-1785340800 block-1785340800-2246\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785346200 block-1785346200-2246\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/cold-war-bunker-escape-room-gold-coast\/?date=2026-07-29&block_id=1785346200&source=other_rooms#Players\">17:30<\/button><\/div><div class=\"single-block booked block-1785351600 block-1785351600-2246\"><a>Booked<\/a><\/div><div class=\"single-block booked block-1785357000 block-1785357000-2246\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785362400 block-1785362400-2246\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/cold-war-bunker-escape-room-gold-coast\/?date=2026-07-29&block_id=1785362400&source=other_rooms#Players\">22:00<\/button><\/div><\/div>\n            <\/div><\/div><div class=\"single-room-grid\">\n            <a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/\" title=\"ZOMBIE LAB\">\n            <div style=\"background-image: url(https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Rectangle-157-1.jpg);\" class=\"room-top-section\">\n                <div class=\"tags\"><\/div>\n                \n            <\/div>\n        <\/a>\n            <div class=\"room-middle-section\">\n                <div class=\"room-name\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/\">ZOMBIE LAB<\/a><\/div>\n                <div class=\"room-info-link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/\">Explore the ZOMBIE LAB escape room details<\/a><\/div>\n            <\/div><div class=\"room-bottom-section\">\n                <div class=\"book-today\">Book today<\/div>\n                <div class=\"room-available-blocks\"><div class=\"single-block booked block-1785319200 block-1785319200-2239\"><a>Booked<\/a><\/div><div class=\"single-block booked block-1785324600 block-1785324600-2239\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785330000 block-1785330000-2239\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/?date=2026-07-29&block_id=1785330000&source=other_rooms#Players\">13:00<\/button><\/div><div class=\"single-block available block-1785335400 block-1785335400-2239\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/?date=2026-07-29&block_id=1785335400&source=other_rooms#Players\">14:30<\/button><\/div><div class=\"single-block available block-1785340800 block-1785340800-2239\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/?date=2026-07-29&block_id=1785340800&source=other_rooms#Players\">16:00<\/button><\/div><div class=\"single-block available block-1785346200 block-1785346200-2239\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/?date=2026-07-29&block_id=1785346200&source=other_rooms#Players\">17:30<\/button><\/div><div class=\"single-block booked block-1785351600 block-1785351600-2239\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785357000 block-1785357000-2239\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/?date=2026-07-29&block_id=1785357000&source=other_rooms#Players\">20:30<\/button><\/div><div class=\"single-block available block-1785362400 block-1785362400-2239\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zombie-escape-room-gold-coast\/?date=2026-07-29&block_id=1785362400&source=other_rooms#Players\">22:00<\/button><\/div><\/div>\n            <\/div><\/div><div class=\"single-room-grid\">\n            <a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/\" title=\"ZODIAC KILLER\">\n            <div style=\"background-image: url(https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Zodiak-Killer-1.jpeg);\" class=\"room-top-section\">\n                <div class=\"tags\"><\/div>\n                \n            <\/div>\n        <\/a>\n            <div class=\"room-middle-section\">\n                <div class=\"room-name\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/\">ZODIAC KILLER<\/a><\/div>\n                <div class=\"room-info-link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/\">Explore the ZODIAC KILLER escape room details<\/a><\/div>\n            <\/div><div class=\"room-bottom-section\">\n                <div class=\"book-today\">Book today<\/div>\n                <div class=\"room-available-blocks\"><div class=\"single-block booked block-1785319200 block-1785319200-2253\"><a>Booked<\/a><\/div><div class=\"single-block booked block-1785324600 block-1785324600-2253\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785330000 block-1785330000-2253\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/?date=2026-07-29&block_id=1785330000&source=other_rooms#Players\">13:00<\/button><\/div><div class=\"single-block available block-1785335400 block-1785335400-2253\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/?date=2026-07-29&block_id=1785335400&source=other_rooms#Players\">14:30<\/button><\/div><div class=\"single-block available block-1785340800 block-1785340800-2253\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/?date=2026-07-29&block_id=1785340800&source=other_rooms#Players\">16:00<\/button><\/div><div class=\"single-block available block-1785346200 block-1785346200-2253\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/?date=2026-07-29&block_id=1785346200&source=other_rooms#Players\">17:30<\/button><\/div><div class=\"single-block booked block-1785351600 block-1785351600-2253\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785357000 block-1785357000-2253\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/?date=2026-07-29&block_id=1785357000&source=other_rooms#Players\">20:30<\/button><\/div><div class=\"single-block available block-1785362400 block-1785362400-2253\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/zodiac-killer-escape-room-gold-coast\/?date=2026-07-29&block_id=1785362400&source=other_rooms#Players\">22:00<\/button><\/div><\/div>\n            <\/div><\/div><div class=\"single-room-grid\">\n            <a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/\" title=\"THE OTHER SIDE\">\n            <div style=\"background-image: url(https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/02\/Mask-group-1-3.jpg);\" class=\"room-top-section\">\n                <div class=\"tags\"><\/div>\n                \n            <\/div>\n        <\/a>\n            <div class=\"room-middle-section\">\n                <div class=\"room-name\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/\">THE OTHER SIDE<\/a><\/div>\n                <div class=\"room-info-link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/\">Explore the THE OTHER SIDE escape room details<\/a><\/div>\n            <\/div><div class=\"room-bottom-section\">\n                <div class=\"book-today\">Book today<\/div>\n                <div class=\"room-available-blocks\"><div class=\"single-block booked block-1785319200 block-1785319200-2368\"><a>Booked<\/a><\/div><div class=\"single-block booked block-1785324600 block-1785324600-2368\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785330000 block-1785330000-2368\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/?date=2026-07-29&block_id=1785330000&source=other_rooms#Players\">13:00<\/button><\/div><div class=\"single-block available block-1785335400 block-1785335400-2368\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/?date=2026-07-29&block_id=1785335400&source=other_rooms#Players\">14:30<\/button><\/div><div class=\"single-block available block-1785340800 block-1785340800-2368\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/?date=2026-07-29&block_id=1785340800&source=other_rooms#Players\">16:00<\/button><\/div><div class=\"single-block available block-1785346200 block-1785346200-2368\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/?date=2026-07-29&block_id=1785346200&source=other_rooms#Players\">17:30<\/button><\/div><div class=\"single-block booked block-1785351600 block-1785351600-2368\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785357000 block-1785357000-2368\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/?date=2026-07-29&block_id=1785357000&source=other_rooms#Players\">20:30<\/button><\/div><div class=\"single-block available block-1785362400 block-1785362400-2368\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/other-side-scary-escape-room-gold-coast\/?date=2026-07-29&block_id=1785362400&source=other_rooms#Players\">22:00<\/button><\/div><\/div>\n            <\/div><\/div><div class=\"single-room-grid\">\n            <a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/\" title=\"MASTERMIND HEIST\">\n            <div style=\"background-image: url(https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Mastermind-1.jpeg);\" class=\"room-top-section\">\n                <div class=\"tags\"><div class=\"tag\">Featured<\/div><\/div>\n                \n            <\/div>\n        <\/a>\n            <div class=\"room-middle-section\">\n                <div class=\"room-name\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/\">MASTERMIND HEIST<\/a><\/div>\n                <div class=\"room-info-link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/\">Explore the MASTERMIND HEIST escape room details<\/a><\/div>\n            <\/div><div class=\"room-bottom-section\">\n                <div class=\"book-today\">Book today<\/div>\n                <div class=\"room-available-blocks\"><div class=\"single-block available block-1785319200 block-1785319200-2274\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/?date=2026-07-29&block_id=1785319200&source=other_rooms#Players\">10:00<\/button><\/div><div class=\"single-block booked block-1785324600 block-1785324600-2274\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785330000 block-1785330000-2274\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/?date=2026-07-29&block_id=1785330000&source=other_rooms#Players\">13:00<\/button><\/div><div class=\"single-block available block-1785335400 block-1785335400-2274\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/?date=2026-07-29&block_id=1785335400&source=other_rooms#Players\">14:30<\/button><\/div><div class=\"single-block available block-1785340800 block-1785340800-2274\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/?date=2026-07-29&block_id=1785340800&source=other_rooms#Players\">16:00<\/button><\/div><div class=\"single-block available block-1785346200 block-1785346200-2274\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/?date=2026-07-29&block_id=1785346200&source=other_rooms#Players\">17:30<\/button><\/div><div class=\"single-block booked block-1785351600 block-1785351600-2274\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785357000 block-1785357000-2274\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/?date=2026-07-29&block_id=1785357000&source=other_rooms#Players\">20:30<\/button><\/div><div class=\"single-block available block-1785362400 block-1785362400-2274\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/bank-heist-escape-room-gold-coast\/?date=2026-07-29&block_id=1785362400&source=other_rooms#Players\">22:00<\/button><\/div><\/div>\n            <\/div><\/div><div class=\"single-room-grid\">\n            <a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/\" title=\"WILD WEST SALOON\">\n            <div style=\"background-image: url(https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Golden-Nugget-Saloon-1.jpeg);\" class=\"room-top-section\">\n                <div class=\"tags\"><div class=\"tag\">Featured<\/div><\/div>\n                \n            <\/div>\n        <\/a>\n            <div class=\"room-middle-section\">\n                <div class=\"room-name\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/\">WILD WEST SALOON<\/a><\/div>\n                <div class=\"room-info-link\"><a href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/\">Explore the WILD WEST SALOON escape room details<\/a><\/div>\n            <\/div><div class=\"room-bottom-section\">\n                <div class=\"book-today\">Book today<\/div>\n                <div class=\"room-available-blocks\"><div class=\"single-block available block-1785319200 block-1785319200-2281\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/?date=2026-07-29&block_id=1785319200&source=other_rooms#Players\">10:00<\/button><\/div><div class=\"single-block booked block-1785324600 block-1785324600-2281\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785330000 block-1785330000-2281\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/?date=2026-07-29&block_id=1785330000&source=other_rooms#Players\">13:00<\/button><\/div><div class=\"single-block available block-1785335400 block-1785335400-2281\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/?date=2026-07-29&block_id=1785335400&source=other_rooms#Players\">14:30<\/button><\/div><div class=\"single-block available block-1785340800 block-1785340800-2281\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/?date=2026-07-29&block_id=1785340800&source=other_rooms#Players\">16:00<\/button><\/div><div class=\"single-block available block-1785346200 block-1785346200-2281\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/?date=2026-07-29&block_id=1785346200&source=other_rooms#Players\">17:30<\/button><\/div><div class=\"single-block booked block-1785351600 block-1785351600-2281\"><a>Booked<\/a><\/div><div class=\"single-block available block-1785357000 block-1785357000-2281\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/?date=2026-07-29&block_id=1785357000&source=other_rooms#Players\">20:30<\/button><\/div><div class=\"single-block available block-1785362400 block-1785362400-2281\"><button type=\"button\" data-href=\"https:\/\/foxinaboxgoldcoast.com\/zh\/p\/rooms\/wild-west-escape-room-gold-coast\/?date=2026-07-29&block_id=1785362400&source=other_rooms#Players\">22:00<\/button><\/div><\/div>\n            <\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Wild West Saloon Escape Room on the GOLD COAST Experience the GOLD COAST\u2019s Easiest &amp; Most Fun Family-Friendly Escape Room! Ready for a rootin&#8217; tootin&#8217; good time in Surfers Paradise? Wild West Saloon at Fox in a Box is the perfect escape room experience for families and first-timers! Immerse your gang in a lively &#8220;spaghetti [&hellip;]<\/p>","protected":false},"featured_media":2283,"comment_status":"closed","ping_status":"closed","template":"","meta":{"custom-slug":"","custom-meta-description-en":"Fox in a Box - The best escape rooms in Gold Coast Wild West Saloon: A small town in the wild west, the Saloon stands tall. Gold miners and prospectors hang out&amp;#8230;","custom-title-en":"Wild West Saloon | Fox in a Box - Can you get out?","custom-social-image-en":"https:\/\/foxinaboxgoldcoast.com\/wp-content\/uploads\/sites\/65\/2024\/05\/Gold-1.jpg","custom-social-title-en":"","custom-social-description-en":"","custom-social-url-en":"","custom-social-type-en":"","custom-social-site_name-en":"","custom-social-twitter-title-en":"","custom-social-twitter-description-en":"","custom-social-twitter-url-en":"","custom-social-twitter-card-en":"","custom-meta-description-zh":"","custom-title-zh":"","custom-social-image-zh":"","custom-social-title-zh":"","custom-social-description-zh":"","custom-social-url-zh":"","custom-social-type-zh":"","custom-social-site_name-zh":"","custom-social-twitter-title-zh":"","custom-social-twitter-description-zh":"","custom-social-twitter-url-zh":"","custom-social-twitter-card-zh":""},"foxhunt-tags":[],"product_brand":[],"product_cat":[29],"product_tag":[56],"class_list":{"0":"post-2281","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-rooms","7":"product_tag-featured","9":"first","10":"instock","11":"virtual","12":"sold-individually","13":"taxable","14":"purchasable","15":"product-type-booking"},"_links":{"self":[{"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/product\/2281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/comments?post=2281"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/media\/2283"}],"wp:attachment":[{"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/media?parent=2281"}],"wp:term":[{"taxonomy":"foxhunt-tags","embeddable":true,"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/foxhunt-tags?post=2281"},{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/product_brand?post=2281"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/product_cat?post=2281"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/foxinaboxgoldcoast.com\/zh\/wp-json\/wp\/v2\/product_tag?post=2281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}