{"id":15,"date":"2026-08-29T20:41:44","date_gmt":"2026-08-29T20:41:44","guid":{"rendered":"https:\/\/karenydavid.com\/?page_id=15"},"modified":"2026-09-02T16:31:27","modified_gmt":"2026-09-02T16:31:27","slug":"invitacion","status":"publish","type":"page","link":"https:\/\/karenydavid.com\/","title":{"rendered":"Invitacion"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15\" class=\"elementor elementor-15\">\n\t\t\t\t<div class=\"elementor-element elementor-element-94e1523 e-flex e-con-boxed e-con e-parent\" data-id=\"94e1523\" 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-14794dd elementor-widget elementor-widget-image\" data-id=\"14794dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"393\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/INVITACION-DAVID-KAREN.png\" class=\"attachment-full size-full wp-image-19\" alt=\"\" srcset=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/INVITACION-DAVID-KAREN.png 1200w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/INVITACION-DAVID-KAREN-300x98.png 300w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/INVITACION-DAVID-KAREN-1024x335.png 1024w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/INVITACION-DAVID-KAREN-768x252.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\t\t\t\t\t\t\t\t\t\t\t\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-5505d52 e-flex e-con-boxed e-con e-parent\" data-id=\"5505d52\" 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-faa2a03 elementor-widget elementor-widget-heading\" data-id=\"faa2a03\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"nombreInvitado\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Invitado especial<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-caccd2e elementor-widget elementor-widget-html\" data-id=\"caccd2e\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"nombreInvitado\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\n(function () {\r\n\r\n    function colocarNombre(datos) {\r\n\r\n        const campoNombre =\r\n            document.getElementById(\"nombreInvitado\");\r\n\r\n        if (!campoNombre || !datos || !datos.nombre) {\r\n            return;\r\n        }\r\n\r\n        \/*\r\n         Busca el t\u00edtulo real dentro del widget Elementor\r\n         para NO eliminar su tipograf\u00eda ni estilos.\r\n        *\/\r\n        const titulo =\r\n            campoNombre.querySelector(\".elementor-heading-title\");\r\n\r\n        if (titulo) {\r\n\r\n            titulo.textContent =\r\n                datos.nombre;\r\n\r\n        } else {\r\n\r\n            \/*\r\n             Respaldo por si no es un widget de t\u00edtulo\r\n            *\/\r\n            const contenedor =\r\n                campoNombre.querySelector(\".elementor-widget-container\");\r\n\r\n            if (contenedor) {\r\n\r\n                contenedor.textContent =\r\n                    datos.nombre;\r\n\r\n            } else {\r\n\r\n                campoNombre.textContent =\r\n                    datos.nombre;\r\n\r\n            }\r\n\r\n        }\r\n\r\n    }\r\n\r\n\r\n    \/*\r\n     Si los datos del RSVP ya existen\r\n    *\/\r\n    if (window.datosInvitadoBoda) {\r\n\r\n        colocarNombre(\r\n            window.datosInvitadoBoda\r\n        );\r\n\r\n    }\r\n\r\n\r\n    \/*\r\n     Si todav\u00eda no han cargado\r\n    *\/\r\n    window.addEventListener(\r\n        \"datosInvitadoListos\",\r\n        function (evento) {\r\n\r\n            colocarNombre(\r\n                evento.detail\r\n            );\r\n\r\n        }\r\n    );\r\n\r\n})();\r\n<\/script>\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-e6f8202 e-flex e-con-boxed e-con e-parent\" data-id=\"e6f8202\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6af4c67 e-con-full e-flex e-con e-child\" data-id=\"6af4c67\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b65869b elementor-widget elementor-widget-heading\" data-id=\"b65869b\" 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\">\u00a1NOS VAMOS A CASAR!<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d84a9b elementor-widget elementor-widget-heading\" data-id=\"1d84a9b\" 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\">David y Karen<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b97108 elementor-widget elementor-widget-heading\" data-id=\"5b97108\" 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\">26 . 09 . 2026<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-99632e9 e-con-full e-flex e-con e-child\" data-id=\"99632e9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b4386f9 elementor-widget elementor-widget-image\" data-id=\"b4386f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"400\" height=\"523\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/Foto.png\" class=\"attachment-large size-large wp-image-39\" alt=\"\" srcset=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/Foto.png 400w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/Foto-229x300.png 229w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/>\t\t\t\t\t\t\t\t\t\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<div class=\"elementor-element elementor-element-cc4da15 e-flex e-con-boxed e-con e-parent\" data-id=\"cc4da15\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-ba385d3 e-con-full e-flex e-con e-child\" data-id=\"ba385d3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4b5333e elementor-widget elementor-widget-image\" data-id=\"4b5333e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"400\" height=\"581\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/davidk.png\" class=\"attachment-large size-large wp-image-42\" alt=\"\" srcset=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/davidk.png 400w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/davidk-207x300.png 207w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eaa1e36 e-con-full e-flex e-con e-child\" data-id=\"eaa1e36\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-346d85a elementor-widget elementor-widget-image\" data-id=\"346d85a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"120\" height=\"431\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/amor.png\" class=\"attachment-large size-large wp-image-47\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c775a82 e-con-full e-flex e-con e-child\" data-id=\"c775a82\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a273e2c elementor-widget elementor-widget-heading\" data-id=\"a273e2c\" 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\">\u201cEl amor <br>nunca deja<br> de ser.\u201d<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb04381 elementor-widget elementor-widget-heading\" data-id=\"bb04381\" 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\">1 Corintios 13:8<\/h2>\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<div class=\"elementor-element elementor-element-bbac1e4 e-flex e-con-boxed e-con e-parent\" data-id=\"bbac1e4\" 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-f334e7b elementor-widget elementor-widget-heading\" data-id=\"f334e7b\" 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\">\u00a1Nosotros!<\/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-7a566ec e-flex e-con-boxed e-con e-parent\" data-id=\"7a566ec\" 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-e232d77 elementor-widget elementor-widget-text-editor\" data-id=\"e232d77\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u00a1Estamos muy emocionados de compartir esta gran noticia con todos ustedes!<br data-start=\"278\" data-end=\"281\" \/>Acomp\u00e1\u00f1enos a celebrar esta ocasi\u00f3n tan especial y a disfrutar juntos de un d\u00eda perfecto, lleno de alegr\u00eda y momentos inolvidables.<\/p>\t\t\t\t\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-18b568a e-flex e-con-boxed e-con e-parent\" data-id=\"18b568a\" 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\t\t<div class=\"elementor-element elementor-element-63d1314 elementor-widget elementor-widget-heading\" data-id=\"63d1314\" 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\">SEPTIEMBRE<\/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-18511b3 e-flex e-con-boxed e-con e-parent\" data-id=\"18511b3\" 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-feb37b2 e-con-full e-flex e-con e-child\" data-id=\"feb37b2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1cc9efb elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"1cc9efb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f84311f elementor-widget elementor-widget-heading\" data-id=\"f84311f\" 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\">SABADO<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2b8d899 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"2b8d899\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-503df2f e-con-full e-flex e-con e-child\" data-id=\"503df2f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b7f8d82 elementor-widget elementor-widget-heading\" data-id=\"b7f8d82\" 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\">26<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3e1153d e-con-full e-flex e-con e-child\" data-id=\"3e1153d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e3b6a75 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"e3b6a75\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d022949 elementor-widget elementor-widget-heading\" data-id=\"d022949\" 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\">2026<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7fdbfe5 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"7fdbfe5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\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<div class=\"elementor-element elementor-element-93e2be7 e-flex e-con-boxed e-con e-parent\" data-id=\"93e2be7\" 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\t\t<div class=\"elementor-element elementor-element-2eec33a elementor-widget elementor-widget-heading\" data-id=\"2eec33a\" 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\">FALTAN<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d72d6bb elementor-widget elementor-widget-html\" data-id=\"d72d6bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"contador-boda\">\r\n  <div class=\"bloque\">\r\n    <span id=\"dias\">00<\/span>\r\n    <small>D\u00cdAS<\/small>\r\n  <\/div>\r\n\r\n  <div class=\"separador\">:<\/div>\r\n\r\n  <div class=\"bloque\">\r\n    <span id=\"horas\">00<\/span>\r\n    <small>HORAS<\/small>\r\n  <\/div>\r\n\r\n  <div class=\"separador\">:<\/div>\r\n\r\n  <div class=\"bloque\">\r\n    <span id=\"minutos\">00<\/span>\r\n    <small>MINUTOS<\/small>\r\n  <\/div>\r\n\r\n  <div class=\"separador\">:<\/div>\r\n\r\n  <div class=\"bloque\">\r\n    <span id=\"segundos\">00<\/span>\r\n    <small>SEGUNDOS<\/small>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n.contador-boda {\r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n  gap: 12px;\r\n  font-family: Arial, sans-serif;\r\n  color: #ffffff;\r\n  text-align: center;\r\n}\r\n\r\n.contador-boda .bloque {\r\n  min-width: 65px;\r\n}\r\n\r\n.contador-boda span {\r\n  display: block;\r\n  font-size: 38px;\r\n  font-weight: 600;\r\n  line-height: 1;\r\n}\r\n\r\n.contador-boda small {\r\n  display: block;\r\n  font-size: 10px;\r\n  letter-spacing: 2px;\r\n  margin-top: 8px;\r\n}\r\n\r\n.contador-boda .separador {\r\n  font-size: 32px;\r\n  margin-top: -14px;\r\n}\r\n\r\n@media (max-width: 600px) {\r\n  .contador-boda {\r\n    gap: 5px;\r\n  }\r\n\r\n  .contador-boda .bloque {\r\n    min-width: 52px;\r\n  }\r\n\r\n  .contador-boda span {\r\n    font-size: 29px;\r\n  }\r\n\r\n  .contador-boda small {\r\n    font-size: 8px;\r\n    letter-spacing: 1px;\r\n  }\r\n\r\n  .contador-boda .separador {\r\n    font-size: 25px;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  \/*\r\n   * BODA:\r\n   * 26 de septiembre de 2026\r\n   * 3:30 PM\r\n   * Hora de Colombia\r\n   *\/\r\n  const fechaBoda = new Date(\r\n    \"2026-09-26T15:30:00-05:00\"\r\n  ).getTime();\r\n\r\n  \/*\r\n   * Obtiene a\u00f1o, mes, d\u00eda, hora, minutos y segundos\r\n   * tomando SIEMPRE como referencia Colombia.\r\n   *\/\r\n  function obtenerFechaColombia() {\r\n\r\n    const ahoraReal = new Date();\r\n\r\n    const formato = new Intl.DateTimeFormat(\"en-US\", {\r\n      timeZone: \"America\/Bogota\",\r\n      year: \"numeric\",\r\n      month: \"2-digit\",\r\n      day: \"2-digit\",\r\n      hour: \"2-digit\",\r\n      minute: \"2-digit\",\r\n      second: \"2-digit\",\r\n      hourCycle: \"h23\"\r\n    });\r\n\r\n    const partes = formato.formatToParts(ahoraReal);\r\n\r\n    const datos = {};\r\n\r\n    partes.forEach(function(parte) {\r\n      if (parte.type !== \"literal\") {\r\n        datos[parte.type] = parseInt(parte.value, 10);\r\n      }\r\n    });\r\n\r\n    return {\r\n      timestamp: ahoraReal.getTime(),\r\n      year: datos.year,\r\n      month: datos.month,\r\n      day: datos.day,\r\n      hour: datos.hour,\r\n      minute: datos.minute,\r\n      second: datos.second\r\n    };\r\n  }\r\n\r\n\r\n  function actualizarContador() {\r\n\r\n    const colombia = obtenerFechaColombia();\r\n    const ahora = colombia.timestamp;\r\n\r\n    \/*\r\n     * Cuando llega exactamente:\r\n     * 26 septiembre 2026 - 3:30 PM Colombia\r\n     *\/\r\n    if (ahora >= fechaBoda) {\r\n\r\n      const contador = document.querySelector(\".contador-boda\");\r\n\r\n      contador.innerHTML =\r\n        \"<div style='font-size:30px;font-weight:bold;'>\u00a1HOY NOS CASAMOS!<\/div>\";\r\n\r\n      return;\r\n    }\r\n\r\n\r\n    \/*\r\n     * ==========================================\r\n     * CALCULAR LOS D\u00cdAS DE CALENDARIO\r\n     * ==========================================\r\n     *\r\n     * As\u00ed los d\u00edas cambian exactamente\r\n     * a las 12:00 AM de Colombia.\r\n     *\/\r\n\r\n    const hoyCalendario = Date.UTC(\r\n      colombia.year,\r\n      colombia.month - 1,\r\n      colombia.day\r\n    );\r\n\r\n    const diaBodaCalendario = Date.UTC(\r\n      2026,\r\n      8,   \/\/ Septiembre (enero = 0)\r\n      26\r\n    );\r\n\r\n    let dias = Math.round(\r\n      (diaBodaCalendario - hoyCalendario) \/\r\n      (1000 * 60 * 60 * 24)\r\n    );\r\n\r\n\r\n    let distanciaHoras;\r\n\r\n\r\n    \/*\r\n     * ==========================================\r\n     * ANTES DEL 26 DE SEPTIEMBRE\r\n     * ==========================================\r\n     *\r\n     * Horas, minutos y segundos cuentan\r\n     * hasta las pr\u00f3ximas 12:00 AM.\r\n     *\r\n     * En Colombia las 12:00 AM equivalen\r\n     * a las 05:00 UTC.\r\n     *\/\r\n\r\n    if (dias > 0) {\r\n\r\n      const proximaMedianocheColombia = Date.UTC(\r\n        colombia.year,\r\n        colombia.month - 1,\r\n        colombia.day + 1,\r\n        5,\r\n        0,\r\n        0\r\n      );\r\n\r\n      distanciaHoras =\r\n        proximaMedianocheColombia - ahora;\r\n\r\n    }\r\n\r\n    \/*\r\n     * ==========================================\r\n     * EL 26 DE SEPTIEMBRE\r\n     * ==========================================\r\n     *\r\n     * Cuando sean las 12:00 AM del d\u00eda 26,\r\n     * aparecer\u00e1:\r\n     *\r\n     * 00 d\u00edas\r\n     * 15 horas\r\n     * 30 minutos\r\n     * 00 segundos\r\n     *\r\n     * y contar\u00e1 hasta las 3:30 PM.\r\n     *\/\r\n\r\n    else {\r\n\r\n      dias = 0;\r\n\r\n      distanciaHoras =\r\n        fechaBoda - ahora;\r\n\r\n    }\r\n\r\n\r\n    \/*\r\n     * Evitar valores negativos\r\n     *\/\r\n    if (distanciaHoras < 0) {\r\n      distanciaHoras = 0;\r\n    }\r\n\r\n\r\n    const horas = Math.floor(\r\n      distanciaHoras \/\r\n      (1000 * 60 * 60)\r\n    );\r\n\r\n    const minutos = Math.floor(\r\n      (distanciaHoras %\r\n      (1000 * 60 * 60)) \/\r\n      (1000 * 60)\r\n    );\r\n\r\n    const segundos = Math.floor(\r\n      (distanciaHoras %\r\n      (1000 * 60)) \/\r\n      1000\r\n    );\r\n\r\n\r\n    \/*\r\n     * Mostrar los valores\r\n     *\/\r\n\r\n    document.getElementById(\"dias\").textContent =\r\n      String(dias).padStart(2, \"0\");\r\n\r\n    document.getElementById(\"horas\").textContent =\r\n      String(horas).padStart(2, \"0\");\r\n\r\n    document.getElementById(\"minutos\").textContent =\r\n      String(minutos).padStart(2, \"0\");\r\n\r\n    document.getElementById(\"segundos\").textContent =\r\n      String(segundos).padStart(2, \"0\");\r\n\r\n  }\r\n\r\n\r\n  \/*\r\n   * Ejecutar inmediatamente\r\n   *\/\r\n  actualizarContador();\r\n\r\n  \/*\r\n   * Actualizar cada segundo\r\n   *\/\r\n  setInterval(actualizarContador, 1000);\r\n\r\n});\r\n<\/script>\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-3729f3f e-flex e-con-boxed e-con e-parent\" data-id=\"3729f3f\" 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-2031172 elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"2031172\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"284\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/222222222-1024x363.png\" class=\"attachment-large size-large wp-image-221\" alt=\"\" srcset=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/222222222-1024x363.png 1024w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/222222222-300x106.png 300w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/222222222-768x272.png 768w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/222222222-1536x545.png 1536w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/222222222.png 2000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\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-8018cfd e-flex e-con-boxed e-con e-parent\" data-id=\"8018cfd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-9190148 e-con-full e-flex e-con e-child\" data-id=\"9190148\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-03067ff elementor-widget elementor-widget-image\" data-id=\"03067ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"378\" height=\"399\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/MATRIMONIO.png\" class=\"attachment-large size-large wp-image-74\" alt=\"\" srcset=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/MATRIMONIO.png 378w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/MATRIMONIO-284x300.png 284w\" sizes=\"(max-width: 378px) 100vw, 378px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-08b0e2f e-con-full e-flex e-con e-child\" data-id=\"08b0e2f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f49c201 elementor-widget elementor-widget-heading\" data-id=\"f49c201\" 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\">Ceremonia cristiana\ny Recepci\u00f3n<\/h2>\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<div class=\"elementor-element elementor-element-55064ef e-flex e-con-boxed e-con e-parent\" data-id=\"55064ef\" 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-f8e91ba elementor-widget elementor-widget-text-editor\" data-id=\"f8e91ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Cra. 3 # 4-178 &#8211; Cajic\u00e1<br data-start=\"153\" data-end=\"156\" \/><strong data-start=\"156\" data-end=\"173\">HORA: 3:30 PM<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7187fd1 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"7187fd1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/maps.app.goo.gl\/vG79aigCGvap8Rnr9\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-map-marked-alt\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">VER UBICACION<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a10af97 elementor-widget elementor-widget-heading\" data-id=\"a10af97\" 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\">C\u00f3digo de Vestimenta<\/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-000ead9 e-flex e-con-boxed e-con e-parent\" data-id=\"000ead9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-956aeea e-con-full e-flex e-con e-child\" data-id=\"956aeea\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2eded41 elementor-widget elementor-widget-image\" data-id=\"2eded41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"211\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/INVITACION-DAVID-.png\" class=\"attachment-large size-large wp-image-83\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9f05b81 e-con-full e-flex e-con e-child\" data-id=\"9f05b81\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ed265e1 elementor-widget elementor-widget-heading\" data-id=\"ed265e1\" 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\">FORMAL<\/h2>\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<div class=\"elementor-element elementor-element-2b476e9 e-flex e-con-boxed e-con e-parent\" data-id=\"2b476e9\" 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\t\t<div class=\"elementor-element elementor-element-7efd7f5 elementor-widget elementor-widget-heading\" data-id=\"7efd7f5\" 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\">Regalo: <span style=\"font-family:poppins;font-size:20px\">Lluvia de Sobres<\/span><\/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-96bd3c1 e-flex e-con-boxed e-con e-parent\" data-id=\"96bd3c1\" 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\t\t<div class=\"elementor-element elementor-element-5ef4f8f elementor-widget elementor-widget-heading\" data-id=\"5ef4f8f\" 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\">Confirmaci\u00f3n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22b0331 elementor-widget elementor-widget-text-editor\" data-id=\"22b0331\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Agradecemos que confirmes tu<br data-start=\"160\" data-end=\"163\" \/>asistencia antes del 15 de septiembre.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c16b2f0 e-con-full e-flex e-con e-child\" data-id=\"c16b2f0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7652c80 e-con-full e-flex e-con e-child\" data-id=\"7652c80\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31259fd elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"31259fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-calendar-alt\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b25c42d e-con-full e-flex e-con e-child\" data-id=\"b25c42d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-72e7f2d btn-confirmar elementor-widget elementor-widget-button\" data-id=\"72e7f2d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">CONFIRMAR AQU\u00cd<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6fccdb0 elementor-widget__width-initial elementor-fixed btn-confirmar elementor-widget elementor-widget-button\" data-id=\"6fccdb0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;fixed&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Confirma tu asistencia<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-28f5dec elementor-widget elementor-widget-html\" data-id=\"28f5dec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div\r\n  id=\"avisoConfirmacionGuardada\"\r\n  class=\"aviso-confirmacion-guardada\"\r\n  style=\"display:none;\"\r\n>\r\n\r\n  <div class=\"aviso-check\">\r\n    \u2713\r\n  <\/div>\r\n\r\n  <div class=\"aviso-contenido\">\r\n\r\n    <div\r\n      id=\"tituloConfirmacionGuardada\"\r\n      class=\"aviso-titulo\"\r\n    >\r\n      \u00a1Gracias por confirmar!\r\n    <\/div>\r\n\r\n    <div\r\n      id=\"datosConfirmacionGuardada\"\r\n      class=\"aviso-datos\"\r\n    ><\/div>\r\n\r\n    <button\r\n      type=\"button\"\r\n      id=\"cambiarConfirmacion\"\r\n      class=\"btn-cambiar-confirmacion\"\r\n    >\r\n      CAMBIAR CONFIRMACI\u00d3N\r\n    <\/button>\r\n\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<div id=\"modalConfirmacion\" class=\"modal-rsvp\">\r\n  <div class=\"rsvp-box\">\r\n\r\n    <button class=\"cerrar-rsvp\" id=\"cerrarRSVP\">\u00d7<\/button>\r\n\r\n    <!-- PASO 1 -->\r\n    <div id=\"paso1\">\r\n      <div class=\"titulo-script\">Confirmaci\u00f3n<\/div>\r\n\r\n      <h2 id=\"saludoInvitado\">\u00bfPodr\u00e1s acompa\u00f1arnos?<\/h2>\r\n\r\n      <p>\r\n        Nos har\u00eda muy felices contar contigo en este d\u00eda tan especial.\r\n      <\/p>\r\n\r\n      <button id=\"btnSi\" class=\"rsvp-principal\">\r\n        \u2764\ufe0f S\u00ed, asistir\u00e9\r\n      <\/button>\r\n\r\n      <button id=\"btnNo\" class=\"rsvp-secundario\">\r\n        No podr\u00e9 asistir\r\n      <\/button>\r\n    <\/div>\r\n\r\n\r\n    <!-- PASO 2 -->\r\n    <div id=\"paso2\" style=\"display:none;\">\r\n\r\n      <div class=\"titulo-script\">\u00a1Qu\u00e9 alegr\u00eda!<\/div>\r\n\r\n      <h2>\u00bfCu\u00e1ntas personas asistir\u00e1n?<\/h2>\r\n\r\n      <p id=\"textoCupos\" class=\"texto-cupos\"><\/p>\r\n\r\n      <div class=\"contador\">\r\n        <button type=\"button\" id=\"menos\">\u2212<\/button>\r\n\r\n        <span id=\"cantidad\">1<\/span>\r\n\r\n        <button type=\"button\" id=\"mas\">+<\/button>\r\n      <\/div>\r\n\r\n      <button\r\n        type=\"button\"\r\n        id=\"guardarConfirmacion\"\r\n        class=\"rsvp-principal\"\r\n      >\r\n        CONFIRMAR ASISTENCIA\r\n      <\/button>\r\n\r\n    <\/div>\r\n\r\n\r\n    <!-- PASO 3 -->\r\n    <div id=\"paso3\" style=\"display:none;\">\r\n\r\n      <div class=\"check\">\u2713<\/div>\r\n\r\n      <h2>\u00a1Confirmaci\u00f3n recibida!<\/h2>\r\n\r\n      <p id=\"mensajeFinal\">\r\n        Estamos felices de poder compartir este d\u00eda contigo.\r\n      <\/p>\r\n\r\n      <a\r\n        href=\"#\"\r\n        target=\"_blank\"\r\n        id=\"googleCalendar\"\r\n        class=\"rsvp-principal enlace\"\r\n      >\r\n        \ud83d\udcc5 AGREGAR A GOOGLE CALENDAR\r\n      <\/a>\r\n\r\n    <\/div>\r\n\r\n\r\n    <!-- NO ASISTIR\u00c1 -->\r\n    <div id=\"pasoNo\" style=\"display:none;\">\r\n\r\n      <div class=\"titulo-script\">Gracias<\/div>\r\n\r\n      <h2>Confirmaci\u00f3n recibida<\/h2>\r\n\r\n      <p>\r\n        Gracias por hac\u00e9rnoslo saber.\r\n        Te tendremos presente en este d\u00eda tan especial.\r\n      <\/p>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n\r\n<style>\r\n\/* =========================================\r\n   CONFIRMACI\u00d3N YA REGISTRADA\r\n========================================= *\/\r\n\r\n.aviso-confirmacion-guardada{\r\n\r\n  position:fixed;\r\n\r\n  left:50%;\r\n\r\n  bottom:20px;\r\n\r\n  transform:translateX(-50%);\r\n\r\n  width:calc(100% - 32px);\r\n\r\n  max-width:520px;\r\n\r\n  background:#fff;\r\n\r\n  border-radius:18px;\r\n\r\n  padding:18px;\r\n\r\n  box-sizing:border-box;\r\n\r\n  box-shadow:\r\n    0 10px 40px\r\n    rgba(0,0,0,.22);\r\n\r\n  z-index:9998;\r\n\r\n  display:flex;\r\n\r\n  align-items:flex-start;\r\n\r\n  gap:14px;\r\n\r\n  border:\r\n    1px solid\r\n    rgba(153,0,0,.15);\r\n\r\n}\r\n\r\n\r\n.aviso-check{\r\n\r\n  min-width:42px;\r\n\r\n  width:42px;\r\n\r\n  height:42px;\r\n\r\n  border-radius:50%;\r\n\r\n  background:#990000;\r\n\r\n  color:white;\r\n\r\n  display:flex;\r\n\r\n  align-items:center;\r\n\r\n  justify-content:center;\r\n\r\n  font-size:24px;\r\n\r\n  font-weight:bold;\r\n\r\n}\r\n\r\n\r\n.aviso-contenido{\r\n\r\n  flex:1;\r\n\r\n}\r\n\r\n\r\n.aviso-titulo{\r\n\r\n  color:#700000;\r\n\r\n  font-size:19px;\r\n\r\n  font-weight:bold;\r\n\r\n  margin-bottom:6px;\r\n\r\n}\r\n\r\n\r\n.aviso-datos{\r\n\r\n  color:#555;\r\n\r\n  font-size:14px;\r\n\r\n  line-height:1.6;\r\n\r\n}\r\n\r\n\r\n.btn-cambiar-confirmacion{\r\n\r\n  margin-top:12px;\r\n\r\n  background:transparent;\r\n\r\n  border:\r\n    1px solid #990000;\r\n\r\n  color:#990000;\r\n\r\n  border-radius:25px;\r\n\r\n  padding:\r\n    9px 16px;\r\n\r\n  font-size:12px;\r\n\r\n  font-weight:bold;\r\n\r\n  cursor:pointer;\r\n\r\n}\r\n\r\n\r\n.btn-cambiar-confirmacion:hover{\r\n\r\n  background:#990000;\r\n\r\n  color:white;\r\n\r\n}\r\n\r\n.modal-rsvp{\r\n  display:none;\r\n  position:fixed;\r\n  z-index:99999;\r\n  left:0;\r\n  top:0;\r\n  width:100%;\r\n  height:100%;\r\n  background:rgba(0,0,0,.65);\r\n  align-items:center;\r\n  justify-content:center;\r\n  padding:20px;\r\n  box-sizing:border-box;\r\n}\r\n\r\n.rsvp-box{\r\n  width:100%;\r\n  max-width:440px;\r\n  background:#fff;\r\n  border-radius:18px;\r\n  padding:40px 30px;\r\n  text-align:center;\r\n  position:relative;\r\n  box-shadow:0 20px 60px rgba(0,0,0,.3);\r\n  box-sizing:border-box;\r\n}\r\n\r\n.cerrar-rsvp{\r\n  position:absolute;\r\n  right:15px;\r\n  top:10px;\r\n  border:none;\r\n  background:none;\r\n  font-size:32px;\r\n  cursor:pointer;\r\n  color:#800000;\r\n}\r\n\r\n.titulo-script{\r\n  color:#990000;\r\n  font-size:30px;\r\n  font-style:italic;\r\n  margin-bottom:15px;\r\n}\r\n\r\n.rsvp-box h2{\r\n  color:#700000;\r\n  font-size:24px;\r\n}\r\n\r\n.rsvp-box p{\r\n  font-size:16px;\r\n  line-height:1.6;\r\n}\r\n\r\n.rsvp-principal,\r\n.rsvp-secundario{\r\n  display:block;\r\n  width:100%;\r\n  border-radius:30px;\r\n  padding:14px 20px;\r\n  margin-top:15px;\r\n  cursor:pointer;\r\n  font-size:15px;\r\n  box-sizing:border-box;\r\n}\r\n\r\n.rsvp-principal{\r\n  background:#990000;\r\n  color:white;\r\n  border:none;\r\n}\r\n\r\n.rsvp-secundario{\r\n  background:white;\r\n  color:#990000;\r\n  border:1px solid #990000;\r\n}\r\n\r\n.texto-cupos{\r\n  color:#777;\r\n  font-size:14px !important;\r\n  margin-top:5px;\r\n  margin-bottom:0;\r\n}\r\n\r\n.contador{\r\n  display:flex;\r\n  justify-content:center;\r\n  align-items:center;\r\n  gap:25px;\r\n  margin:30px 0;\r\n}\r\n\r\n.contador button{\r\n  width:45px;\r\n  height:45px;\r\n  border-radius:50%;\r\n  border:none;\r\n  background:#990000;\r\n  color:white;\r\n  font-size:25px;\r\n  cursor:pointer;\r\n}\r\n\r\n.contador button:disabled{\r\n  opacity:.35;\r\n  cursor:not-allowed;\r\n}\r\n\r\n#cantidad{\r\n  font-size:30px;\r\n  font-weight:bold;\r\n  color:#700000;\r\n  min-width:35px;\r\n}\r\n\r\n.check{\r\n  margin:auto;\r\n  width:65px;\r\n  height:65px;\r\n  line-height:65px;\r\n  border-radius:50%;\r\n  background:#990000;\r\n  color:white;\r\n  font-size:35px;\r\n}\r\n\r\n.enlace{\r\n  text-decoration:none;\r\n}\r\n\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  \/* =====================================================\r\n     GOOGLE SHEETS\r\n  ===================================================== *\/\r\n\r\n  const GOOGLE_SCRIPT_URL =\r\n    \"https:\/\/script.google.com\/macros\/s\/AKfycbykauHV6jBpWntZrQNBE9EOQEoYcegMiUOCY2GOKUVuWBXHfLDbpWDgm7rT0Me6aiNy2A\/exec\";\r\n\r\n\r\n  \/* =====================================================\r\n     BASE DE DATOS DE INVITADOS\r\n  ===================================================== *\/\r\n\r\n  const invitados = {\r\n\r\n    \"1\":  { nombre: \"Edgar Romero y Esposa\", cupos: 2 },\r\n    \"2\":  { nombre: \"Luis Romero y Esposa\", cupos: 2 },\r\n    \"3\":  { nombre: \"Kike Romero y esposa\", cupos: 2 },\r\n    \"4\":  { nombre: \"Stella Romero\", cupos: 1 },\r\n    \"5\":  { nombre: \"Nancy Medina\", cupos: 1 },\r\n    \"6\":  { nombre: \"Mery Romero y esposo\", cupos: 2 },\r\n    \"7\":  { nombre: \"Carlos Romero e hija\", cupos: 2 },\r\n    \"8\":  { nombre: \"Gina Medina e hijo\", cupos: 2 },\r\n    \"9\":  { nombre: \"Daniel Beltran y esposa\", cupos: 2 },\r\n    \"10\": { nombre: \"Sandra Beltran\", cupos: 1 },\r\n    \"11\": { nombre: \"William Beltran\", cupos: 1 },\r\n    \"12\": { nombre: \"Cristian Pacheco y Familia\", cupos: 2 },\r\n    \"13\": { nombre: \"Javier Contreras\", cupos: 1 },\r\n    \"14\": { nombre: \"Edwin Gerena y Familia\", cupos: 3 },\r\n    \"15\": { nombre: \"Danielly y Edwin\", cupos: 2 },\r\n    \"16\": { nombre: \"Angie Carbonell\", cupos: 1 },\r\n    \"17\": { nombre: \"Omaira Carbonell\", cupos: 1 },\r\n    \"18\": { nombre: \"Stella Carvajal\", cupos: 1 },\r\n    \"19\": { nombre: \"Lucila Carvajal\", cupos: 1 },\r\n    \"20\": { nombre: \"Brayan Nope y novia\", cupos: 2 },\r\n    \"21\": { nombre: \"Alexis Nope\", cupos: 1 },\r\n    \"22\": { nombre: \"Yenifer Carvajal\", cupos: 1 },\r\n    \"23\": { nombre: \"Jos\u00e9 Nope\", cupos: 1 },\r\n    \"24\": { nombre: \"Esneidy Carvajal\", cupos: 1 },\r\n    \"25\": { nombre: \"Stella Nope y Familia\", cupos: 4 },\r\n    \"26\": { nombre: \"Manuelito\", cupos: 1 },\r\n    \"27\": { nombre: \"Cielo Carvajal\", cupos: 1 },\r\n    \"28\": { nombre: \"Wilson Quiceno y esposa\", cupos: 2 },\r\n    \"29\": { nombre: \"Gustavo Nope y Obdulia\", cupos: 2 },\r\n    \"30\": { nombre: \"Jorge Cervera y Familia\", cupos: 2 },\r\n    \"31\": { nombre: \"Laura Vargas\", cupos: 1 },\r\n    \"32\": { nombre: \"Talia Castro\", cupos: 1 },\r\n    \"33\": { nombre: \"Orlando Caro y esposa\", cupos: 2 },\r\n    \"34\": { nombre: \"Pr. Ever y Samuel Ar\u00e9valo\", cupos: 2 },\r\n    \"35\": { nombre: \"Sofia Luque\", cupos: 1 },\r\n    \"36\": { nombre: \"Andrea Beltran e hija\", cupos: 2 },\r\n    \"37\": { nombre: \"Alexandra Medina y esposo\", cupos: 2 },\r\n    \"38\": { nombre: \"Luz Milly y Mariela\", cupos: 2 },\r\n    \"39\": { nombre: \"Janeth Bejarano y Camila\", cupos: 2 },\r\n    \"40\": { nombre: \"Nubia Leiton\", cupos: 1 },\r\n    \"41\": { nombre: \"Nicolas Fontalvo y Familia\", cupos: 4 },\r\n    \"42\": { nombre: \"Luz Dary Nieto y esposo\", cupos: 2 },\r\n    \"43\": { nombre: \"Hobber Garcia y familia\", cupos: 4 },\r\n    \"44\": { nombre: \"Ines Ibarguen\", cupos: 1 },\r\n    \"45\": { nombre: \"Pr. Alvar\u00f3 y Familia\", cupos: 3 },\r\n    \"46\": { nombre: \"Hernando Ru\u00edz y esposa\", cupos: 2 },\r\n    \"47\": { nombre: \"Mauricio Mart\u00ednez y Familia\", cupos: 4 },\r\n    \"48\": { nombre: \"Shneider Carrillo y Familia\", cupos: 4 },\r\n    \"49\": { nombre: \"Constanza Ca\u00f1on y Esposo\", cupos: 2 }\r\n\r\n\r\n  };\r\n\r\n\r\n  \/* =====================================================\r\n     ELEMENTOS DEL MODAL\r\n  ===================================================== *\/\r\n\r\n  const modal =\r\n    document.getElementById(\"modalConfirmacion\");\r\n\r\n  const botonesAbrir =\r\n    document.querySelectorAll(\".btn-confirmar\");\r\n\r\n  const cerrarRSVP =\r\n    document.getElementById(\"cerrarRSVP\");\r\n\r\n  const paso1 =\r\n    document.getElementById(\"paso1\");\r\n\r\n  const paso2 =\r\n    document.getElementById(\"paso2\");\r\n\r\n  const paso3 =\r\n    document.getElementById(\"paso3\");\r\n\r\n  const pasoNo =\r\n    document.getElementById(\"pasoNo\");\r\n\r\n  const btnSi =\r\n    document.getElementById(\"btnSi\");\r\n\r\n  const btnNo =\r\n    document.getElementById(\"btnNo\");\r\n\r\n  const saludoInvitado =\r\n    document.getElementById(\"saludoInvitado\");\r\n\r\n  const mensajeFinal =\r\n    document.getElementById(\"mensajeFinal\");\r\n\r\n  const textoCupos =\r\n    document.getElementById(\"textoCupos\");\r\n\r\n  const cantidadTexto =\r\n    document.getElementById(\"cantidad\");\r\n\r\n  const botonMas =\r\n    document.getElementById(\"mas\");\r\n\r\n  const botonMenos =\r\n    document.getElementById(\"menos\");\r\n\r\n  const guardarConfirmacion =\r\n    document.getElementById(\"guardarConfirmacion\");\r\n\r\n  const botonCalendar =\r\n    document.getElementById(\"googleCalendar\");\r\n\r\n\r\n  \/* =====================================================\r\n     LEER URL\r\n     Ejemplo:\r\n     https:\/\/karenydavid.com\/?rsvp=33\r\n  ===================================================== *\/\r\n\r\n  const parametros =\r\n    new URLSearchParams(window.location.search);\r\n\r\n  const codigoRSVP =\r\n    parametros.get(\"rsvp\");\r\n\r\n\r\n  \/* =====================================================\r\n     DATOS INICIALES\r\n  ===================================================== *\/\r\n\r\n  let idInvitado = \"\";\r\n  let invitado = \"Invitado especial\";\r\n  let cuposMaximos = 1;\r\n  let cantidad = 1;\r\n\r\n  \/*\r\n    Aqu\u00ed guardaremos la confirmaci\u00f3n que venga\r\n    desde Google Sheets.\r\n  *\/\r\n\r\n  let confirmacionActual = null;\r\n\r\n\r\n  \/* =====================================================\r\n     BUSCAR INVITADO POR ?rsvp=\r\n  ===================================================== *\/\r\n\r\n  if (codigoRSVP) {\r\n\r\n    const codigoLimpio =\r\n      String(codigoRSVP).trim();\r\n\r\n    if (\r\n      Object.prototype.hasOwnProperty.call(\r\n        invitados,\r\n        codigoLimpio\r\n      )\r\n    ) {\r\n\r\n      idInvitado =\r\n        codigoLimpio;\r\n\r\n      invitado =\r\n        invitados[codigoLimpio].nombre;\r\n\r\n      cuposMaximos =\r\n        invitados[codigoLimpio].cupos;\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     COMPATIBILIDAD CON URLs ANTIGUAS\r\n     ?id=33&invitado=Orlando...&cupos=2\r\n  ===================================================== *\/\r\n\r\n  if (\r\n    !codigoRSVP &&\r\n    parametros.get(\"id\")\r\n  ) {\r\n\r\n    idInvitado =\r\n      parametros.get(\"id\") || \"\";\r\n\r\n    invitado =\r\n      parametros.get(\"invitado\") ||\r\n      \"Invitado especial\";\r\n\r\n    let cuposAntiguos =\r\n      parseInt(\r\n        parametros.get(\"cupos\"),\r\n        10\r\n      );\r\n\r\n    if (\r\n      isNaN(cuposAntiguos) ||\r\n      cuposAntiguos < 1\r\n    ) {\r\n\r\n      cuposAntiguos = 1;\r\n\r\n    }\r\n\r\n    if (cuposAntiguos > 4) {\r\n\r\n      cuposAntiguos = 4;\r\n\r\n    }\r\n\r\n    cuposMaximos =\r\n      cuposAntiguos;\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     COMPARTIR DATOS CON OTROS SCRIPTS\r\n  ===================================================== *\/\r\n\r\n  window.datosInvitadoBoda = {\r\n\r\n    id: idInvitado,\r\n\r\n    nombre: invitado,\r\n\r\n    cupos: cuposMaximos\r\n\r\n  };\r\n\r\n  window.dispatchEvent(\r\n    new CustomEvent(\r\n      \"datosInvitadoListos\",\r\n      {\r\n        detail:\r\n          window.datosInvitadoBoda\r\n      }\r\n    )\r\n  );\r\n\r\n\r\n  \/* =====================================================\r\n     CREAR AVISO PERMANENTE AUTOM\u00c1TICAMENTE\r\n\r\n     No necesitas agregar HTML adicional.\r\n  ===================================================== *\/\r\n\r\n  function crearAvisoConfirmacion() {\r\n\r\n    \/*\r\n      Si ya existe porque lo agregaste anteriormente,\r\n      no lo vuelve a crear.\r\n    *\/\r\n\r\n    if (\r\n      document.getElementById(\r\n        \"avisoConfirmacionGuardada\"\r\n      )\r\n    ) {\r\n\r\n      return;\r\n\r\n    }\r\n\r\n\r\n    \/* -----------------------------\r\n       ESTILOS\r\n    ----------------------------- *\/\r\n\r\n    if (\r\n      !document.getElementById(\r\n        \"estilosAvisoRSVP\"\r\n      )\r\n    ) {\r\n\r\n      const estilos =\r\n        document.createElement(\"style\");\r\n\r\n      estilos.id =\r\n        \"estilosAvisoRSVP\";\r\n\r\n      estilos.textContent = `\r\n\r\n        #avisoConfirmacionGuardada {\r\n\r\n          display: none;\r\n\r\n          position: fixed;\r\n\r\n          left: 50%;\r\n\r\n          bottom: 20px;\r\n\r\n          transform:\r\n            translateX(-50%);\r\n\r\n          width:\r\n            calc(100% - 30px);\r\n\r\n          max-width: 500px;\r\n\r\n          background: #ffffff;\r\n\r\n          border-radius: 20px;\r\n\r\n          padding: 20px;\r\n\r\n          box-sizing:\r\n            border-box;\r\n\r\n          box-shadow:\r\n            0 12px 45px\r\n            rgba(0,0,0,.25);\r\n\r\n          z-index: 9998;\r\n\r\n          border:\r\n            1px solid\r\n            rgba(153,0,0,.15);\r\n\r\n          font-family:\r\n            inherit;\r\n\r\n        }\r\n\r\n\r\n        .rsvp-aviso-superior {\r\n\r\n          display: flex;\r\n\r\n          align-items:\r\n            flex-start;\r\n\r\n          gap: 14px;\r\n\r\n        }\r\n\r\n\r\n        .rsvp-aviso-check {\r\n\r\n          flex:\r\n            0 0 44px;\r\n\r\n          width: 44px;\r\n\r\n          height: 44px;\r\n\r\n          border-radius:\r\n            50%;\r\n\r\n          background:\r\n            #990000;\r\n\r\n          color: #ffffff;\r\n\r\n          display: flex;\r\n\r\n          align-items:\r\n            center;\r\n\r\n          justify-content:\r\n            center;\r\n\r\n          font-size:\r\n            24px;\r\n\r\n          font-weight:\r\n            bold;\r\n\r\n        }\r\n\r\n\r\n        .rsvp-aviso-info {\r\n\r\n          flex: 1;\r\n\r\n          min-width: 0;\r\n\r\n        }\r\n\r\n\r\n        .rsvp-aviso-titulo {\r\n\r\n          margin: 0 0 6px;\r\n\r\n          color: #700000;\r\n\r\n          font-size: 19px;\r\n\r\n          line-height: 1.25;\r\n\r\n          font-weight: 700;\r\n\r\n        }\r\n\r\n\r\n        .rsvp-aviso-datos {\r\n\r\n          color: #555555;\r\n\r\n          font-size: 14px;\r\n\r\n          line-height: 1.55;\r\n\r\n        }\r\n\r\n\r\n        .rsvp-aviso-datos strong {\r\n\r\n          color:\r\n            #333333;\r\n\r\n        }\r\n\r\n\r\n        #cambiarConfirmacion {\r\n\r\n          display: block;\r\n\r\n          width: 100%;\r\n\r\n          margin-top: 15px;\r\n\r\n          padding:\r\n            11px 15px;\r\n\r\n          border-radius:\r\n            25px;\r\n\r\n          border:\r\n            1px solid\r\n            #990000;\r\n\r\n          background:\r\n            #ffffff;\r\n\r\n          color:\r\n            #990000;\r\n\r\n          font-size:\r\n            13px;\r\n\r\n          font-weight:\r\n            700;\r\n\r\n          cursor:\r\n            pointer;\r\n\r\n          transition:\r\n            .2s ease;\r\n\r\n        }\r\n\r\n\r\n        #cambiarConfirmacion:hover {\r\n\r\n          background:\r\n            #990000;\r\n\r\n          color:\r\n            #ffffff;\r\n\r\n        }\r\n\r\n\r\n        @media\r\n        (max-width: 600px) {\r\n\r\n          #avisoConfirmacionGuardada {\r\n\r\n            bottom:\r\n              12px;\r\n\r\n            width:\r\n              calc(100% - 20px);\r\n\r\n            padding:\r\n              17px;\r\n\r\n          }\r\n\r\n          .rsvp-aviso-titulo {\r\n\r\n            font-size:\r\n              17px;\r\n\r\n          }\r\n\r\n        }\r\n\r\n      `;\r\n\r\n      document.head.appendChild(\r\n        estilos\r\n      );\r\n\r\n    }\r\n\r\n\r\n    \/* -----------------------------\r\n       HTML DEL AVISO\r\n    ----------------------------- *\/\r\n\r\n    const aviso =\r\n      document.createElement(\"div\");\r\n\r\n    aviso.id =\r\n      \"avisoConfirmacionGuardada\";\r\n\r\n    aviso.innerHTML = `\r\n\r\n      <div class=\"rsvp-aviso-superior\">\r\n\r\n        <div\r\n          class=\"rsvp-aviso-check\"\r\n          id=\"iconoAvisoRSVP\"\r\n        >\r\n          \u2713\r\n        <\/div>\r\n\r\n        <div class=\"rsvp-aviso-info\">\r\n\r\n          <div\r\n            id=\"tituloConfirmacionGuardada\"\r\n            class=\"rsvp-aviso-titulo\"\r\n          >\r\n            \u00a1Gracias por confirmar!\r\n          <\/div>\r\n\r\n          <div\r\n            id=\"datosConfirmacionGuardada\"\r\n            class=\"rsvp-aviso-datos\"\r\n          >\r\n          <\/div>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n      <button\r\n        type=\"button\"\r\n        id=\"cambiarConfirmacion\"\r\n      >\r\n        CAMBIAR CONFIRMACI\u00d3N\r\n      <\/button>\r\n\r\n    `;\r\n\r\n    document.body.appendChild(\r\n      aviso\r\n    );\r\n\r\n  }\r\n\r\n\r\n  crearAvisoConfirmacion();\r\n\r\n\r\n  \/* =====================================================\r\n     ELEMENTOS DEL AVISO\r\n  ===================================================== *\/\r\n\r\n  const avisoGuardado =\r\n    document.getElementById(\r\n      \"avisoConfirmacionGuardada\"\r\n    );\r\n\r\n  const tituloGuardado =\r\n    document.getElementById(\r\n      \"tituloConfirmacionGuardada\"\r\n    );\r\n\r\n  const datosGuardados =\r\n    document.getElementById(\r\n      \"datosConfirmacionGuardada\"\r\n    );\r\n\r\n  const iconoAviso =\r\n    document.getElementById(\r\n      \"iconoAvisoRSVP\"\r\n    );\r\n\r\n  const cambiarConfirmacion =\r\n    document.getElementById(\r\n      \"cambiarConfirmacion\"\r\n    );\r\n\r\n\r\n  \/* =====================================================\r\n     FUNCI\u00d3N PARA EVITAR HTML INDESEADO\r\n  ===================================================== *\/\r\n\r\n  function escaparHTML(texto) {\r\n\r\n    return String(\r\n      texto == null\r\n        ? \"\"\r\n        : texto\r\n    )\r\n\r\n    .replace(\r\n      \/&\/g,\r\n      \"&amp;\"\r\n    )\r\n\r\n    .replace(\r\n      \/<\/g,\r\n      \"&lt;\"\r\n    )\r\n\r\n    .replace(\r\n      \/>\/g,\r\n      \"&gt;\"\r\n    )\r\n\r\n    .replace(\r\n      \/\"\/g,\r\n      \"&quot;\"\r\n    )\r\n\r\n    .replace(\r\n      \/'\/g,\r\n      \"&#039;\"\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     MOSTRAR CONFIRMACI\u00d3N GUARDADA\r\n  ===================================================== *\/\r\n\r\n  function mostrarConfirmacionGuardada(\r\n    datos\r\n  ) {\r\n\r\n    if (\r\n      !datos ||\r\n      !avisoGuardado\r\n    ) {\r\n\r\n      return;\r\n\r\n    }\r\n\r\n\r\n    confirmacionActual =\r\n      datos;\r\n\r\n\r\n    const respuesta =\r\n      String(\r\n        datos.respuesta || \"\"\r\n      ).trim();\r\n\r\n\r\n    const numeroAsistentes =\r\n      parseInt(\r\n        datos.asistentes,\r\n        10\r\n      ) || 0;\r\n\r\n\r\n    const nombreMostrar =\r\n      escaparHTML(\r\n        datos.invitado ||\r\n        invitado\r\n      );\r\n\r\n\r\n    \/* -----------------------------\r\n       CONFIRMADO\r\n    ----------------------------- *\/\r\n\r\n    if (\r\n      respuesta ===\r\n      \"Confirmado\"\r\n    ) {\r\n\r\n      if (iconoAviso) {\r\n\r\n        iconoAviso.textContent =\r\n          \"\u2713\";\r\n\r\n      }\r\n\r\n\r\n      if (tituloGuardado) {\r\n\r\n        tituloGuardado.textContent =\r\n          \"\u00a1Gracias por confirmar tu asistencia!\";\r\n\r\n      }\r\n\r\n\r\n      const palabra =\r\n        numeroAsistentes === 1\r\n          ? \"persona\"\r\n          : \"personas\";\r\n\r\n\r\n      if (datosGuardados) {\r\n\r\n        datosGuardados.innerHTML =\r\n\r\n          \"<strong>\" +\r\n          nombreMostrar +\r\n          \"<\/strong><br>\" +\r\n\r\n          \"Tu reserva est\u00e1 registrada para \" +\r\n\r\n          \"<strong>\" +\r\n          numeroAsistentes +\r\n          \" \" +\r\n          palabra +\r\n          \"<\/strong>.<br>\" +\r\n\r\n          \"Tu invitaci\u00f3n permite hasta \" +\r\n\r\n          \"<strong>\" +\r\n          cuposMaximos +\r\n          \"<\/strong> \" +\r\n\r\n          (\r\n            cuposMaximos === 1\r\n              ? \"persona\"\r\n              : \"personas\"\r\n          ) +\r\n          \".\";\r\n\r\n      }\r\n\r\n    }\r\n\r\n\r\n    \/* -----------------------------\r\n       NO ASISTIR\u00c1\r\n    ----------------------------- *\/\r\n\r\n    else {\r\n\r\n      if (iconoAviso) {\r\n\r\n        iconoAviso.textContent =\r\n          \"\u2713\";\r\n\r\n      }\r\n\r\n\r\n      if (tituloGuardado) {\r\n\r\n        tituloGuardado.textContent =\r\n          \"Tu respuesta ya fue registrada\";\r\n\r\n      }\r\n\r\n\r\n      if (datosGuardados) {\r\n\r\n        datosGuardados.innerHTML =\r\n\r\n          \"<strong>\" +\r\n          nombreMostrar +\r\n          \"<\/strong><br>\" +\r\n\r\n          \"Nos indicaste que no podr\u00e1s asistir.<br>\" +\r\n\r\n          \"Si cambias de opini\u00f3n, puedes modificar tu respuesta.\";\r\n\r\n      }\r\n\r\n    }\r\n\r\n\r\n    avisoGuardado.style.display =\r\n      \"block\";\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     CONSULTAR SI YA EXISTE UNA CONFIRMACI\u00d3N\r\n\r\n     Se consulta Google Sheets cada vez que el\r\n     invitado abre su enlace.\r\n  ===================================================== *\/\r\n\r\n  function consultarConfirmacion() {\r\n\r\n    if (!idInvitado) {\r\n\r\n      return;\r\n\r\n    }\r\n\r\n\r\n    const callbackName =\r\n      \"rsvpConsulta_\" +\r\n      Date.now();\r\n\r\n\r\n    const scriptConsulta =\r\n      document.createElement(\r\n        \"script\"\r\n      );\r\n\r\n\r\n    let terminado =\r\n      false;\r\n\r\n\r\n    const limpiarConsulta =\r\n      function () {\r\n\r\n        if (terminado) {\r\n\r\n          return;\r\n\r\n        }\r\n\r\n        terminado =\r\n          true;\r\n\r\n\r\n        try {\r\n\r\n          delete window[\r\n            callbackName\r\n          ];\r\n\r\n        } catch (error) {\r\n\r\n          window[\r\n            callbackName\r\n          ] =\r\n            undefined;\r\n\r\n        }\r\n\r\n\r\n        if (\r\n          scriptConsulta &&\r\n          scriptConsulta.parentNode\r\n        ) {\r\n\r\n          scriptConsulta\r\n            .parentNode\r\n            .removeChild(\r\n              scriptConsulta\r\n            );\r\n\r\n        }\r\n\r\n      };\r\n\r\n\r\n    window[\r\n      callbackName\r\n    ] =\r\n      function (\r\n        respuesta\r\n      ) {\r\n\r\n        if (\r\n          respuesta &&\r\n          respuesta.ok &&\r\n          respuesta.encontrado\r\n        ) {\r\n\r\n          mostrarConfirmacionGuardada(\r\n            respuesta\r\n          );\r\n\r\n\r\n          \/*\r\n            Dejamos el contador preparado\r\n            con el n\u00famero que ya hab\u00eda elegido.\r\n          *\/\r\n\r\n          if (\r\n            respuesta.respuesta ===\r\n            \"Confirmado\"\r\n          ) {\r\n\r\n            let cantidadGuardada =\r\n              parseInt(\r\n                respuesta.asistentes,\r\n                10\r\n              );\r\n\r\n\r\n            if (\r\n              isNaN(\r\n                cantidadGuardada\r\n              ) ||\r\n              cantidadGuardada < 1\r\n            ) {\r\n\r\n              cantidadGuardada =\r\n                1;\r\n\r\n            }\r\n\r\n\r\n            if (\r\n              cantidadGuardada >\r\n              cuposMaximos\r\n            ) {\r\n\r\n              cantidadGuardada =\r\n                cuposMaximos;\r\n\r\n            }\r\n\r\n\r\n            cantidad =\r\n              cantidadGuardada;\r\n\r\n          }\r\n\r\n        }\r\n\r\n\r\n        limpiarConsulta();\r\n\r\n      };\r\n\r\n\r\n    scriptConsulta.onerror =\r\n      function () {\r\n\r\n        console.warn(\r\n          \"No se pudo consultar la confirmaci\u00f3n guardada.\"\r\n        );\r\n\r\n        limpiarConsulta();\r\n\r\n      };\r\n\r\n\r\n    scriptConsulta.src =\r\n      GOOGLE_SCRIPT_URL +\r\n      \"?id=\" +\r\n      encodeURIComponent(\r\n        idInvitado\r\n      ) +\r\n      \"&callback=\" +\r\n      encodeURIComponent(\r\n        callbackName\r\n      ) +\r\n      \"&_=\" +\r\n      Date.now();\r\n\r\n\r\n    document.body.appendChild(\r\n      scriptConsulta\r\n    );\r\n\r\n\r\n    \/*\r\n      Seguridad:\r\n      si Google no responde en 10 segundos,\r\n      limpiamos la consulta.\r\n    *\/\r\n\r\n    setTimeout(\r\n      limpiarConsulta,\r\n      10000\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     PERSONALIZAR SALUDO\r\n  ===================================================== *\/\r\n\r\n  if (saludoInvitado) {\r\n\r\n    saludoInvitado.textContent =\r\n      invitado +\r\n      \", \u00bfpodr\u00e1s acompa\u00f1arnos?\";\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     MOSTRAR CUPOS\r\n  ===================================================== *\/\r\n\r\n  if (textoCupos) {\r\n\r\n    if (\r\n      cuposMaximos === 1\r\n    ) {\r\n\r\n      textoCupos.textContent =\r\n        \"Tu invitaci\u00f3n es v\u00e1lida para 1 persona.\";\r\n\r\n    }\r\n\r\n    else {\r\n\r\n      textoCupos.textContent =\r\n        \"Tu invitaci\u00f3n es v\u00e1lida para un m\u00e1ximo de \" +\r\n        cuposMaximos +\r\n        \" personas.\";\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     GOOGLE CALENDAR\r\n  ===================================================== *\/\r\n\r\n  const tituloEvento =\r\n    \"Boda David & Karen\";\r\n\r\n  const inicioEvento =\r\n    \"20260926T153000\";\r\n\r\n  const finEvento =\r\n    \"20260926T200000\";\r\n\r\n  const lugarEvento =\r\n    \"Cra. 3 # 4-178 \u2013 Cajic\u00e1\";\r\n\r\n  const descripcionEvento =\r\n    \"Nos hace mucha ilusi\u00f3n compartir nuestro gran d\u00eda contigo.\";\r\n\r\n\r\n  const calendarURL =\r\n    \"https:\/\/calendar.google.com\/calendar\/render?action=TEMPLATE\" +\r\n    \"&text=\" +\r\n    encodeURIComponent(\r\n      tituloEvento\r\n    ) +\r\n    \"&dates=\" +\r\n    inicioEvento +\r\n    \"\/\" +\r\n    finEvento +\r\n    \"&details=\" +\r\n    encodeURIComponent(\r\n      descripcionEvento\r\n    ) +\r\n    \"&location=\" +\r\n    encodeURIComponent(\r\n      lugarEvento\r\n    ) +\r\n    \"&ctz=America\/Bogota\";\r\n\r\n\r\n  if (botonCalendar) {\r\n\r\n    botonCalendar.href =\r\n      calendarURL;\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     ACTUALIZAR CONTADOR\r\n  ===================================================== *\/\r\n\r\n  function actualizarContador() {\r\n\r\n    if (\r\n      cantidad < 1\r\n    ) {\r\n\r\n      cantidad = 1;\r\n\r\n    }\r\n\r\n\r\n    if (\r\n      cantidad >\r\n      cuposMaximos\r\n    ) {\r\n\r\n      cantidad =\r\n        cuposMaximos;\r\n\r\n    }\r\n\r\n\r\n    if (cantidadTexto) {\r\n\r\n      cantidadTexto.textContent =\r\n        cantidad;\r\n\r\n    }\r\n\r\n\r\n    if (botonMenos) {\r\n\r\n      botonMenos.disabled =\r\n        cantidad <= 1;\r\n\r\n    }\r\n\r\n\r\n    if (botonMas) {\r\n\r\n      botonMas.disabled =\r\n        cantidad >=\r\n        cuposMaximos;\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  actualizarContador();\r\n\r\n\r\n  \/* =====================================================\r\n     FUNCI\u00d3N GUARDAR RSVP\r\n  ===================================================== *\/\r\n\r\n  function guardarRSVP(\r\n    respuesta,\r\n    asistentes\r\n  ) {\r\n\r\n    let numeroAsistentes =\r\n      parseInt(\r\n        asistentes,\r\n        10\r\n      );\r\n\r\n\r\n    if (\r\n      isNaN(\r\n        numeroAsistentes\r\n      )\r\n    ) {\r\n\r\n      numeroAsistentes = 0;\r\n\r\n    }\r\n\r\n\r\n    if (\r\n      numeroAsistentes < 0\r\n    ) {\r\n\r\n      numeroAsistentes = 0;\r\n\r\n    }\r\n\r\n\r\n    if (\r\n      numeroAsistentes >\r\n      cuposMaximos\r\n    ) {\r\n\r\n      numeroAsistentes =\r\n        cuposMaximos;\r\n\r\n    }\r\n\r\n\r\n    const datos =\r\n      new URLSearchParams();\r\n\r\n\r\n    datos.append(\r\n      \"id\",\r\n      idInvitado\r\n    );\r\n\r\n    datos.append(\r\n      \"invitado\",\r\n      invitado\r\n    );\r\n\r\n    datos.append(\r\n      \"cupos\",\r\n      cuposMaximos\r\n    );\r\n\r\n    datos.append(\r\n      \"respuesta\",\r\n      respuesta\r\n    );\r\n\r\n    datos.append(\r\n      \"asistentes\",\r\n      numeroAsistentes\r\n    );\r\n\r\n\r\n    console.log(\r\n      \"======= RSVP =======\"\r\n    );\r\n\r\n    console.log(\r\n      \"ID:\",\r\n      idInvitado\r\n    );\r\n\r\n    console.log(\r\n      \"Invitado:\",\r\n      invitado\r\n    );\r\n\r\n    console.log(\r\n      \"Respuesta:\",\r\n      respuesta\r\n    );\r\n\r\n    console.log(\r\n      \"Asistentes:\",\r\n      numeroAsistentes\r\n    );\r\n\r\n\r\n    return fetch(\r\n      GOOGLE_SCRIPT_URL,\r\n      {\r\n\r\n        method:\r\n          \"POST\",\r\n\r\n        mode:\r\n          \"no-cors\",\r\n\r\n        body:\r\n          datos\r\n\r\n      }\r\n    )\r\n\r\n    .then(\r\n      function () {\r\n\r\n        console.log(\r\n          \"RSVP enviado a Google Apps Script\"\r\n        );\r\n\r\n        return true;\r\n\r\n      }\r\n    )\r\n\r\n    .catch(\r\n      function (\r\n        error\r\n      ) {\r\n\r\n        console.error(\r\n          \"ERROR enviando RSVP:\",\r\n          error\r\n        );\r\n\r\n        return false;\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     PREPARAR EL MODAL DESDE EL INICIO\r\n  ===================================================== *\/\r\n\r\n  function mostrarPasoInicial() {\r\n\r\n    if (paso1) {\r\n\r\n      paso1.style.display =\r\n        \"block\";\r\n\r\n    }\r\n\r\n    if (paso2) {\r\n\r\n      paso2.style.display =\r\n        \"none\";\r\n\r\n    }\r\n\r\n    if (paso3) {\r\n\r\n      paso3.style.display =\r\n        \"none\";\r\n\r\n    }\r\n\r\n    if (pasoNo) {\r\n\r\n      pasoNo.style.display =\r\n        \"none\";\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     ABRIR MODAL NORMAL\r\n  ===================================================== *\/\r\n\r\n  botonesAbrir.forEach(\r\n    function (\r\n      boton\r\n    ) {\r\n\r\n      boton.addEventListener(\r\n        \"click\",\r\n        function (\r\n          e\r\n        ) {\r\n\r\n          e.preventDefault();\r\n\r\n          e.stopPropagation();\r\n\r\n\r\n          mostrarPasoInicial();\r\n\r\n\r\n          if (modal) {\r\n\r\n            modal.style.display =\r\n              \"flex\";\r\n\r\n          }\r\n\r\n        }\r\n      );\r\n\r\n    }\r\n  );\r\n\r\n\r\n  \/* =====================================================\r\n     BOT\u00d3N CAMBIAR CONFIRMACI\u00d3N\r\n  ===================================================== *\/\r\n\r\n  if (\r\n    cambiarConfirmacion\r\n  ) {\r\n\r\n    cambiarConfirmacion.addEventListener(\r\n      \"click\",\r\n      function () {\r\n\r\n\r\n        \/*\r\n          Si anteriormente confirm\u00f3,\r\n          dejamos su cantidad actual preparada.\r\n        *\/\r\n\r\n        if (\r\n          confirmacionActual &&\r\n          confirmacionActual.respuesta ===\r\n            \"Confirmado\"\r\n        ) {\r\n\r\n          let cantidadAnterior =\r\n            parseInt(\r\n              confirmacionActual.asistentes,\r\n              10\r\n            );\r\n\r\n\r\n          if (\r\n            isNaN(\r\n              cantidadAnterior\r\n            ) ||\r\n            cantidadAnterior < 1\r\n          ) {\r\n\r\n            cantidadAnterior =\r\n              1;\r\n\r\n          }\r\n\r\n\r\n          if (\r\n            cantidadAnterior >\r\n            cuposMaximos\r\n          ) {\r\n\r\n            cantidadAnterior =\r\n              cuposMaximos;\r\n\r\n          }\r\n\r\n\r\n          cantidad =\r\n            cantidadAnterior;\r\n\r\n        }\r\n\r\n        else {\r\n\r\n          cantidad =\r\n            1;\r\n\r\n        }\r\n\r\n\r\n        actualizarContador();\r\n\r\n        mostrarPasoInicial();\r\n\r\n\r\n        if (modal) {\r\n\r\n          modal.style.display =\r\n            \"flex\";\r\n\r\n        }\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     CERRAR MODAL\r\n  ===================================================== *\/\r\n\r\n  if (cerrarRSVP) {\r\n\r\n    cerrarRSVP.addEventListener(\r\n      \"click\",\r\n      function () {\r\n\r\n        if (modal) {\r\n\r\n          modal.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     RESPUESTA S\u00cd\r\n  ===================================================== *\/\r\n\r\n  if (btnSi) {\r\n\r\n    btnSi.addEventListener(\r\n      \"click\",\r\n      function () {\r\n\r\n        if (paso1) {\r\n\r\n          paso1.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n        if (paso2) {\r\n\r\n          paso2.style.display =\r\n            \"block\";\r\n\r\n        }\r\n\r\n\r\n        actualizarContador();\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     RESPUESTA NO\r\n  ===================================================== *\/\r\n\r\n  if (btnNo) {\r\n\r\n    btnNo.addEventListener(\r\n      \"click\",\r\n      function () {\r\n\r\n\r\n        guardarRSVP(\r\n          \"No asistir\u00e1\",\r\n          0\r\n        );\r\n\r\n\r\n        \/*\r\n          Actualizar aviso inmediatamente\r\n        *\/\r\n\r\n        mostrarConfirmacionGuardada({\r\n\r\n          encontrado:\r\n            true,\r\n\r\n          id:\r\n            idInvitado,\r\n\r\n          invitado:\r\n            invitado,\r\n\r\n          cupos:\r\n            cuposMaximos,\r\n\r\n          respuesta:\r\n            \"No asistir\u00e1\",\r\n\r\n          asistentes:\r\n            0\r\n\r\n        });\r\n\r\n\r\n        if (paso1) {\r\n\r\n          paso1.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n        if (paso2) {\r\n\r\n          paso2.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n        if (paso3) {\r\n\r\n          paso3.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n        if (pasoNo) {\r\n\r\n          pasoNo.style.display =\r\n            \"block\";\r\n\r\n        }\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     BOT\u00d3N +\r\n  ===================================================== *\/\r\n\r\n  if (botonMas) {\r\n\r\n    botonMas.addEventListener(\r\n      \"click\",\r\n      function () {\r\n\r\n        if (\r\n          cantidad <\r\n          cuposMaximos\r\n        ) {\r\n\r\n          cantidad++;\r\n\r\n          actualizarContador();\r\n\r\n        }\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     BOT\u00d3N -\r\n  ===================================================== *\/\r\n\r\n  if (botonMenos) {\r\n\r\n    botonMenos.addEventListener(\r\n      \"click\",\r\n      function () {\r\n\r\n        if (\r\n          cantidad > 1\r\n        ) {\r\n\r\n          cantidad--;\r\n\r\n          actualizarContador();\r\n\r\n        }\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     CONFIRMAR ASISTENCIA\r\n  ===================================================== *\/\r\n\r\n  if (\r\n    guardarConfirmacion\r\n  ) {\r\n\r\n    guardarConfirmacion.addEventListener(\r\n      \"click\",\r\n      function () {\r\n\r\n\r\n        if (\r\n          cantidad >\r\n          cuposMaximos\r\n        ) {\r\n\r\n          cantidad =\r\n            cuposMaximos;\r\n\r\n        }\r\n\r\n\r\n        guardarRSVP(\r\n          \"Confirmado\",\r\n          cantidad\r\n        );\r\n\r\n\r\n        \/*\r\n          Mostrar \/ actualizar\r\n          el aviso permanente inmediatamente.\r\n        *\/\r\n\r\n        mostrarConfirmacionGuardada({\r\n\r\n          encontrado:\r\n            true,\r\n\r\n          id:\r\n            idInvitado,\r\n\r\n          invitado:\r\n            invitado,\r\n\r\n          cupos:\r\n            cuposMaximos,\r\n\r\n          respuesta:\r\n            \"Confirmado\",\r\n\r\n          asistentes:\r\n            cantidad\r\n\r\n        });\r\n\r\n\r\n        if (paso1) {\r\n\r\n          paso1.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n        if (paso2) {\r\n\r\n          paso2.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n        if (pasoNo) {\r\n\r\n          pasoNo.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n        if (paso3) {\r\n\r\n          paso3.style.display =\r\n            \"block\";\r\n\r\n        }\r\n\r\n\r\n        if (mensajeFinal) {\r\n\r\n          mensajeFinal.textContent =\r\n            invitado +\r\n            \", estamos felices de poder compartir este d\u00eda contigo.\";\r\n\r\n        }\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     CERRAR TOCANDO EL FONDO\r\n  ===================================================== *\/\r\n\r\n  if (modal) {\r\n\r\n    modal.addEventListener(\r\n      \"click\",\r\n      function (\r\n        e\r\n      ) {\r\n\r\n        if (\r\n          e.target ===\r\n          modal\r\n        ) {\r\n\r\n          modal.style.display =\r\n            \"none\";\r\n\r\n        }\r\n\r\n      }\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     CONSULTAR GOOGLE SHEETS AL CARGAR\r\n\r\n     Si el invitado ya respondi\u00f3 anteriormente,\r\n     aparecer\u00e1 autom\u00e1ticamente el aviso.\r\n  ===================================================== *\/\r\n\r\n  consultarConfirmacion();\r\n\r\n});\r\n<\/script>\r\n\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-e1bd2ce e-flex e-con-boxed e-con e-parent\" data-id=\"e1bd2ce\" 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-3fc2ceb elementor-widget elementor-widget-text-editor\" data-id=\"3fc2ceb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Esperamos contar con tu Presencia<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f69565f elementor-widget elementor-widget-heading\" data-id=\"f69565f\" 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\">Gracias<\/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-4bd4533 e-flex e-con-boxed e-con e-parent\" data-id=\"4bd4533\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-dd2bef1 e-con-full e-flex e-con e-child\" data-id=\"dd2bef1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-618f527 elementor-widget elementor-widget-image\" data-id=\"618f527\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"798\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/fotosp.png\" class=\"attachment-large size-large wp-image-194\" alt=\"\" srcset=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/fotosp.png 500w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/fotosp-188x300.png 188w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-af7b2f2 e-con-full e-flex e-con e-child\" data-id=\"af7b2f2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0574f05 e-con-full e-flex e-con e-child\" data-id=\"0574f05\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ec914b9 e-transform elementor-widget elementor-widget-text-editor\" data-id=\"ec914b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:-15,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Lo mejor de<br data-start=\"298\" data-end=\"301\" \/>nuestra historia est\u00e1 por<br data-start=\"326\" data-end=\"329\" \/>comenzar&#8230;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc20ceb elementor-widget elementor-widget-image\" data-id=\"fc20ceb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"127\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/anillos-1.png\" class=\"attachment-large size-large wp-image-217\" alt=\"\" srcset=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/anillos-1.png 500w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/anillos-1-300x76.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\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<div class=\"elementor-element elementor-element-f4201af e-flex e-con-boxed e-con e-parent\" data-id=\"f4201af\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;shape_divider_top&quot;:&quot;waves&quot;,&quot;shape_divider_bottom&quot;:&quot;waves&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M421.9,6.5c22.6-2.5,51.5,0.4,75.5,5.3c23.6,4.9,70.9,23.5,100.5,35.7c75.8,32.2,133.7,44.5,192.6,49.7\n\tc23.6,2.1,48.7,3.5,103.4-2.5c54.7-6,106.2-25.6,106.2-25.6V0H0v30.3c0,0,72,32.6,158.4,30.5c39.2-0.7,92.8-6.7,134-22.4\n\tc21.2-8.1,52.2-18.2,79.7-24.2C399.3,7.9,411.6,7.5,421.9,6.5z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t<div class=\"elementor-shape elementor-shape-bottom\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M421.9,6.5c22.6-2.5,51.5,0.4,75.5,5.3c23.6,4.9,70.9,23.5,100.5,35.7c75.8,32.2,133.7,44.5,192.6,49.7\n\tc23.6,2.1,48.7,3.5,103.4-2.5c54.7-6,106.2-25.6,106.2-25.6V0H0v30.3c0,0,72,32.6,158.4,30.5c39.2-0.7,92.8-6.7,134-22.4\n\tc21.2-8.1,52.2-18.2,79.7-24.2C399.3,7.9,411.6,7.5,421.9,6.5z\"\/>\n<\/svg>\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c72db2f e-con-full e-flex e-con e-child\" data-id=\"c72db2f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ff64a46 elementor-widget elementor-widget-image\" data-id=\"ff64a46\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"200\" src=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/Sin-titulo-22222.png\" class=\"attachment-large size-large wp-image-210\" alt=\"\" srcset=\"https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/Sin-titulo-22222.png 200w, https:\/\/karenydavid.com\/wp-content\/uploads\/2026\/08\/Sin-titulo-22222-150x150.png 150w\" sizes=\"(max-width: 200px) 100vw, 200px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4bbb575 e-con-full e-flex e-con e-child\" data-id=\"4bbb575\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e3d7a2 elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"4e3d7a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/wa.me\/573124317163?text=Hola%2C%20confirmo%20mi%20asistencia%20a%20la%20boda.\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contacto Novio<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad6f49e elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"ad6f49e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/wa.me\/573503668918?text=Hola%2C%20confirmo%20mi%20asistencia%20a%20la%20boda.\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contacto Novia<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\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>Invitado especial \u00a1NOS VAMOS A CASAR! David y Karen 26 . 09 . 2026 \u201cEl amor nunca deja de ser.\u201d 1 Corintios 13:8 \u00a1Nosotros! \u00a1Estamos muy emocionados de compartir esta gran noticia con todos ustedes!Acomp\u00e1\u00f1enos a celebrar esta ocasi\u00f3n tan especial y a disfrutar juntos de un d\u00eda perfecto, lleno de alegr\u00eda y momentos inolvidables. [&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":{"footnotes":""},"class_list":["post-15","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/karenydavid.com\/index.php?rest_route=\/wp\/v2\/pages\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/karenydavid.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/karenydavid.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/karenydavid.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/karenydavid.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15"}],"version-history":[{"count":334,"href":"https:\/\/karenydavid.com\/index.php?rest_route=\/wp\/v2\/pages\/15\/revisions"}],"predecessor-version":[{"id":404,"href":"https:\/\/karenydavid.com\/index.php?rest_route=\/wp\/v2\/pages\/15\/revisions\/404"}],"wp:attachment":[{"href":"https:\/\/karenydavid.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}