{"id":3848,"date":"2026-04-17T06:46:24","date_gmt":"2026-04-17T06:46:24","guid":{"rendered":"https:\/\/finestfamilyhotels.com\/?page_id=3848"},"modified":"2026-06-11T14:49:18","modified_gmt":"2026-06-11T14:49:18","slug":"destinations","status":"publish","type":"page","link":"https:\/\/finestfamilyhotels.com\/es\/destinations\/","title":{"rendered":"Destinos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3848\" class=\"elementor elementor-3848 elementor-bc-flex-widget\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d7bc490 e-flex e-con-boxed e-con e-parent\" data-id=\"d7bc490\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-9f143a4 e-con-full e-flex e-con e-child\" data-id=\"9f143a4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-beb4b1e elementor-widget elementor-widget-shortcode\" data-id=\"beb4b1e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><nav class=\"ffh-breadcrumbs\" aria-label=\"Breadcrumb\"><ol class=\"ffh-breadcrumbs__list\"><li class=\"ffh-breadcrumbs__item ffh-breadcrumbs__item--current\"><span class=\"ffh-breadcrumbs__text\" aria-current=\"page\">Home<\/span><\/li><\/ol><\/nav><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53d6ed4 destination-score-hide elementor-widget elementor-widget-shortcode\" data-id=\"53d6ed4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t<div id=\"ffh-destination-explorer-1\" class=\"ffh-dx-root\" data-map-height=\"520px\"><\/div>\n\t<script>\n\t(function(){\n\t\tvar root = document.getElementById(\"ffh-destination-explorer-1\");\n\t\tif (!root) { return; }\n\n\t\tvar config = {\n\t\t\tcontinents: [\"Africa\",\"Asia\",\"Caribbean\",\"Europe\",\"Indian Ocean\",\"Middle East\",\"North America\",\"Pacific & Australasia\"],\n\t\t\tdata: {\"Africa\":[{\"id\":922,\"name\":\"Morocco\",\"slug\":\"morocco\",\"context\":\"Africa\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/fairmont-taghazout-bay-beach-01-300x225.webp\",\"hotels\":[{\"id\":6561,\"title\":\"Fairmont Taghazout Bay\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/fairmont-taghazout-bay\\\/\",\"rating\":\"8.8\",\"address\":\"KM 17, Route d'Essaouira, Station Touristique, Taghazout Bay, 80750 Taghazout, Morocco\",\"amenities\":\"airport-shuttle,babysitting-service,basketball-court,bicycle-rental,black-out-curtains,board-games-puzzles,boutique-gift-shop,childrens-menu,complimentary-breakfast,concierge-service,connecting-rooms,direct-beach-access,ev-charging-stations,extra-bathrooms,family-suites,free-secure-parking,full-service-spa,game-room-billiards,high-chairs,indoor-soft-play,kids-club,kids-pool,laundry-dry-cleaning,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,personal-trainer-sessions,pool-beach-towel-service,poolside-bar,private-balcony-terrace,smoke-free-rooms,soccer-pitch,step-free-access,stroller-friendly-pathways,teen-lounge-arcade,valet-parking,yoga-pilates-classes\",\"amenity_slugs\":[\"airport-shuttle\",\"babysitting-service\",\"basketball-court\",\"bicycle-rental\",\"black-out-curtains\",\"board-games-puzzles\",\"boutique-gift-shop\",\"childrens-menu\",\"complimentary-breakfast\",\"concierge-service\",\"connecting-rooms\",\"direct-beach-access\",\"ev-charging-stations\",\"extra-bathrooms\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"game-room-billiards\",\"high-chairs\",\"indoor-soft-play\",\"kids-club\",\"kids-pool\",\"laundry-dry-cleaning\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"personal-trainer-sessions\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"smoke-free-rooms\",\"soccer-pitch\",\"step-free-access\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"valet-parking\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"water-wonderlands\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Water Wonderlands\",\"latitude\":30.5166,\"longitude\":-9.6868,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/fairmont-taghazout-bay-beach-01-300x225.webp\"}]},{\"id\":994,\"name\":\"Tanzania\",\"slug\":\"tanzania\",\"context\":\"Africa\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/four-seasons-safari-lodge-serengeti-pool-01-300x169.webp\",\"hotels\":[{\"id\":6557,\"title\":\"Four Seasons Safari Lodge Serengeti\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/four-seasons-safari-lodge-serengeti\\\/\",\"rating\":\"9.2\",\"address\":\"Central Serengeti, Serengeti National Park, Tanzania\",\"amenities\":\"24-h-doctor-on-call,24-h-fitness-center,24-h-room-service,adults-only-fine-dining,airport-shuttle,all-day-family-restaurant,allergen-coded-menus,babysitting-service,black-out-curtains,board-games-puzzles,boutique-gift-shop,car-seats-for-transfers,childrens-menu,complimentary-breakfast,complimentary-strollers,concierge-service,daily-family-activities,evening-family-entertainment,family-suites,full-service-spa,high-chairs,in-room-family-safety-kit,infinity-rooftop-pool,kids-club,kids-cooking-class,laundry-dry-cleaning,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,pool-beach-towel-service,poolside-bar,private-balcony-terrace,smoke-free-rooms,step-free-access,teen-lounge-arcade,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-doctor-on-call\",\"24-h-fitness-center\",\"24-h-room-service\",\"adults-only-fine-dining\",\"airport-shuttle\",\"all-day-family-restaurant\",\"allergen-coded-menus\",\"babysitting-service\",\"black-out-curtains\",\"board-games-puzzles\",\"boutique-gift-shop\",\"car-seats-for-transfers\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-strollers\",\"concierge-service\",\"daily-family-activities\",\"evening-family-entertainment\",\"family-suites\",\"full-service-spa\",\"high-chairs\",\"in-room-family-safety-kit\",\"infinity-rooftop-pool\",\"kids-club\",\"kids-cooking-class\",\"laundry-dry-cleaning\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"smoke-free-rooms\",\"step-free-access\",\"teen-lounge-arcade\",\"yoga-pilates-classes\"],\"category_slugs\":[\"nature-wilderness\",\"top-worldwide\"],\"primary_category\":\"Top Worldwide\",\"secondary_categories\":\"Nature & Wilderness\",\"latitude\":-2.234435,\"longitude\":34.919056,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/four-seasons-safari-lodge-serengeti-pool-01-300x169.webp\"}]}],\"Asia\":[{\"id\":1001,\"name\":\"Philippines\",\"slug\":\"philippines\",\"context\":\"Asia\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/680939450-300x256.webp\",\"hotels\":[{\"id\":6720,\"title\":\"Shangri-La Mactan, Cebu\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/shangri-la-mactan-cebu\\\/\",\"rating\":\"8.7\",\"address\":\"\",\"amenities\":\"24-h-doctor-on-call,24-h-fitness-center,24-h-room-service,airport-shuttle,all-day-family-restaurant,allergen-coded-menus,archery-range,babysitting-service,black-out-curtains,board-games-puzzles,boutique-gift-shop,childrens-menu,complimentary-strollers,complimentary-water-sports,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,evening-family-entertainment,extra-bathrooms,family-suites,free-secure-parking,full-service-spa,game-room-billiards,high-chairs,indoor-soft-play,kid-friendly-buffet,kids-club,kids-pool,laundry-dry-cleaning,lifeguard-on-duty,mini-fridge,mini-golf-putting-green,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,pool-beach-towel-service,poolside-bar,private-balcony-terrace,shaded-toddler-splash-zone,snorkelling-gear,step-free-access,teen-lounge-arcade,tennis-court,waterslide\",\"amenity_slugs\":[\"24-h-doctor-on-call\",\"24-h-fitness-center\",\"24-h-room-service\",\"airport-shuttle\",\"all-day-family-restaurant\",\"allergen-coded-menus\",\"archery-range\",\"babysitting-service\",\"black-out-curtains\",\"board-games-puzzles\",\"boutique-gift-shop\",\"childrens-menu\",\"complimentary-strollers\",\"complimentary-water-sports\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"game-room-billiards\",\"high-chairs\",\"indoor-soft-play\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pool\",\"laundry-dry-cleaning\",\"lifeguard-on-duty\",\"mini-fridge\",\"mini-golf-putting-green\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"shaded-toddler-splash-zone\",\"snorkelling-gear\",\"step-free-access\",\"teen-lounge-arcade\",\"tennis-court\",\"waterslide\"],\"category_slugs\":[\"beach-escapes\",\"water-wonderlands\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Water Wonderlands\",\"latitude\":10.310491,\"longitude\":124.022174,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/680939450-300x256.webp\"}]},{\"id\":1002,\"name\":\"Malaysia\",\"slug\":\"malaysia\",\"context\":\"Asia\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/shangri-la-rasa-ria-exterior-aerial-01-300x147.webp\",\"hotels\":[{\"id\":6660,\"title\":\"Shangri-La Rasa Ria\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/shangri-la-rasa-ria\\\/\",\"rating\":\"8.9\",\"address\":\"Pantai Dalit, PO Box 600, Tuaran, Kota Kinabalu, Sabah 89208, Malaysia\",\"amenities\":\"24-h-fitness-center,24-h-room-service,airport-shuttle,all-day-family-restaurant,archery-range,babysitting-service,beach-volleyball,bicycle-rental,board-games-puzzles,boutique-gift-shop,childrens-menu,chromecast-streaming,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,ev-charging-stations,evening-family-entertainment,extra-bathrooms,family-bunk-bed-rooms,family-suites,free-secure-parking,full-service-spa,game-room-billiards,golf-driving-range,high-chairs,horseback-riding,in-room-family-safety-kit,kid-friendly-buffet,kids-club,kids-pillow-menu,kids-pool,kids-stay-free,laundry-dry-cleaning,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,pool-beach-towel-service,poolside-bar,private-balcony-terrace,smoke-free-rooms,snorkelling-gear,step-free-access,stroller-friendly-pathways,tennis-court,waterslide,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"24-h-room-service\",\"airport-shuttle\",\"all-day-family-restaurant\",\"archery-range\",\"babysitting-service\",\"beach-volleyball\",\"bicycle-rental\",\"board-games-puzzles\",\"boutique-gift-shop\",\"childrens-menu\",\"chromecast-streaming\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"ev-charging-stations\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-bunk-bed-rooms\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"game-room-billiards\",\"golf-driving-range\",\"high-chairs\",\"horseback-riding\",\"in-room-family-safety-kit\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pillow-menu\",\"kids-pool\",\"kids-stay-free\",\"laundry-dry-cleaning\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"smoke-free-rooms\",\"snorkelling-gear\",\"step-free-access\",\"stroller-friendly-pathways\",\"tennis-court\",\"waterslide\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"nature-wilderness\"],\"primary_category\":\"Nature & Wilderness\",\"secondary_categories\":\"Beach Escapes\",\"latitude\":6.1535,\"longitude\":116.1483,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/shangri-la-rasa-ria-exterior-aerial-01-300x147.webp\"}]}],\"Caribbean\":[{\"id\":995,\"name\":\"Grenada\",\"slug\":\"grenada\",\"context\":\"Caribbean\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/aerial-view-300x169.webp\",\"hotels\":[{\"id\":6240,\"title\":\"Six Senses La Sagesse\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/six-senses-la-sagesse\\\/\",\"rating\":\"8.9\",\"address\":\"La Sagesse Beach, Saint David, Grenada W.I.\",\"amenities\":\"24-h-fitness-center,airport-shuttle,all-day-family-restaurant,babysitting-service,bicycle-rental,black-out-curtains,board-games-puzzles,boutique-gift-shop,childrens-menu,complimentary-breakfast,complimentary-water-sports,concierge-service,daily-family-activities,direct-beach-access,evening-family-entertainment,extra-bathrooms,family-bike-tours,family-movie-nights,family-suites,free-secure-parking,full-service-spa,game-room-billiards,high-chairs,hypo-allergenic-rooms,kids-club,kids-cooking-class,kids-teens-spa-menu,laundry-dry-cleaning,meditation-garden,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,personal-trainer-sessions,pool-beach-towel-service,poolside-bar,private-balcony-terrace,private-plunge-pools,smoke-free-rooms,snorkelling-gear,teen-lounge-arcade,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"airport-shuttle\",\"all-day-family-restaurant\",\"babysitting-service\",\"bicycle-rental\",\"black-out-curtains\",\"board-games-puzzles\",\"boutique-gift-shop\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-water-sports\",\"concierge-service\",\"daily-family-activities\",\"direct-beach-access\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-bike-tours\",\"family-movie-nights\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"game-room-billiards\",\"high-chairs\",\"hypo-allergenic-rooms\",\"kids-teens-spa-menu\",\"kids-club\",\"kids-cooking-class\",\"laundry-dry-cleaning\",\"meditation-garden\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"personal-trainer-sessions\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"private-plunge-pools\",\"smoke-free-rooms\",\"snorkelling-gear\",\"teen-lounge-arcade\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"water-wonderlands\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Water Wonderlands\",\"latitude\":12.021795,\"longitude\":-61.674556,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/aerial-view-300x169.webp\"}]}],\"Europe\":[{\"id\":940,\"name\":\"Gosau\",\"slug\":\"gosau\",\"context\":\"Europe\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/kinderhotel-dachsteinkoenig-gosau-austria-01-300x201.jpg\",\"hotels\":[{\"id\":5488,\"title\":\"Dachsteink\\u00f6nig Familux Resort\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/kinderhotel-dachsteinkoenig-gosau-austria\\\/\",\"rating\":\"9.2\",\"address\":\"Am Hornspitz 1, 4824 Gosau, Austria\",\"amenities\":\"airport-shuttle,baby-equipment-rental,babysitting-service,bicycle-rental,black-out-curtains,bowling-alley,childrens-menu,complimentary-breakfast,complimentary-strollers,connecting-rooms,daily-family-activities,ev-charging-stations,evening-family-entertainment,extra-bathrooms,family-bunk-bed-rooms,family-suites,full-service-spa,game-room-billiards,high-chairs,hypo-allergenic-rooms,indoor-heated-pool,indoor-soft-play,kid-friendly-buffet,kids-club,kids-pool,kids-teens-spa-menu,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,personal-trainer-sessions,private-balcony-terrace,private-plunge-pools,seasonal-ski-school-rental,smoke-free-rooms,step-free-access,stroller-friendly-pathways,teen-lounge-arcade,waterslide,yoga-pilates-classes\",\"amenity_slugs\":[\"airport-shuttle\",\"baby-equipment-rental\",\"babysitting-service\",\"bicycle-rental\",\"black-out-curtains\",\"bowling-alley\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-strollers\",\"connecting-rooms\",\"daily-family-activities\",\"ev-charging-stations\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-bunk-bed-rooms\",\"family-suites\",\"full-service-spa\",\"game-room-billiards\",\"high-chairs\",\"hypo-allergenic-rooms\",\"indoor-heated-pool\",\"indoor-soft-play\",\"kid-friendly-buffet\",\"kids-teens-spa-menu\",\"kids-club\",\"kids-pool\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"personal-trainer-sessions\",\"private-balcony-terrace\",\"private-plunge-pools\",\"seasonal-ski-school-rental\",\"smoke-free-rooms\",\"step-free-access\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"waterslide\",\"yoga-pilates-classes\"],\"category_slugs\":[\"all-inclusive-resorts\",\"nature-wilderness\",\"ski-resorts\",\"water-wonderlands\"],\"primary_category\":\"Ski Resorts\",\"secondary_categories\":\"Water Wonderlands|All-Inclusive Resorts|Nature & Wilderness\",\"latitude\":47.582373,\"longitude\":13.534298,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/kinderhotel-dachsteinkoenig-gosau-austria-01-300x201.jpg\"}]},{\"id\":799,\"name\":\"Spain\",\"slug\":\"spain\",\"context\":\"Europe\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Frame-499-1-300x300.webp\",\"hotels\":[{\"id\":5583,\"title\":\"Ikos Andalusia\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/ikos-andalusia\\\/\",\"rating\":\"9\",\"address\":\"N-340, Km 164, 29680 Estepona, M\\u00e1laga, Andalusia, Spain\",\"amenities\":\"24-h-room-service,adults-only-fine-dining,all-day-family-restaurant,allergen-coded-menus,allergy-friendly-public-areas,baby-equipment-rental,babysitting-service,beach-volleyball,bicycle-rental,black-out-curtains,childrens-menu,complimentary-water-sports,complimentary-welcome-ice-cream,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,evening-family-entertainment,family-bike-tours,family-suites,free-secure-parking,full-service-spa,high-chairs,indoor-heated-pool,kid-friendly-buffet,kids-club,kids-cooking-class,kids-pool,laundry-dry-cleaning,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,personal-trainer-sessions,pool-beach-towel-service,poolside-bar,private-balcony-terrace,private-plunge-pools,shaded-toddler-splash-zone,stroller-friendly-pathways,teen-lounge-arcade,tennis-court,valet-parking,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-room-service\",\"adults-only-fine-dining\",\"all-day-family-restaurant\",\"allergen-coded-menus\",\"allergy-friendly-public-areas\",\"baby-equipment-rental\",\"babysitting-service\",\"beach-volleyball\",\"bicycle-rental\",\"black-out-curtains\",\"childrens-menu\",\"complimentary-water-sports\",\"complimentary-welcome-ice-cream\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"evening-family-entertainment\",\"family-bike-tours\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"high-chairs\",\"indoor-heated-pool\",\"kid-friendly-buffet\",\"kids-club\",\"kids-cooking-class\",\"kids-pool\",\"laundry-dry-cleaning\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"personal-trainer-sessions\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"private-plunge-pools\",\"shaded-toddler-splash-zone\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"tennis-court\",\"valet-parking\",\"yoga-pilates-classes\"],\"category_slugs\":[\"all-inclusive-resorts\",\"beach-escapes\",\"top-worldwide\"],\"primary_category\":\"All-Inclusive Resorts\",\"secondary_categories\":\"Beach Escapes|Top Worldwide\",\"latitude\":36.45195,\"longitude\":-5.06026,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ikos-andalusia-family-15-300x208.webp\"}]},{\"id\":955,\"name\":\"Greece\",\"slug\":\"greece\",\"context\":\"Europe\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ikos-dassia-exterior-02-300x225.jpg\",\"hotels\":[{\"id\":5693,\"title\":\"Ikos Dassia\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/ikos-dassia\\\/\",\"rating\":\"9.1\",\"address\":\"49083 Dassia, Corfu, Greece\",\"amenities\":\"24-h-fitness-center,24-h-room-service,adults-only-fine-dining,airport-shuttle,all-day-family-restaurant,allergy-friendly-public-areas,baby-equipment-rental,babysitting-service,beach-volleyball,bicycle-rental,board-games-puzzles,car-seats-for-transfers,childrens-menu,complimentary-breakfast,complimentary-water-sports,complimentary-welcome-ice-cream,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,ev-charging-stations,evening-family-entertainment,family-suites,free-secure-parking,full-service-spa,high-chairs,indoor-heated-pool,kid-friendly-buffet,kids-club,kids-cooking-class,kids-pool,kids-stay-free,mini-fridge,multilingual-staff,outdoor-playground,outdoor-pool,pool-beach-towel-service,poolside-bar,priority-family-check-in-desk,private-balcony-terrace,private-plunge-pools,shaded-toddler-splash-zone,smoke-free-rooms,step-free-access,stroller-friendly-pathways,teen-lounge-arcade,tennis-court,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"24-h-room-service\",\"adults-only-fine-dining\",\"airport-shuttle\",\"all-day-family-restaurant\",\"allergy-friendly-public-areas\",\"baby-equipment-rental\",\"babysitting-service\",\"beach-volleyball\",\"bicycle-rental\",\"board-games-puzzles\",\"car-seats-for-transfers\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-water-sports\",\"complimentary-welcome-ice-cream\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"ev-charging-stations\",\"evening-family-entertainment\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"high-chairs\",\"indoor-heated-pool\",\"kid-friendly-buffet\",\"kids-club\",\"kids-cooking-class\",\"kids-pool\",\"kids-stay-free\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-playground\",\"outdoor-pool\",\"pool-beach-towel-service\",\"poolside-bar\",\"priority-family-check-in-desk\",\"private-balcony-terrace\",\"private-plunge-pools\",\"shaded-toddler-splash-zone\",\"smoke-free-rooms\",\"step-free-access\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"tennis-court\",\"yoga-pilates-classes\"],\"category_slugs\":[\"all-inclusive-resorts\",\"beach-escapes\",\"top-worldwide\"],\"primary_category\":\"All-Inclusive Resorts\",\"secondary_categories\":\"Beach Escapes|Top Worldwide\",\"latitude\":39.6800565,\"longitude\":19.8391743,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ikos-dassia-exterior-02-300x225.jpg\"}]},{\"id\":990,\"name\":\"Belek\",\"slug\":\"belek\",\"context\":\"Europe\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/regnum-the-crown-pool-01-300x113.webp\",\"hotels\":[{\"id\":5759,\"title\":\"Regnum The Crown\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/regnum-the-crown\\\/\",\"rating\":\"9.4\",\"address\":\"Belek Turizm Merkezi, Kadriye Mahallesi, Ta\\u015fl\\u0131burun Mevki, 07525 Serik-Antalya, T\\u00fcrkiye\",\"amenities\":\"24-h-doctor-on-call,24-h-room-service,adults-only-fine-dining,airport-shuttle,all-day-family-restaurant,atm-on-site,baby-equipment-rental,babysitting-service,basketball-court,beach-volleyball,bicycle-rental,black-out-curtains,board-games-puzzles,boutique-gift-shop,bowling-alley,car-seats-for-transfers,childrens-menu,complimentary-breakfast,complimentary-strollers,concierge-service,daily-family-activities,direct-beach-access,evening-family-entertainment,extra-bathrooms,family-movie-nights,family-suites,free-secure-parking,full-service-spa,game-room-billiards,golf-driving-range,heated-saline-pool,high-chairs,indoor-heated-pool,indoor-soft-play,infinity-rooftop-pool,kid-friendly-buffet,kids-club,kids-cooking-class,kids-pool,kids-teens-spa-menu,kitchenette-microwave,laundry-dry-cleaning,lazy-river-splash-pad,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,personal-trainer-sessions,pool-beach-towel-service,poolside-bar,private-balcony-terrace,shaded-toddler-splash-zone,smoke-free-rooms,soccer-pitch,step-free-access,stroller-friendly-pathways,teen-lounge-arcade,tennis-court,valet-parking,waterslide,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-doctor-on-call\",\"24-h-room-service\",\"adults-only-fine-dining\",\"airport-shuttle\",\"all-day-family-restaurant\",\"atm-on-site\",\"baby-equipment-rental\",\"babysitting-service\",\"basketball-court\",\"beach-volleyball\",\"bicycle-rental\",\"black-out-curtains\",\"board-games-puzzles\",\"boutique-gift-shop\",\"bowling-alley\",\"car-seats-for-transfers\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-strollers\",\"concierge-service\",\"daily-family-activities\",\"direct-beach-access\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-movie-nights\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"game-room-billiards\",\"golf-driving-range\",\"heated-saline-pool\",\"high-chairs\",\"indoor-heated-pool\",\"indoor-soft-play\",\"infinity-rooftop-pool\",\"kid-friendly-buffet\",\"kids-teens-spa-menu\",\"kids-club\",\"kids-cooking-class\",\"kids-pool\",\"kitchenette-microwave\",\"laundry-dry-cleaning\",\"lazy-river-splash-pad\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"personal-trainer-sessions\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"shaded-toddler-splash-zone\",\"smoke-free-rooms\",\"soccer-pitch\",\"step-free-access\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"tennis-court\",\"valet-parking\",\"waterslide\",\"yoga-pilates-classes\"],\"category_slugs\":[\"all-inclusive-resorts\",\"beach-escapes\",\"top-worldwide\",\"water-wonderlands\"],\"primary_category\":\"Water Wonderlands\",\"secondary_categories\":\"All-Inclusive Resorts|Beach Escapes|Top Worldwide\",\"latitude\":36.855278,\"longitude\":31.008333,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/regnum-the-crown-pool-01-300x113.webp\"}]},{\"id\":949,\"name\":\"Halkidiki Greece\",\"slug\":\"halkidiki-greece\",\"context\":\"Europe\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/24_beach-_hotel_0252-scaled-300x203.webp\",\"hotels\":[{\"id\":5126,\"title\":\"Sani Beach\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/sani-beach-halkidiki-greece\\\/\",\"rating\":\"9\",\"address\":\"Sani Resort, Kassandra, Halkidiki 630 77, Greece\",\"amenities\":\"24-h-doctor-on-call,adults-only-fine-dining,airport-shuttle,all-day-family-restaurant,allergy-friendly-public-areas,archery-range,baby-equipment-rental,babysitting-service,beach-volleyball,bicycle-rental,boutique-gift-shop,car-seats-for-transfers,childrens-menu,complimentary-breakfast,complimentary-strollers,complimentary-water-sports,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,evening-family-entertainment,family-bike-tours,family-suites,free-secure-parking,full-service-spa,high-chairs,indoor-heated-pool,kid-friendly-buffet,kids-teens-spa-menu,kids-club,kids-pool,kids-stay-free,laundry-dry-cleaning,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-pool,pool-beach-towel-service,poolside-bar,private-balcony-terrace,shaded-toddler-splash-zone,smoke-free-rooms,snorkelling-gear,soccer-pitch,stem-coding-lab,stroller-friendly-pathways,teen-lounge-arcade,tennis-court,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-doctor-on-call\",\"adults-only-fine-dining\",\"airport-shuttle\",\"all-day-family-restaurant\",\"allergy-friendly-public-areas\",\"archery-range\",\"baby-equipment-rental\",\"babysitting-service\",\"beach-volleyball\",\"bicycle-rental\",\"boutique-gift-shop\",\"car-seats-for-transfers\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-strollers\",\"complimentary-water-sports\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"evening-family-entertainment\",\"family-bike-tours\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"high-chairs\",\"indoor-heated-pool\",\"kid-friendly-buffet\",\"kids-teens-spa-menu\",\"kids-club\",\"kids-pool\",\"kids-stay-free\",\"laundry-dry-cleaning\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-pool\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"shaded-toddler-splash-zone\",\"smoke-free-rooms\",\"snorkelling-gear\",\"soccer-pitch\",\"stem-coding-lab\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"tennis-court\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"nature-wilderness\",\"top-worldwide\"],\"primary_category\":\"Top Worldwide\",\"secondary_categories\":\"Beach Escapes|Nature & Wilderness\",\"latitude\":39.9606,\"longitude\":23.4006,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/24_beach-_hotel_0252-scaled-300x203.webp\"}]},{\"id\":36,\"name\":\"Dolomites Luson\",\"slug\":\"dolomites-luson\",\"context\":\"Europe\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/sonnwies-dolomites-italy-featured-300x225.webp\",\"hotels\":[{\"id\":3554,\"title\":\"Sonnwies Dolomites\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/sonnwies-dolomites-italy\\\/\",\"rating\":\"8.9\",\"address\":\"Alter Runggerweg 20, 39040 L\\u00fcsen (Luson), South Tyrol, Italy\",\"amenities\":\"24-h-doctor-on-call,all-day-family-restaurant,baby-equipment-rental,babysitting-service,bicycle-rental,black-out-curtains,board-games-puzzles,car-seats-for-transfers,childrens-menu,complimentary-breakfast,complimentary-strollers,connecting-rooms,daily-family-activities,ev-charging-stations,evening-family-entertainment,family-movie-nights,family-suites,free-secure-parking,full-service-spa,high-chairs,horseback-riding,indoor-climbing-wall,indoor-heated-pool,indoor-soft-play,kid-friendly-buffet,kids-club,kids-pool,lifeguard-on-duty,multilingual-staff,outdoor-playground,outdoor-pool,private-balcony-terrace,seasonal-ski-school-rental,shaded-toddler-splash-zone,smoke-free-rooms,teen-lounge-arcade,waterslide\",\"amenity_slugs\":[\"24-h-doctor-on-call\",\"all-day-family-restaurant\",\"baby-equipment-rental\",\"babysitting-service\",\"bicycle-rental\",\"black-out-curtains\",\"board-games-puzzles\",\"car-seats-for-transfers\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-strollers\",\"connecting-rooms\",\"daily-family-activities\",\"ev-charging-stations\",\"evening-family-entertainment\",\"family-movie-nights\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"high-chairs\",\"horseback-riding\",\"indoor-climbing-wall\",\"indoor-heated-pool\",\"indoor-soft-play\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pool\",\"lifeguard-on-duty\",\"multilingual-staff\",\"outdoor-playground\",\"outdoor-pool\",\"private-balcony-terrace\",\"seasonal-ski-school-rental\",\"shaded-toddler-splash-zone\",\"smoke-free-rooms\",\"teen-lounge-arcade\",\"waterslide\"],\"category_slugs\":[\"nature-wilderness\",\"ski-resorts\",\"top-worldwide\",\"water-wonderlands\"],\"primary_category\":\"Nature & Wilderness\",\"secondary_categories\":\"Ski Resorts|Water Wonderlands|Top Worldwide\",\"latitude\":46.74581,\"longitude\":11.77456,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/sonnwies-dolomites-italy-featured-300x225.webp\"}]},{\"id\":987,\"name\":\"Algarve\",\"slug\":\"algarve\",\"context\":\"Europe\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vila-vita-parc-hero-300x225.webp\",\"hotels\":[{\"id\":5400,\"title\":\"Vila Vita Parc\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/vila-vita-parc\\\/\",\"rating\":\"8.8\",\"address\":\"Rua Anneliese Pohl, Alporchinhos, 8400-450 Porches, Algarve, Portugal\",\"amenities\":\"24-h-fitness-center,24-h-room-service,adults-only-fine-dining,airport-shuttle,all-day-family-restaurant,baby-equipment-rental,babysitting-service,board-games-puzzles,boutique-gift-shop,car-seats-for-transfers,childrens-menu,complimentary-breakfast,complimentary-water-sports,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,ev-charging-stations,family-suites,free-secure-parking,full-service-spa,high-chairs,indoor-heated-pool,kid-friendly-buffet,kids-club,kids-pool,laundry-dry-cleaning,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,poolside-bar,private-balcony-terrace,snorkelling-gear,soccer-pitch,tennis-court,valet-parking,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"24-h-room-service\",\"adults-only-fine-dining\",\"airport-shuttle\",\"all-day-family-restaurant\",\"baby-equipment-rental\",\"babysitting-service\",\"board-games-puzzles\",\"boutique-gift-shop\",\"car-seats-for-transfers\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-water-sports\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"ev-charging-stations\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"high-chairs\",\"indoor-heated-pool\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pool\",\"laundry-dry-cleaning\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"poolside-bar\",\"private-balcony-terrace\",\"snorkelling-gear\",\"soccer-pitch\",\"tennis-court\",\"valet-parking\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"top-worldwide\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Top Worldwide\",\"latitude\":37.1015,\"longitude\":-8.3802,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vila-vita-parc-hero-300x225.webp\"}]}],\"Indian Ocean\":[{\"id\":930,\"name\":\"Maldives\",\"slug\":\"maldives\",\"context\":\"Indian Ocean\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Z_6A1-vxEdbNPFJC_WebRGB-ChevalBlancRandheli-PrivateIsland-OliverFly-2024-scaled-225x300.webp\",\"hotels\":[{\"id\":5317,\"title\":\"Cheval Blanc Randheli\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/cheval-blanc-randheli\\\/\",\"rating\":\"8.9\",\"address\":\"Randheli Island, Noonu Atoll, Republic of Maldives\",\"amenities\":\"24-h-room-service,airport-shuttle,babysitting-service,car-seats-for-transfers,childrens-menu,complimentary-water-sports,concierge-service,daily-family-activities,direct-beach-access,family-suites,full-service-spa,kids-club,kids-pool,kids-teens-spa-menu,laundry-dry-cleaning,multilingual-staff,outdoor-dining-terrace,poolside-bar,private-balcony-terrace,private-plunge-pools,teen-lounge-arcade,tennis-court\",\"amenity_slugs\":[\"24-h-room-service\",\"airport-shuttle\",\"babysitting-service\",\"car-seats-for-transfers\",\"childrens-menu\",\"complimentary-water-sports\",\"concierge-service\",\"daily-family-activities\",\"direct-beach-access\",\"family-suites\",\"full-service-spa\",\"kids-teens-spa-menu\",\"kids-club\",\"kids-pool\",\"laundry-dry-cleaning\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"poolside-bar\",\"private-balcony-terrace\",\"private-plunge-pools\",\"teen-lounge-arcade\",\"tennis-court\"],\"category_slugs\":[\"beach-escapes\",\"top-worldwide\",\"water-wonderlands\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Water Wonderlands|Top Worldwide\",\"latitude\":5.69187,\"longitude\":73.3406,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Z_6A1-vxEdbNPFJC_WebRGB-ChevalBlancRandheli-PrivateIsland-OliverFly-2024-scaled-225x300.webp\"},{\"id\":6148,\"title\":\"One&#038;Only Reethi Rah\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/one-only-reethi-rah\\\/\",\"rating\":\"9.4\",\"address\":\"One&Only Reethi Rah, North Mal\\u00e9 Atoll, Mal\\u00e9 08440, Maldives\",\"amenities\":\"24-h-doctor-on-call,24-h-room-service,airport-shuttle,all-day-family-restaurant,baby-equipment-rental,babysitting-service,bicycle-rental,boutique-gift-shop,childrens-menu,complimentary-breakfast,complimentary-water-sports,concierge-service,daily-family-activities,direct-beach-access,evening-family-entertainment,extra-bathrooms,family-movie-nights,family-suites,full-service-spa,golf-driving-range,high-chairs,indoor-climbing-wall,kid-friendly-buffet,kids-club,kids-cooking-class,kids-pool,kids-stay-free,laundry-dry-cleaning,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,personal-trainer-sessions,pool-beach-towel-service,poolside-bar,private-balcony-terrace,private-plunge-pools,shaded-toddler-splash-zone,smoke-free-rooms,snorkelling-gear,soccer-pitch,stroller-friendly-pathways,tennis-court,waterslide,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-doctor-on-call\",\"24-h-room-service\",\"airport-shuttle\",\"all-day-family-restaurant\",\"baby-equipment-rental\",\"babysitting-service\",\"bicycle-rental\",\"boutique-gift-shop\",\"childrens-menu\",\"complimentary-breakfast\",\"complimentary-water-sports\",\"concierge-service\",\"daily-family-activities\",\"direct-beach-access\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-movie-nights\",\"family-suites\",\"full-service-spa\",\"golf-driving-range\",\"high-chairs\",\"indoor-climbing-wall\",\"kid-friendly-buffet\",\"kids-club\",\"kids-cooking-class\",\"kids-pool\",\"kids-stay-free\",\"laundry-dry-cleaning\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"personal-trainer-sessions\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"private-plunge-pools\",\"shaded-toddler-splash-zone\",\"smoke-free-rooms\",\"snorkelling-gear\",\"soccer-pitch\",\"stroller-friendly-pathways\",\"tennis-court\",\"waterslide\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"top-worldwide\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Top Worldwide\",\"latitude\":4.520509,\"longitude\":73.366933,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/OneOnly_Reethi_Rah_Tapasake_Aerial_Side-300x225.webp\"},{\"id\":4857,\"title\":\"Soneva Fushi\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/soneva-fushi-kunfunadhoo-maldives\\\/\",\"rating\":\"9\",\"address\":\"Kunfunadhoo Island, Baa Atoll 06170, Maldives\",\"amenities\":\"24-h-room-service,airport-shuttle,all-day-family-restaurant,baby-equipment-rental,babysitting-service,beach-volleyball,bicycle-rental,boutique-gift-shop,childrens-menu,complimentary-water-sports,complimentary-welcome-ice-cream,concierge-service,daily-family-activities,direct-beach-access,evening-family-entertainment,extra-bathrooms,family-movie-nights,family-suites,filtered-water-refill-stations,full-service-spa,game-room-billiards,kid-friendly-buffet,kids-club,kids-cooking-class,kids-pool,kitchenette-microwave,laundry-dry-cleaning,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,pool-beach-towel-service,private-balcony-terrace,private-plunge-pools,smoke-free-rooms,snorkelling-gear,teen-lounge-arcade,tennis-court,waterslide,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-room-service\",\"airport-shuttle\",\"all-day-family-restaurant\",\"baby-equipment-rental\",\"babysitting-service\",\"beach-volleyball\",\"bicycle-rental\",\"boutique-gift-shop\",\"childrens-menu\",\"complimentary-water-sports\",\"complimentary-welcome-ice-cream\",\"concierge-service\",\"daily-family-activities\",\"direct-beach-access\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-movie-nights\",\"family-suites\",\"filtered-water-refill-stations\",\"full-service-spa\",\"game-room-billiards\",\"kid-friendly-buffet\",\"kids-club\",\"kids-cooking-class\",\"kids-pool\",\"kitchenette-microwave\",\"laundry-dry-cleaning\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"pool-beach-towel-service\",\"private-balcony-terrace\",\"private-plunge-pools\",\"smoke-free-rooms\",\"snorkelling-gear\",\"teen-lounge-arcade\",\"tennis-court\",\"waterslide\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"nature-wilderness\",\"top-worldwide\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Top Worldwide|Nature & Wilderness\",\"latitude\":5.112055,\"longitude\":73.078026,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/10883_Soneva-Fushi-Out-Of-The-Blue--225x300.jpg\"}]},{\"id\":931,\"name\":\"Seychelles\",\"slug\":\"seychelles\",\"context\":\"Indian Ocean\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/North-Island-Dining-and-Cuisine-West-Beach-Bar-view-from-the-ocean-300x216.webp\",\"hotels\":[{\"id\":5955,\"title\":\"North Island, Seychelles\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/north-island-a-luxury-collection-resort\\\/\",\"rating\":\"7.9\",\"address\":\"North Island, Seychelles (PO Box 1176, Victoria, Mah\\u00e9, Seychelles)\",\"amenities\":\"family-suites,private-balcony-terrace,private-plunge-pools,outdoor-pool,direct-beach-access,stand-up-paddleboard-and-kayaks,snorkelling-gear,snorkel-and-scuba-lessons,complimentary-water-sports,bicycle-rental,full-service-spa,yoga-pilates-classes,babysitting-service,daily-family-activities,concierge-service,24-h-room-service,multilingual-staff,laundry-dry-cleaning,airport-shuttle\",\"amenity_slugs\":[\"24-h-room-service\",\"airport-shuttle\",\"babysitting-service\",\"bicycle-rental\",\"complimentary-water-sports\",\"concierge-service\",\"daily-family-activities\",\"direct-beach-access\",\"family-suites\",\"full-service-spa\",\"laundry-dry-cleaning\",\"multilingual-staff\",\"outdoor-pool\",\"private-balcony-terrace\",\"private-plunge-pools\",\"snorkelling-gear\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"top-worldwide\",\"water-wonderlands\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Water Wonderlands|Top Worldwide\",\"latitude\":-4.395,\"longitude\":55.243,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/North-Island-Dining-and-Cuisine-West-Beach-Bar-view-from-the-ocean-300x216.webp\"}]}],\"Middle East\":[{\"id\":34,\"name\":\"Dubai Jumeirah Beach\",\"slug\":\"dubai-jumeirah-beach\",\"context\":\"Middle East\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Rectangle-764-4-300x300.webp\",\"hotels\":[{\"id\":7219,\"title\":\"Atlantis The Royal\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/atlantis-the-royal\\\/\",\"rating\":\"9.1\",\"address\":\"Crescent Road, Palm Jumeirah, Dubai, United Arab Emirates\",\"amenities\":\"24-h-doctor-on-call,24-h-room-service,airport-shuttle,all-day-family-restaurant,atm-on-site,babysitting-service,basketball-court,beach-volleyball,board-games-puzzles,boutique-gift-shop,childrens-menu,complimentary-breakfast,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,evening-family-entertainment,extra-bathrooms,family-suites,free-secure-parking,full-service-spa,game-room-billiards,indoor-soft-play,infinity-rooftop-pool,kid-friendly-buffet,kids-club,kids-pool,laundry-dry-cleaning,lazy-river-splash-pad,lifeguard-on-duty,meditation-garden,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-pool,personal-trainer-sessions,pool-beach-towel-service,poolside-bar,private-balcony-terrace,private-plunge-pools,smoke-free-rooms,soccer-pitch,step-free-access,stroller-friendly-pathways,teen-lounge-arcade,tennis-court,valet-parking,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-doctor-on-call\",\"24-h-room-service\",\"airport-shuttle\",\"all-day-family-restaurant\",\"atm-on-site\",\"babysitting-service\",\"basketball-court\",\"beach-volleyball\",\"board-games-puzzles\",\"boutique-gift-shop\",\"childrens-menu\",\"complimentary-breakfast\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"game-room-billiards\",\"indoor-soft-play\",\"infinity-rooftop-pool\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pool\",\"laundry-dry-cleaning\",\"lazy-river-splash-pad\",\"lifeguard-on-duty\",\"meditation-garden\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-pool\",\"personal-trainer-sessions\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"private-plunge-pools\",\"smoke-free-rooms\",\"soccer-pitch\",\"step-free-access\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"tennis-court\",\"valet-parking\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"top-worldwide\",\"water-wonderlands\"],\"primary_category\":\"Water Wonderlands\",\"secondary_categories\":\"Top Worldwide|Beach Escapes\",\"latitude\":25.130366,\"longitude\":55.117378,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ffh-import-mekhqpq7xvep-300x200.webp\"},{\"id\":6533,\"title\":\"Jumeirah Al Naseem\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/jumeirah-al-naseem\\\/\",\"rating\":\"8.2\",\"address\":\"Jumeirah Street (Al Sufouh Road), Umm Suqeim 3, PO Box 75157, Dubai, UAE\",\"amenities\":\"24-h-fitness-center,24-h-room-service,adults-only-fine-dining,airport-shuttle,all-day-family-restaurant,allergen-coded-menus,baby-equipment-rental,babysitting-service,black-out-curtains,board-games-puzzles,childrens-menu,complimentary-welcome-ice-cream,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,family-movie-nights,family-suites,full-service-spa,game-room-billiards,high-chairs,kid-friendly-buffet,kids-club,kids-pool,laundry-dry-cleaning,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-playground,outdoor-pool,pool-beach-towel-service,poolside-bar,private-balcony-terrace,shaded-toddler-splash-zone,smoke-free-rooms,step-free-access,stroller-friendly-pathways,teen-lounge-arcade,tennis-court,valet-parking,waterslide,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"24-h-room-service\",\"adults-only-fine-dining\",\"airport-shuttle\",\"all-day-family-restaurant\",\"allergen-coded-menus\",\"baby-equipment-rental\",\"babysitting-service\",\"black-out-curtains\",\"board-games-puzzles\",\"childrens-menu\",\"complimentary-welcome-ice-cream\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"family-movie-nights\",\"family-suites\",\"full-service-spa\",\"game-room-billiards\",\"high-chairs\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pool\",\"laundry-dry-cleaning\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"shaded-toddler-splash-zone\",\"smoke-free-rooms\",\"step-free-access\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"tennis-court\",\"valet-parking\",\"waterslide\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"top-worldwide\",\"water-wonderlands\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Water Wonderlands|Top Worldwide\",\"latitude\":25.1338,\"longitude\":55.1873,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ffh-import-tcxecrgsbjz1-300x200.webp\"},{\"id\":6382,\"title\":\"Jumeirah Beach Hotel\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/jumeirah-beach-hotel-dubai\\\/\",\"rating\":\"8.6\",\"address\":\"Jumeirah Beach Road, Umm Suqeim 3, Dubai, United Arab Emirates\",\"amenities\":\"24-h-fitness-center,24-h-room-service,adults-only-fine-dining,airport-shuttle,all-day-family-restaurant,babysitting-service,beach-volleyball,board-games-puzzles,boutique-gift-shop,childrens-menu,complimentary-water-sports,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,ev-charging-stations,evening-family-entertainment,family-suites,full-service-spa,high-chairs,indoor-soft-play,kid-friendly-buffet,kids-club,kids-pool,kids-stay-free,laundry-dry-cleaning,lazy-river-splash-pad,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-pool,personal-trainer-sessions,pool-beach-towel-service,poolside-bar,private-balcony-terrace,private-plunge-pools,shaded-toddler-splash-zone,smoke-free-rooms,snorkelling-gear,stroller-friendly-pathways,teen-lounge-arcade,tennis-court,valet-parking,waterslide,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"24-h-room-service\",\"adults-only-fine-dining\",\"airport-shuttle\",\"all-day-family-restaurant\",\"babysitting-service\",\"beach-volleyball\",\"board-games-puzzles\",\"boutique-gift-shop\",\"childrens-menu\",\"complimentary-water-sports\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"ev-charging-stations\",\"evening-family-entertainment\",\"family-suites\",\"full-service-spa\",\"high-chairs\",\"indoor-soft-play\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pool\",\"kids-stay-free\",\"laundry-dry-cleaning\",\"lazy-river-splash-pad\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-pool\",\"personal-trainer-sessions\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"private-plunge-pools\",\"shaded-toddler-splash-zone\",\"smoke-free-rooms\",\"snorkelling-gear\",\"stroller-friendly-pathways\",\"teen-lounge-arcade\",\"tennis-court\",\"valet-parking\",\"waterslide\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"top-worldwide\",\"water-wonderlands\"],\"primary_category\":\"Water Wonderlands\",\"secondary_categories\":\"Beach Escapes|Top Worldwide\",\"latitude\":25.1417,\"longitude\":55.1906,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/jumeirah-beach-hotel-dubai-01-300x169.webp\"},{\"id\":3552,\"title\":\"Mandarin Oriental Jumeira, Dubai\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/mandarin-oriental-jumeira-dubai\\\/\",\"rating\":\"8.6\",\"address\":\"Jumeira 1, Jumeirah Beach Road, Dubai, United Arab Emirates\",\"amenities\":\"all-day-family-restaurant,babysitting-service,childrens-menu,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,family-suites,full-service-spa,kid-friendly-buffet,kids-club,kids-pool,multilingual-staff,outdoor-dining-terrace,outdoor-pool,private-balcony-terrace,smoke-free-rooms,valet-parking\",\"amenity_slugs\":[\"all-day-family-restaurant\",\"babysitting-service\",\"childrens-menu\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"family-suites\",\"full-service-spa\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pool\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-pool\",\"private-balcony-terrace\",\"smoke-free-rooms\",\"valet-parking\"],\"category_slugs\":[\"beach-escapes\",\"top-worldwide\",\"urban-sanctuaries\",\"water-wonderlands\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Top Worldwide|Urban Sanctuaries|Water Wonderlands\",\"latitude\":25.217673,\"longitude\":55.251285,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/ndUkyLUipdZBu5y1kSJZ-scaled-300x200.webp\"}]}],\"North America\":[{\"id\":996,\"name\":\"Colorado\",\"slug\":\"colorado\",\"context\":\"North America\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/clazyu_hero-300x200.webp\",\"hotels\":[{\"id\":6585,\"title\":\"C Lazy U Ranch\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/c-lazy-u-ranch\\\/\",\"rating\":\"8.7\",\"address\":\"3640 Colorado Hwy 125, Granby, Colorado 80446, USA\",\"amenities\":\"24-h-fitness-center,all-day-family-restaurant,archery-range,basketball-court,board-games-puzzles,boutique-gift-shop,childrens-menu,concierge-service,connecting-rooms,daily-family-activities,evening-family-entertainment,family-bike-tours,family-bunk-bed-rooms,family-movie-nights,family-suites,free-secure-parking,full-service-spa,game-room-billiards,high-chairs,horseback-riding,in-room-family-safety-kit,kids-club,laundry-dry-cleaning,mini-fridge,outdoor-dining-terrace,outdoor-playground,outdoor-pool,pool-beach-towel-service,private-balcony-terrace,seasonal-ski-school-rental,smoke-free-rooms,step-free-access,tennis-court,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"all-day-family-restaurant\",\"archery-range\",\"basketball-court\",\"board-games-puzzles\",\"boutique-gift-shop\",\"childrens-menu\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"evening-family-entertainment\",\"family-bike-tours\",\"family-bunk-bed-rooms\",\"family-movie-nights\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"game-room-billiards\",\"high-chairs\",\"horseback-riding\",\"in-room-family-safety-kit\",\"kids-club\",\"laundry-dry-cleaning\",\"mini-fridge\",\"outdoor-dining-terrace\",\"outdoor-playground\",\"outdoor-pool\",\"pool-beach-towel-service\",\"private-balcony-terrace\",\"seasonal-ski-school-rental\",\"smoke-free-rooms\",\"step-free-access\",\"tennis-court\",\"yoga-pilates-classes\"],\"category_slugs\":[\"all-inclusive-resorts\",\"nature-wilderness\"],\"primary_category\":\"Nature & Wilderness\",\"secondary_categories\":\"All-Inclusive Resorts\",\"latitude\":40.1515,\"longitude\":-105.9996,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/clazyu_hero-300x200.webp\"}]},{\"id\":691,\"name\":\"United States\",\"slug\":\"united-states\",\"context\":\"North America\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/four-seasons-oahu-at-ko-olina-exterior-01-300x193.webp\",\"hotels\":[{\"id\":6535,\"title\":\"Four Seasons Resort Oahu at Ko Olina\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/four-seasons-oahu-at-ko-olina\\\/\",\"rating\":\"8.8\",\"address\":\"92-1001 Olani Street, Kapolei, Hawaii 96707, United States\",\"amenities\":\"24-h-fitness-center,24-h-room-service,allergen-coded-menus,atm-on-site,babysitting-service,basketball-court,black-out-curtains,board-games-puzzles,boutique-gift-shop,childrens-menu,complimentary-water-sports,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,ev-charging-stations,evening-family-entertainment,extra-bathrooms,family-movie-nights,family-suites,full-service-spa,game-room-billiards,high-chairs,hypo-allergenic-rooms,infinity-rooftop-pool,kids-teens-spa-menu,kids-club,kids-cooking-class,kids-pool,kids-stay-free,laundry-dry-cleaning,lifeguard-on-duty,mini-fridge,multilingual-staff,outdoor-dining-terrace,outdoor-pool,personal-trainer-sessions,pool-beach-towel-service,poolside-bar,private-balcony-terrace,private-plunge-pools,smoke-free-rooms,snorkelling-gear,step-free-access,stroller-friendly-pathways,tennis-court,valet-parking,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"24-h-room-service\",\"allergen-coded-menus\",\"atm-on-site\",\"babysitting-service\",\"basketball-court\",\"black-out-curtains\",\"board-games-puzzles\",\"boutique-gift-shop\",\"childrens-menu\",\"complimentary-water-sports\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"ev-charging-stations\",\"evening-family-entertainment\",\"extra-bathrooms\",\"family-movie-nights\",\"family-suites\",\"full-service-spa\",\"game-room-billiards\",\"high-chairs\",\"hypo-allergenic-rooms\",\"infinity-rooftop-pool\",\"kids-teens-spa-menu\",\"kids-club\",\"kids-cooking-class\",\"kids-pool\",\"kids-stay-free\",\"laundry-dry-cleaning\",\"lifeguard-on-duty\",\"mini-fridge\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-pool\",\"personal-trainer-sessions\",\"pool-beach-towel-service\",\"poolside-bar\",\"private-balcony-terrace\",\"private-plunge-pools\",\"smoke-free-rooms\",\"snorkelling-gear\",\"step-free-access\",\"stroller-friendly-pathways\",\"tennis-court\",\"valet-parking\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"\",\"latitude\":21.339464,\"longitude\":-158.125148,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/four-seasons-oahu-at-ko-olina-exterior-01-300x193.webp\"}]},{\"id\":35,\"name\":\"Orlando Walt Disney World\",\"slug\":\"orlando-walt-disney-world\",\"context\":\"North America\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Frame-498-300x300.webp\",\"hotels\":[{\"id\":3553,\"title\":\"Four Seasons Resort Orlando at Walt Disney World Resort\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/four-seasons-resort-orlando\\\/\",\"rating\":\"9\",\"address\":\"10100 Dream Tree Blvd, Lake Buena Vista, FL 32836, USA\",\"amenities\":\"24-h-fitness-center,all-day-family-restaurant,babysitting-service,childrens-menu,concierge-service,connecting-rooms,daily-family-activities,evening-family-entertainment,family-suites,full-service-spa,game-room-billiards,golf-driving-range,kid-friendly-buffet,kids-club,kids-pool,lazy-river-splash-pad,multilingual-staff,outdoor-dining-terrace,outdoor-pool,poolside-bar,shaded-toddler-splash-zone,smoke-free-rooms,teen-lounge-arcade,valet-parking,waterslide\",\"amenity_slugs\":[\"24-h-fitness-center\",\"all-day-family-restaurant\",\"babysitting-service\",\"childrens-menu\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"evening-family-entertainment\",\"family-suites\",\"full-service-spa\",\"game-room-billiards\",\"golf-driving-range\",\"kid-friendly-buffet\",\"kids-club\",\"kids-pool\",\"lazy-river-splash-pad\",\"multilingual-staff\",\"outdoor-dining-terrace\",\"outdoor-pool\",\"poolside-bar\",\"shaded-toddler-splash-zone\",\"smoke-free-rooms\",\"teen-lounge-arcade\",\"valet-parking\",\"waterslide\"],\"category_slugs\":[\"theme-park-retreats\",\"top-worldwide\",\"water-wonderlands\"],\"primary_category\":\"Theme Park Retreats\",\"secondary_categories\":\"Top Worldwide|Water Wonderlands\",\"latitude\":28.40195,\"longitude\":-81.54542,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/ffh-import-glvueisgnww9-300x169.webp\"}]}],\"Pacific & Australasia\":[{\"id\":936,\"name\":\"Fiji\",\"slug\":\"fiji\",\"context\":\"Pacific & Australasia\",\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/1-Large-Family-Vacation-Fiji-300x200.webp\",\"hotels\":[{\"id\":5165,\"title\":\"Jean-Michel Cousteau Resort\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/jean-michel-cousteau-resort-fiji\\\/\",\"rating\":\"9.1\",\"address\":\"Lesiaceva Point Road, Savusavu, Vanua Levu, Fiji\",\"amenities\":\"24-h-fitness-center,adults-only-fine-dining,airport-shuttle,all-day-family-restaurant,babysitting-service,childrens-menu,complimentary-water-sports,concierge-service,connecting-rooms,daily-family-activities,family-suites,free-secure-parking,full-service-spa,high-chairs,kids-club,kids-pool,laundry-dry-cleaning,outdoor-dining-terrace,outdoor-pool,private-balcony-terrace,shaded-toddler-splash-zone,snorkelling-gear,waterslide\",\"amenity_slugs\":[\"24-h-fitness-center\",\"adults-only-fine-dining\",\"airport-shuttle\",\"all-day-family-restaurant\",\"babysitting-service\",\"childrens-menu\",\"complimentary-water-sports\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"high-chairs\",\"kids-club\",\"kids-pool\",\"laundry-dry-cleaning\",\"outdoor-dining-terrace\",\"outdoor-pool\",\"private-balcony-terrace\",\"shaded-toddler-splash-zone\",\"snorkelling-gear\",\"waterslide\"],\"category_slugs\":[\"all-inclusive-resorts\",\"nature-wilderness\",\"top-worldwide\"],\"primary_category\":\"\",\"secondary_categories\":\"\",\"latitude\":-16.81,\"longitude\":179.31,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/1-Large-Family-Vacation-Fiji-300x200.webp\"},{\"id\":6547,\"title\":\"Nanuku Resort\",\"url\":\"https:\\\/\\\/finestfamilyhotels.com\\\/es\\\/hotels\\\/nanuku-resort-fiji\\\/\",\"rating\":\"8.7\",\"address\":\"11 Nanuku Drive, Pacific Harbour, Viti Levu, Fiji Islands\",\"amenities\":\"24-h-fitness-center,24-h-room-service,airport-shuttle,all-day-family-restaurant,baby-equipment-rental,babysitting-service,bicycle-rental,board-games-puzzles,childrens-menu,complimentary-water-sports,concierge-service,connecting-rooms,daily-family-activities,direct-beach-access,family-suites,free-secure-parking,full-service-spa,high-chairs,kids-club,kids-cooking-class,laundry-dry-cleaning,outdoor-pool,poolside-bar,private-balcony-terrace,private-plunge-pools,smoke-free-rooms,snorkelling-gear,valet-parking,yoga-pilates-classes\",\"amenity_slugs\":[\"24-h-fitness-center\",\"24-h-room-service\",\"airport-shuttle\",\"all-day-family-restaurant\",\"baby-equipment-rental\",\"babysitting-service\",\"bicycle-rental\",\"board-games-puzzles\",\"childrens-menu\",\"complimentary-water-sports\",\"concierge-service\",\"connecting-rooms\",\"daily-family-activities\",\"direct-beach-access\",\"family-suites\",\"free-secure-parking\",\"full-service-spa\",\"high-chairs\",\"kids-club\",\"kids-cooking-class\",\"laundry-dry-cleaning\",\"outdoor-pool\",\"poolside-bar\",\"private-balcony-terrace\",\"private-plunge-pools\",\"smoke-free-rooms\",\"snorkelling-gear\",\"valet-parking\",\"yoga-pilates-classes\"],\"category_slugs\":[\"beach-escapes\",\"nature-wilderness\"],\"primary_category\":\"Beach Escapes\",\"secondary_categories\":\"Nature & Wilderness\",\"latitude\":-18.341092,\"longitude\":178.161309,\"image\":\"https:\\\/\\\/finestfamilyhotels.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/nanuku-resort-fiji-exterior-01-300x200.webp\"}]}],\"South America\":[]},\n\t\t\tinitialContinent: \"\",\n\t\t\tcategoryLabels: {\"all-inclusive-resorts\":\"All-Inclusive Resorts\",\"beach-escapes\":\"Beach Escapes\",\"nature-wilderness\":\"Nature & Wilderness\",\"ski-resorts\":\"Ski Resorts\",\"theme-park-retreats\":\"Theme Park Retreats\",\"top-worldwide\":\"Top Worldwide\",\"urban-sanctuaries\":\"Urban Sanctuaries\",\"water-wonderlands\":\"Water Wonderlands\"},\n\t\t\tamenitySections: [{\"title\":\"Accessibility & Safety\",\"parent_slug\":\"accessibility-safety\",\"slugs\":[\"aed-cpr-trained-staff\",\"allergy-friendly-public-areas\",\"in-room-family-safety-kit\",\"sensory-quiet-zones\",\"smoke-free-rooms\",\"step-free-access\",\"stroller-friendly-pathways\"]},{\"title\":\"Activities & Sports\",\"parent_slug\":\"activities-sports\",\"slugs\":[\"archery-range\",\"basketball-court\",\"beach-volleyball\",\"bowling-alley\",\"evening-family-entertainment\",\"family-bike-tours\",\"game-room-billiards\",\"golf-driving-range\",\"horseback-riding\",\"indoor-climbing-wall\",\"mini-golf-putting-green\",\"seasonal-ski-school-rental\",\"soccer-pitch\",\"tennis-court\",\"walkable-city\"]},{\"title\":\"Dining & Bars\",\"parent_slug\":\"dining-bars\",\"slugs\":[\"24-h-room-service\",\"adults-only-fine-dining\",\"all-day-family-restaurant\",\"allergen-coded-menus\",\"complimentary-breakfast\",\"complimentary-welcome-ice-cream\",\"kid-friendly-buffet\",\"kids-cooking-class\",\"outdoor-dining-terrace\",\"poolside-bar\"]},{\"title\":\"Kids & Family\",\"parent_slug\":\"kids-family\",\"slugs\":[\"babysitting-service\",\"board-games-puzzles\",\"car-seats-for-transfers\",\"childrens-menu\",\"complimentary-strollers\",\"daily-family-activities\",\"family-movie-nights\",\"free-beach-toy-library\",\"high-chairs\",\"indoor-soft-play\",\"kids-club\",\"kids-pool\",\"kids-stay-free\",\"outdoor-playground\",\"sensory-kits-autism-friendly\",\"stem-coding-lab\",\"teen-lounge-arcade\",\"waterslide\"]},{\"title\":\"Pools & Beach\",\"parent_slug\":\"pools-beach\",\"slugs\":[\"complimentary-water-sports\",\"direct-beach-access\",\"heated-saline-pool\",\"indoor-heated-pool\",\"infinity-rooftop-pool\",\"lazy-river-splash-pad\",\"lifeguard-on-duty\",\"outdoor-pool\",\"pool-beach-towel-service\",\"private-plunge-pools\",\"shaded-toddler-splash-zone\",\"snorkelling-gear\"]},{\"title\":\"Room & Suite\",\"parent_slug\":\"room-suite\",\"slugs\":[\"black-out-curtains\",\"chromecast-streaming\",\"connecting-rooms\",\"extra-bathrooms\",\"family-bunk-bed-rooms\",\"family-suites\",\"hypo-allergenic-rooms\",\"kids-pillow-menu\",\"kitchenette-microwave\",\"mini-fridge\",\"private-balcony-terrace\"]},{\"title\":\"Services & Conveniences\",\"parent_slug\":\"services-conveniences\",\"slugs\":[\"24-h-doctor-on-call\",\"airport-shuttle\",\"atm-on-site\",\"baby-equipment-rental\",\"bicycle-rental\",\"boutique-gift-shop\",\"concierge-service\",\"ev-charging-stations\",\"filtered-water-refill-stations\",\"free-secure-parking\",\"laundry-dry-cleaning\",\"multilingual-staff\",\"priority-family-check-in-desk\",\"stroller-friendly-pathways-map\",\"valet-parking\"]},{\"title\":\"Wellness & Fitness\",\"parent_slug\":\"wellness-fitness\",\"slugs\":[\"24-h-fitness-center\",\"full-service-spa\",\"kids-teens-spa-menu\",\"meditation-garden\",\"personal-trainer-sessions\",\"yoga-pilates-classes\"]}]\t\t};\n\n\t\troot.innerHTML = ''\n\t\t\t+ '<div class=\"ffh-dx-header\">'\n\t\t\t+ '<h1>Destinations<\/h1>'\n\t\t\t+ '<span class=\"ffh-dx-underline\"><\/span>'\n\t\t\t+ '<\/div>'\n\t\t\t+ '<div class=\"ffh-dx-layout\">'\n\t\t\t+ '<div class=\"ffh-dx-left\">'\n\t\t\t+ '<div class=\"ffh-dx-map-control\">'\n\t\t\t+ '<label class=\"ffh-dx-continent-label\" for=\"ffh-destination-explorer-1-continent\">Continent<\/label>'\n\t\t\t+ '<select id=\"ffh-destination-explorer-1-continent\" class=\"ffh-dx-continent\"><\/select>'\n\t\t\t+ '<\/div>'\n\t\t\t+ '<div class=\"ffh-dx-destination-list\"><\/div>'\n\t\t\t+ '<div class=\"ffh-dx-hotel-panel\" hidden>'\n\t\t\t+ '<div class=\"ffh-dx-toolbar\"><button type=\"button\" class=\"ffh-dx-back\">Back to Destinations<\/button><\/div>'\n\t\t\t+ '<div class=\"ffh-dx-filters\">'\n\t\t\t+ '<select class=\"ffh-dx-filter-destination\"><\/select>'\n\t\t\t+ '<select class=\"ffh-dx-filter-category\"><option value=\"\">Select Category<\/option><\/select>'\n\t\t\t+ '<button type=\"button\" class=\"ffh-dx-filter-toggle\">Filter <span class=\"ffh-dx-filter-badge\">0<\/span><\/button>'\n\t\t\t+ '<div class=\"ffh-dx-amenity-modal\" hidden>'\n\t\t\t+ '<button type=\"button\" class=\"ffh-dx-amenity-modal-backdrop\" aria-label=\"Close\"><\/button>'\n\t\t\t+ '<div class=\"ffh-dx-amenity-modal-dialog\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"ffh-destination-explorer-1-amenity-modal-title\">'\n\t\t\t+ '<div class=\"ffh-dx-amenity-modal-header\">'\n\t\t\t+ '<h3 id=\"ffh-destination-explorer-1-amenity-modal-title\">Family &amp; Stay details<\/h3>'\n\t\t\t+ '<button type=\"button\" class=\"ffh-dx-amenity-modal-close\" aria-label=\"Close\">&times;<\/button>'\n\t\t\t+ '<\/div>'\n\t\t\t+ '<div class=\"ffh-dx-amenity-modal-body\"><\/div>'\n\t\t\t+ '<div class=\"ffh-dx-amenity-modal-footer\">'\n\t\t\t+ '<button type=\"button\" class=\"ffh-dx-amenity-modal-clear\">Clear<\/button>'\n\t\t\t+ '<button type=\"button\" class=\"ffh-dx-amenity-modal-apply\">Apply<\/button>'\n\t\t\t+ '<\/div><\/div><\/div>'\n\t\t\t+ '<input type=\"search\" class=\"ffh-dx-filter-search\" placeholder=\"Search for a destination or hotel\">'\n\t\t\t+ '<select class=\"ffh-dx-filter-sort\"><option value=\"rating_desc\">Highest Rating<\/option><option value=\"rating_asc\">Lowest Rating<\/option><option value=\"name_asc\">Name A-Z<\/option><option value=\"name_desc\">Name Z-A<\/option><\/select>'\n\t\t\t+ '<\/div>'\n\t\t\t+ '<div class=\"ffh-dx-filter-meta\"><span class=\"ffh-dx-filter-count\"><\/span><button type=\"button\" class=\"ffh-dx-clear-filters\">Clear All Filters<\/button><\/div>'\n\t\t\t+ '<div class=\"ffh-dx-hotel-list\"><\/div>'\n\t\t\t+ '<\/div>'\n\t\t\t+ '<\/div>'\n\t\t\t+ '<div class=\"ffh-dx-map-wrap\">'\n\t\t\t+ '<div class=\"ffh-dx-map ffh-leaflet-tint\"><\/div>'\n\t\t\t+ '<\/div>'\n\t\t\t+ '<\/div>';\n\n\t\tvar continentSelect = root.querySelector('.ffh-dx-continent');\n\t\tvar destinationList = root.querySelector('.ffh-dx-destination-list');\n\t\tvar hotelPanel = root.querySelector('.ffh-dx-hotel-panel');\n\t\tvar hotelList = root.querySelector('.ffh-dx-hotel-list');\n\t\tvar backButton = root.querySelector('.ffh-dx-back');\n\t\tvar searchInput = root.querySelector('.ffh-dx-filter-search');\n\t\tvar destinationFilterSelect = root.querySelector('.ffh-dx-filter-destination');\n\t\tvar categoryFilterSelect = root.querySelector('.ffh-dx-filter-category');\n\t\tvar filterToggleButton = root.querySelector('.ffh-dx-filter-toggle');\n\t\tvar filterBadge = root.querySelector('.ffh-dx-filter-badge');\n\t\tvar amenityModal = root.querySelector('.ffh-dx-amenity-modal');\n\t\tvar amenityModalBackdrop = root.querySelector('.ffh-dx-amenity-modal-backdrop');\n\t\tvar amenityModalDialog = root.querySelector('.ffh-dx-amenity-modal-dialog');\n\t\tvar amenityModalBody = root.querySelector('.ffh-dx-amenity-modal-body');\n\t\tvar amenityModalClose = root.querySelector('.ffh-dx-amenity-modal-close');\n\t\tvar amenityModalApply = root.querySelector('.ffh-dx-amenity-modal-apply');\n\t\tvar amenityModalClear = root.querySelector('.ffh-dx-amenity-modal-clear');\n\t\tvar sortSelect = root.querySelector('.ffh-dx-filter-sort');\n\t\tvar filterCount = root.querySelector('.ffh-dx-filter-count');\n\t\tvar clearFiltersButton = root.querySelector('.ffh-dx-clear-filters');\n\t\tvar mapEl = root.querySelector('.ffh-dx-map');\n\t\tmapEl.style.height = root.getAttribute('data-map-height') || '520px';\n\n\t\tvar selectedDestinationId = '';\n\t\tvar map = null;\n\t\tvar markerLayer = null;\n\t\tvar markers = [];\n\t\tvar filters = { search: '', sort: 'rating_desc', category: '', amenities: [] };\n\n\t\t\/* --- Page breadcrumb hierarchy (2026-06-27) -------------------------------\n\t\t   Reflect the explorer drill-down in the site breadcrumb:\n\t\t   Home -> Destinations -> {Continent} -> {Destination}. The continent and\n\t\t   \"Destinations\" crumbs are clickable and drive the explorer state (SPA, no\n\t\t   reload). Replaces the in-panel \"Back to Destinations\" button. Rebuilds from\n\t\t   a snapshot each time so TranslatePress labels are preserved. *\/\n\t\tvar pageBcList = document.querySelector('.ffh-breadcrumbs__list');\n\t\tvar pageBcBase = pageBcList ? pageBcList.innerHTML : '';\n\n\t\tfunction continentOfDestination(dest){\n\t\t\tif (!dest) return '';\n\t\t\tfor (var i = 0; i < config.continents.length; i++) {\n\t\t\t\tvar c = config.continents[i];\n\t\t\t\tvar arr = Array.isArray(config.data[c]) ? config.data[c] : [];\n\t\t\t\tfor (var j = 0; j < arr.length; j++) {\n\t\t\t\t\tif (String(arr[j].id) === String(dest.id)) return c;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t\tfunction bcResetToAll(){\n\t\t\tcontinentSelect.value = '';\n\t\t\tselectedDestinationId = '';\n\t\t\tfilters.search = ''; filters.category = ''; filters.amenities = [];\n\t\t\tif (searchInput) searchInput.value = '';\n\t\t\tif (categoryFilterSelect) categoryFilterSelect.value = '';\n\t\t\tcloseAmenityModal();\n\t\t\trenderAll();\n\t\t}\n\t\tfunction bcGoToContinent(continent){\n\t\t\tcontinentSelect.value = continent || '';\n\t\t\tselectedDestinationId = '';\n\t\t\tfilters.search = ''; filters.category = ''; filters.amenities = [];\n\t\t\tif (searchInput) searchInput.value = '';\n\t\t\tif (categoryFilterSelect) categoryFilterSelect.value = '';\n\t\t\tcloseAmenityModal();\n\t\t\trenderAll();\n\t\t}\n\t\tfunction bcAppendCrumb(label, isCurrent, onClick){\n\t\t\tvar li = document.createElement('li');\n\t\t\tli.className = 'ffh-breadcrumbs__item' + (isCurrent ? ' ffh-breadcrumbs__item--current' : '');\n\t\t\tif (isCurrent || typeof onClick !== 'function') {\n\t\t\t\tvar span = document.createElement('span');\n\t\t\t\tspan.className = 'ffh-breadcrumbs__text';\n\t\t\t\tif (isCurrent) span.setAttribute('aria-current', 'page');\n\t\t\t\tspan.textContent = label;\n\t\t\t\tli.appendChild(span);\n\t\t\t} else {\n\t\t\t\tvar a = document.createElement('a');\n\t\t\t\ta.className = 'ffh-breadcrumbs__link';\n\t\t\t\ta.href = '#';\n\t\t\t\ta.textContent = label;\n\t\t\t\ta.addEventListener('click', function(e){ e.preventDefault(); onClick(); });\n\t\t\t\tli.appendChild(a);\n\t\t\t}\n\t\t\tpageBcList.appendChild(li);\n\t\t}\n\t\tfunction updateBreadcrumb(){\n\t\t\tif (!pageBcList) return;\n\t\t\tpageBcList.innerHTML = pageBcBase;\n\t\t\t\/\/ FFH fix 2026-07-09 (Claude): when the page is entered directly via\n\t\t\t\/\/ \/destinations\/{continent}\/ the server already renders a trailing continent\n\t\t\t\/\/ crumb (Home > Destinations > Asia). The append logic below assumes the base\n\t\t\t\/\/ ends at \"Destinations\", so it would relabel that Asia into a reset link and\n\t\t\t\/\/ append a second Asia (=> \"Asia > Asia\"). Normalize the base back to the first\n\t\t\t\/\/ two crumbs (Home > Destinations) so both entry paths behave identically.\n\t\t\tvar baseItems = pageBcList.querySelectorAll('.ffh-breadcrumbs__item');\n\t\t\tfor (var bi = baseItems.length - 1; bi >= 2; bi--) {\n\t\t\t\tif (baseItems[bi].parentNode) baseItems[bi].parentNode.removeChild(baseItems[bi]);\n\t\t\t}\n\t\t\tvar continent = currentContinent();\n\t\t\tvar dest = selectedDestinationId ? getSelectedDestination() : null;\n\t\t\tif (dest && !continent) continent = continentOfDestination(dest);\n\t\t\tif (!continent && !dest) return; \/\/ default view -> keep base breadcrumb\n\t\t\t\/\/ Turn the trailing \"Destinations\" crumb into a reset link.\n\t\t\tvar items = pageBcList.querySelectorAll('.ffh-breadcrumbs__item');\n\t\t\tvar last = items[items.length - 1];\n\t\t\tif (last) {\n\t\t\t\tvar label = last.textContent.trim();\n\t\t\t\tlast.classList.remove('ffh-breadcrumbs__item--current');\n\t\t\t\tlast.innerHTML = '';\n\t\t\t\tvar a = document.createElement('a');\n\t\t\t\ta.className = 'ffh-breadcrumbs__link';\n\t\t\t\ta.href = '#';\n\t\t\t\ta.textContent = label;\n\t\t\t\ta.addEventListener('click', function(e){ e.preventDefault(); bcResetToAll(); });\n\t\t\t\tlast.appendChild(a);\n\t\t\t}\n\t\t\tif (continent) {\n\t\t\t\tbcAppendCrumb(continent, !dest, dest ? function(){ bcGoToContinent(continent); } : null);\n\t\t\t}\n\t\t\tif (dest) {\n\t\t\t\tbcAppendCrumb(dest.name, true, null);\n\t\t\t}\n\t\t}\n\n\t\tfunction clearMarkers(){\n\t\t\tmarkers = [];\n\t\t\tif (markerLayer) {\n\t\t\t\tmarkerLayer.clearLayers();\n\t\t\t}\n\t\t}\n\n\t\tfunction currentContinent(){\n\t\t\treturn continentSelect.value || '';\n\t\t}\n\n\t\tfunction currentDestinations(){\n\t\t\tvar continent = currentContinent();\n\t\t\tif (continent === '') {\n\t\t\t\tvar all = [];\n\t\t\t\tconfig.continents.forEach(function(c){\n\t\t\t\t\tif (Array.isArray(config.data[c])) all = all.concat(config.data[c]);\n\t\t\t\t});\n\t\t\t\treturn all;\n\t\t\t}\n\t\t\treturn Array.isArray(config.data[continent]) ? config.data[continent] : [];\n\t\t}\n\n\t\tfunction getSelectedDestination(){\n\t\t\tvar destinations = currentDestinations();\n\t\t\treturn destinations.find(function(dest){ return String(dest.id) === String(selectedDestinationId); }) || null;\n\t\t}\n\n\t\tfunction baseHotelsForView(){\n\t\t\tvar destinations = currentDestinations();\n\t\t\tif (!selectedDestinationId) {\n\t\t\t\treturn destinations.reduce(function(acc, dest){\n\t\t\t\t\treturn acc.concat(dest.hotels || []);\n\t\t\t\t}, []);\n\t\t\t}\n\t\t\tvar selected = getSelectedDestination();\n\t\t\treturn selected && Array.isArray(selected.hotels) ? selected.hotels : [];\n\t\t}\n\n\t\tfunction slugifyLabel(str){\n\t\t\treturn String(str || '').trim().toLowerCase().replace(\/[^a-z0-9]+\/g, '-').replace(\/^-+|-+$\/g, '');\n\t\t}\n\n\t\tfunction extractCategoryTokens(hotel){\n\t\t\tvar tokens = [];\n\t\t\tif (Array.isArray(hotel.category_slugs)) {\n\t\t\t\thotel.category_slugs.forEach(function(s){\n\t\t\t\t\ts = String(s || '').trim();\n\t\t\t\t\tif (s) { tokens.push(s); }\n\t\t\t\t});\n\t\t\t}\n\t\t\t[String(hotel.primary_category || ''), String(hotel.secondary_categories || '')].forEach(function(raw){\n\t\t\t\traw.split(\/[|,]\/).forEach(function(v){\n\t\t\t\t\tvar item = String(v || '').trim();\n\t\t\t\t\tif (!item) { return; }\n\t\t\t\t\tvar asSlug = slugifyLabel(item);\n\t\t\t\t\tif (asSlug) { tokens.push(asSlug); }\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn Array.from(new Set(tokens));\n\t\t}\n\n\t\tfunction extractAmenityTokens(hotel){\n\t\t\tvar fromTax = Array.isArray(hotel.amenity_slugs)\n\t\t\t\t? hotel.amenity_slugs.map(function(v){ return String(v || '').trim(); }).filter(Boolean)\n\t\t\t\t: [];\n\t\t\tif (fromTax.length) {\n\t\t\t\t\/\/ Taxonomy slugs are source of truth for destination cards + filtering.\n\t\t\t\treturn Array.from(new Set(fromTax));\n\t\t\t}\n\t\t\tvar fromMeta = String(hotel.amenities || '')\n\t\t\t\t.split(\/[|,]\/)\n\t\t\t\t.map(function(v){ return String(v || '').trim(); })\n\t\t\t\t.filter(Boolean);\n\t\t\treturn Array.from(new Set(fromMeta));\n\t\t}\n\n\t\tfunction collectHotelLatLngs(hotels){\n\t\t\tvar out = [];\n\t\t\t(hotels || []).forEach(function(hotel){\n\t\t\t\tif (typeof hotel.latitude === 'number' && typeof hotel.longitude === 'number') {\n\t\t\t\t\tout.push([hotel.latitude, hotel.longitude]);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn out;\n\t\t}\n\n\t\tfunction continentHotelLatLngs(){\n\t\t\treturn collectHotelLatLngs(\n\t\t\t\tcurrentDestinations().reduce(function(acc, dest){\n\t\t\t\t\treturn acc.concat(dest.hotels || []);\n\t\t\t\t}, [])\n\t\t\t);\n\t\t}\n\n\t\tfunction fitMapToLatLngs(latLngs){\n\t\t\tif (!map || !latLngs.length) { return; }\n\t\t\tif (window.ffhLeafletFit) {\n\t\t\t\twindow.ffhLeafletFit(map, latLngs, [28, 28]);\n\t\t\t} else {\n\t\t\t\tmap.fitBounds(latLngs, { padding: [28, 28], maxZoom: 14 });\n\t\t\t}\n\t\t}\n\n\t\tfunction currentHotels(){\n\t\t\tvar hotels = baseHotelsForView().slice();\n\t\t\tif (filters.search) {\n\t\t\t\tvar needle = filters.search.toLowerCase();\n\t\t\t\thotels = hotels.filter(function(hotel){\n\t\t\t\t\tvar title = String(hotel.title || '').toLowerCase();\n\t\t\t\t\tvar address = String(hotel.address || '').toLowerCase();\n\t\t\t\t\treturn title.indexOf(needle) !== -1 || address.indexOf(needle) !== -1;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (filters.category) {\n\t\t\t\thotels = hotels.filter(function(hotel){\n\t\t\t\t\treturn extractCategoryTokens(hotel).indexOf(filters.category) !== -1;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (filters.amenities.length) {\n\t\t\t\thotels = hotels.filter(function(hotel){\n\t\t\t\t\tvar hotelAmenities = extractAmenityTokens(hotel);\n\t\t\t\t\treturn filters.amenities.every(function(token){\n\t\t\t\t\t\treturn hotelAmenities.indexOf(token) !== -1;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (filters.sort === 'rating_asc') {\n\t\t\t\thotels.sort(function(a, b){\n\t\t\t\t\treturn (parseFloat(a.rating || '0') || 0) - (parseFloat(b.rating || '0') || 0);\n\t\t\t\t});\n\t\t\t} else if (filters.sort === 'name_asc') {\n\t\t\t\thotels.sort(function(a, b){ return String(a.title || '').localeCompare(String(b.title || '')); });\n\t\t\t} else if (filters.sort === 'name_desc') {\n\t\t\t\thotels.sort(function(a, b){ return String(b.title || '').localeCompare(String(a.title || '')); });\n\t\t\t} else {\n\t\t\t\thotels.sort(function(a, b){\n\t\t\t\t\treturn (parseFloat(b.rating || '0') || 0) - (parseFloat(a.rating || '0') || 0);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn hotels;\n\t\t}\n\n\t\tfunction titleizeSlug(slug){\n\t\t\treturn String(slug || '').replace(\/[-_]+\/g, ' ').replace(\/\\b\\w\/g, function(c){ return c.toUpperCase(); });\n\t\t}\n\n\t\tfunction buildDestinationFilterOptions(){\n\t\t\tvar options = ['<option value=\"\">All Destinations<\/option>'];\n\t\t\tcurrentDestinations().forEach(function(dest){\n\t\t\t\tvar selected = String(dest.id) === String(selectedDestinationId) ? ' selected' : '';\n\t\t\t\toptions.push('<option value=\"' + dest.id + '\"' + selected + '>' + dest.name + '<\/option>');\n\t\t\t});\n\t\t\tdestinationFilterSelect.innerHTML = options.join('');\n\t\t}\n\n\t\tfunction escAttr(s){\n\t\t\treturn String(s == null ? '' : s).replace(\/&\/g,'&amp;').replace(\/\"\/g,'&quot;').replace(\/<\/g,'&lt;');\n\t\t}\n\n\t\tfunction buildCategoryFilterOptions(){\n\t\t\tvar used = new Set();\n\t\t\tbaseHotelsForView().forEach(function(hotel){\n\t\t\t\textractCategoryTokens(hotel).forEach(function(t){ used.add(t); });\n\t\t\t});\n\t\t\tvar labels = config.categoryLabels || {};\n\t\t\tvar options = ['<option value=\"\">Select Category<\/option>'];\n\t\t\tArray.from(used).sort(function(a, b){\n\t\t\t\treturn String(labels[a] || a).localeCompare(String(labels[b] || b));\n\t\t\t}).forEach(function(slug){\n\t\t\t\tvar selected = filters.category === slug ? ' selected' : '';\n\t\t\t\tvar lab = labels[slug] || titleizeSlug(slug);\n\t\t\t\toptions.push('<option value=\"' + escAttr(slug) + '\"' + selected + '>' + escAttr(lab) + '<\/option>');\n\t\t\t});\n\t\t\tcategoryFilterSelect.innerHTML = options.join('');\n\t\t}\n\n\t\tfunction renderAmenityModalBody(){\n\t\t\tif (!amenityModalBody) { return; }\n\t\t\tvar sections = Array.isArray(config.amenitySections) ? config.amenitySections : [];\n\t\t\tif (!sections.length) {\n\t\t\t\tamenityModalBody.innerHTML = '<p class=\"ffh-dx-empty\">No amenity groups configured.<\/p>';\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar html = '';\n\t\t\tsections.forEach(function(sec){\n\t\t\t\tvar slugs = Array.isArray(sec.slugs) ? sec.slugs : [];\n\t\t\t\tif (!slugs.length) { return; }\n\t\t\t\tvar checks = slugs.map(function(slug){\n\t\t\t\t\tvar checked = filters.amenities.indexOf(slug) !== -1 ? ' checked' : '';\n\t\t\t\t\treturn '<label class=\"ffh-dx-filter-check\"><input type=\"checkbox\" name=\"ffh-dx-amenity\" value=\"' + escAttr(slug) + '\"' + checked + '> <span>' + escAttr(titleizeSlug(slug)) + '<\/span><\/label>';\n\t\t\t\t}).join('');\n\t\t\t\thtml += ''\n\t\t\t\t\t+ '<section class=\"ffh-dx-amenity-section\">'\n\t\t\t\t\t+ '<h4>' + escAttr(String(sec.title || '')) + '<\/h4>'\n\t\t\t\t\t+ '<div class=\"ffh-dx-amenity-check-grid\">' + checks + '<\/div>'\n\t\t\t\t\t+ '<\/section>';\n\t\t\t});\n\t\t\tamenityModalBody.innerHTML = html || '<p class=\"ffh-dx-empty\">No amenities available.<\/p>';\n\t\t}\n\n\t\tfunction openAmenityModal(){\n\t\t\tif (!amenityModal) { return; }\n\t\t\trenderAmenityModalBody();\n\t\t\tamenityModal.hidden = false;\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t}\n\n\t\tfunction closeAmenityModal(){\n\t\t\tif (!amenityModal || amenityModal.hidden) { return; }\n\t\t\tamenityModal.hidden = true;\n\t\t\tdocument.body.style.overflow = '';\n\t\t}\n\n\t\tfunction hotelCardAmenitiesHtml(hotel){\n\t\t\tvar maxPills = 5;\n\t\t\tvar slugs = extractAmenityTokens(hotel);\n\t\t\tif (!slugs.length) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tslugs.sort(function(a, b){\n\t\t\t\treturn titleizeSlug(a).localeCompare(titleizeSlug(b));\n\t\t\t});\n\t\t\tvar labels = slugs.map(function(s){ return titleizeSlug(s); });\n\t\t\tvar shown = labels.slice(0, maxPills);\n\t\t\tvar extraCount = labels.length - shown.length;\n\t\t\tvar pills = shown.map(function(item){\n\t\t\t\treturn '<span class=\"ffh-dx-amenity\">' + escAttr(item) + '<\/span>';\n\t\t\t}).join('');\n\t\t\tif (extraCount > 0) {\n\t\t\t\tvar restTitle = labels.slice(maxPills).join(', ');\n\t\t\t\tpills += '<span class=\"ffh-dx-amenity ffh-dx-amenity--more\" title=\"' + escAttr(restTitle) + '\">+' + extraCount + ' more<\/span>';\n\t\t\t}\n\t\t\treturn '<div class=\"ffh-dx-amenities\">' + pills + '<\/div>';\n\t\t}\n\n\t\tfunction hotelCard(hotel){\n\t\t\tvar imageHtml = hotel.image ? '<img decoding=\"async\" src=\"' + hotel.image + '\" alt=\"' + hotel.title + '\">' : '<span class=\"ffh-dx-placeholder\"><\/span>';\n\t\t\tvar numericRating = parseFloat(hotel.rating || '');\n\t\t\tvar score = !isNaN(numericRating) ? Math.max(0, Math.min(10, numericRating)) : null;\n\t\t\tvar scorePercent = score !== null ? Math.round(score * 10) : 0;\n\t\t\tvar scoreHtml = '';\n\t\t\tif (score !== null) {\n\t\t\t\tscoreHtml = ''\n\t\t\t\t\t+ '<div class=\"ffh-dx-score-wrap\">'\n\t\t\t\t\t+ '<div class=\"ffh-dx-score-ring\" style=\"--ffh-score:' + scorePercent + ';\">'\n\t\t\t\t\t+ '<span class=\"ffh-dx-score-value\">' + score.toFixed(1) + '<\/span>'\n\t\t\t\t\t+ '<\/div>'\n\t\t\t\t\t+ '<div class=\"ffh-dx-score-label\">FFH Score<\/div>'\n\t\t\t\t\t+ '<\/div>';\n\t\t\t}\n\t\t\tvar address = hotel.address ? '<span class=\"ffh-dx-address\">' + hotel.address + '<\/span>' : '';\n\t\t\tvar amenityHtml = hotelCardAmenitiesHtml(hotel);\n\t\t\treturn ''\n\t\t\t\t+ '<article class=\"ffh-dx-hotel\">'\n\t\t\t\t+ '<a class=\"ffh-dx-hotel-thumb\" href=\"' + hotel.url + '\">' + imageHtml + '<\/a>'\n\t\t\t\t+ '<div class=\"ffh-dx-meta\">'\n\t\t\t\t+ '<a class=\"ffh-dx-title\" href=\"' + hotel.url + '\">' + hotel.title + '<\/a>'\n\t\t\t\t+ address\n\t\t\t\t+ amenityHtml\n\t\t\t\t+ '<\/div>'\n\t\t\t\t+ scoreHtml\n\t\t\t\t+ '<\/article>';\n\t\t}\n\n\t\tfunction renderDestinations(){\n\t\t\tvar destinations = currentDestinations();\n\t\t\tif (!destinations.length) {\n\t\t\t\tdestinationList.innerHTML = '<p class=\"ffh-dx-empty\">No destinations available for this continent yet.<\/p>';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdestinationList.innerHTML = destinations.map(function(dest){\n\t\t\t\tvar imageHtml = dest.image ? '<img decoding=\"async\" src=\"' + dest.image + '\" alt=\"' + dest.name + '\">' : '<span class=\"ffh-dx-placeholder\"><\/span>';\n\t\t\t\tvar context = dest.context ? '<div class=\"ffh-dx-context\"><span class=\"ffh-dx-dot\"><\/span>' + dest.context + '<\/div>' : '';\n\t\t\t\treturn ''\n\t\t\t\t\t+ '<div class=\"ffh-dx-destination\">'\n\t\t\t\t\t+ '<button type=\"button\" class=\"ffh-dx-destination-card\" data-destination-id=\"' + dest.id + '\">'\n\t\t\t\t\t+ '<span class=\"ffh-dx-thumb\">' + imageHtml + '<\/span>'\n\t\t\t\t\t+ '<span class=\"ffh-dx-name-wrap\"><span class=\"ffh-dx-name\">' + dest.name + '<\/span>' + context + '<\/span>'\n\t\t\t\t\t+ '<\/button>'\n\t\t\t\t\t+ '<\/div>';\n\t\t\t}).join('');\n\t\t}\n\n\t\tfunction renderHotelsPanel(){\n\t\t\tif (!selectedDestinationId) {\n\t\t\t\tdestinationList.hidden = false;\n\t\t\t\tdestinationList.style.display = 'flex';\n\t\t\t\thotelPanel.hidden = true;\n\t\t\t\thotelPanel.style.display = 'none';\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdestinationList.hidden = true;\n\t\t\tdestinationList.style.display = 'none';\n\t\t\thotelPanel.hidden = false;\n\t\t\thotelPanel.style.display = 'flex';\n\n\t\t\tvar selected = getSelectedDestination();\n\t\t\tif (!selected) {\n\t\t\t\thotelList.innerHTML = '<p class=\"ffh-dx-empty\">Destination not found.<\/p>';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tbuildDestinationFilterOptions();\n\t\t\tbuildCategoryFilterOptions();\n\t\t\tfilterBadge.textContent = String(filters.amenities.length);\n\n\t\t\tvar hotels = currentHotels();\n\t\t\tfilterCount.textContent = hotels.length + (hotels.length === 1 ? ' hotel matches your filters' : ' hotels match your filters');\n\t\t\tif (!hotels.length) {\n\t\t\t\thotelList.innerHTML = '<p class=\"ffh-dx-empty\">No hotels match these filters.<\/p>';\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thotelList.innerHTML = hotels.map(hotelCard).join('');\n\t\t}\n\n\t\tfunction renderMap(){\n\t\t\tif (!map || !window.L || !markerLayer) { return; }\n\t\t\tclearMarkers();\n\t\t\tvar hotels = currentHotels();\n\t\t\tvar latLngs = collectHotelLatLngs(hotels);\n\n\t\t\thotels.forEach(function(hotel){\n\t\t\t\tif (typeof hotel.latitude !== 'number' || typeof hotel.longitude !== 'number') { return; }\n\t\t\t\tvar marker = L.circleMarker([hotel.latitude, hotel.longitude], {\n\t\t\t\t\tradius: 6,\n\t\t\t\t\tfillColor: '#c49a6c',\n\t\t\t\t\tcolor: '#6d5228',\n\t\t\t\t\tweight: 2,\n\t\t\t\t\topacity: 1,\n\t\t\t\t\tfillOpacity: 0.9\n\t\t\t\t});\n\t\t\t\tvar popupHtml = '<div class=\"ffh-dx-info\"><strong>' + escAttr(hotel.title || '') + '<\/strong>';\n\t\t\t\tif (hotel.address) {\n\t\t\t\t\tpopupHtml += '<br>' + escAttr(hotel.address);\n\t\t\t\t}\n\t\t\t\tpopupHtml += '<\/div>';\n\t\t\t\tmarker.bindPopup(popupHtml, { closeButton: true, autoPan: true, maxWidth: 280, className: 'ffh-dx-map-popup' });\n\t\t\t\tmarker.bindTooltip(String(hotel.title || ''), { sticky: true });\n\t\t\t\tmarkerLayer.addLayer(marker);\n\t\t\t\tmarkers.push(marker);\n\t\t\t});\n\n\t\t\t\/* B2a (2026-07-09): on the \"All\" view with no destination selected and no\n\t\t\t   active search\/filter, show a worldwide overview instead of tightly\n\t\t\t   fitting the (mostly European) markers. Any specific continent, a\n\t\t\t   selected destination, or an active filter keeps the fit-to-markers\n\t\t\t   behavior below. *\/\n\t\t\tvar isGlobalView = (currentContinent() === '' && !selectedDestinationId && !filters.search && !filters.category && (!filters.amenities || !filters.amenities.length));\n\t\t\tif (isGlobalView) {\n\t\t\t\ttry { map.fitWorld({ padding: [10, 10] }); }\n\t\t\t\tcatch (e) { map.setView([25, 0], 2); }\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (latLngs.length) {\n\t\t\t\tfitMapToLatLngs(latLngs);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallback = continentHotelLatLngs();\n\t\t\tif (fallback.length) {\n\t\t\t\tfitMapToLatLngs(fallback);\n\t\t\t}\n\t\t}\n\n\t\tfunction renderAll(){\n\t\t\trenderDestinations();\n\t\t\trenderHotelsPanel();\n\t\t\trenderMap();\n\t\t\tupdateBreadcrumb();\n\t\t}\n\n\t\tfunction initMap(){\n\t\t\tif (!window.L) { return; }\n\t\t\tif (map) {\n\t\t\t\ttry { map.remove(); } catch (e) {}\n\t\t\t\tmap = null;\n\t\t\t\tmarkerLayer = null;\n\t\t\t}\n\t\t\t\/* B2a (2026-07-09): allow this explorer map to zoom out to a true world\n\t\t\t   overview (minZoom 2, below the site-wide default of 3) for both the map\n\t\t\t   and its tile layer, and relax the hard maxBounds so fitWorld\/setView can\n\t\t\t   frame the whole globe on the \"All\" view without snapping back. *\/\n\t\t\tvar mapOpts = window.ffhLeafletMapOpts\n\t\t\t\t? Object.assign({}, window.ffhLeafletMapOpts, { zoomControl: true, minZoom: 2, maxBoundsViscosity: 0.5 })\n\t\t\t\t: { scrollWheelZoom: false, zoomControl: true, minZoom: 2, maxZoom: 18, worldCopyJump: false, maxBounds: [[-85, -180], [85, 180]], maxBoundsViscosity: 0.5 };\n\t\t\tvar tileOpts = window.ffhLeafletTileOpts\n\t\t\t\t? Object.assign({}, window.ffhLeafletTileOpts, { minZoom: 2 })\n\t\t\t\t: { minZoom: 2, maxZoom: 18, noWrap: true, attribution: '\\u00a9 OpenStreetMap' };\n\t\t\tmap = L.map(mapEl, mapOpts);\n\t\t\tL.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png', tileOpts).addTo(map);\n\t\t\tmarkerLayer = L.featureGroup().addTo(map);\n\t\t\trenderAll();\n\t\t\twindow.setTimeout(function(){\n\t\t\t\tif (map && typeof map.invalidateSize === 'function') {\n\t\t\t\t\tmap.invalidateSize(true);\n\t\t\t\t}\n\t\t\t}, 120);\n\t\t}\n\n\t\tfunction bootMap(){\n\t\t\tif (!window.L) {\n\t\t\t\troot.querySelector('.ffh-dx-map-wrap').insertAdjacentHTML('beforeend', '<p class=\"ffh-dx-empty ffh-dx-map-error\">Unable to load map.<\/p>');\n\t\t\t\trenderAll();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tinitMap();\n\t\t}\n\n\t\tcontinentSelect.innerHTML = '<option value=\"\">All Destinations<\/option>' + config.continents.map(function(continent){\n\t\t\treturn '<option value=\"' + continent + '\">' + continent + '<\/option>';\n\t\t}).join('');\n\n\t\tvar defaultContinent = '';\n\t\tvar requestedContinent = String(config.initialContinent || '');\n\t\tif (requestedContinent && config.continents.indexOf(requestedContinent) !== -1) {\n\t\t\tdefaultContinent = requestedContinent;\n\t\t}\n\t\tcontinentSelect.value = defaultContinent;\n\n\t\tcontinentSelect.addEventListener('change', function(){\n\t\t\tselectedDestinationId = '';\n\t\t\tfilters.search = '';\n\t\t\tsearchInput.value = '';\n\t\t\tfilters.category = '';\n\t\t\tfilters.amenities = [];\n\t\t\tcategoryFilterSelect.value = '';\n\t\t\tcloseAmenityModal();\n\t\t\trenderAll();\n\t\t});\n\n\t\tdestinationList.addEventListener('click', function(event){\n\t\t\tvar item = event.target.closest('[data-destination-id]');\n\t\t\tif (!item) { return; }\n\t\t\tselectedDestinationId = String(item.getAttribute('data-destination-id') || '');\n\t\t\t\/\/ Always open a destination with a clean filter state so all hotels are visible first.\n\t\t\tfilters.search = '';\n\t\t\tfilters.sort = 'rating_desc';\n\t\t\tfilters.category = '';\n\t\t\tfilters.amenities = [];\n\t\t\tsearchInput.value = '';\n\t\t\tcategoryFilterSelect.value = '';\n\t\t\tsortSelect.value = 'rating_desc';\n\t\t\tcloseAmenityModal();\n\t\t\trenderAll();\n\t\t});\n\t\tbackButton.addEventListener('click', function(){\n\t\t\tselectedDestinationId = '';\n\t\t\tfilters.search = '';\n\t\t\tfilters.category = '';\n\t\t\tfilters.amenities = [];\n\t\t\tsearchInput.value = '';\n\t\t\tcategoryFilterSelect.value = '';\n\t\t\tcloseAmenityModal();\n\t\t\trenderAll();\n\t\t});\n\t\tdestinationFilterSelect.addEventListener('change', function(){\n\t\t\tselectedDestinationId = String(destinationFilterSelect.value || '');\n\t\t\tif (!selectedDestinationId) {\n\t\t\t\tdestinationList.hidden = false;\n\t\t\t\tdestinationList.style.display = 'flex';\n\t\t\t\thotelPanel.hidden = true;\n\t\t\t\thotelPanel.style.display = 'none';\n\t\t\t}\n\t\t\tcloseAmenityModal();\n\t\t\trenderAll();\n\t\t});\n\t\tcategoryFilterSelect.addEventListener('change', function(){\n\t\t\tfilters.category = String(categoryFilterSelect.value || '');\n\t\t\trenderAll();\n\t\t});\n\t\tsearchInput.addEventListener('input', function(){\n\t\t\tfilters.search = String(searchInput.value || '').trim();\n\t\t\trenderAll();\n\t\t});\n\t\tsortSelect.addEventListener('change', function(){\n\t\t\tfilters.sort = String(sortSelect.value || 'rating_desc');\n\t\t\trenderAll();\n\t\t});\n\t\tfilterToggleButton.addEventListener('click', function(e){\n\t\t\te.preventDefault();\n\t\t\tif (!amenityModal) { return; }\n\t\t\tif (amenityModal.hidden) {\n\t\t\t\topenAmenityModal();\n\t\t\t} else {\n\t\t\t\tcloseAmenityModal();\n\t\t\t}\n\t\t});\n\t\tif (amenityModalBackdrop) {\n\t\t\tamenityModalBackdrop.addEventListener('click', function(){ closeAmenityModal(); });\n\t\t}\n\t\tif (amenityModalClose) {\n\t\t\tamenityModalClose.addEventListener('click', function(){ closeAmenityModal(); });\n\t\t}\n\t\t\/\/ Capture-phase delegation: avoids parent stopPropagation \/ theme quirks blocking footer buttons.\n\t\tif (amenityModal) {\n\t\t\tamenityModal.addEventListener('click', function(ev){\n\t\t\t\tif (!amenityModalBody) { return; }\n\t\t\t\tvar t = ev.target;\n\t\t\t\tif (!t || !t.closest) { return; }\n\t\t\t\tif (t.closest('.ffh-dx-amenity-modal-clear')) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t\tev.stopPropagation();\n\t\t\t\t\tamenityModalBody.querySelectorAll('input[type=\"checkbox\"]').forEach(function(inp){ inp.checked = false; });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (t.closest('.ffh-dx-amenity-modal-apply')) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t\tev.stopPropagation();\n\t\t\t\t\tvar next = [];\n\t\t\t\t\tamenityModalBody.querySelectorAll('input[type=\"checkbox\"]:checked').forEach(function(inp){\n\t\t\t\t\t\tvar v = String(inp.value || '').trim();\n\t\t\t\t\t\tif (v && next.indexOf(v) === -1) { next.push(v); }\n\t\t\t\t\t});\n\t\t\t\t\tfilters.amenities = next;\n\t\t\t\t\tfilterBadge.textContent = String(filters.amenities.length);\n\t\t\t\t\tcloseAmenityModal();\n\t\t\t\t\trenderAll();\n\t\t\t\t}\n\t\t\t}, true);\n\t\t}\n\t\tdocument.addEventListener('keydown', function(ev){\n\t\t\tif (ev.key !== 'Escape') { return; }\n\t\t\tif (!amenityModal || amenityModal.hidden) { return; }\n\t\t\tif (!root.contains(amenityModal)) { return; }\n\t\t\tcloseAmenityModal();\n\t\t});\n\t\tclearFiltersButton.addEventListener('click', function(){\n\t\t\tfilters.search = '';\n\t\t\tfilters.sort = 'rating_desc';\n\t\t\tfilters.category = '';\n\t\t\tfilters.amenities = [];\n\t\t\tsearchInput.value = '';\n\t\t\tcategoryFilterSelect.value = '';\n\t\t\tsortSelect.value = 'rating_desc';\n\t\t\tcloseAmenityModal();\n\t\t\trenderAll();\n\t\t});\n\n\t\tif (document.readyState === 'loading') {\n\t\t\tdocument.addEventListener('DOMContentLoaded', bootMap);\n\t\t} else {\n\t\t\tbootMap();\n\t\t}\n\t})();\n\t<\/script>\n\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Destinos<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-3848","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/finestfamilyhotels.com\/es\/wp-json\/wp\/v2\/pages\/3848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/finestfamilyhotels.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/finestfamilyhotels.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/finestfamilyhotels.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/finestfamilyhotels.com\/es\/wp-json\/wp\/v2\/comments?post=3848"}],"version-history":[{"count":10,"href":"https:\/\/finestfamilyhotels.com\/es\/wp-json\/wp\/v2\/pages\/3848\/revisions"}],"predecessor-version":[{"id":5469,"href":"https:\/\/finestfamilyhotels.com\/es\/wp-json\/wp\/v2\/pages\/3848\/revisions\/5469"}],"wp:attachment":[{"href":"https:\/\/finestfamilyhotels.com\/es\/wp-json\/wp\/v2\/media?parent=3848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}