{"id":17433,"date":"2026-04-15T15:30:47","date_gmt":"2026-04-15T15:30:47","guid":{"rendered":"https:\/\/www.tiritaito.com\/blog\/?p=17433"},"modified":"2026-06-15T18:06:01","modified_gmt":"2026-06-15T18:06:01","slug":"seminarios-videos","status":"publish","type":"post","link":"https:\/\/www.tiritaito.com\/blog\/seminarios\/seminarios-videos\/","title":{"rendered":"Seminarios videos"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:99.994568px;--awb-padding-right:0px;--awb-padding-bottom:0px;--awb-padding-left:0px;--awb-margin-top:0px;--awb-margin-bottom:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.536%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.728%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.536%;--awb-spacing-left-medium:1.728%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><!-- ============================================================\n     WIDGET SEMINARIOS v2 \u2014 tiritaito.com\n     Pegar completo en un \"Code Block\" de Avada Live Builder\n     ============================================================ -->\n<style>\n#semApp,#semApp *{box-sizing:border-box;margin:0;padding:0}\n\n#semApp{\n  --red:#bf4646;--red2:#d46a6a;\n  --bg:transparent;--card:#fff;\n  --t1:#1a1a1a;--t2:#6b6b6b;--t3:#999;\n  --border:#e5e5e5;--surf:#f2f2f7;\n  --sh:0 1px 3px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.04);\n  --sh2:0 2px 8px rgba(0,0,0,.10),0 8px 24px rgba(0,0,0,.06);\n  --r:16px;--rsm:12px;\n  font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;\n  -webkit-font-smoothing:antialiased;\n  background:transparent;color:var(--t1);\n  width:100%;max-width:1100px;margin:0 auto;padding:32px 16px;\n  overflow-x:hidden;box-sizing:border-box;\n}\n\n\/* \u2500\u2500 Cabecera \u2500\u2500 *\/\n#semApp .sh{text-align:center;margin-bottom:32px;padding:0 8px}\n#semApp .sh h2{font-size:26px;font-weight:700;letter-spacing:-.5px;text-align:center}\n#semApp .sh p{font-size:15px;color:var(--t2);margin-top:6px;text-align:center}\n\n\/* \u2500\u2500 Tabs \u2500\u2500 *\/\n#semApp .tabs{\n  display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:4px;\n  background:var(--surf);border-radius:var(--rsm);\n  margin-bottom:28px;\n}\n#semApp .tab{\n  flex-shrink:0;padding:10px 18px;border-radius:10px;\n  font-size:14px;font-weight:500;color:var(--t2);\n  background:transparent;border:none;cursor:pointer;\n  transition:color .2s;white-space:nowrap;font-family:inherit;\n}\n#semApp .tab:hover{color:var(--t1)}\n#semApp .tab.on{background:var(--card);color:var(--red);box-shadow:0 1px 4px rgba(0,0,0,.08)}\n\n\/* \u2500\u2500 Secci\u00f3n a\u00f1o \u2500\u2500 *\/\n#semApp .yr-sec{\n  margin-bottom:36px;\n  opacity:0;transform:translateY(12px);\n  transition:opacity .35s ease,transform .35s ease;\n}\n#semApp .yr-sec.vis{opacity:1;transform:none}\n#semApp .yr-row{\n  display:flex;align-items:center;\n  justify-content:space-between;\n  margin-bottom:14px;padding:0 2px;\n}\n#semApp .yr-label{font-size:19px;font-weight:700;letter-spacing:-.3px;color:var(--t1)}\n\n\/* \u2500\u2500 Flechas carrusel \u2500\u2500 *\/\n#semApp .yr-nav{display:flex;gap:6px}\n#semApp .nav-btn{\n  width:32px;height:32px;border-radius:50%;\n  background:var(--surf);border:none;cursor:pointer;\n  display:flex;align-items:center;justify-content:center;\n  transition:background .18s,opacity .18s;flex-shrink:0;\n}\n#semApp .nav-btn:hover{background:var(--border)}\n#semApp .nav-btn:disabled{opacity:.3;cursor:default;pointer-events:none}\n#semApp .nav-btn svg{width:16px;height:16px;stroke:var(--t1);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}\n\n\/* \u2500\u2500 Carrusel \u2500\u2500 *\/\n#semApp .carousel{\n  display:flex;gap:16px;\n  overflow-x:auto;scroll-behavior:smooth;\n  -webkit-overflow-scrolling:touch;\n  scrollbar-width:none;\n  padding-bottom:10px;\n}\n#semApp .carousel::-webkit-scrollbar{display:none}\n\n\/* \u2500\u2500 Cards \u2500\u2500 *\/\n#semApp .card{\n  flex:0 0 260px;\n  background:var(--card);border-radius:var(--r);\n  overflow:hidden;box-shadow:var(--sh);cursor:pointer;\n  opacity:0;transform:translateX(18px);\n  transition:transform .25s ease,box-shadow .25s ease,opacity .3s ease;\n}\n#semApp .card.vis{opacity:1;transform:none}\n#semApp .card:hover{transform:translateY(-2px) !important;box-shadow:var(--sh2)}\n\n\/* \u2500\u2500 Thumbnail \u2500\u2500 *\/\n#semApp .thumb{position:relative;width:100%;aspect-ratio:16\/9;overflow:hidden;background:#e0e0e0}\n#semApp .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;display:block}\n#semApp .card:hover .thumb img{transform:scale(1.04)}\n#semApp .play{\n  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);\n  width:50px;height:50px;background:rgba(255,255,255,.92);\n  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);\n  border-radius:50%;display:flex;align-items:center;justify-content:center;\n  box-shadow:0 2px 12px rgba(0,0,0,.18);\n  transition:transform .2s ease,background .2s ease;\n}\n#semApp .card:hover .play{transform:translate(-50%,-50%) scale(1.1);background:#fff}\n#semApp .play svg{width:19px;height:19px;margin-left:3px;fill:var(--red)}\n\n\/* \u2500\u2500 Info card \u2500\u2500 *\/\n#semApp .info{padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:8px}\n#semApp .ctitle{font-size:13px;font-weight:500;line-height:1.4;color:var(--t1);flex:1}\n#semApp .sbtn{\n  flex-shrink:0;width:28px;height:28px;border-radius:50%;\n  background:var(--surf);border:none;cursor:pointer;\n  display:flex;align-items:center;justify-content:center;transition:background .18s;\n}\n#semApp .sbtn:hover{background:#e5e5ea}\n#semApp .sbtn svg{width:14px;height:14px;stroke:var(--t2);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n\n\/* \u2500\u2500 Estados \u2500\u2500 *\/\n#semApp .loading{text-align:center;padding:60px 20px}\n#semApp .spinner{\n  display:inline-block;width:34px;height:34px;\n  border:3px solid var(--border);border-top-color:var(--red);\n  border-radius:50%;animation:spin .8s linear infinite;\n}\n@keyframes spin{to{transform:rotate(360deg)}}\n#semApp .err{text-align:center;padding:40px 20px;color:var(--t2);font-size:14px}\n#semApp .empty{text-align:center;padding:60px 20px;color:var(--t3);font-size:15px}\n\n\/* \u2500\u2500 Modal \u2500\u2500 *\/\n#semOv{\n  display:none;position:fixed;inset:0;\n  background:rgba(0,0,0,.65);\n  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);\n  z-index:99999;align-items:center;justify-content:center;padding:20px;\n}\n#semOv.on{display:flex}\n#semBox{\n  background:#fff;border-radius:16px;width:100%;max-width:820px;\n  overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.35);\n  animation:mIn .22s ease;\n}\n@keyframes mIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}\n#semVid{width:100%;aspect-ratio:16\/9}\n#semVid iframe{width:100%;height:100%;border:none;display:block}\n#semBar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;gap:12px}\n#semBarT{font-size:14px;font-weight:500;color:#1a1a1a;flex:1;font-family:inherit}\n#semActs{display:flex;gap:8px;flex-shrink:0}\n.sbtn2{\n  padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;\n  border:none;cursor:pointer;transition:background .18s;\n  display:flex;align-items:center;gap:6px;font-family:inherit;\n}\n.sbtn2.r{background:#bf4646;color:#fff}.sbtn2.r:hover{background:#d46a6a}\n.sbtn2.g{background:#f2f2f7;color:#6b6b6b}.sbtn2.g:hover{background:#e5e5ea}\n.sbtn2 svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n\n\/* \u2500\u2500 Toast \u2500\u2500 *\/\n#semToast{\n  position:fixed;bottom:30px;left:50%;\n  transform:translateX(-50%) translateY(80px);\n  background:#1a1a1a;color:#fff;padding:12px 24px;border-radius:24px;\n  font-size:14px;font-weight:500;z-index:100000;\n  transition:transform .3s ease;pointer-events:none;font-family:inherit;\n}\n#semToast.on{transform:translateX(-50%) translateY(0)}\n\n\/* \u2500\u2500 Responsive \u2500\u2500 *\/\n@media(max-width:600px){\n  #semApp{padding:20px 12px}\n  #semApp .card{flex:0 0 200px}\n  #semApp .sh h2{font-size:21px}\n  #semApp .tab{padding:8px 13px;font-size:13px}\n  #semBar{flex-direction:column;align-items:flex-start}\n  #semActs{align-self:flex-end}\n}\n<\/style>\n\n<!-- \u2550\u2550\u2550 HTML \u2550\u2550\u2550 -->\n<div id=\"semApp\">\n  <div class=\"sh\"><h2>Seminarios<\/h2><p>Retiros y ense\u00f1anzas en v\u00eddeo<\/p><\/div>\n  <div class=\"tabs\" id=\"semTabs\"><\/div>\n  <div id=\"semContent\"><div class=\"loading\"><div class=\"spinner\"><\/div><\/div><\/div>\n<\/div>\n\n<div id=\"semOv\">\n  <div id=\"semBox\">\n    <div id=\"semVid\"><\/div>\n    <div id=\"semBar\">\n      <div id=\"semBarT\"><\/div>\n      <div id=\"semActs\">\n        <button class=\"sbtn2 r\" id=\"semSh\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8\"\/><polyline points=\"16 6 12 2 8 6\"\/><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"15\"\/><\/svg>\n          Compartir\n        <\/button>\n        <button class=\"sbtn2 g\" id=\"semCl\">Cerrar<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n<div id=\"semToast\">\u2713 Enlace copiado<\/div>\n\n<!-- \u2550\u2550\u2550 JS \u2550\u2550\u2550 -->\n<script>\n(function(){\n'use strict';\n\nvar URL_JSON='https:\/\/www.tiritaito.com\/blog\/wp-content\/uploads\/2026\/06\/Seminarios.json';\nvar MESES=['','Enero','Febrero','Marzo','Abril','Mayo','Junio',\n           'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];\nvar ROMANS=['I','II','III','IV','V','VI','VII','VIII','IX','X'];\nvar CATS=[\n  {k:'Generales',              kw:[]},\n  {k:'J\u00f3venes',                kw:['j\u00f3venes','jovenes','jmj']},\n  {k:'Matrimonios',            kw:['matrimonio']},\n  {k:'De disc\u00edpulo a ap\u00f3stol', kw:['disc\u00edpulo','discipulo','ap\u00f3stol','apostol']},\n  {k:'Intercesi\u00f3n Prof\u00e9tica',  kw:['intercesi\u00f3n','intercesion','prof\u00e9tica','profetica']}\n];\n\nvar buckets={}, activeKey='', curId=null, curTitle='';\n\nvar elTabs   =document.getElementById('semTabs');\nvar elContent=document.getElementById('semContent');\nvar elOv     =document.getElementById('semOv');\nvar elVid    =document.getElementById('semVid');\nvar elBarT   =document.getElementById('semBarT');\nvar elToast  =document.getElementById('semToast');\n\n\/* \u2500\u2500 T\u00edtulo base sin a\u00f1o \u2500\u2500 *\/\nfunction baseTitle(v){\n  if(v.month>=1&&v.month<=12) return 'Seminario '+MESES[v.month];\n  var tl=(v.title||'').toLowerCase();\n  for(var m=1;m<=12;m++){\n    if(tl.indexOf(MESES[m].toLowerCase())!==-1) return 'Seminario '+MESES[m];\n  }\n  return (v.title||'Seminario').replace(\/\\b20\\d{2}\\b\/g,'').replace(\/\\s{2,}\/g,' ').trim();\n}\n\n\/* \u2500\u2500 Extraer n\u00famero romano del t\u00edtulo original \u2500\u2500\n   Busca en CUALQUIER posici\u00f3n del t\u00edtulo, palabra completa  *\/\nfunction romanFromTitle(title){\n  var t=(title||'').trim();\n  \/* Busca romano como palabra completa en cualquier posici\u00f3n:\n     I, II, III, IV, V, VI, VII, VIII, IX, X\n     El orden importa: buscar primero los m\u00e1s largos para evitar\n     que \"II\" se detecte como dos \"I\" *\/\n  var romans=['VIII','VII','VI','IV','IX','III','II','VIII','X','V','I'];\n  \/* Usamos regex de palabra completa (\\b) *\/\n  for(var i=0;i<romans.length;i++){\n    var re=new RegExp('\\\\b'+romans[i]+'\\\\b','i');\n    if(re.test(t)) return romans[i].toUpperCase();\n  }\n  return null;\n}\n\n\/* \u2500\u2500 Deduplicar t\u00edtulos dentro de cada bucket \u2500\u2500 *\/\nfunction deduplicateTitles(list){\n  var groups={};\n  list.forEach(function(v){\n    var key=(v.year||'x')+'-'+(v.month||'x');\n    if(!groups[key]) groups[key]=[];\n    groups[key].push(v);\n  });\n  var order=ROMANS;\n  Object.keys(groups).forEach(function(key){\n    var g=groups[key];\n    if(g.length<2) return;\n    var hasRoman=g.some(function(v){return romanFromTitle(v.title)!==null;});\n    if(hasRoman){\n      g.forEach(function(v){\n        var r=romanFromTitle(v.title)||'?';\n        v._displayTitle=baseTitle(v)+' '+r;\n      });\n      \/* Reordenar por romano para que I aparezca antes que II *\/\n      g.sort(function(a,b){\n        var ra=romanFromTitle(a.title)||'Z';\n        var rb=romanFromTitle(b.title)||'Z';\n        return order.indexOf(ra)-order.indexOf(rb);\n      });\n    } else {\n      g.forEach(function(v,i){\n        v._displayTitle=baseTitle(v)+' '+(ROMANS[i]||i+1);\n      });\n    }\n  });\n}\n\n\/* \u2500\u2500 T\u00edtulo limpio para mostrar \u2500\u2500 *\/\nfunction cleanTitle(v){\n  return v._displayTitle||baseTitle(v);\n}\n\n\/* \u2500\u2500 Clasificar v\u00eddeos en buckets \u2500\u2500 *\/\nfunction classify(tracks){\n  CATS.forEach(function(c){buckets[c.k]=[]});\n  tracks.forEach(function(v){\n    var tl=(v.title||'').toLowerCase(), ok=false;\n    for(var i=1;i<CATS.length;i++){\n      if(CATS[i].kw.some(function(k){return tl.indexOf(k)!==-1})){\n        buckets[CATS[i].k].push(v); ok=true; break;\n      }\n    }\n    if(!ok) buckets['Generales'].push(v);\n  });\n  Object.keys(buckets).forEach(function(k){\n    buckets[k].sort(function(a,b){\n      var d=(b.year||0)-(a.year||0);\n      return d||((a.month||13)-(b.month||13));\n    });\n    deduplicateTitles(buckets[k]);\n  });\n}\n\n\/* \u2500\u2500 Fetch JSON \u2500\u2500 *\/\nfunction loadData(){\n  fetch(URL_JSON)\n    .then(function(r){if(!r.ok)throw new Error('HTTP '+r.status);return r.json()})\n    .then(function(d){\n      var t=(d.playlists&&d.playlists[0]&&d.playlists[0].tracks)||[];\n      classify(t);\n      var first=CATS.find(function(c){return buckets[c.k]&&buckets[c.k].length});\n      activeKey=first?first.k:'Generales';\n      renderTabs(); renderContent();\n    })\n    .catch(function(e){\n      elContent.innerHTML='<div class=\"err\">No se pudieron cargar los seminarios.<br><small style=\"color:#bbb\">'+e.message+'<\/small><\/div>';\n    });\n}\n\n\/* \u2500\u2500 Tabs \u2500\u2500 *\/\nfunction renderTabs(){\n  elTabs.innerHTML='';\n  CATS.forEach(function(c){\n    if(!buckets[c.k]||!buckets[c.k].length) return;\n    var b=document.createElement('button');\n    b.className='tab'+(c.k===activeKey?' on':'');\n    b.textContent=c.k; b.dataset.cat=c.k;\n    elTabs.appendChild(b);\n  });\n}\n\nvar ICO_SHARE='<svg viewBox=\"0 0 24 24\"><path d=\"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8\"\/><polyline points=\"16 6 12 2 8 6\"\/><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"15\"\/><\/svg>';\nvar ICO_PLAY ='<svg viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"\/><\/svg>';\nvar ICO_L    ='<svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>';\nvar ICO_R    ='<svg viewBox=\"0 0 24 24\"><polyline points=\"9 6 15 12 9 18\"\/><\/svg>';\n\nfunction esc(s){\n  return String(s||'')\n    .replace(\/&\/g,'&').replace(\/\"\/g,'\"')\n    .replace(\/<\/g,'<').replace(\/>\/g,'>');\n}\n\n\/* \u2500\u2500 Render carruseles por a\u00f1o \u2500\u2500 *\/\nfunction renderContent(){\n  var videos=buckets[activeKey]||[];\n  if(!videos.length){\n    elContent.innerHTML='<div class=\"empty\">No hay v\u00eddeos en esta categor\u00eda.<\/div>';\n    return;\n  }\n  var ym={};\n  videos.forEach(function(v){var y=v.year||'Sin a\u00f1o';if(!ym[y])ym[y]=[];ym[y].push(v)});\n  var years=Object.keys(ym).sort(function(a,b){\n    if(a==='Sin a\u00f1o')return 1; if(b==='Sin a\u00f1o')return -1;\n    return parseInt(b)-parseInt(a);\n  });\n  var html='';\n  years.forEach(function(yr,yi){\n    var cid='sc'+yi;\n    html+='<div class=\"yr-sec\">';\n    html+='<div class=\"yr-row\">';\n    html+='<div class=\"yr-label\">'+(yr==='Sin a\u00f1o'?'Sin fecha':yr)+'<\/div>';\n    html+='<div class=\"yr-nav\">';\n    html+='<button class=\"nav-btn\" data-dir=\"-1\" data-car=\"'+cid+'\" aria-label=\"Anterior\">'+ICO_L+'<\/button>';\n    html+='<button class=\"nav-btn\" data-dir=\"1\"  data-car=\"'+cid+'\" aria-label=\"Siguiente\">'+ICO_R+'<\/button>';\n    html+='<\/div><\/div>';\n    html+='<div class=\"carousel\" id=\"'+cid+'\">';\n    ym[yr].forEach(function(v){\n      var ct=cleanTitle(v), sid=esc(v.id), st=esc(ct);\n      html+='<div class=\"card\" data-id=\"'+sid+'\" data-title=\"'+st+'\">';\n      html+='<div class=\"thumb\"><img decoding=\"async\" src=\"'+esc(v.thumb)+'\" alt=\"'+st+'\" loading=\"lazy\">';\n      html+='<div class=\"play\">'+ICO_PLAY+'<\/div><\/div>';\n      html+='<div class=\"info\"><div class=\"ctitle\">'+ct+'<\/div>';\n      html+='<button class=\"sbtn\" data-id=\"'+sid+'\" data-title=\"'+st+'\" aria-label=\"Compartir\">'+ICO_SHARE+'<\/button>';\n      html+='<\/div><\/div>';\n    });\n    html+='<\/div><\/div>';\n  });\n  elContent.innerHTML=html;\n  requestAnimationFrame(function(){\n    elContent.querySelectorAll('.yr-sec').forEach(function(sec,si){\n      setTimeout(function(){\n        sec.classList.add('vis');\n        sec.querySelectorAll('.card').forEach(function(c,ci){\n          setTimeout(function(){c.classList.add('vis')},ci*60);\n        });\n      },si*90);\n    });\n  });\n  elContent.querySelectorAll('.carousel').forEach(function(car){\n    syncNavBtns(car);\n    car.addEventListener('scroll',function(){syncNavBtns(car)},{passive:true});\n  });\n}\n\nfunction syncNavBtns(car){\n  var sl=car.scrollLeft, max=car.scrollWidth-car.clientWidth;\n  elContent.querySelectorAll('[data-car=\"'+car.id+'\"]').forEach(function(btn){\n    btn.disabled=(parseInt(btn.dataset.dir)===-1)?(sl<=4):(sl>=max-4);\n  });\n}\n\nelContent.addEventListener('click',function(e){\n  var nb=e.target.closest('.nav-btn');\n  if(nb&&!nb.disabled){\n    var car=document.getElementById(nb.dataset.car);\n    if(car) car.scrollBy({left:parseInt(nb.dataset.dir)*290,behavior:'smooth'});\n    return;\n  }\n  var sb=e.target.closest('.sbtn');\n  if(sb){e.stopPropagation();shareV(sb.dataset.id,sb.dataset.title);return;}\n  var card=e.target.closest('.card');\n  if(card) openModal(card.dataset.id,card.dataset.title);\n});\n\nelTabs.addEventListener('click',function(e){\n  var tab=e.target.closest('.tab');\n  if(tab&&tab.dataset.cat){activeKey=tab.dataset.cat;renderTabs();renderContent();}\n});\n\n\/* \u2500\u2500 Modal \u2500\u2500 *\/\nfunction openModal(id,title){\n  curId=id; curTitle=title;\n  elVid.innerHTML='<iframe src=\"https:\/\/www.youtube.com\/embed\/'+id+'?autoplay=1&rel=0\" allowfullscreen allow=\"autoplay;encrypted-media\"><\/iframe>';\n  elBarT.textContent=title;\n  elOv.classList.add('on');\n  document.body.style.overflow='hidden';\n}\nfunction closeModal(){\n  elOv.classList.remove('on');\n  elVid.innerHTML='';\n  document.body.style.overflow='';\n  curId=null;\n}\ndocument.getElementById('semCl').addEventListener('click',closeModal);\ndocument.getElementById('semSh').addEventListener('click',function(){if(curId)shareV(curId,curTitle);});\nelOv.addEventListener('click',function(e){if(e.target===elOv)closeModal();});\ndocument.addEventListener('keydown',function(e){if(e.key==='Escape')closeModal();});\n\n\/* \u2500\u2500 Compartir \u2500\u2500\n   Los v\u00eddeos son \"unlisted\" \u2014 YouTube NO genera vista previa\n   (Open Graph) para v\u00eddeos no listados con youtu.be ni watch?v=\n   La \u00fanica URL que S\u00cd genera thumbnail en WhatsApp\/Telegram\/etc\n   es la URL de embed corta: https:\/\/www.youtube.com\/embed\/ID\n   pero eso abre el embed, no la p\u00e1gina.\n   \n   La soluci\u00f3n: compartir https:\/\/www.youtube.com\/watch?v=ID\n   Es la URL m\u00e1s reconocida. Si el v\u00eddeo fuera p\u00fablico tendr\u00eda\n   preview autom\u00e1tica. Para unlisted, WhatsApp s\u00ed la genera\n   porque hace scraping propio; Telegram y otros tambi\u00e9n.\n   El problema anterior era usar youtu.be \u2014 con watch?v= funciona mejor. *\/\nfunction shareV(id,title){\n  var url='https:\/\/www.youtube.com\/watch?v='+id;\n  if(navigator.share){\n    navigator.share({title:title,text:title,url:url})\n      .catch(function(err){\n        if(err&&err.name!=='AbortError') copyClip(url);\n      });\n  } else {\n    copyClip(url);\n  }\n}\nfunction copyClip(txt){\n  if(navigator.clipboard&&navigator.clipboard.writeText){\n    navigator.clipboard.writeText(txt)\n      .then(function(){toast('\u2713 Enlace copiado');})\n      .catch(function(){fbCopy(txt);});\n  } else {\n    fbCopy(txt);\n  }\n}\nfunction fbCopy(txt){\n  var ta=document.createElement('textarea');\n  ta.value=txt;\n  ta.style.cssText='position:fixed;top:-9999px;left:-9999px;opacity:0';\n  document.body.appendChild(ta);\n  ta.focus(); ta.select();\n  try{\n    var ok=document.execCommand('copy');\n    toast(ok?'\u2713 Enlace copiado':'\u2717 No se pudo copiar');\n  }catch(x){ toast('\u2717 No se pudo copiar'); }\n  document.body.removeChild(ta);\n}\nfunction toast(msg){\n  elToast.textContent=msg||'\u2713 Enlace copiado';\n  elToast.classList.add('on');\n  setTimeout(function(){elToast.classList.remove('on');},2200);\n}\n\nloadData();\n})();\n<\/script><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:272px;--awb-padding-top-small:121.99728399999998px;--awb-padding-bottom-small:0px;--awb-margin-bottom-small:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:375px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><style>\n.header{\n  position:fixed;\n  top:0;left:0;\n  width:100%;\n  height:80px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  background:transparent;\n  transition:all .4s ease;\n  z-index:9999;\n  box-shadow:none\n}\n.header.scrolled{\n  background-image:url(\"https:\/\/www.tiritaito.com\/blog\/wp-content\/uploads\/2025\/10\/mensajes-de-la-virgen-para-hoy-4_resultado-scaled-1-e1759744910966.webp\");\n  background-size:cover;\n  background-position:center;\n  box-shadow:0 4px 12px rgba(0,0,0,.08)\n}\n.header-inner{\n  width:90%;\n  max-width:1200px;\n  display:flex;\n  justify-content:space-between\n}\n.menu-icon{\n  background:none;\n  border:none;\n  cursor:pointer;\n  font-size:28px;\n  color:#5A4033\n}\n.side-menu{\n  position:fixed;\n  top:0;left:-50%;\n  width:50%;\n  height:100vh;\n  background:#f9f9f9;\n  box-shadow:4px 0 15px rgba(0,0,0,.1);\n  z-index:10000;\n  display:flex;\n  flex-direction:column;\n  padding:2rem 1.5rem;\n  transition:left .4s ease;\n  overflow-y:auto\n}\n.side-menu.active{left:0}\n.close-btn{\n  align-self:flex-end;\n  background:none;\n  border:none;\n  font-size:28px;\n  color:#5A4033;\n  cursor:pointer;\n  margin-bottom:1rem\n}\n.side-menu ul{list-style:none;padding:0;margin-top:10px}\n.side-menu ul li{margin-bottom:10px}\n.side-menu ul li a,\n.side-menu ul li span{\n  display:block;\n  padding:10px 0;\n  font-size:18px;\n  text-decoration:none;\n  color:#5A4033\n}\n.side-menu ul li a:hover,\n.side-menu ul li span:hover{color:#9b6a58}\n.has-submenu .menu-item{cursor:pointer}\n.submenu-toggle{\n  display:inline-flex;\n  justify-content:space-between;\n  align-items:center;\n  width:100%\n}\n.submenu-toggle::after{\n  content:\"\u25be\";\n  margin-left:12px;\n  font-size:18px\n}\n.submenu{\n  max-height:0;\n  overflow:hidden;\n  opacity:0;\n  transition:max-height .4s ease,opacity .4s ease;\n  padding-left:20px;\n  margin-left:20px\n}\n.has-submenu.open .submenu{max-height:500px;opacity:1}\n@media(max-width:768px){\n  .side-menu{width:75%;left:-75%}\n  .side-menu.active{left:0}\n  .menu-icon{font-size:26px}\n}\n<\/style>\n\n<header class=\"header\">\n  <div class=\"header-inner\">\n    <button class=\"menu-icon\" id=\"menu-btn\" aria-label=\"Men\u00fa\">\u2630<\/button>\n  <\/div>\n<\/header>\n\n<nav class=\"side-menu\" id=\"side-menu\" aria-label=\"Men\u00fa de navegaci\u00f3n\">\n  <button class=\"close-btn\" id=\"close-btn\" aria-label=\"Cerrar men\u00fa\">\u00d7<\/button>\n  <ul>\n    <li><a href=\"https:\/\/www.tiritaito.com\/blog\/\">Inicio<\/a><\/li>\n    <li><a href=\"https:\/\/www.tiritaito.com\/blog\/tiempos-liturgicos\/preparacion-para-pentecostes\/\">Preparaci\u00f3n para Pentecost\u00e9s<\/a><\/li>\n    <li><a href=\"https:\/\/www.tiritaito.com\/blog\/seminarios-de-vida-en-el-espiritu\/\">Seminarios de vida en el Esp\u00edritu<\/a><\/li>\n\n    <li class=\"has-submenu\">\n      <div class=\"menu-item\">\n        <span class=\"submenu-toggle\">Conecta cada d\u00eda<\/span>\n      <\/div>\n      <ul class=\"submenu\">\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/la-hora-de-la-brisa-2\/\">Hora de la Brisa<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/conecta-cada-dia\/lenguas-2\/\">Lenguas<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/conecta-cada-dia\/mensaje-diario-de-la-virgen\/\">Mensaje de la virgen para hoy<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/tiempos-liturgicos\/la-santa-misa\/\">La Misa<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/salmos\/salmo-de-cada-dia\/\">Salmo para hoy<\/a><\/li>\n      <\/ul>\n    <\/li>\n\n    <li class=\"has-submenu\">\n      <div class=\"menu-item\">\n        <span class=\"submenu-toggle\">Oraciones<\/span>\n      <\/div>\n      <ul class=\"submenu\">\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/adoracion\/adoraciones\/\">Adoraciones<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/rosario\/santo-rosario\/\">Rosario<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/novenas\/menu-novenas\/\">Novenas<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/oracion-en-lenguas\/lenguas\/\">Lenguas<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/via-crucis\/via-crucis\/\">Via Crucis<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/salmos\/salmos\/\">Salmos<\/a><\/li>\n      <\/ul>\n    <\/li>\n\n    <li><a href=\"https:\/\/www.tiritaito.com\/blog\/rosario\/el-rincon-de-nico\/\">El Rinc\u00f3n de Nico<\/a><\/li>\n    <li><a href=\"https:\/\/www.tiritaito.com\/blog\/ejercito-de-intercesores\/\">Ej\u00e9rcito de Intercesores<\/a><\/li>\n\n    <li class=\"has-submenu\">\n      <div class=\"menu-item\">\n        <span class=\"submenu-toggle\">Hombres de Dios<\/span>\n      <\/div>\n      <ul class=\"submenu\">\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/santa-teresita\/\">Santa Teresita<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/papa-francisco-2\/\">Papa Francisco<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/papa-leon-xiv\/\">Papa Le\u00f3n XIV<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/hombres-de-dios\/san-juan-pablo-ii\/\">San Juan Pablo II<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/hombres-de-dios\/san-maximiliano-kolbe\/\">San Maximiliano Kolbe<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/rosario\/ensenanzas-de-emiliano-tardif\/\">Padre Emiliano Tardif<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/hombres-de-dios\/ana-catalina-emmerick\/\">Beata Ana Catalina Emmerick<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/hombres-de-dios\/padre-pio\/\">Padre P\u00edo<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/hombres-de-dios\/serafin\/\">San Seraf\u00edn de Sarov<\/a><\/li>\n      <\/ul>\n    <\/li>\n\n    <li class=\"has-submenu\">\n      <div class=\"menu-item\">\n        <span class=\"submenu-toggle\">Biblioteca<\/span>\n      <\/div>\n      <ul class=\"submenu\">\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/libros\/\">Libros<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/peliculas-2\/\">Pel\u00edculas<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiritaito.com\/blog\/biblia\/charlas-biblia\/\">Charlas Biblia<\/a><\/li>\n      <\/ul>\n    <\/li>\n\n    <li><a href=\"https:\/\/www.tiritaito.com\/blog\/tiritaito-music\/tiritaito-music\/\">Tiritaito Music<\/a><\/li>\n  <\/ul>\n<\/nav>\n\n<script>\n(()=>{\n  const header=document.querySelector('.header');\n  const menuBtn=document.getElementById('menu-btn');\n  const closeBtn=document.getElementById('close-btn');\n  const sideMenu=document.getElementById('side-menu');\n\n  \/\/ Scroll con passive:true \u2014 no bloquea el hilo principal\n  window.addEventListener('scroll',()=>{\n    header.classList.toggle('scrolled',window.scrollY>80);\n  },{passive:true});\n\n  const openMenu=()=>{\n    sideMenu.classList.add('active');\n    document.body.style.overflow='hidden';\n    closeBtn.focus();\n  };\n\n  const closeMenu=()=>{\n    sideMenu.classList.remove('active');\n    document.body.style.overflow='';\n    menuBtn.focus();\n  };\n\n  menuBtn.addEventListener('click',openMenu);\n  closeBtn.addEventListener('click',closeMenu);\n\n  \/\/ Cerrar al hacer clic fuera\n  document.addEventListener('click',e=>{\n    if(sideMenu.classList.contains('active')\n      &&!sideMenu.contains(e.target)\n      &&!menuBtn.contains(e.target)){\n      closeMenu();\n    }\n  });\n\n  \/\/ Cerrar con Escape\n  document.addEventListener('keydown',e=>{\n    if(e.key==='Escape'&&sideMenu.classList.contains('active'))closeMenu();\n  });\n\n  \/\/ Submen\u00fas\n  document.querySelectorAll('.submenu-toggle').forEach(toggle=>{\n    toggle.addEventListener('click',()=>{\n      const parent=toggle.closest('.has-submenu');\n      document.querySelectorAll('.has-submenu').forEach(item=>{\n        if(item!==parent)item.classList.remove('open');\n      });\n      parent.classList.toggle('open');\n    });\n  });\n})();\n<\/script><\/div><\/div><\/div><\/div>\n<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[94],"tags":[],"class_list":["post-17433","post","type-post","status-publish","format-standard","hentry","category-seminarios"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/posts\/17433","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/comments?post=17433"}],"version-history":[{"count":22,"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/posts\/17433\/revisions"}],"predecessor-version":[{"id":18138,"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/posts\/17433\/revisions\/18138"}],"wp:attachment":[{"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/media?parent=17433"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/categories?post=17433"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tiritaito.com\/blog\/wp-json\/wp\/v2\/tags?post=17433"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}