{"id":1069,"date":"2026-06-25T19:18:16","date_gmt":"2026-06-25T19:18:16","guid":{"rendered":"https:\/\/ccmexico.com.mx\/turismo\/?page_id=1069"},"modified":"2026-06-25T19:28:06","modified_gmt":"2026-06-25T19:28:06","slug":"convenios-con-hoteles-nacionales","status":"publish","type":"page","link":"https:\/\/ccmexico.com.mx\/turismo\/convenios-con-hoteles-nacionales\/","title":{"rendered":"CONVENIOS CON HOTELES NACIONALES"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1069\" class=\"elementor elementor-1069\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0cfe6b3 e-flex e-con-boxed e-con e-parent\" data-id=\"0cfe6b3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b0897ae elementor-widget elementor-widget-heading\" data-id=\"b0897ae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">CONVENIOS CON HOTELES INTERNACIONALES<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3278760 e-flex e-con-boxed e-con e-parent\" data-id=\"3278760\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0b7e7b2 elementor-widget elementor-widget-html\" data-id=\"0b7e7b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"es\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Convenios Hoteles 2026<\/title>\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.9.4\/leaflet.min.css\"\/>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.9.4\/leaflet.min.js\"><\/script>\r\n<style>\r\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');\r\n\r\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\r\n\r\n  :root {\r\n    --navy: #0f1f3d;\r\n    --gold: #c9973a;\r\n    --gold-light: #e8c07a;\r\n    --cream: #f8f5ef;\r\n    --white: #ffffff;\r\n    --text: #1a1a2e;\r\n    --text-muted: #6b7280;\r\n    --border: #e2d9cc;\r\n    --panel-bg: #fafaf8;\r\n    --hover: #f0ebe2;\r\n    --active: #eee5d3;\r\n    --radius: 6px;\r\n  }\r\n\r\n  html, body {\r\n    height: 100%;\r\n    font-family: 'Inter', sans-serif;\r\n    color: var(--text);\r\n  }\r\n\r\n\r\n  \/* \u2500\u2500 DESKTOP LAYOUT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  .app {\r\n    display: flex;\r\n    height: calc(100vh - 62px);\r\n    margin-top: 62px;\r\n  }\r\n\r\n  \/* \u2500\u2500 LEFT PANEL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  .panel {\r\n    width: 360px;\r\n    min-width: 260px;\r\n    max-width: 420px;\r\n    background: var(--panel-bg);\r\n    border-right: 1px solid var(--border);\r\n    display: flex;\r\n    flex-direction: column;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .panel-top {\r\n    padding: 16px 16px 12px;\r\n    border-bottom: 1px solid var(--border);\r\n    background: var(--white);\r\n  }\r\n\r\n  .search-box {\r\n    position: relative;\r\n  }\r\n\r\n  .search-box input {\r\n    width: 100%;\r\n    padding: 9px 12px 9px 36px;\r\n    border: 1.5px solid var(--border);\r\n    border-radius: var(--radius);\r\n    font-size: .87rem;\r\n    font-family: inherit;\r\n    background: var(--cream);\r\n    color: var(--text);\r\n    transition: border-color .2s;\r\n    outline: none;\r\n  }\r\n\r\n  .search-box input:focus { border-color: var(--gold); background: var(--white); }\r\n\r\n  .search-box .ico {\r\n    position: absolute;\r\n    left: 10px; top: 50%;\r\n    transform: translateY(-50%);\r\n    color: var(--text-muted);\r\n    font-size: 14px;\r\n    pointer-events: none;\r\n  }\r\n\r\n  .country-count {\r\n    font-size: .72rem;\r\n    color: var(--text-muted);\r\n    margin-top: 8px;\r\n    text-align: right;\r\n  }\r\n\r\n  .countries-list {\r\n    flex: 1;\r\n    overflow-y: auto;\r\n    padding: 8px 0;\r\n  }\r\n\r\n  .countries-list::-webkit-scrollbar { width: 5px; }\r\n  .countries-list::-webkit-scrollbar-track { background: transparent; }\r\n  .countries-list::-webkit-scrollbar-thumb { background: var(--border); border-radius: 10px; }\r\n\r\n  .country-item {\r\n    border-bottom: 1px solid var(--border);\r\n  }\r\n\r\n  .country-btn {\r\n    width: 100%;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 10px;\r\n    padding: 11px 16px;\r\n    background: none;\r\n    border: none;\r\n    cursor: pointer;\r\n    text-align: left;\r\n    font-family: inherit;\r\n    transition: background .15s;\r\n  }\r\n\r\n  .country-btn:hover { background: var(--hover); }\r\n  .country-btn.active { background: var(--active); }\r\n  .country-btn.selected { background: #e8c07a22; border-left: 3px solid var(--gold); }\r\n\r\n  .country-flag {\r\n    font-size: 1.3rem;\r\n    line-height: 1;\r\n    flex-shrink: 0;\r\n  }\r\n\r\n  .country-info { flex: 1; min-width: 0; }\r\n\r\n  .country-name {\r\n    font-size: .88rem;\r\n    font-weight: 600;\r\n    color: var(--text);\r\n    white-space: nowrap;\r\n    overflow: hidden;\r\n    text-overflow: ellipsis;\r\n  }\r\n\r\n  .hotel-count {\r\n    font-size: .72rem;\r\n    color: var(--text-muted);\r\n  }\r\n\r\n  .chevron {\r\n    color: var(--text-muted);\r\n    font-size: .65rem;\r\n    transition: transform .2s;\r\n    flex-shrink: 0;\r\n  }\r\n\r\n  .country-btn.open .chevron { transform: rotate(90deg); }\r\n\r\n  .hotels-sub {\r\n    display: none;\r\n    background: var(--white);\r\n    border-top: 1px solid var(--border);\r\n  }\r\n\r\n  .hotels-sub.open { display: block; }\r\n\r\n  .hotel-item {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    padding: 7px 16px 7px 42px;\r\n    font-size: .81rem;\r\n    color: #374151;\r\n    border-bottom: 1px solid #f3ede4;\r\n    cursor: pointer;\r\n    transition: background .12s;\r\n  }\r\n\r\n  .hotel-item:last-child { border-bottom: none; }\r\n  .hotel-item:hover { background: var(--hover); color: var(--navy); }\r\n\r\n  .hotel-item::before {\r\n    content: '\ud83c\udfe8';\r\n    font-size: .8rem;\r\n    flex-shrink: 0;\r\n  }\r\n\r\n  \/* \u2500\u2500 MAP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  .map-wrap {\r\n    flex: 1;\r\n    position: relative;\r\n    overflow: hidden;\r\n  }\r\n\r\n  #map {\r\n    width: 100%;\r\n    height: 100%;\r\n  }\r\n\r\n  .map-overlay {\r\n    position: absolute;\r\n    top: 12px; right: 12px;\r\n    background: rgba(255,255,255,.95);\r\n    border-radius: var(--radius);\r\n    padding: 10px 14px;\r\n    font-size: .78rem;\r\n    color: var(--text-muted);\r\n    pointer-events: none;\r\n    z-index: 500;\r\n    box-shadow: 0 2px 8px rgba(0,0,0,.12);\r\n    backdrop-filter: blur(4px);\r\n  }\r\n\r\n  \/* \u2500\u2500 MOBILE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  @media (max-width: 768px) {\r\n    header h1 { font-size: 1rem; }\r\n    .header-stats { display: none; }\r\n\r\n    .app {\r\n      flex-direction: column;\r\n    }\r\n\r\n    .panel {\r\n      width: 100%;\r\n      max-width: 100%;\r\n      height: 100%;\r\n      border-right: none;\r\n    }\r\n\r\n    .map-wrap {\r\n      display: none;\r\n    }\r\n\r\n    \/* Mobile accordion style *\/\r\n    .country-btn {\r\n      padding: 14px 16px;\r\n    }\r\n\r\n    .country-name { font-size: .92rem; }\r\n\r\n    .hotel-item {\r\n      padding: 10px 16px 10px 46px;\r\n      font-size: .84rem;\r\n    }\r\n  }\r\n\r\n  \/* Leaflet popup custom *\/\r\n  .leaflet-popup-content-wrapper {\r\n    border-radius: 8px !important;\r\n    box-shadow: 0 4px 20px rgba(0,0,0,.18) !important;\r\n    font-family: 'Inter', sans-serif !important;\r\n  }\r\n\r\n  .popup-inner h3 {\r\n    font-size: .9rem;\r\n    font-weight: 700;\r\n    color: var(--navy);\r\n    margin-bottom: 6px;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n  }\r\n\r\n  .popup-inner .hotel-list {\r\n    list-style: none;\r\n    max-height: 180px;\r\n    overflow-y: auto;\r\n    padding-right: 4px;\r\n  }\r\n\r\n  .popup-inner .hotel-list li {\r\n    font-size: .77rem;\r\n    color: #374151;\r\n    padding: 3px 0;\r\n    border-bottom: 1px solid #f3ede4;\r\n  }\r\n\r\n  .popup-inner .hotel-list li:last-child { border-bottom: none; }\r\n  .popup-total {\r\n    margin-top: 6px;\r\n    font-size: .72rem;\r\n    color: var(--gold);\r\n    font-weight: 600;\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div class=\"app\">\r\n  <!-- LEFT PANEL -->\r\n  <aside class=\"panel\">\r\n    <div class=\"panel-top\">\r\n      <div class=\"search-box\">\r\n        <span class=\"ico\">\ud83d\udd0d<\/span>\r\n        <input type=\"text\" id=\"searchInput\" placeholder=\"Buscar pa\u00eds u hotel...\" autocomplete=\"off\"\/>\r\n      <\/div>\r\n      <div class=\"country-count\" id=\"countLabel\">15 pa\u00edses \u00b7 97 hoteles<\/div>\r\n    <\/div>\r\n    <div class=\"countries-list\" id=\"countriesList\"><\/div>\r\n  <\/aside>\r\n\r\n  <!-- MAP -->\r\n  <div class=\"map-wrap\">\r\n    <div id=\"map\"><\/div>\r\n    <div class=\"map-overlay\">Haz clic en un pa\u00eds para ver sus hoteles<\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\nconst HOTEL_DATA = {\"Belize\":[\"Best Western Plus Belize Biltmore Plaza\",\"Best Western Grand Baymen\"],\"Brasil\":[\"Comfort Hotel & Suites Natal\",\"Comfort Hotel Franca\",\"Comfort Hotel Goiania\",\"Comfort Hotel Guarulhos Airport\",\"Comfort Hotel Manaus\",\"Comfort Hotel Sertaozinho\",\"Comfort Suites Alphaville\",\"Comfort Suites Flamboyant\",\"Comfort Suites  Londrina\",\"Comfort Suites Sao Jose Do Rio Preto\",\"Comfort Suites Vitoria\",\"Quality Hotel Blumenau\",\"Quuality Hotel Goiania\",\"Quuality Hotel Manaus\",\"Quuality Hotel Pampulha\",\"Quuality Hotel Vitoria\",\"Quuality Suites Alphaville\",\"Quuality Suites Joao Pessoa\",\"Quuality Suites Oscar Freire\",\"Quuality Suites Vila Velha\",\"Radisson Blu Belo Horizonte Savassi\",\"Radisson Blu Sao Paulo\",\"Radisson Hotel Alphaville\",\"Radisson Hotel Anapolis\",\"Radisson Villa Olimpica Sao Paulo\",\"Radisson Hotel Maiorana Belem\",\"Radisson Red Campinas\",\"Radisson Red Ibirapuera\",\"Rdisson Hotel Barra Rio de Janeiro\",\"Radisson Hotel Oscar Freire\",\"Radisson Hotel Paulista Sao Paulo\",\"Radisson Hotel Pinheiros Sao Paulo\",\"Radisson Hotel Recife\",\"Sleep Inn Guarulhos\",\"Clarion Hotel Faria Lima\",\"Comfort Hotel Fortaleza\",\"Comfort Hotel Ibirapuera\",\"Comfort Hotel Mogi Guacu\",\"Comfort Hotel Sao Caetano\",\"Comfort Hotel Serra da Canastra\",\"Comfort Suites Brasilia\",\"Sleep Inn Vitoria\"],\"Chile\":[\"Park Inn by Radisson Puerto Varas\",\"Radisson Blu Acqua Hotel and Spa Concon\",\"Hotel Radisson Hotel Curico\",\"Radisson Blu Plaza el Bosque Santiago\",\"Radisson Hotel Puerto Varas\"],\"Colombia\":[\"Exe Bacat\u00e1 95\",\"Eurostars Marqu\u00e9s de Villalta\",\"Faranda Collection Barranquilla a Membrer of Radis\",\"Faranda Collection Bogot\u00e1 a Membrer of Radisson In\",\"Faranda Collection Cali a Membrer of Radisson Indi\",\"Faranda Collection Cartagena a Membrer of Radisson Indi\",\"Faranda Collection Medellin a Membrer of Radisson\",\"Hotel Bantu By Faranda Boutique a Member of Radis\",\"Hotel Caribe By Faranda Grand a Member of Radisson\",\"Hotel Casa Don Luis by Faranda Boutique a member\",\"Hotel Casa La Factoria by Faranda Boutique a member\",\"Hotel Faranda Bolivar Cucuta Radisson\",\"Htl Faranda Exp Puerta del Sol\",\"Radisson Bogot\u00e1 Metrotel\",\"Radisson Cartagena Ocean Pavillion Hotel\",\"Radisson Hotel Diamond Barranquilla\"],\"Costa Rica\":[\"Barcel\u00f3 San Jos\u00e9\",\"Best Western El Sitio\",\"Radisson San Jos\u00e9\",\"Best Western Hotel & Casino Kamuk\"],\"Ecuador\":[\"Grand Hotel Guayaquil Ascend Hotel Collection\",\"Park Inn By Radisson Quito\",\"Radisson Hotel Guayaquil\"],\"El Salvador\":[\"Barcel\u00f3 San Salvador\",\"Quality Hotel Real Aeropuerto\"],\"Estados Unidos\":[\"Comfort Inn and suites Levittown\",\"Hotel Ramada Gateway Orlando\",\"Holiday Inn Express & Suites Dallas North- Addison\",\"Hampton Inn & Suites Schertz\",\"Radisson Blu Aruba\"],\"Guatemala\":[\"Barcel\u00f3 Guatemala City\",\"Best Western Plus Stofella\",\"Clarion Suites Guatemala City\"],\"Honduras\":[\"Clarion Hotel San Pedro Sula\",\"Comfort Inn Tegucigalpa\",\"Clarion Hotel Real Tegucigalpa\"],\"Nicaragua\":[\"Best Western Las Mercedes Airport\"],\"Panam\u00e1\":[\"Best Western Plus Panam\u00e1 Zen\",\"Hotel Bambito by Faranda\",\"Hotel El Panama by Faranda Grand a member of Radis\",\"Hotel Faranda Express Soloy and Casino\",\"Hotel Faranda Guayacanes Radisson\",\"Radisson Riviera Panam\u00e1\",\"Radisson Hotel Panam\u00e1 Canal\"],\"Per\u00fa\":[\"Radisson Hotel Decapolis Miraflores\",\"Radisson Red Miraflores\"],\"Rep\u00fabica Dominicana\":[\"Radisson Hotel Santo Domingo\"],\"Trinidad y Tobago\":[\"Radisson Hotel Trinidad\"]};\r\n\r\nconst COORDS = {\r\n  \"Belize\": [17.1899, -88.4976],\r\n  \"Brasil\": [-14.235, -51.9253],\r\n  \"Chile\": [-35.6751, -71.5430],\r\n  \"Colombia\": [4.5709, -74.2973],\r\n  \"Costa Rica\": [9.7489, -83.7534],\r\n  \"Ecuador\": [-1.8312, -78.1834],\r\n  \"El Salvador\": [13.7942, -88.8965],\r\n  \"Estados Unidos\": [37.0902, -95.7129],\r\n  \"Guatemala\": [15.7835, -90.2308],\r\n  \"Honduras\": [15.2, -86.2419],\r\n  \"Nicaragua\": [12.8654, -85.2072],\r\n  \"Panam\u00e1\": [8.538, -80.7821],\r\n  \"Per\u00fa\": [-9.19, -75.0152],\r\n  \"Rep\u00fabica Dominicana\": [18.7357, -70.1627],\r\n  \"Trinidad y Tobago\": [10.6918, -61.2225]\r\n};\r\n\r\nconst FLAGS = {\r\n  \"Belize\":\"\ud83c\udde7\ud83c\uddff\",\"Brasil\":\"\ud83c\udde7\ud83c\uddf7\",\"Chile\":\"\ud83c\udde8\ud83c\uddf1\",\"Colombia\":\"\ud83c\udde8\ud83c\uddf4\",\r\n  \"Costa Rica\":\"\ud83c\udde8\ud83c\uddf7\",\"Ecuador\":\"\ud83c\uddea\ud83c\udde8\",\"El Salvador\":\"\ud83c\uddf8\ud83c\uddfb\",\r\n  \"Estados Unidos\":\"\ud83c\uddfa\ud83c\uddf8\",\"Guatemala\":\"\ud83c\uddec\ud83c\uddf9\",\"Honduras\":\"\ud83c\udded\ud83c\uddf3\",\r\n  \"Nicaragua\":\"\ud83c\uddf3\ud83c\uddee\",\"Panam\u00e1\":\"\ud83c\uddf5\ud83c\udde6\",\"Per\u00fa\":\"\ud83c\uddf5\ud83c\uddea\",\r\n  \"Rep\u00fabica Dominicana\":\"\ud83c\udde9\ud83c\uddf4\",\"Trinidad y Tobago\":\"\ud83c\uddf9\ud83c\uddf9\"\r\n};\r\n\r\n\/\/ \u2500\u2500 MAP INIT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst map = L.map('map', { zoomControl: true }).setView([5, -75], 3);\r\n\r\nL.tileLayer('https:\/\/{s}.basemaps.cartocdn.com\/rastertiles\/voyager\/{z}\/{x}\/{y}{r}.png', {\r\n  attribution: '\u00a9 OpenStreetMap \u00a9 CARTO',\r\n  subdomains: 'abcd', maxZoom: 19\r\n}).addTo(map);\r\n\r\nconst markerIcon = (count) => L.divIcon({\r\n  html: `<div style=\"\r\n    background: #0f1f3d;\r\n    color: #fff;\r\n    border: 2.5px solid #c9973a;\r\n    border-radius: 50%;\r\n    width: 36px; height: 36px;\r\n    display: flex; align-items: center; justify-content: center;\r\n    font-size: .72rem; font-weight: 700;\r\n    font-family: Inter, sans-serif;\r\n    box-shadow: 0 2px 8px rgba(0,0,0,.3);\r\n  \">${count}<\/div>`,\r\n  className: '',\r\n  iconSize: [36, 36],\r\n  iconAnchor: [18, 18]\r\n});\r\n\r\nconst markers = {};\r\n\r\nObject.entries(HOTEL_DATA).forEach(([country, hotels]) => {\r\n  const coords = COORDS[country];\r\n  if (!coords) return;\r\n\r\n  const m = L.marker(coords, { icon: markerIcon(hotels.length) }).addTo(map);\r\n\r\n  const hotelList = hotels.slice(0, 20).map(h => `<li>${h}<\/li>`).join('');\r\n  const more = hotels.length > 20 ? `<div class=\"popup-total\">+${hotels.length - 20} hoteles m\u00e1s<\/div>` : '';\r\n\r\n  m.bindPopup(`\r\n    <div class=\"popup-inner\">\r\n      <h3>${FLAGS[country] || '\ud83c\udfe8'} ${country}<\/h3>\r\n      <ul class=\"hotel-list\">${hotelList}<\/ul>\r\n      ${more}\r\n      <div class=\"popup-total\">${hotels.length} hotel${hotels.length !== 1 ? 'es' : ''} en convenio<\/div>\r\n    <\/div>\r\n  `, { maxWidth: 260 });\r\n\r\n  m.on('click', () => selectCountry(country));\r\n  markers[country] = m;\r\n});\r\n\r\n\/\/ \u2500\u2500 PANEL BUILD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst list = document.getElementById('countriesList');\r\nconst searchInput = document.getElementById('searchInput');\r\n\r\nlet allCountries = Object.keys(HOTEL_DATA).sort((a, b) => a.localeCompare(b, 'es'));\r\n\r\nfunction buildList(query = '') {\r\n  const q = query.toLowerCase().trim();\r\n  list.innerHTML = '';\r\n  let matchedCountries = 0;\r\n  let matchedHotels = 0;\r\n\r\n  allCountries.forEach(country => {\r\n    const hotels = HOTEL_DATA[country];\r\n    const countryMatch = country.toLowerCase().includes(q);\r\n    const matchingHotels = q ? hotels.filter(h => h.toLowerCase().includes(q)) : hotels;\r\n\r\n    if (!countryMatch && matchingHotels.length === 0) return;\r\n\r\n    matchedCountries++;\r\n    matchedHotels += matchingHotels.length;\r\n\r\n    const item = document.createElement('div');\r\n    item.className = 'country-item';\r\n    item.dataset.country = country;\r\n\r\n    const btn = document.createElement('button');\r\n    btn.className = 'country-btn';\r\n    btn.innerHTML = `\r\n      <span class=\"country-flag\">${FLAGS[country] || '\ud83c\udf10'}<\/span>\r\n      <div class=\"country-info\">\r\n        <div class=\"country-name\">${country}<\/div>\r\n        <div class=\"hotel-count\">${matchingHotels.length} hotel${matchingHotels.length !== 1 ? 'es' : ''}<\/div>\r\n      <\/div>\r\n      <span class=\"chevron\">\u25b6<\/span>\r\n    `;\r\n\r\n    const sub = document.createElement('div');\r\n    sub.className = 'hotels-sub';\r\n    if (q) sub.classList.add('open'), btn.classList.add('open');\r\n\r\n    matchingHotels.forEach(h => {\r\n      const hi = document.createElement('div');\r\n      hi.className = 'hotel-item';\r\n      hi.textContent = h;\r\n      hi.addEventListener('click', () => {\r\n        const coords = COORDS[country];\r\n        if (coords) map.flyTo(coords, 8, { duration: 1.2 });\r\n        markers[country]?.openPopup();\r\n      });\r\n      sub.appendChild(hi);\r\n    });\r\n\r\n    btn.addEventListener('click', () => {\r\n      const isOpen = sub.classList.contains('open');\r\n      \/\/ Close others\r\n      list.querySelectorAll('.hotels-sub.open').forEach(s => {\r\n        s.classList.remove('open');\r\n        s.previousElementSibling.classList.remove('open', 'selected');\r\n      });\r\n      if (!isOpen) {\r\n        sub.classList.add('open');\r\n        btn.classList.add('open', 'selected');\r\n        selectCountry(country);\r\n      }\r\n    });\r\n\r\n    item.appendChild(btn);\r\n    item.appendChild(sub);\r\n    list.appendChild(item);\r\n  });\r\n\r\n  document.getElementById('countLabel').textContent =\r\n    q ? `${matchedCountries} pa\u00edses \u00b7 ${matchedHotels} hoteles encontrados`\r\n      : `${allCountries.length} pa\u00edses \u00b7 97 hoteles`;\r\n}\r\n\r\nfunction selectCountry(country) {\r\n  const coords = COORDS[country];\r\n  if (coords && window.innerWidth > 768) {\r\n    map.flyTo(coords, country === 'Espa\u00f1a' ? 5 : 4, { duration: 1.2 });\r\n    setTimeout(() => markers[country]?.openPopup(), 1200);\r\n  }\r\n  \/\/ Highlight in panel\r\n  list.querySelectorAll('.country-btn').forEach(b => b.classList.remove('selected'));\r\n  const item = list.querySelector(`[data-country=\"${country}\"] .country-btn`);\r\n  if (item) {\r\n    item.classList.add('selected');\r\n    item.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\r\n  }\r\n}\r\n\r\nsearchInput.addEventListener('input', e => buildList(e.target.value));\r\n\r\nbuildList();\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\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>CONVENIOS CON HOTELES INTERNACIONALES Convenios Hoteles 2026 ???? 15 pa\u00edses \u00b7 97 hoteles Haz clic en un pa\u00eds para ver [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1069","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ccmexico.com.mx\/turismo\/wp-json\/wp\/v2\/pages\/1069","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ccmexico.com.mx\/turismo\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ccmexico.com.mx\/turismo\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ccmexico.com.mx\/turismo\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ccmexico.com.mx\/turismo\/wp-json\/wp\/v2\/comments?post=1069"}],"version-history":[{"count":12,"href":"https:\/\/ccmexico.com.mx\/turismo\/wp-json\/wp\/v2\/pages\/1069\/revisions"}],"predecessor-version":[{"id":1182,"href":"https:\/\/ccmexico.com.mx\/turismo\/wp-json\/wp\/v2\/pages\/1069\/revisions\/1182"}],"wp:attachment":[{"href":"https:\/\/ccmexico.com.mx\/turismo\/wp-json\/wp\/v2\/media?parent=1069"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}