/* Integral Heart — "Do I really need therapy?" floating widget Served from Vercel; embedded on the Webflow site with: */ (function(){ var sc = document.currentScript; var booking = (sc && sc.getAttribute('data-booking')) || 'https://clientportal.zandahealth.com/clientportal/integralhearttherapy'; var CSS = `#iht-need-btn{ position:fixed; left:18px; bottom:18px; z-index:9000; display:inline-flex; align-items:center; gap:9px; background:#16271f; color:#f3eedd; border:1px solid rgba(201,168,106,.55); border-radius:999px; padding:13px 20px; font-size:14px; font-weight:600; font-family:inherit; cursor:pointer; box-shadow:0 8px 26px rgba(16,38,31,.3); transition:transform .2s ease; } #iht-need-btn:hover{ transform:translateY(-2px); } #iht-need-overlay{ position:fixed; inset:0; z-index:9001; background:rgba(22,39,31,.45); display:flex; align-items:center; justify-content:center; padding:18px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .25s ease, visibility 0s linear .25s; } #iht-need-overlay.open{ opacity:1; visibility:visible; pointer-events:auto; transition:opacity .25s ease; } #iht-need-modal{ position:relative; background:#f3eedd; border:1px solid rgba(201,168,106,.5); border-radius:22px; max-width:560px; width:100%; max-height:88vh; overflow-y:auto; padding:28px 26px 22px; box-shadow:0 24px 60px rgba(16,38,31,.35); transform:translateY(10px); transition:transform .25s cubic-bezier(.22,1,.36,1); } #iht-need-overlay.open #iht-need-modal{ transform:none; } #iht-need-close{ position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:50%; border:1px solid rgba(201,168,106,.4); background:#f3eedd; color:rgba(22,39,31,.6); font-size:14px; cursor:pointer; z-index:2; } .iht-eyebrow{ color:#c9a86a; font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; margin:0 0 8px; } #iht-need-title{ font-family:Georgia,"Noto Serif SC",serif; font-weight:500; color:#16271f; font-size:26px; line-height:1.15; margin:0; } .iht-zh-title{ font-family:Georgia,"Noto Serif SC",serif; color:rgba(22,39,31,.6); font-size:16px; margin:4px 0 0; } .iht-tabs{ display:flex; gap:6px; margin:16px 0 16px; } .iht-tab{ flex:1; border:1px solid rgba(201,168,106,.45); background:transparent; color:#16271f; border-radius:999px; padding:9px 6px; font-size:12.5px; font-weight:700; cursor:pointer; font-family:inherit; line-height:1.25; } .iht-tab.on{ background:#16271f; color:#f3eedd; border-color:#16271f; } .iht-panel{ display:none; } .iht-panel.on{ display:block; } .iht-intro{ color:#1c2b22; font-size:14.5px; line-height:1.6; margin:0 0 12px; } .iht-cat{ padding:11px 0; border-bottom:1px dashed rgba(201,168,106,.35); } .iht-cat:last-child{ border-bottom:none; } .iht-cat h4{ margin:0; color:#16271f; font-size:14.5px; display:flex; gap:8px; align-items:baseline; } .iht-cat h4 em{ font-style:normal; color:rgba(22,39,31,.5); font-weight:500; font-size:12.5px; } .iht-cat p{ margin:4px 0 0; color:#1c2b22; font-size:13.5px; line-height:1.55; } .iht-cat p i{ display:block; font-style:normal; color:rgba(22,39,31,.55); font-size:12.5px; line-height:1.7; margin-top:2px; } .iht-stat{ display:flex; gap:14px; align-items:center; background:#16271f; border-radius:16px; padding:16px 18px; margin:0 0 14px; } .iht-stat .n{ font-family:Georgia,serif; color:#c9a86a; font-size:42px; line-height:1; font-weight:500; } .iht-stat p{ margin:0; color:#f3eedd; font-size:13.5px; line-height:1.55; } .iht-stat p i{ display:block; font-style:normal; color:rgba(243,238,221,.7); font-size:12.5px; margin-top:3px; } .iht-fact{ padding:10px 0; border-bottom:1px dashed rgba(201,168,106,.35); } .iht-fact:last-of-type{ border-bottom:none; } .iht-fact h4{ margin:0; color:#16271f; font-size:14px; } .iht-fact p{ margin:4px 0 0; color:#1c2b22; font-size:13.5px; line-height:1.55; } .iht-fact p i{ display:block; font-style:normal; color:rgba(22,39,31,.55); font-size:12.5px; line-height:1.7; margin-top:2px; } .iht-arc{ margin-top:4px; padding-left:18px; border-left:2px solid rgba(201,168,106,.45); } .iht-arc div{ padding:7px 0; } .iht-arc b{ color:#c9a86a; font-size:11px; letter-spacing:.1em; text-transform:uppercase; display:block; } .iht-arc p{ margin:2px 0 0; font-size:13px; color:#1c2b22; line-height:1.5; } .iht-cite{ color:rgba(22,39,31,.45); font-size:11px; line-height:1.6; margin:12px 0 0; } .iht-reframe{ margin:16px 0 0; padding:14px 16px; background:#16271f; color:#f3eedd; border-radius:14px; font-size:14px; line-height:1.6; } .iht-reframe i{ display:block; font-style:normal; color:rgba(243,238,221,.75); font-size:13px; line-height:1.7; margin-top:6px; } .iht-cta{ display:flex; justify-content:center; align-items:center; margin-top:14px; background:#c9a86a; color:#16271f; font-weight:700; font-size:15px; border-radius:999px; padding:14px 20px; text-decoration:none; } .iht-small{ text-align:center; color:rgba(22,39,31,.55); font-size:12px; margin:8px 0 0; } .iht-crisis{ text-align:center; color:rgba(22,39,31,.5); font-size:11px; margin:12px 0 0; padding-top:10px; border-top:1px solid rgba(201,168,106,.3); } @media (max-width:480px){ #iht-need-btn{ left:12px; bottom:12px; padding:12px 16px; font-size:13px; } } @media (prefers-reduced-motion: reduce){ #iht-need-btn,#iht-need-overlay,#iht-need-modal{ transition:none; } }`; var HTML = `
`.replace(/YOUR_CLINIKO_LINK/g, booking); function mount(){ if (document.getElementById('iht-need')) return; var st = document.createElement('style'); st.textContent = CSS; document.head.appendChild(st); document.body.insertAdjacentHTML('beforeend', HTML); (function(){ var btn=document.getElementById('iht-need-btn'), ov=document.getElementById('iht-need-overlay'), cl=document.getElementById('iht-need-close'), modal=document.getElementById('iht-need-modal'), tabs=[].slice.call(document.querySelectorAll('.iht-tab')), panels=[].slice.call(document.querySelectorAll('.iht-panel')), lastFocus=null; tabs.forEach(function(tb,i){ tb.addEventListener('click',function(){ tabs.forEach(function(x,k){ x.classList.toggle('on',k===i); x.setAttribute('aria-selected',k===i); }); panels.forEach(function(p,k){ p.classList.toggle('on',k===i); }); modal.scrollTop=0; }); }); function open(){ lastFocus=document.activeElement; ov.classList.add('open'); btn.setAttribute('aria-expanded','true'); document.body.style.overflow='hidden'; cl.focus(); } function shut(){ ov.classList.remove('open'); btn.setAttribute('aria-expanded','false'); document.body.style.overflow=''; if(lastFocus) lastFocus.focus(); } btn.addEventListener('click',open); cl.addEventListener('click',shut); ov.addEventListener('click',function(e){ if(!modal.contains(e.target)) shut(); }); document.addEventListener('keydown',function(e){ if(e.key==='Escape'&&ov.classList.contains('open')) shut(); }); })(); } if (document.readyState !== 'loading') mount(); else document.addEventListener('DOMContentLoaded', mount); })();

Resources

 Articles
The therapeutic benefits of creative expression in mental health
The power of simplicity and how it can improve mental clarity
Establishing boundaries can be the first step in building strong relationships