<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://kairosatx.com/</loc></url><url><loc>https://kairosatx.com/capability-statement</loc></url><url><loc>https://kairosatx.com/services</loc></url><url><loc>https://kairosatx.com/services/drilled-piers</loc></url><url><loc>https://kairosatx.com/services/structural-concrete</loc></url><url><loc>https://kairosatx.com/geology</loc></url><url><loc>https://kairosatx.com/bid-invitation</loc></url><url><loc>https://kairosatx.com/contact</loc></url><url><loc>https://kairosatx.com/terms</loc></url><url><loc>https://kairosatx.com/privacy</loc></url><url><loc>https://kairosatx.com/safety</loc></url><url><loc>https://kairosatx.com/austin-drilled-piers</loc></url><url><loc>https://kairosatx.com/round-rock-drilled-piers</loc></url><url><loc>https://kairosatx.com/georgetown-drilled-piers</loc></url><url><loc>https://kairosatx.com/cedar-park-drilled-piers</loc></url><url><loc>https://kairosatx.com/pflugerville-drilled-piers</loc></url><url><loc>https://kairosatx.com/leander-drilled-piers</loc></url><url><loc>https://kairosatx.com/san-marcos-drilled-piers</loc></url><url><loc>https://kairosatx.com/lakeway-drilled-piers</loc></url><url><loc>https://kairosatx.com/accessibility</loc></url><url><loc>https://kairosatx.com/es/</loc></url><url><loc>https://kairosatx.com/es/declaracion-de-capacidad</loc></url><url><loc>https://kairosatx.com/es/servicios</loc></url><url><loc>https://kairosatx.com/es/servicios/pilas-perforadas</loc></url><url><loc>https://kairosatx.com/es/servicios/concreto-estructural</loc></url><url><loc>https://kairosatx.com/es/geologia</loc></url><url><loc>https://kairosatx.com/es/invitacion-a-licitar</loc></url><url><loc>https://kairosatx.com/es/contacto</loc></url><url><loc>https://kairosatx.com/es/terminos</loc></url><url><loc>https://kairosatx.com/es/privacidad</loc></url><url><loc>https://kairosatx.com/es/seguridad</loc></url><url><loc>https://kairosatx.com/insights</loc></url><url><loc>https://kairosatx.com/insights/reading-a-geotechnical-report</loc></url><url><loc>https://kairosatx.com/insights/drilled-piers-in-expansive-clay</loc></url><url><loc>https://kairosatx.com/insights/what-to-send-with-a-bid-invitation</loc></url><url><loc>https://kairosatx.com/insights/building-on-the-balcones-escarpment</loc></url><url><loc>https://kairosatx.com/insights/edwards-aquifer-permitting-explained</loc></url><url><loc>https://kairosatx.com/careers</loc></url><url><loc>https://kairosatx.com/projects</loc></url><url><loc>https://kairosatx.com/kyle-drilled-piers</loc></url><url><loc>https://kairosatx.com/manor-drilled-piers</loc></url><url><loc>https://kairosatx.com/services/helical-piles</loc></url><url><loc>https://kairosatx.com/residential</loc></url><url><loc>https://kairosatx.com/commercial</loc></url><url><loc>https://kairosatx.com/es/residencial</loc></url><url><loc>https://kairosatx.com/es/comercial</loc></url><url><loc>https://kairosatx.com/es/servicios/pilotes-helicoidales</loc></url><url><loc>https://kairosatx.com/ecosystem</loc></url><url><loc>https://kairosatx.com/construction-network</loc></url><url><loc>https://kairosatx.com/capital-infrastructure</loc></url><url><loc>https://kairosatx.com/platform</loc></url><url><loc>https://kairosatx.com/investor-solutions</loc></url><url><loc>https://kairosatx.com/new-construction</loc></url><url><loc>https://kairosatx.com/general-construction</loc></url><url><loc>https://kairosatx.com/realtor-lender</loc></url><url><loc>https://kairosatx.com/appraisal-intake</loc></url><url><loc>https://kairosatx.com/funds-and-tokenization</loc></url><url><loc>https://kairosatx.com/education-and-community</loc></url></urlset><script type="module" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "1c1238afc5de46f6b7bac4d64a710a28"}'></script>
<script data-stackpass-visitors="v2" data-workspace-id="5c2e7acc-09e3-4dc9-a7bf-ca91181a476f">(function(){
  var TRACK="https://api.stackpass.ai/public/v1/visitors/track",OPTOUT="https://api.stackpass.ai/public/v1/visitors/opt-out",CONSENT="https://api.stackpass.ai/public/v1/visitors/consent",IX_URL="https://api.stackpass.ai/public/v1/visitors/interactions",WS="5c2e7acc-09e3-4dc9-a7bf-ca91181a476f",YEAR=31536000;

  var IX_MAX=500;
  var IX_MOVE_MS=250,IX_RAGE_MS=1000,IX_RAGE_PX=30,IX_SCROLL_BUCKETS=4;
  var ixEvents=[],ixLastMove=0,ixLastX=0,ixLastY=0,ixScrollSeen={},ixRage=[],ixFlushTimer=null,ixStarted=false;
  function ixPageSize(){
    var d=document.documentElement||{},b=document.body||{};
    return {
      w:Math.max(d.scrollWidth||0,b.scrollWidth||0,d.clientWidth||0,1),
      h:Math.max(d.scrollHeight||0,b.scrollHeight||0,d.clientHeight||0,1)
    };
  }
  function ixViewport(){
    return {w:Math.max(window.innerWidth||0,1),h:Math.max(window.innerHeight||0,1)};
  }
  // Coarse label only: tag name + a short id/class hint. Never text, never a field value.
  function ixHint(el){
    try{
      if(!el||!el.tagName)return null;
      var tag=String(el.tagName).toLowerCase();
      var id=el.id?('#'+String(el.id).slice(0,24)):'';
      var cls='';
      if(!id&&el.className&&typeof el.className==='string'){
        var first=el.className.trim().split(/\s+/)[0];
        if(first)cls='.'+String(first).slice(0,24);
      }
      return (tag+id+cls).slice(0,80);
    }catch(e){return null;}
  }
  // A click is "dead" when nothing interactive sits at or above the target.
  function ixIsDeadClick(el){
    try{
      var node=el;
      for(var i=0;i<4&&node;i++){
        var n=String(node.tagName||'').toLowerCase();
        if(n==='a'||n==='button'||n==='input'||n==='select'||n==='textarea'||n==='label'||n==='summary')return false;
        if(node.getAttribute&&node.getAttribute('role')==='button')return false;
        if(node.onclick)return false;
        node=node.parentElement;
      }
      return true;
    }catch(e){return false;}
  }
  function ixPush(kind,x,y,target){
    if(ixEvents.length>=IX_MAX)return;
    var vp=ixViewport(),pg=ixPageSize();
    var ev={kind:kind,x:x,y:y,t:t,target:target||null,vw:vp.w,vh:vp.h,pw:pg.w,ph:pg.h};
    ixEvents.push(ev);
  }
  function ixFlush(){
    ixFlushTimer=null;
    if(!ixEvents.length)return;
    // Same privacy gate as the page view: never collect a signal we would not be allowed
    // to store, and never send one while blocked.
    if(ixBlocked()){ixEvents=[];return;}
    var batch=ixEvents.slice(0,IX_MAX);
    ixEvents=ixEvents.slice(batch.length);
    var vid=getCookie('sp_vid');
    var payload={workspace_id:WS,vid:vid||undefined,path:location.pathname,events:batch};
    var body=JSON.stringify(payload);
    try{
      if(navigator.sendBeacon&&navigator.sendBeacon(IX_URL,new Blob([body],{type:'application/json'})))return;
    }catch(e){}
    try{fetch(IX_URL,{method:'POST',headers:{'content-type':'application/json'},body:body,keepalive:true}).catch(function(){});}catch(e){}
  }
  function ixSchedule(){
    if(ixFlushTimer!==null)return;
    ixFlushTimer=setTimeout(ixFlush,2000);
  }
  function ixBlocked(){
    try{return isGpc()||isDnt()||isOptedOut()||getCookie('sp_consent')==='0';}catch(e){return true;}
  }
  function ixOnMove(e){
    if(ixBlocked())return;
    var now=Date.now();
    if(now-ixLastMove<IX_MOVE_MS)return;
    var dx=Math.abs((e.clientX||0)-ixLastX),dy=Math.abs((e.clientY||0)-ixLastY);
    if(dx<4&&dy<4)return;
    ixLastMove=now;ixLastX=e.clientX||0;ixLastY=e.clientY||0;
    var pg=ixPageSize(),sx=window.scrollX||0,sy=window.scrollY||0;
    ixPush('move',Math.min(1,Math.max(0,((e.clientX||0)+sx)/pg.w)),Math.min(1,Math.max(0,((e.clientY||0)+sy)/pg.h)),null);
    ixSchedule();
  }
  function ixOnScroll(){
    if(ixBlocked())return;
    var pg=ixPageSize(),vh=Math.max(window.innerHeight||0,1);
    var maxScroll=Math.max(pg.h-vh,1);
    var depth=Math.min(1,Math.max(0,(window.scrollY||0)/maxScroll));
    var bucket=Math.min(IX_SCROLL_BUCKETS-1,Math.floor(depth*IX_SCROLL_BUCKETS));
    if(ixScrollSeen[bucket])return;
    ixScrollSeen[bucket]=true;
    ixPush('scroll',0.5,(bucket+1)/IX_SCROLL_BUCKETS,null);
    ixSchedule();
  }
  function ixOnClick(e){
    if(ixBlocked())return;
    var pg=ixPageSize(),sx=window.scrollX||0,sy=window.scrollY||0;
    var x=Math.min(1,Math.max(0,((e.clientX||0)+sx)/pg.w)),y=Math.min(1,Math.max(0,((e.clientY||0)+sy)/pg.h));
    var hint=ixHint(e.target);
    ixPush(ixIsDeadClick(e.target)?'dead':'click',x,y,hint);
    var now=Date.now();
    ixRage=ixRage.filter(function(p){return now-p.t<IX_RAGE_MS;});
    ixRage.push({t:now,x:e.clientX||0,y:e.clientY||0});
    if(ixRage.length>=3){
      var first=ixRage[0],near=ixRage.every(function(p){return Math.abs(p.x-first.x)<=IX_RAGE_PX&&Math.abs(p.y-first.y)<=IX_RAGE_PX;});
      if(near){ixPush('rage',x,y,hint);ixRage=[];}
    }
    ixSchedule();
  }
  function ixStart(){
    if(ixStarted)return;
    ixStarted=true;
    document.addEventListener('click',ixOnClick,true);
    addEventListener('scroll',ixOnScroll,{passive:true});
    addEventListener('mousemove',ixOnMove,{passive:true});
    addEventListener('pagehide',ixFlush);
    addEventListener('visibilitychange',function(){if(document.visibilityState==='hidden')ixFlush();});
  }
  function getCookie(n){
    var parts=('; '+document.cookie).split('; '+n+'=');
    if(parts.length<2)return null;
    var v=parts.pop().split(';')[0];
    return v?decodeURIComponent(v):null;
  }
  function setCookie(n,v,maxAge){try{document.cookie=n+'='+encodeURIComponent(v)+';Max-Age='+maxAge+';Path=/;SameSite=Lax;Secure';}catch(e){}}
  function delCookie(n){try{document.cookie=n+'=;Max-Age=0;Path=/;SameSite=Lax;Secure';}catch(e){}}
  function isGpc(){try{return navigator.globalPrivacyControl===true;}catch(e){return false;}}
  function isDnt(){try{return navigator.doNotTrack==='1';}catch(e){return false;}}
  function isOptedOut(){return getCookie('sp_optout')==='1';}
  var stitch=null;
  try{
    var u=new URL(location.href),st=u.searchParams.get('sp_st');
    if(st){stitch=st;u.searchParams.delete('sp_st');history.replaceState(null,'',u.pathname+u.search+u.hash);}
  }catch(e){}
  function send(consentOverride){
    try{
      // The track POST is CROSS-SITE (tenant host -> the platform API), so the
      // tenant-host sp_optout/sp_consent cookies are never sent to the server by the
      // browser itself — they must ride in the body instead. Sec-GPC/DNT headers ARE
      // sent cross-site by the browser, but gpc:true rides along too as a
      // belt-and-braces signal in case a header gets stripped somewhere upstream.
      var gpc=isGpc(),optedOut=isOptedOut(),blocked=gpc||isDnt()||optedOut;
      var vid=blocked?null:getCookie('sp_vid');
      var payload={workspace_id:WS,path:location.pathname,referrer:document.referrer||undefined,title:document.title||undefined};
      if(!blocked&&vid)payload.vid=vid;
      if(!blocked&&stitch)payload.stitch_token=stitch;
      if(optedOut)payload.opted_out=true;
      if(gpc)payload.gpc=true;
      if(typeof consentOverride==='boolean'){
        payload.consent=consentOverride;
      }else{
        var consentCookie=getCookie('sp_consent');
        if(consentCookie==='1')payload.consent=true;
        else if(consentCookie==='0')payload.consent=false;
      }
      fetch(TRACK,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify(payload),keepalive:true})
        .then(function(r){return r.ok?r.json().catch(function(){return null;}):null;})
        .then(function(res){
          stitch=null;
          if(!res||blocked)return;
          if(res.mode==='full'&&res.vid)setCookie('sp_vid',res.vid,YEAR);
          if(res.consent_required===true&&getCookie('sp_consent')===null)showConsentBanner();
        }).catch(function(){});
    }catch(e){}
  }
  var lastPath=location.pathname;
  function trackView(){lastPath=location.pathname;send();}
  function onNav(){if(location.pathname!==lastPath)trackView();}
  try{
    var origPush=history.pushState;
    history.pushState=function(){var r=origPush.apply(this,arguments);onNav();return r;};
  }catch(e){}
  addEventListener('popstate',onNav);
  function qs(id){return document.getElementById(id);}
  function focusables(el){return el?el.querySelectorAll('button,[href],input,select,textarea,[tabindex]:not([tabindex="-1"])'):[];}
  var prevFocus=null;
  function onKeydown(e){
    if(e.key==='Escape'){closeDialog();return;}
    if(e.key==='Tab'){
      var d=qs('sp-vi-dialog'),f=focusables(d);
      if(!f.length)return;
      var first=f[0],last=f[f.length-1];
      if(e.shiftKey&&document.activeElement===first){e.preventDefault();last.focus();}
      else if(!e.shiftKey&&document.activeElement===last){e.preventDefault();first.focus();}
    }
  }
  function dialogState(){
    var out=getCookie('sp_optout')==='1';
    var status=qs('sp-vi-status'),outBtn=qs('sp-vi-optout-btn'),inBtn=qs('sp-vi-optin-btn');
    if(status){status.hidden=!out;if(out)status.textContent='You have opted out.';}
    if(outBtn)outBtn.hidden=out;
    if(inBtn)inBtn.hidden=!out;
  }
  function openDialog(){
    var ov=qs('sp-vi-overlay'),d=qs('sp-vi-dialog');
    if(!ov||!d)return;
    ov.hidden=false;d.hidden=false;dialogState();
    prevFocus=document.activeElement;
    var f=focusables(d);
    if(f.length)f[0].focus();
    document.addEventListener('keydown',onKeydown);
  }
  function closeDialog(){
    var ov=qs('sp-vi-overlay'),d=qs('sp-vi-dialog');
    if(ov)ov.hidden=true;
    if(d)d.hidden=true;
    document.removeEventListener('keydown',onKeydown);
    if(prevFocus&&prevFocus.focus){try{prevFocus.focus();}catch(e){}}
  }
  function doOptOut(){
    var vid=getCookie('sp_vid');
    setCookie('sp_optout','1',YEAR);
    delCookie('sp_vid');
    try{fetch(OPTOUT,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({workspace_id:WS,vid:vid||undefined}),keepalive:true}).catch(function(){});}catch(e){}
    dialogState();
  }
  function doOptIn(){delCookie('sp_optout');dialogState();}
  function repositionCornerLink(shown){
    // The corner "Privacy choices" link and the consent banner are both fixed to the
    // bottom of the viewport — while the banner shows, lift the corner link above it
    // so the banner never permanently sits on top of (or hides) that link.
    try{
      var corner=document.querySelector('.sp-vi-corner'),banner=qs('sp-vi-consent-banner');
      if(!corner)return;
      if(shown&&banner)corner.style.bottom=(banner.offsetHeight+16)+'px';
      else corner.style.bottom='';
    }catch(e){}
  }
  function showConsentBanner(){
    var b=qs('sp-vi-consent-banner');
    if(!b)return;
    b.hidden=false;
    repositionCornerLink(true);
  }
  function hideConsentBanner(){
    var b=qs('sp-vi-consent-banner');
    if(b)b.hidden=true;
    repositionCornerLink(false);
  }
  function postConsent(accepted){
    try{
      var vid=getCookie('sp_vid');
      fetch(CONSENT,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({workspace_id:WS,vid:vid||undefined,accepted:accepted}),keepalive:true}).catch(function(){});
    }catch(e){}
  }
  function acceptConsent(){setCookie('sp_consent','1',YEAR);postConsent(true);hideConsentBanner();send(true);}
  function declineConsent(){setCookie('sp_consent','0',YEAR);postConsent(false);hideConsentBanner();}
  function init(){
    trackView();
    // J-365: only collect interactions when the visitor is actually tracked this page view
    // (no vid and no consent = nothing to attribute, and ixBlocked() re-checks per flush).
    if(!ixBlocked())ixStart();
    document.addEventListener('click',function(e){
      var t=e.target,link=t&&t.closest?t.closest('[data-stackpass-privacy-choices]'):null;
      if(link){e.preventDefault();openDialog();}
    });
    var closeBtn=qs('sp-vi-close-btn');if(closeBtn)closeBtn.addEventListener('click',closeDialog);
    var overlay=qs('sp-vi-overlay');if(overlay)overlay.addEventListener('click',closeDialog);
    var outBtn=qs('sp-vi-optout-btn');if(outBtn)outBtn.addEventListener('click',doOptOut);
    var inBtn=qs('sp-vi-optin-btn');if(inBtn)inBtn.addEventListener('click',doOptIn);
    var ca=qs('sp-vi-consent-accept');if(ca)ca.addEventListener('click',acceptConsent);
    var cd=qs('sp-vi-consent-decline');if(cd)cd.addEventListener('click',declineConsent);
  }
  if(document.readyState==='loading')addEventListener('DOMContentLoaded',init,{once:true});else init();
})();</script>
<div class="sp-vi-corner"><a href="#" class="sp-vi-link" data-stackpass-privacy-choices>Privacy choices</a></div>
<style>
.sp-vi-corner{position:fixed;left:12px;bottom:12px;z-index:999997}
.sp-vi-link{font:12px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#475569;background:rgba(255,255,255,.92);padding:4px 10px;border-radius:999px;text-decoration:underline;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.sp-vi-link:hover{color:#1e293b}
.sp-vi-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:999998}
.sp-vi-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,92vw);max-height:85vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3);z-index:999999;font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#1e293b}
.sp-vi-dialog-inner{padding:24px;position:relative}
.sp-vi-close{position:absolute;top:8px;right:10px;background:none;border:0;font-size:22px;line-height:1;color:#64748b;cursor:pointer;padding:6px}
.sp-vi-close:hover{color:#1e293b}
.sp-vi-heading{margin:0 0 12px;font-size:17px;font-weight:600}
.sp-vi-body{margin:0 0 16px;color:#334155}
.sp-vi-status{margin:0 0 16px;padding:8px 12px;background:#f0fdf4;color:#166534;border-radius:6px;font-weight:500}
.sp-vi-actions{display:flex;gap:10px;flex-wrap:wrap}
.sp-vi-btn{font:inherit;font-weight:600;padding:9px 16px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#1e293b;cursor:pointer}
.sp-vi-btn:hover{background:#f1f5f9}
.sp-vi-btn-primary{background:#1e293b;border-color:#1e293b;color:#fff}
.sp-vi-btn-primary:hover{background:#334155}
.sp-vi-consent-banner{position:fixed;left:0;right:0;bottom:0;z-index:999996;background:#fff;border-top:1px solid #e2e8f0;box-shadow:0 -4px 20px rgba(0,0,0,.12);padding:14px 18px calc(14px + env(safe-area-inset-bottom));display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:space-between;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#1e293b;max-height:30vh;overflow:auto;box-sizing:border-box}
.sp-vi-consent-text{margin:0;flex:1 1 240px}
.sp-vi-consent-actions{display:flex;gap:8px;flex:0 0 auto}
/* A [hidden] element must win over any author display rule for the SAME element —
   the UA stylesheet's [hidden]{display:none} is lowest-priority origin, so once an
   author rule sets display on the same selector (e.g. the banner's display:flex
   above) that author rule wins the cascade regardless of source order, and the
   element stays visible even with the hidden attribute set. Every widget element
   that is toggled via the hidden attribute gets an explicit, higher-specificity,
   !important override here so hidden always means hidden. */
.sp-vi-overlay[hidden],
.sp-vi-dialog[hidden],
.sp-vi-consent-banner[hidden],
.sp-vi-status[hidden]{display:none!important}
@media (max-width:480px){
.sp-vi-dialog-inner{padding:20px}
.sp-vi-consent-banner{flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));max-height:30vh}
.sp-vi-consent-text{flex:1 1 auto;font-size:13px}
.sp-vi-consent-actions{flex-direction:row;justify-content:stretch}
.sp-vi-consent-actions .sp-vi-btn{flex:1 1 0;padding:10px 12px;text-align:center}
}
</style>
<div id="sp-vi-overlay" class="sp-vi-overlay" hidden></div>
<div id="sp-vi-dialog" class="sp-vi-dialog" role="dialog" aria-modal="true" aria-labelledby="sp-vi-title" hidden>
  <div class="sp-vi-dialog-inner">
    <button type="button" id="sp-vi-close-btn" class="sp-vi-close" aria-label="Close">&times;</button>
    <h2 id="sp-vi-title" class="sp-vi-heading">Privacy choices</h2>
    <p class="sp-vi-body">This website uses first-party analytics to understand visits. If you share your contact details (for example by submitting a form or clicking a link sent to you), your visits may be connected to that information so this business can follow up. This business does not use device fingerprinting, does not share this with other businesses, and does not store your IP address. You can opt out at any time.</p>
    <p id="sp-vi-status" class="sp-vi-status" hidden></p>
    <div class="sp-vi-actions">
      <button type="button" id="sp-vi-optout-btn" class="sp-vi-btn sp-vi-btn-primary">Opt out of tracking</button>
      <button type="button" id="sp-vi-optin-btn" class="sp-vi-btn" hidden>Opt back in</button>
    </div>
  </div>
</div>
<div id="sp-vi-consent-banner" class="sp-vi-consent-banner" role="region" aria-label="Cookie consent" hidden>
  <p class="sp-vi-consent-text">Allow this business to recognize your visits?</p>
  <div class="sp-vi-consent-actions">
    <button type="button" id="sp-vi-consent-accept" class="sp-vi-btn sp-vi-btn-primary">Accept</button>
    <button type="button" id="sp-vi-consent-decline" class="sp-vi-btn">Decline</button>
  </div>
</div>