{"id":1956,"date":"2026-03-03T00:24:00","date_gmt":"2026-03-02T22:24:00","guid":{"rendered":"https:\/\/www.kanamitravel.com\/blog\/?page_id=1956"},"modified":"2026-03-03T23:33:13","modified_gmt":"2026-03-03T21:33:13","slug":"viajes-mayores-55-circuitos-europa","status":"publish","type":"page","link":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/","title":{"rendered":"Europa para mayores de 55 Comunidad de Madrid"},"content":{"rendered":"\n<!-- ============================================================\n     KANAMI TRAVEL \u00b7 Bloque WordPress\n     Pegar en Editor Cl\u00e1sico > pesta\u00f1a \"HTML\"\n     URL: kanamitravel.com\/blog\/viajes-mayores-55-circuitos-europa\n     ============================================================ -->\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n.km-wrap {\n  font-family: 'DM Sans', sans-serif;\n  font-weight: 300;\n  color: #1a1510;\n  background: #f5f0e8;\n  padding: 0 0 60px;\n}\n\n\/* \u2500\u2500 PRESENTACI\u00d3N \u2500\u2500 *\/\n.km-seo {\n  background: #1a1510;\n  color: #f5f0e8;\n  padding: 64px 48px;\n  position: relative;\n  overflow: hidden;\n}\n.km-seo::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background: radial-gradient(ellipse 60% 80% at 90% 50%, rgba(184,147,58,0.10) 0%, transparent 60%);\n  pointer-events: none;\n}\n.km-seo-label {\n  font-size: 10px;\n  letter-spacing: 4px;\n  text-transform: uppercase;\n  color: #b8933a;\n  margin-bottom: 20px;\n  display: block;\n}\n.km-seo h1 {\n  font-family: 'Cormorant Garamond', serif;\n  font-size: clamp(28px, 4vw, 56px);\n  font-weight: 300;\n  line-height: 1.05;\n  color: #f5f0e8;\n  margin: 0 0 24px;\n  max-width: 700px;\n}\n.km-seo h1 em { font-style: italic; color: #b8933a; }\n.km-seo-intro {\n  font-size: 16px;\n  line-height: 1.75;\n  color: rgba(245,240,232,0.80);\n  max-width: 680px;\n  margin: 0;\n}\n.km-seo-intro strong { color: #f5f0e8; font-weight: 400; }\n.km-aviso {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  margin-top: 28px;\n  background: rgba(184,147,58,0.12);\n  border: 1px solid rgba(184,147,58,0.30);\n  border-radius: 3px;\n  padding: 10px 18px;\n  font-size: 12px;\n  letter-spacing: 1px;\n  color: #d4a84b;\n}\n\n\/* \u2500\u2500 FILTROS \u2500\u2500 *\/\n.km-filters { padding: 36px 48px 28px; border-bottom: 1px solid #e0d8cc; background: #f5f0e8; }\n.km-filters-wrap { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }\n.km-filter-label { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: #8a8278; margin-right: 6px; }\n.km-btn {\n  border: 1px solid #e0d8cc;\n  background: transparent;\n  color: #1a1510;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 11px;\n  letter-spacing: 1px;\n  padding: 7px 16px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  border-radius: 2px;\n}\n.km-btn:hover, .km-btn.km-active { background: #1a1510; color: #f5f0e8; border-color: #1a1510; }\n.km-search-wrap { margin-left: auto; position: relative; }\n.km-search {\n  border: 1px solid #e0d8cc;\n  background: transparent;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 13px;\n  padding: 7px 14px 7px 34px;\n  color: #1a1510;\n  border-radius: 2px;\n  width: 200px;\n  outline: none;\n}\n.km-search::placeholder { color: #8a8278; }\n.km-search:focus { border-color: #b8933a; }\n.km-search-icon { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: #8a8278; font-size: 13px; pointer-events: none; }\n\n\/* \u2500\u2500 GRID \u2500\u2500 *\/\n.km-grid-section { padding: 44px 48px 20px; background: #f5f0e8; }\n.km-grid-header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 32px; }\n.km-grid-title { font-family: 'Cormorant Garamond', serif; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: #8a8278; }\n.km-count-wrap { font-family: 'Cormorant Garamond', serif; font-size: 13px; color: #8a8278; }\n.km-count-wrap span { font-size: 22px; color: #b8933a; }\n.km-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1px; background: #e0d8cc; }\n\n\/* \u2500\u2500 TARJETA \u2500\u2500 *\/\n.km-card {\n  background: #faf7f2;\n  padding: 28px 24px;\n  display: flex;\n  flex-direction: column;\n  gap: 14px;\n  position: relative;\n  overflow: hidden;\n  transition: background 0.2s;\n}\n.km-card::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: #b8933a; transition: width 0.3s ease; }\n.km-card:hover { background: #fff; }\n.km-card:hover::after { width: 100%; }\n.km-card-code { font-size: 10px; letter-spacing: 2px; color: #b8933a; text-transform: uppercase; font-weight: 500; }\n.km-card-title { font-family: 'Cormorant Garamond', serif; font-size: 19px; font-weight: 400; line-height: 1.25; color: #1a1510; }\n.km-card-cta { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: #b8933a; text-decoration: none; transition: gap 0.2s; }\n.km-card-cta:hover { gap: 13px; }\n.km-card-cta.km-soon { color: #e0d8cc; pointer-events: none; }\n.km-card-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 10px; border-top: 1px solid #e0d8cc; margin-top: auto; }\n.km-duration { display: flex; align-items: center; gap: 6px; }\n.km-duration-num { font-family: 'Cormorant Garamond', serif; font-size: 26px; color: #1a1510; line-height: 1; }\n.km-duration-text { display: flex; flex-direction: column; font-size: 9px; letter-spacing: 1px; text-transform: uppercase; color: #8a8278; line-height: 1.4; }\n.km-tag { font-size: 9px; padding: 3px 9px; border: 1px solid #e0d8cc; color: #8a8278; letter-spacing: 1px; text-transform: uppercase; border-radius: 1px; }\n.km-tag.km-exc { border-color: #4a5c4e; color: #4a5c4e; }\n.km-no-results { grid-column: 1\/-1; padding: 60px; text-align: center; font-family: 'Cormorant Garamond', serif; font-size: 22px; font-style: italic; color: #8a8278; background: #faf7f2; }\n@keyframes kmFadeUp { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }\n.km-card { opacity:0; animation: kmFadeUp 0.45s ease forwards; }\n\n\/* \u2500\u2500 POR QU\u00c9 RESERVAR \u2500\u2500 *\/\n.km-porque { background: #f5f0e8; padding: 64px 48px; border-top: 1px solid #e0d8cc; }\n.km-porque-label { font-size: 10px; letter-spacing: 4px; text-transform: uppercase; color: #b8933a; margin-bottom: 16px; display: block; }\n.km-porque h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(24px, 3vw, 42px); font-weight: 300; color: #1a1510; margin: 0 0 40px; max-width: 560px; line-height: 1.1; }\n.km-porque h2 em { font-style: italic; color: #b8933a; }\n.km-razones { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 2px; background: #e0d8cc; }\n.km-razon { background: #faf7f2; padding: 28px 24px; display: flex; flex-direction: column; gap: 10px; }\n.km-razon-icon { font-size: 22px; }\n.km-razon-title { font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 400; color: #1a1510; }\n.km-razon p { font-size: 13px; line-height: 1.7; color: #8a8278; margin: 0; }\n\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\n.km-faq { background: #1a1510; padding: 64px 48px; }\n.km-faq-label { font-size: 10px; letter-spacing: 4px; text-transform: uppercase; color: #b8933a; margin-bottom: 16px; display: block; }\n.km-faq h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(24px, 3vw, 42px); font-weight: 300; color: #f5f0e8; margin: 0 0 40px; line-height: 1.1; }\n.km-faq h2 em { font-style: italic; color: #b8933a; }\n.km-faq-list { display: flex; flex-direction: column; gap: 2px; max-width: 800px; }\n.km-faq-item { border-bottom: 1px solid rgba(245,240,232,0.10); overflow: hidden; }\n.km-faq-q {\n  width: 100%;\n  background: transparent;\n  border: none;\n  text-align: left;\n  font-family: 'Cormorant Garamond', serif;\n  font-size: 18px;\n  font-weight: 400;\n  color: #f5f0e8;\n  padding: 20px 0;\n  cursor: pointer;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: 16px;\n  transition: color 0.2s;\n}\n.km-faq-q:hover { color: #b8933a; }\n.km-faq-arrow { font-size: 18px; color: #b8933a; transition: transform 0.3s ease; flex-shrink: 0; }\n.km-faq-item.km-open .km-faq-arrow { transform: rotate(45deg); }\n.km-faq-a { font-size: 14px; line-height: 1.8; color: rgba(245,240,232,0.65); max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.2s; padding: 0; }\n.km-faq-item.km-open .km-faq-a { max-height: 300px; padding-bottom: 20px; }\n.km-faq-a strong { color: #f5f0e8; font-weight: 400; }\n\n\/* \u2500\u2500 RESPONSIVE \u2500\u2500 *\/\n@media (max-width: 700px) {\n  .km-seo, .km-porque, .km-faq { padding: 44px 24px; }\n  .km-filters { padding: 24px 20px 20px; }\n  .km-grid-section { padding: 32px 20px; }\n  .km-search-wrap { margin-left: 0; width: 100%; }\n  .km-search { width: 100%; }\n}\n<\/style>\n\n<div class=\"km-wrap\">\n\n  <!-- 1 \u00b7 PRESENTACI\u00d3N \u2014 HTML est\u00e1tico, Google lo indexa al 100% -->\n  <section class=\"km-seo\">\n    <span class=\"km-seo-label\">Kanami Travel \u00b7 Programa CAM 2026<\/span>\n    <h1>Circuitos culturales por <em>Europa<\/em><br>para mayores de 55 a\u00f1os<\/h1>\n    <p class=\"km-seo-intro\">21 itinerarios con gu\u00eda, transporte, alojamiento y visitas incluidas. Descubre Europa sin prisas, con comodidad y en compa\u00f1\u00eda. <strong>Exclusivo para residentes en la Comunidad de Madrid.<\/strong><\/p>\n    <div class=\"km-aviso\">\n      &#x1f4cd; Programa exclusivo para residentes en la Comunidad de Madrid mayores de 55 a\u00f1os\n    <\/div>\n  <\/section>\n\n  <!-- 2 \u00b7 FILTROS -->\n  <div class=\"km-filters\">\n    <div class=\"km-filters-wrap\">\n      <span class=\"km-filter-label\">Filtrar<\/span>\n      <button class=\"km-btn km-active\" onclick=\"kmFilter('all',this)\">Todos<\/button>\n      <button class=\"km-btn\" onclick=\"kmFilter('italia',this)\">Italia<\/button>\n      <button class=\"km-btn\" onclick=\"kmFilter('francia',this)\">Francia<\/button>\n      <button class=\"km-btn\" onclick=\"kmFilter('turquia',this)\">Turqu\u00eda<\/button>\n      <button class=\"km-btn\" onclick=\"kmFilter('alemania',this)\">Alemania<\/button>\n      <button class=\"km-btn\" onclick=\"kmFilter('polonia',this)\">Polonia<\/button>\n      <button class=\"km-btn\" onclick=\"kmFilter('excursiones',this)\">+ Excursiones<\/button>\n      <div class=\"km-search-wrap\">\n        <span class=\"km-search-icon\">\u2315<\/span>\n        <input class=\"km-search\" type=\"text\" placeholder=\"Buscar destino\u2026\" oninput=\"kmSearch(this.value)\">\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- 3 \u00b7 TARJETAS -->\n  <div class=\"km-grid-section\">\n    <div class=\"km-grid-header\">\n      <span class=\"km-grid-title\">Circuitos Europa \u00b7 CAM 2026<\/span>\n      <span class=\"km-count-wrap\"><span id=\"km-count\">21<\/span> circuitos<\/span>\n    <\/div>\n    <div class=\"km-grid\" id=\"km-grid\"><\/div>\n  <\/div>\n\n  <!-- 4 \u00b7 POR QU\u00c9 RESERVAR \u2014 HTML est\u00e1tico -->\n  <section class=\"km-porque\">\n    <span class=\"km-porque-label\">Kanami Travel<\/span>\n    <h2>\u00bfPor qu\u00e9 reservar<br><em>con nosotros?<\/em><\/h2>\n    <div class=\"km-razones\">\n      <div class=\"km-razon\">\n        <span class=\"km-razon-icon\">&#x1f5fa;&#xfe0f;<\/span>\n        <div class=\"km-razon-title\">Especialistas en mayores de 55<\/div>\n        <p>Conocemos las necesidades y el ritmo de viaje de nuestros clientes. Cada circuito est\u00e1 dise\u00f1ado para disfrutar sin agobios.<\/p>\n      <\/div>\n      <div class=\"km-razon\">\n        <span class=\"km-razon-icon\">&#x2705;<\/span>\n        <div class=\"km-razon-title\">Todo incluido desde Madrid<\/div>\n        <p>Transporte, alojamiento en hoteles seleccionados, gu\u00eda en espa\u00f1ol, visitas con entrada y pensi\u00f3n completa. Sin sorpresas.<\/p>\n      <\/div>\n      <div class=\"km-razon\">\n        <span class=\"km-razon-icon\">&#x1f3db;&#xfe0f;<\/span>\n        <div class=\"km-razon-title\">Programa oficial CAM 2026<\/div>\n        <p>Somos agencia colaboradora del programa de viajes culturales de la Comunidad de Madrid para mayores de 55 a\u00f1os.<\/p>\n      <\/div>\n      <div class=\"km-razon\">\n        <span class=\"km-razon-icon\">&#x1f4de;<\/span>\n        <div class=\"km-razon-title\">Atenci\u00f3n personalizada<\/div>\n        <p>Te acompa\u00f1amos desde la reserva hasta el regreso. Resolvemos cualquier duda antes, durante y despu\u00e9s del viaje.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- 5 \u00b7 FAQ \u2014 HTML est\u00e1tico -->\n  <section class=\"km-faq\">\n    <span class=\"km-faq-label\">Preguntas frecuentes<\/span>\n    <h2>Todo lo que necesitas<br><em>saber antes de reservar<\/em><\/h2>\n    <div class=\"km-faq-list\">\n\n      <div class=\"km-faq-item\">\n        <button class=\"km-faq-q\" onclick=\"kmToggleFaq(this)\">\n          \u00bfQui\u00e9n puede acceder a estos viajes?\n          <span class=\"km-faq-arrow\">+<\/span>\n        <\/button>\n        <div class=\"km-faq-a\">\n          Estos circuitos son <strong>exclusivos para residentes en la Comunidad de Madrid<\/strong> mayores de 55 a\u00f1os. Es imprescindible estar empadronado en la Comunidad de Madrid en el momento de la reserva. Basta con que uno de los viajeros cumpla el requisito de edad.\n        <\/div>\n      <\/div>\n\n      <div class=\"km-faq-item\">\n        <button class=\"km-faq-q\" onclick=\"kmToggleFaq(this)\">\n          \u00bfQu\u00e9 incluye el precio del circuito?\n          <span class=\"km-faq-arrow\">+<\/span>\n        <\/button>\n        <div class=\"km-faq-a\">\n          Todos los circuitos incluyen <strong>transporte en autocar o vuelo<\/strong> seg\u00fan el destino, alojamiento en hoteles de categor\u00eda, gu\u00eda acompa\u00f1ante en espa\u00f1ol durante todo el recorrido, visitas con entrada incluida y r\u00e9gimen de pensi\u00f3n completa salvo indicaci\u00f3n contraria.\n        <\/div>\n      <\/div>\n\n      <div class=\"km-faq-item\">\n        <button class=\"km-faq-q\" onclick=\"kmToggleFaq(this)\">\n          \u00bfQu\u00e9 diferencia hay entre un circuito y uno con excursiones?\n          <span class=\"km-faq-arrow\">+<\/span>\n        <\/button>\n        <div class=\"km-faq-a\">\n          Los circuitos con la etiqueta <strong>\u00ab+ Excursiones\u00bb<\/strong> incluyen visitas y actividades adicionales que enriquecen el itinerario. Son perfectos si quieres aprovechar al m\u00e1ximo cada destino sin tener que organizar nada por tu cuenta.\n        <\/div>\n      <\/div>\n\n      <div class=\"km-faq-item\">\n        <button class=\"km-faq-q\" onclick=\"kmToggleFaq(this)\">\n          \u00bfC\u00f3mo puedo reservar mi plaza?\n          <span class=\"km-faq-arrow\">+<\/span>\n        <\/button>\n        <div class=\"km-faq-a\">\n          Puedes reservar contactando directamente con Kanami Travel. Nuestro equipo te asesorar\u00e1 sobre disponibilidad, fechas de salida y documentaci\u00f3n necesaria. Las plazas son limitadas, por lo que te recomendamos reservar con antelaci\u00f3n.\n        <\/div>\n      <\/div>\n\n      <div class=\"km-faq-item\">\n        <button class=\"km-faq-q\" onclick=\"kmToggleFaq(this)\">\n          \u00bfCu\u00e1ndo salen los circuitos?\n          <span class=\"km-faq-arrow\">+<\/span>\n        <\/button>\n        <div class=\"km-faq-a\">\n          Los circuitos del <strong>Programa CAM 2026<\/strong> tienen salidas programadas a lo largo del a\u00f1o desde Madrid. Cada circuito dispone de varias fechas de salida. Consulta disponibilidad para el destino que te interese.\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/section>\n\n<\/div>\n\n<script>\nconst kmPaquetes = [\n  { code:\"105\", title:\"N\u00e1poles y Costa Amalfitana\",                                          dias:5,  noches:4, tags:[\"italia\"],             excursion:false, url:\"#\" },\n  { code:\"152\", title:\"Excursiones Par\u00eds, Castillos del Loira y Normand\u00eda\",                  dias:8,  noches:7, tags:[\"francia\"],            excursion:true,  url:\"#\" },\n  { code:\"152\", title:\"Par\u00eds, Castillos del Loira y Normand\u00eda\",                              dias:8,  noches:7, tags:[\"francia\"],            excursion:false, url:\"#\" },\n  { code:\"159\", title:\"Burdeos, Loira, Dordo\u00f1a, Carcassona y Toulouse\",                      dias:8,  noches:7, tags:[\"francia\"],            excursion:false, url:\"#\" },\n  { code:\"159\", title:\"Excursiones Burdeos, Loira, Dordo\u00f1a, Carcassona y Toulouse\",          dias:8,  noches:7, tags:[\"francia\"],            excursion:true,  url:\"#\" },\n  { code:\"160\", title:\"Excursiones Lo Mejor de la Costa Azul\",                               dias:8,  noches:7, tags:[\"francia\"],            excursion:true,  url:\"#\" },\n  { code:\"160\", title:\"Lo Mejor de la Costa Azul\",                                           dias:8,  noches:7, tags:[\"francia\"],            excursion:false, url:\"#\" },\n  { code:\"163\", title:\"Lo Mejor del Benelux\",                                                dias:8,  noches:7, tags:[\"alemania\"],           excursion:false, url:\"#\" },\n  { code:\"167\", title:\"Alemania, Castillo Neuschwanstein y Crucero por el Rin\",              dias:8,  noches:7, tags:[\"alemania\"],           excursion:false, url:\"#\" },\n  { code:\"167\", title:\"Excursiones Alemania, Castillo Neuschwanstein y Crucero por el Rin\",  dias:8,  noches:7, tags:[\"alemania\"],           excursion:true,  url:\"#\" },\n  { code:\"168\", title:\"Alsacia y la Selva Negra\",                                            dias:8,  noches:7, tags:[\"alemania\",\"francia\"], excursion:false, url:\"#\" },\n  { code:\"196\", title:\"Lagos del Norte de Italia, Portofino e Islas Borromeas\",              dias:8,  noches:7, tags:[\"italia\"],             excursion:false, url:\"#\" },\n  { code:\"200\", title:\"Excursiones N\u00e1poles, Pompeya, Puglia y Costa Amalfitana\",             dias:8,  noches:7, tags:[\"italia\"],             excursion:true,  url:\"#\" },\n  { code:\"200\", title:\"N\u00e1poles, Pompeya, Puglia y Costa Amalfitana\",                         dias:8,  noches:7, tags:[\"italia\"],             excursion:false, url:\"#\" },\n  { code:\"206\", title:\"Excursiones Polonia, Castillo de Malbork y Minas de Sal\",             dias:8,  noches:7, tags:[\"polonia\"],            excursion:true,  url:\"#\" },\n  { code:\"206\", title:\"Polonia, Castillo de Malbork y Minas de Sal\",                         dias:8,  noches:7, tags:[\"polonia\"],            excursion:false, url:\"#\" },\n  { code:\"219\", title:\"Delicias Turcas\",                                                     dias:9,  noches:8, tags:[\"turquia\"],            excursion:false, url:\"#\" },\n  { code:\"219\", title:\"Excursiones Delicias Turcas\",                                         dias:8,  noches:7, tags:[\"turquia\"],            excursion:true,  url:\"#\" },\n  { code:\"220\", title:\"Excursiones Gran Tour de Turqu\u00eda\",                                    dias:9,  noches:8, tags:[\"turquia\"],            excursion:true,  url:\"#\" },\n  { code:\"220\", title:\"Gran Tour de Turqu\u00eda\",                                                dias:10, noches:9, tags:[\"turquia\"],            excursion:false, url:\"#\" },\n  { code:\"222\", title:\"Mesopotamia y Capadocia\",                                             dias:8,  noches:7, tags:[\"turquia\"],            excursion:false, url:\"#\" },\n];\n\nlet kmActiveFilter = 'all';\nlet kmActiveSearch = '';\n\nfunction kmCapitalize(str) {\n  const stop = ['y','de','del','la','el','los','las','en','por','e'];\n  return str.split(' ').map((w,i) => {\n    if(i===0) return w.charAt(0).toUpperCase()+w.slice(1).toLowerCase();\n    if(stop.includes(w.toLowerCase())) return w.toLowerCase();\n    return w.charAt(0).toUpperCase()+w.slice(1).toLowerCase();\n  }).join(' ');\n}\n\nfunction kmRender(items) {\n  const grid = document.getElementById('km-grid');\n  document.getElementById('km-count').textContent = items.length;\n  if (!items.length) {\n    grid.innerHTML = '<div class=\"km-no-results\">No se encontraron circuitos<\/div>';\n    return;\n  }\n  grid.innerHTML = items.map((p,i) => {\n    const hasUrl = p.url && p.url !== '#';\n    const title  = kmCapitalize(p.title.replace(\/^excursiones \/i,''));\n    return `\n    <div class=\"km-card\" style=\"animation-delay:${i*0.04}s;${hasUrl?'cursor:pointer':''}\" ${hasUrl?`onclick=\"location.href='${p.url}'\"`:''}>\n      <div class=\"km-card-code\">CAM 2026 \u00b7 ${p.code}<\/div>\n      <div class=\"km-card-title\">${title}<\/div>\n      <a href=\"${p.url}\" class=\"km-card-cta ${hasUrl?'':'km-soon'}\" onclick=\"event.stopPropagation()\">\n        ${hasUrl?'Ver m\u00e1s':'Pr\u00f3ximamente'} \u2192\n      <\/a>\n      <div class=\"km-card-bottom\">\n        <div class=\"km-duration\">\n          <span class=\"km-duration-num\">${p.dias}<\/span>\n          <span class=\"km-duration-text\"><span>d\u00edas \/<\/span><span>${p.noches} noches<\/span><\/span>\n        <\/div>\n        <span class=\"km-tag ${p.excursion?'km-exc':''}\">${p.excursion?'+ Excursiones':'Circuito'}<\/span>\n      <\/div>\n    <\/div>`;\n  }).join('');\n}\n\nfunction kmApply() {\n  let items = kmPaquetes;\n  if (kmActiveSearch.trim()) {\n    const q = kmActiveSearch.toLowerCase();\n    items = items.filter(p => p.title.toLowerCase().includes(q));\n  }\n  if (kmActiveFilter !== 'all') {\n    items = kmActiveFilter === 'excursiones'\n      ? items.filter(p => p.excursion)\n      : items.filter(p => p.tags.includes(kmActiveFilter));\n  }\n  kmRender(items);\n}\n\nfunction kmFilter(f, btn) {\n  kmActiveFilter = f;\n  document.querySelectorAll('.km-btn').forEach(b => b.classList.remove('km-active'));\n  btn.classList.add('km-active');\n  kmApply();\n}\n\nfunction kmSearch(v) { kmActiveSearch = v; kmApply(); }\n\nfunction kmToggleFaq(btn) {\n  const item = btn.closest('.km-faq-item');\n  const isOpen = item.classList.contains('km-open');\n  document.querySelectorAll('.km-faq-item.km-open').forEach(el => el.classList.remove('km-open'));\n  if (!isOpen) item.classList.add('km-open');\n}\n\nkmRender(kmPaquetes);\n<\/script>\n\n\n\n<hr class=\"wp-block-separator alignfull has-alpha-channel-opacity\"\/>\n\n\n\n<!-- ============================================================\n     KANAMI TRAVEL \u00b7 Formulario de Contacto\n     Viajes Mayores de 55 \u00b7 Programa CAM 2026\n     Pegar en Editor Cl\u00e1sico > pesta\u00f1a \"HTML\"\n     ============================================================\n     NOTA: Para que el formulario env\u00ede emails necesitas conectar\n     un plugin de WordPress (WPForms, Contact Form 7, Formidable)\n     o sustituir la acci\u00f3n del form por tu endpoint.\n     El dise\u00f1o es standalone y funciona visualmente tal cual.\n     ============================================================ -->\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n:root {\n  --cream: #f5f0e8;\n  --ink: #1a1510;\n  --gold: #b8933a;\n  --gold-light: #d4a84b;\n  --warm-gray: #8a8278;\n  --border: #e0d8cc;\n  --card: #faf7f2;\n  --sage: #4a5c4e;\n  --error: #8b3a3a;\n}\n\n.kmf-wrap {\n  font-family: 'DM Sans', sans-serif;\n  font-weight: 300;\n  background: var(--cream);\n  color: var(--ink);\n  padding: 0;\n}\n\n\/* \u2500\u2500 CABECERA \u2500\u2500 *\/\n.kmf-header {\n  background: var(--ink);\n  padding: 56px 48px 48px;\n  position: relative;\n  overflow: hidden;\n}\n.kmf-header::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background: radial-gradient(ellipse 60% 70% at 85% 50%, rgba(184,147,58,0.10) 0%, transparent 60%);\n  pointer-events: none;\n}\n.kmf-header-label {\n  font-size: 10px;\n  letter-spacing: 4px;\n  text-transform: uppercase;\n  color: var(--gold);\n  margin-bottom: 16px;\n  display: block;\n}\n.kmf-header h2 {\n  font-family: 'Cormorant Garamond', serif;\n  font-size: clamp(26px, 3.5vw, 48px);\n  font-weight: 300;\n  line-height: 1.05;\n  color: var(--cream);\n  margin: 0 0 16px;\n}\n.kmf-header h2 em { font-style: italic; color: var(--gold); }\n.kmf-header p {\n  font-size: 14px;\n  line-height: 1.7;\n  color: rgba(245,240,232,0.65);\n  max-width: 520px;\n  margin: 0;\n}\n.kmf-aviso {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  margin-top: 20px;\n  background: rgba(184,147,58,0.10);\n  border: 1px solid rgba(184,147,58,0.25);\n  border-radius: 2px;\n  padding: 8px 14px;\n  font-size: 11px;\n  letter-spacing: 1px;\n  color: var(--gold-light);\n}\n\n\/* \u2500\u2500 FORMULARIO \u2500\u2500 *\/\n.kmf-body {\n  padding: 48px 48px 56px;\n  background: var(--cream);\n}\n\n.kmf-form {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 2px;\n  background: var(--border);\n  max-width: 900px;\n}\n\n\/* Bloques del formulario *\/\n.kmf-field {\n  background: var(--card);\n  padding: 20px 22px;\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n  transition: background 0.2s;\n}\n.kmf-field:focus-within { background: #fff; }\n.kmf-field.kmf-full { grid-column: 1 \/ -1; }\n.kmf-field.kmf-full-sep {\n  grid-column: 1 \/ -1;\n  background: var(--ink);\n  padding: 16px 22px;\n}\n\n.kmf-sep-label {\n  font-size: 9px;\n  letter-spacing: 3px;\n  text-transform: uppercase;\n  color: var(--gold);\n}\n\nlabel {\n  font-size: 9px;\n  letter-spacing: 2px;\n  text-transform: uppercase;\n  color: var(--warm-gray);\n  font-weight: 500;\n}\n\n.kmf-required { color: var(--gold); margin-left: 2px; }\n\ninput[type=\"text\"],\ninput[type=\"tel\"],\ninput[type=\"email\"],\ninput[type=\"date\"],\ninput[type=\"number\"],\nselect,\ntextarea {\n  background: transparent;\n  border: none;\n  border-bottom: 1px solid var(--border);\n  outline: none;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 14px;\n  font-weight: 300;\n  color: var(--ink);\n  padding: 6px 0;\n  width: 100%;\n  transition: border-color 0.2s;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\ninput:focus, select:focus, textarea:focus {\n  border-bottom-color: var(--gold);\n}\n\ninput::placeholder, textarea::placeholder { color: var(--border); }\n\nselect {\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23b8933a'\/%3E%3C\/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 4px center;\n  padding-right: 20px;\n  cursor: pointer;\n}\n\nselect option { background: #fff; color: var(--ink); }\n\ntextarea {\n  resize: vertical;\n  min-height: 80px;\n  line-height: 1.6;\n}\n\n\/* Subtipos de circuito (checkboxes) *\/\n.kmf-checks {\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n  margin-top: 4px;\n}\n.kmf-check-item {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  cursor: pointer;\n  font-size: 13px;\n  color: var(--ink);\n}\n.kmf-check-item input[type=\"checkbox\"] {\n  width: 14px;\n  height: 14px;\n  flex-shrink: 0;\n  border: 1px solid var(--border);\n  border-radius: 1px;\n  appearance: none;\n  -webkit-appearance: none;\n  background: transparent;\n  cursor: pointer;\n  position: relative;\n  transition: border-color 0.2s, background 0.2s;\n  padding: 0;\n  border-bottom: 1px solid var(--border);\n}\n.kmf-check-item input[type=\"checkbox\"]:checked {\n  background: var(--gold);\n  border-color: var(--gold);\n}\n.kmf-check-item input[type=\"checkbox\"]:checked::after {\n  content: '\u2713';\n  position: absolute;\n  inset: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 9px;\n  color: white;\n  display: block;\n  text-align: center;\n  line-height: 14px;\n}\n\n\/* Radio grupo *\/\n.kmf-radios {\n  display: flex;\n  gap: 16px;\n  margin-top: 4px;\n  flex-wrap: wrap;\n}\n.kmf-radio-item {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 13px;\n  color: var(--ink);\n  cursor: pointer;\n}\n.kmf-radio-item input[type=\"radio\"] {\n  width: 14px;\n  height: 14px;\n  flex-shrink: 0;\n  appearance: none;\n  -webkit-appearance: none;\n  border: 1px solid var(--border);\n  border-radius: 50%;\n  background: transparent;\n  cursor: pointer;\n  position: relative;\n  padding: 0;\n  border-bottom: 1px solid var(--border);\n  transition: border-color 0.2s;\n}\n.kmf-radio-item input[type=\"radio\"]:checked {\n  border-color: var(--gold);\n}\n.kmf-radio-item input[type=\"radio\"]:checked::after {\n  content: '';\n  position: absolute;\n  top: 50%; left: 50%;\n  transform: translate(-50%, -50%);\n  width: 6px; height: 6px;\n  border-radius: 50%;\n  background: var(--gold);\n}\n\n\/* Contador pax *\/\n.kmf-pax-control {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  margin-top: 4px;\n}\n.kmf-pax-btn {\n  width: 28px;\n  height: 28px;\n  border: 1px solid var(--border);\n  background: transparent;\n  color: var(--gold);\n  font-size: 18px;\n  line-height: 1;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transition: all 0.2s;\n  font-family: 'DM Sans', sans-serif;\n  border-radius: 1px;\n  flex-shrink: 0;\n}\n.kmf-pax-btn:hover { background: var(--gold); color: white; border-color: var(--gold); }\n.kmf-pax-num {\n  font-family: 'Cormorant Garamond', serif;\n  font-size: 28px;\n  font-weight: 300;\n  color: var(--ink);\n  min-width: 24px;\n  text-align: center;\n  line-height: 1;\n}\n.kmf-pax-label { font-size: 11px; color: var(--warm-gray); letter-spacing: 1px; }\n\n\/* Submit *\/\n.kmf-submit-row {\n  grid-column: 1 \/ -1;\n  background: var(--card);\n  padding: 24px 22px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 20px;\n  flex-wrap: wrap;\n}\n.kmf-privacy {\n  font-size: 11px;\n  color: var(--warm-gray);\n  line-height: 1.6;\n  max-width: 480px;\n}\n.kmf-privacy a { color: var(--gold); text-decoration: underline; text-underline-offset: 2px; }\n\n.kmf-btn-submit {\n  background: var(--ink);\n  color: var(--cream);\n  border: none;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 11px;\n  letter-spacing: 3px;\n  text-transform: uppercase;\n  padding: 14px 32px;\n  cursor: pointer;\n  transition: background 0.2s, gap 0.2s;\n  display: inline-flex;\n  align-items: center;\n  gap: 12px;\n  border-radius: 1px;\n  flex-shrink: 0;\n}\n.kmf-btn-submit:hover { background: var(--gold); }\n.kmf-btn-submit-arrow { font-size: 16px; transition: transform 0.2s; }\n.kmf-btn-submit:hover .kmf-btn-submit-arrow { transform: translateX(4px); }\n\n\/* Confirmaci\u00f3n *\/\n.kmf-confirm {\n  display: none;\n  grid-column: 1 \/ -1;\n  background: var(--sage);\n  padding: 28px 22px;\n  text-align: center;\n}\n.kmf-confirm p {\n  font-family: 'Cormorant Garamond', serif;\n  font-size: 20px;\n  font-weight: 300;\n  color: white;\n  margin: 0;\n}\n.kmf-confirm p em { font-style: italic; color: rgba(255,255,255,0.7); }\n\n\/* Error *\/\n.kmf-field.kmf-has-error input,\n.kmf-field.kmf-has-error select,\n.kmf-field.kmf-has-error textarea {\n  border-bottom-color: var(--error);\n}\n.kmf-error-msg {\n  font-size: 10px;\n  color: var(--error);\n  letter-spacing: 0.5px;\n  display: none;\n}\n.kmf-field.kmf-has-error .kmf-error-msg { display: block; }\n\n\/* Responsive *\/\n@media (max-width: 680px) {\n  .kmf-header, .kmf-body { padding: 36px 20px; }\n  .kmf-form { grid-template-columns: 1fr; }\n  .kmf-field.kmf-full { grid-column: 1; }\n  .kmf-full-sep { grid-column: 1; }\n  .kmf-submit-row { flex-direction: column; align-items: flex-start; }\n}\n<\/style>\n\n<div class=\"kmf-wrap\">\n\n  <!-- CABECERA -->\n  <div class=\"kmf-header\">\n    <span class=\"kmf-header-label\">Kanami Travel \u00b7 Programa CAM 2026<\/span>\n    <h2>Solicita informaci\u00f3n sobre<br>tu <em>viaje para mayores de 55<\/em><\/h2>\n    <p>Completa el formulario y nuestro equipo se pondr\u00e1 en contacto contigo en menos de 24 horas con toda la informaci\u00f3n sobre disponibilidad, fechas y precios.<\/p>\n    <div class=\"kmf-aviso\">\n      &#x1f4cd; Programa exclusivo para residentes en la Comunidad de Madrid mayores de 55 a\u00f1os\n    <\/div>\n  <\/div>\n\n  <!-- FORMULARIO -->\n  <div class=\"kmf-body\">\n    <form class=\"kmf-form\" id=\"kmfForm\" novalidate>\n\n      <!-- SEPARADOR: DATOS PERSONALES -->\n      <div class=\"kmf-field kmf-full-sep\">\n        <span class=\"kmf-sep-label\">01 \u00b7 Datos personales<\/span>\n      <\/div>\n\n      <!-- Nombre -->\n      <div class=\"kmf-field\" id=\"field-nombre\">\n        <label for=\"kmf-nombre\">Nombre completo <span class=\"kmf-required\">*<\/span><\/label>\n        <input type=\"text\" id=\"kmf-nombre\" name=\"nombre\" placeholder=\"Tu nombre y apellidos\" autocomplete=\"name\">\n        <span class=\"kmf-error-msg\">Por favor, introduce tu nombre<\/span>\n      <\/div>\n\n      <!-- Email -->\n      <div class=\"kmf-field\" id=\"field-email\">\n        <label for=\"kmf-email\">Correo electr\u00f3nico <span class=\"kmf-required\">*<\/span><\/label>\n        <input type=\"email\" id=\"kmf-email\" name=\"email\" placeholder=\"tu@email.com\" autocomplete=\"email\">\n        <span class=\"kmf-error-msg\">Introduce un email v\u00e1lido<\/span>\n      <\/div>\n\n      <!-- Tel\u00e9fono -->\n      <div class=\"kmf-field\" id=\"field-tel\">\n        <label for=\"kmf-tel\">Tel\u00e9fono de contacto <span class=\"kmf-required\">*<\/span><\/label>\n        <input type=\"tel\" id=\"kmf-tel\" name=\"telefono\" placeholder=\"600 000 000\" autocomplete=\"tel\">\n        <span class=\"kmf-error-msg\">Introduce un tel\u00e9fono v\u00e1lido<\/span>\n      <\/div>\n\n      <!-- Horario -->\n      <div class=\"kmf-field\">\n        <label>Prefiero que me llamen<\/label>\n        <div class=\"kmf-radios\">\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"horario\" value=\"ma\u00f1ana\"> Ma\u00f1ana (9\u201313h)<\/label>\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"horario\" value=\"tarde\"> Tarde (15\u201319h)<\/label>\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"horario\" value=\"cualquiera\" checked> Cualquier hora<\/label>\n        <\/div>\n      <\/div>\n\n      <!-- SEPARADOR: TIPO DE VIAJE -->\n      <div class=\"kmf-field kmf-full-sep\">\n        <span class=\"kmf-sep-label\">02 \u00b7 Tipo de viaje<\/span>\n      <\/div>\n\n      <!-- Categor\u00eda de viaje -->\n      <div class=\"kmf-field\" id=\"field-categoria\">\n        <label for=\"kmf-categoria\">Categor\u00eda de viaje <span class=\"kmf-required\">*<\/span><\/label>\n        <select id=\"kmf-categoria\" name=\"categoria\" onchange=\"kmfToggleCircuitos()\">\n          <option value=\"\">\u2014 Selecciona una categor\u00eda \u2014<\/option>\n          <option value=\"europa\">Circuitos Europa<\/option>\n          <option value=\"peninsula\">Circuitos Peninsulares<\/option>\n          <option value=\"grandes-viajes\">Grandes Viajes<\/option>\n          <option value=\"sin-preferencia\">Sin preferencia, quiero informaci\u00f3n general<\/option>\n        <\/select>\n        <span class=\"kmf-error-msg\">Selecciona una categor\u00eda<\/span>\n      <\/div>\n\n      <!-- Destino espec\u00edfico (aparece seg\u00fan categor\u00eda) -->\n      <div class=\"kmf-field\" id=\"field-destino\">\n        <label for=\"kmf-destino\">Destino de inter\u00e9s<\/label>\n        <select id=\"kmf-destino\" name=\"destino\">\n          <option value=\"\">\u2014 Selecciona primero la categor\u00eda \u2014<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- Inter\u00e9s excursiones -->\n      <div class=\"kmf-field\">\n        <label>\u00bfTe interesan los programas con excursiones incluidas?<\/label>\n        <div class=\"kmf-radios\">\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"excursiones\" value=\"si\"> S\u00ed<\/label>\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"excursiones\" value=\"no\"> No<\/label>\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"excursiones\" value=\"indiferente\" checked> Indiferente<\/label>\n        <\/div>\n      <\/div>\n\n      <!-- SEPARADOR: FECHAS Y VIAJEROS -->\n      <div class=\"kmf-field kmf-full-sep\">\n        <span class=\"kmf-sep-label\">03 \u00b7 Fechas y viajeros<\/span>\n      <\/div>\n\n      <!-- Fecha preferida -->\n      <div class=\"kmf-field\">\n        <label for=\"kmf-fecha-ini\">Fecha de salida preferida<\/label>\n        <input type=\"date\" id=\"kmf-fecha-ini\" name=\"fecha_salida\">\n      <\/div>\n\n      <!-- Flexibilidad fechas -->\n      <div class=\"kmf-field\">\n        <label>Flexibilidad en fechas<\/label>\n        <div class=\"kmf-radios\">\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"flexibilidad\" value=\"exacta\"> Fecha exacta<\/label>\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"flexibilidad\" value=\"semana\"> \u00b1 1 semana<\/label>\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"flexibilidad\" value=\"mes\" checked> \u00b1 1 mes<\/label>\n        <\/div>\n      <\/div>\n\n      <!-- N\u00ba de viajeros -->\n      <div class=\"kmf-field\">\n        <label>N\u00famero de viajeros <span class=\"kmf-required\">*<\/span><\/label>\n        <div class=\"kmf-pax-control\">\n          <button type=\"button\" class=\"kmf-pax-btn\" onclick=\"kmfPax(-1)\">\u2212<\/button>\n          <span class=\"kmf-pax-num\" id=\"kmf-pax-num\">1<\/span>\n          <input type=\"hidden\" name=\"pax\" id=\"kmf-pax-val\" value=\"1\">\n          <span class=\"kmf-pax-label\">viajero(s)<\/span>\n        <\/div>\n      <\/div>\n\n      <!-- Acompa\u00f1ante menor de 55 -->\n      <div class=\"kmf-field\">\n        <label>\u00bfAlg\u00fan viajero es menor de 55 a\u00f1os?<\/label>\n        <div class=\"kmf-radios\">\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"menor55\" value=\"si\"> S\u00ed<\/label>\n          <label class=\"kmf-radio-item\"><input type=\"radio\" name=\"menor55\" value=\"no\" checked> No<\/label>\n        <\/div>\n      <\/div>\n\n      <!-- SEPARADOR: OBSERVACIONES -->\n      <div class=\"kmf-field kmf-full-sep\">\n        <span class=\"kmf-sep-label\">04 \u00b7 Observaciones<\/span>\n      <\/div>\n\n      <!-- Mensaje -->\n      <div class=\"kmf-field kmf-full\">\n        <label for=\"kmf-mensaje\">\u00bfTienes alguna preferencia o necesidad especial?<\/label>\n        <textarea id=\"kmf-mensaje\" name=\"mensaje\" placeholder=\"Cu\u00e9ntanos si tienes alguna preferencia sobre el tipo de hotel, movilidad reducida, r\u00e9gimen alimenticio, destino concreto\u2026\"><\/textarea>\n      <\/div>\n\n      <!-- SUBMIT -->\n      <div class=\"kmf-submit-row\">\n        <p class=\"kmf-privacy\">Al enviar este formulario aceptas nuestra <a href=\"\/politica-de-privacidad\">pol\u00edtica de privacidad<\/a>. Tus datos se usar\u00e1n exclusivamente para gestionar tu solicitud de informaci\u00f3n.<\/p>\n        <button type=\"submit\" class=\"kmf-btn-submit\">\n          Solicitar informaci\u00f3n\n          <span class=\"kmf-btn-submit-arrow\">\u2192<\/span>\n        <\/button>\n      <\/div>\n\n      <!-- MENSAJE DE CONFIRMACI\u00d3N -->\n      <div class=\"kmf-confirm\" id=\"kmf-confirm\">\n        <p>\u00a1Gracias! Nos pondremos en contacto contigo en menos de 24 horas.<br><em>El equipo de Kanami Travel<\/em><\/p>\n      <\/div>\n\n    <\/form>\n  <\/div>\n\n<\/div>\n\n<script>\n\/\/ \u2500\u2500 DESTINOS POR CATEGOR\u00cdA \u2500\u2500\nconst kmfDestinos = {\n  europa: [\n    '\u2014 Selecciona un destino \u2014',\n    'N\u00e1poles y Costa Amalfitana',\n    'Par\u00eds, Castillos del Loira y Normand\u00eda',\n    'Burdeos, Loira, Dordo\u00f1a y Carcassona',\n    'Lo Mejor de la Costa Azul',\n    'Lo Mejor del Benelux',\n    'Alemania y Castillo Neuschwanstein',\n    'Alsacia y la Selva Negra',\n    'Lagos del Norte de Italia y Portofino',\n    'N\u00e1poles, Pompeya, Puglia y Costa Amalfitana',\n    'Polonia, Malbork y Minas de Sal',\n    'Delicias Turcas',\n    'Gran Tour de Turqu\u00eda',\n    'Mesopotamia y Capadocia',\n    'Sin preferencia',\n  ],\n  peninsula: [\n    '\u2014 Selecciona un destino \u2014',\n    'Pirineo Aragon\u00e9s y Andorra',\n    'Altos Pirineos - Balneario de Panticosa',\n    'Tres Naciones',\n    'Gerona y Pueblos Medievales',\n    'Gerona y Sur de Francia',\n    'El Maestrazgo y Fortalezas Medievales',\n    'M\u00e1laga y el Caminito del Rey',\n    'C\u00e1diz y Pueblos Blancos',\n    'Huelva, Aracena y Do\u00f1ana',\n    'Escapada La Matarra\u00f1a',\n    'Escapada Sevilla',\n    'Sin preferencia',\n  ],\n  'grandes-viajes': [\n    '\u2014 Selecciona un destino \u2014',\n    'Egipto 4* - Cuna de Faraones',\n    'Egipto 5* - Leyenda de Faraones',\n    'Egipto Milenario 5*',\n    'Tailandia B',\n    'Tailandia B con extensi\u00f3n Krabi',\n    'Sin preferencia',\n  ],\n  'sin-preferencia': ['\u2014 Sin preferencia \u2014'],\n};\n\nfunction kmfToggleCircuitos() {\n  const cat = document.getElementById('kmf-categoria').value;\n  const sel = document.getElementById('kmf-destino');\n  sel.innerHTML = '';\n  const opts = kmfDestinos[cat] || ['\u2014 Selecciona primero la categor\u00eda \u2014'];\n  opts.forEach((o, i) => {\n    const opt = document.createElement('option');\n    opt.value = i === 0 ? '' : o;\n    opt.textContent = o;\n    sel.appendChild(opt);\n  });\n}\n\n\/\/ \u2500\u2500 CONTADOR PAX \u2500\u2500\nlet kmfPaxVal = 1;\nfunction kmfPax(dir) {\n  kmfPaxVal = Math.min(Math.max(1, kmfPaxVal + dir), 20);\n  document.getElementById('kmf-pax-num').textContent = kmfPaxVal;\n  document.getElementById('kmf-pax-val').value = kmfPaxVal;\n}\n\n\/\/ \u2500\u2500 FECHA M\u00cdNIMA HOY \u2500\u2500\ndocument.addEventListener('DOMContentLoaded', function() {\n  const today = new Date().toISOString().split('T')[0];\n  document.getElementById('kmf-fecha-ini').min = today;\n});\n\n\/\/ \u2500\u2500 VALIDACI\u00d3N Y ENV\u00cdO \u2500\u2500\ndocument.getElementById('kmfForm').addEventListener('submit', function(e) {\n  e.preventDefault();\n  let valid = true;\n\n  \/\/ Nombre\n  const nombre = document.getElementById('kmf-nombre');\n  const fieldNombre = document.getElementById('field-nombre');\n  if (!nombre.value.trim() || nombre.value.trim().length < 2) {\n    fieldNombre.classList.add('kmf-has-error');\n    valid = false;\n  } else {\n    fieldNombre.classList.remove('kmf-has-error');\n  }\n\n  \/\/ Email\n  const email = document.getElementById('kmf-email');\n  const fieldEmail = document.getElementById('field-email');\n  const emailRx = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\n  if (!emailRx.test(email.value.trim())) {\n    fieldEmail.classList.add('kmf-has-error');\n    valid = false;\n  } else {\n    fieldEmail.classList.remove('kmf-has-error');\n  }\n\n  \/\/ Tel\u00e9fono\n  const tel = document.getElementById('kmf-tel');\n  const fieldTel = document.getElementById('field-tel');\n  const telClean = tel.value.replace(\/\\s\/g,'');\n  if (telClean.length < 9) {\n    fieldTel.classList.add('kmf-has-error');\n    valid = false;\n  } else {\n    fieldTel.classList.remove('kmf-has-error');\n  }\n\n  \/\/ Categor\u00eda\n  const cat = document.getElementById('kmf-categoria');\n  const fieldCat = document.getElementById('field-categoria');\n  if (!cat.value) {\n    fieldCat.classList.add('kmf-has-error');\n    valid = false;\n  } else {\n    fieldCat.classList.remove('kmf-has-error');\n  }\n\n  if (!valid) return;\n\n  \/\/ \u2500\u2500 \u00c9XITO \u2500\u2500\n  \/\/ Aqu\u00ed conecta tu endpoint, WPForms, Contact Form 7, etc.\n  \/\/ Por ahora mostramos el mensaje de confirmaci\u00f3n.\n  document.getElementById('kmf-confirm').style.display = 'block';\n  document.querySelector('.kmf-submit-row').style.display = 'none';\n\n  \/\/ Scroll al mensaje\n  document.getElementById('kmf-confirm').scrollIntoView({ behavior: 'smooth', block: 'center' });\n});\n<\/script>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/programa-viajes-culturales-mayores-55-comunidad-madrid-1024x576.jpg\" alt=\"\" class=\"wp-image-1964\" srcset=\"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/programa-viajes-culturales-mayores-55-comunidad-madrid-1024x576.jpg 1024w, https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/programa-viajes-culturales-mayores-55-comunidad-madrid-300x169.jpg 300w, https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/programa-viajes-culturales-mayores-55-comunidad-madrid-768x432.jpg 768w, https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/programa-viajes-culturales-mayores-55-comunidad-madrid.jpg 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Kanami Travel \u00b7 Programa CAM 2026 Circuitos culturales por Europapara mayores de 55 a\u00f1os 21 itinerarios con gu\u00eda, transporte, alojamiento [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1960,"parent":1973,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","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":"","footer-sml-layout":"","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-1956","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Viajes mayores de 55 | Circuitos por Europa Comunidad de Madrid<\/title>\n<meta name=\"description\" content=\"Descubre los viajes para mayores de 55: Italia, Francia, Turqu\u00eda, Alemania. Viajes con gu\u00eda, visitas, desde Madrid. Programa CAM 2026.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Viajes mayores de 55 | Circuitos por Europa Comunidad de Madrid\" \/>\n<meta property=\"og:description\" content=\"Descubre los viajes para mayores de 55: Italia, Francia, Turqu\u00eda, Alemania. Viajes con gu\u00eda, visitas, desde Madrid. Programa CAM 2026.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Kanami Travel\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/KanamiTravel\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-03T21:33:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/pcdazero-loneliness-2896547_1280.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"853\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@KanamiTravel\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/\",\"url\":\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/\",\"name\":\"Viajes mayores de 55 | Circuitos por Europa Comunidad de Madrid\",\"isPartOf\":{\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/pcdazero-loneliness-2896547_1280.jpg\",\"datePublished\":\"2026-03-02T22:24:00+00:00\",\"dateModified\":\"2026-03-03T21:33:13+00:00\",\"description\":\"Descubre los viajes para mayores de 55: Italia, Francia, Turqu\u00eda, Alemania. Viajes con gu\u00eda, visitas, desde Madrid. Programa CAM 2026.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#primaryimage\",\"url\":\"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/pcdazero-loneliness-2896547_1280.jpg\",\"contentUrl\":\"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/pcdazero-loneliness-2896547_1280.jpg\",\"width\":1280,\"height\":853,\"caption\":\"Viajes mayores de 55\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.kanamitravel.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Viajes para mayores de 55 a\u00f1os\",\"item\":\"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Europa para mayores de 55 Comunidad de Madrid\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/#website\",\"url\":\"https:\/\/www.kanamitravel.com\/blog\/\",\"name\":\"Blog Kanami Travel\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.kanamitravel.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/#organization\",\"name\":\"Blog Kanami Travel\",\"url\":\"https:\/\/www.kanamitravel.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2025\/07\/logo.png\",\"contentUrl\":\"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2025\/07\/logo.png\",\"width\":190,\"height\":32,\"caption\":\"Blog Kanami Travel\"},\"image\":{\"@id\":\"https:\/\/www.kanamitravel.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/KanamiTravel\/\",\"https:\/\/x.com\/KanamiTravel\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Viajes mayores de 55 | Circuitos por Europa Comunidad de Madrid","description":"Descubre los viajes para mayores de 55: Italia, Francia, Turqu\u00eda, Alemania. Viajes con gu\u00eda, visitas, desde Madrid. Programa CAM 2026.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/","og_locale":"es_ES","og_type":"article","og_title":"Viajes mayores de 55 | Circuitos por Europa Comunidad de Madrid","og_description":"Descubre los viajes para mayores de 55: Italia, Francia, Turqu\u00eda, Alemania. Viajes con gu\u00eda, visitas, desde Madrid. Programa CAM 2026.","og_url":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/","og_site_name":"Blog Kanami Travel","article_publisher":"https:\/\/www.facebook.com\/KanamiTravel\/","article_modified_time":"2026-03-03T21:33:13+00:00","og_image":[{"width":1280,"height":853,"url":"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/pcdazero-loneliness-2896547_1280.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@KanamiTravel","twitter_misc":{"Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/","url":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/","name":"Viajes mayores de 55 | Circuitos por Europa Comunidad de Madrid","isPartOf":{"@id":"https:\/\/www.kanamitravel.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#primaryimage"},"image":{"@id":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/pcdazero-loneliness-2896547_1280.jpg","datePublished":"2026-03-02T22:24:00+00:00","dateModified":"2026-03-03T21:33:13+00:00","description":"Descubre los viajes para mayores de 55: Italia, Francia, Turqu\u00eda, Alemania. Viajes con gu\u00eda, visitas, desde Madrid. Programa CAM 2026.","breadcrumb":{"@id":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#primaryimage","url":"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/pcdazero-loneliness-2896547_1280.jpg","contentUrl":"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2026\/02\/pcdazero-loneliness-2896547_1280.jpg","width":1280,"height":853,"caption":"Viajes mayores de 55"},{"@type":"BreadcrumbList","@id":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/viajes-mayores-55-circuitos-europa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.kanamitravel.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Viajes para mayores de 55 a\u00f1os","item":"https:\/\/www.kanamitravel.com\/blog\/viajes-mayores-55\/"},{"@type":"ListItem","position":3,"name":"Europa para mayores de 55 Comunidad de Madrid"}]},{"@type":"WebSite","@id":"https:\/\/www.kanamitravel.com\/blog\/#website","url":"https:\/\/www.kanamitravel.com\/blog\/","name":"Blog Kanami Travel","description":"","publisher":{"@id":"https:\/\/www.kanamitravel.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kanamitravel.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.kanamitravel.com\/blog\/#organization","name":"Blog Kanami Travel","url":"https:\/\/www.kanamitravel.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.kanamitravel.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2025\/07\/logo.png","contentUrl":"https:\/\/www.kanamitravel.com\/blog\/wp-content\/uploads\/2025\/07\/logo.png","width":190,"height":32,"caption":"Blog Kanami Travel"},"image":{"@id":"https:\/\/www.kanamitravel.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/KanamiTravel\/","https:\/\/x.com\/KanamiTravel"]}]}},"_links":{"self":[{"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/pages\/1956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/comments?post=1956"}],"version-history":[{"count":10,"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/pages\/1956\/revisions"}],"predecessor-version":[{"id":1998,"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/pages\/1956\/revisions\/1998"}],"up":[{"embeddable":true,"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/pages\/1973"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/media\/1960"}],"wp:attachment":[{"href":"https:\/\/www.kanamitravel.com\/blog\/wp-json\/wp\/v2\/media?parent=1956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}