/* Infinity Bridge Solutions - Free site information bot */
.ibs-bot-launcher{position:fixed;right:24px;bottom:94px;min-width:58px;height:48px;padding:0 14px;border:0;border-radius:50%;background:linear-gradient(135deg,#06b6d4,#2563eb);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.28);z-index:2147483000;font:700 15px/1 system-ui,sans-serif;transition:transform .18s ease,box-shadow .18s ease}
.ibs-bot-launcher:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,0,0,.34)}
.ibs-bot-launcher:focus-visible{outline:3px solid rgba(56,189,248,.7);outline-offset:3px}
.ibs-bot-launcher-label{font-size:12px;font-weight:800;white-space:nowrap;margin-right:7px}.ibs-bot-launcher svg{width:22px;height:27px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ibs-bot-panel{position:fixed;right:24px;bottom:152px;width:min(380px,calc(100vw - 32px));height:min(570px,calc(100vh - 125px));background:#071022;color:#e5eefc;border:1px solid rgba(96,165,250,.28);border-radius:20px;box-shadow:0 22px 60px rgba(0,0,0,.48);z-index:2147482999;display:none;overflow:hidden;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.ibs-bot-panel.is-open{display:flex;flex-direction:column}
.ibs-bot-head{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#0b1c39,#08132a);border-bottom:1px solid rgba(148,163,184,.16)}
.ibs-bot-avatar{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(14,165,233,.14);color:#38bdf8;font-weight:800}
.ibs-bot-title{font-weight:800;font-size:15px}.ibs-bot-subtitle{font-size:11px;color:#94a3b8;margin-top:2px}
.ibs-bot-close{margin-left:auto;width:32px;height:32px;border:0;border-radius:9px;background:transparent;color:#94a3b8;cursor:pointer;font-size:22px;line-height:1}.ibs-bot-close:hover{background:rgba(148,163,184,.12);color:#fff}
.ibs-bot-messages{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.ibs-bot-msg{max-width:88%;padding:10px 12px;border-radius:14px;font-size:13px;line-height:1.48;white-space:pre-wrap}.ibs-bot-msg.bot{align-self:flex-start;background:#101c32;border:1px solid rgba(148,163,184,.12)}.ibs-bot-msg.user{align-self:flex-end;background:#075985;color:#fff}
.ibs-bot-msg a{color:#67e8f9;text-decoration:underline}.ibs-bot-quick{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 10px}.ibs-bot-chip{border:1px solid rgba(56,189,248,.28);background:rgba(14,165,233,.08);color:#bae6fd;border-radius:999px;padding:7px 10px;font-size:11px;cursor:pointer}.ibs-bot-chip:hover{background:rgba(14,165,233,.17)}
.ibs-bot-form{display:flex;gap:8px;padding:12px;border-top:1px solid rgba(148,163,184,.16);background:#06101f}.ibs-bot-input{flex:1;min-width:0;border:1px solid rgba(148,163,184,.24);background:#0b172b;color:#fff;border-radius:12px;padding:11px 12px;outline:none;font-size:13px}.ibs-bot-input:focus{border-color:#38bdf8}.ibs-bot-send{width:44px;border:0;border-radius:12px;background:#0ea5e9;color:#fff;cursor:pointer;font-weight:800}.ibs-bot-send:hover{background:#0284c7}
@media (max-width:640px){.ibs-bot-launcher{right:16px;bottom:82px;min-width:54px;height:46px;padding:0 12px}.ibs-bot-panel{right:12px;bottom:136px;width:calc(100vw - 24px);height:min(590px,calc(100vh - 100px));border-radius:17px}}

/* Keep the original site WhatsApp assistant visible below the bot launcher. */
a[aria-label="Direct WhatsApp Contact"]{z-index:2147483001 !important;bottom:20px !important;right:24px !important;}
@media (max-width:640px){a[aria-label="Direct WhatsApp Contact"]{right:16px !important;bottom:16px !important;}}


/* Virtual Assistant viewport-safe positioning override */
.ibva-panel,
.site-bot-panel,
#ibva-panel,
#site-bot-panel,
.ib-site-bot-panel {
  position: fixed !important;
  top: auto !important;
  left: auto !important;
  right: 20px !important;
  bottom: calc(82px + env(safe-area-inset-bottom, 0px)) !important;
  margin: 0 !important;
  max-height: min(70vh, calc(100dvh - 120px - env(safe-area-inset-bottom, 0px))) !important;
  height: min(620px, calc(100dvh - 120px - env(safe-area-inset-bottom, 0px))) !important;
  box-sizing: border-box !important;
  z-index: 2147483000 !important;
  overflow: hidden !important;
}

@media (max-width: 700px) {
  .ibva-panel,
  .site-bot-panel,
  #ibva-panel,
  #site-bot-panel,
  .ib-site-bot-panel {
    right: 12px !important;
    left: 12px !important;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
    width: auto !important;
    max-height: calc(100dvh - 96px - env(safe-area-inset-bottom, 0px)) !important;
    height: min(620px, calc(100dvh - 96px - env(safe-area-inset-bottom, 0px))) !important;
  }
}


/* Final viewport-safe assistant positioning. The real bot panel is .ibs-bot-panel. */
.ibs-bot-panel {
  position: fixed !important;
  top: auto !important;
  right: 24px !important;
  bottom: 24px !important;
  width: min(380px, calc(100vw - 32px)) !important;
  height: min(520px, calc(100dvh - 96px)) !important;
  max-height: calc(100dvh - 96px) !important;
  min-height: 280px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  z-index: 2147483000 !important;
}

.ibs-bot-launcher {
  min-width: 148px !important;
  width: auto !important;
  height: 48px !important;
  border-radius: 24px !important;
  gap: 7px !important;
  padding: 0 15px !important;
  bottom: 94px !important;
  z-index: 2147483001 !important;
}
.ibs-bot-launcher-label {
  display: inline-block !important;
  margin-right: 0 !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}
.ibs-bot-launcher svg { width: 21px !important; height: 21px !important; flex: 0 0 auto !important; }

@media (max-width: 640px) {
  .ibs-bot-panel {
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    bottom: 136px !important;
    height: min(590px, calc(100dvh - 156px)) !important;
    max-height: calc(100dvh - 156px) !important;
    min-height: 280px !important;
  }
  .ibs-bot-launcher {
    right: 16px !important;
    bottom: 82px !important;
    min-width: 142px !important;
    height: 46px !important;
  }
}

/* Runtime calculations are used only to adapt to short browser viewports. */


/* Keep the homepage WhatsApp shortcut visible on mobile/tablet when the
   navigation drawer is closed. It is hidden only while the drawer is open. */
@media (max-width:1023px) {
  html:not(.ibs-mobile-menu-open) a[aria-label="Direct WhatsApp Contact"] {
    display:flex !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
}

/* Mobile/tablet navigation: hide the two floating shortcuts while the
   three-line navigation drawer is open. Desktop/laptop is unchanged. */
@media (max-width:1023px) {
  /* Keep the homepage floating WhatsApp shortcut visible on mobile/tablet.
     It is hidden only while the three-line navigation drawer is open. */
  a[aria-label="Direct WhatsApp Contact"] {
    display:flex !important;
    visibility:visible !important;
    pointer-events:auto !important;
    z-index:2147483001 !important;
  }

  .ibs-mobile-hidden-while-menu-open {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  html.ibs-mobile-menu-open a[aria-label="Direct WhatsApp Contact"],
  html.ibs-mobile-menu-open .ibs-bot-launcher {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}


/* Mobile/tablet: floating shortcuts are hidden while the quote/request modal is open. */
@media (max-width:1023px) {
  html.ibs-mobile-quote-open a[aria-label="Direct WhatsApp Contact"],
  html.ibs-mobile-quote-open .ibs-bot-launcher {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}

/* Mobile/tablet menu performance: avoid expensive blur/entry animation on the full-screen drawer. */
@media (max-width:1023px) {
  #root > .fixed.inset-0.z-50.lg\:hidden {
    animation:none !important;
    -webkit-animation:none !important;
  }
  #root > .fixed.inset-0.z-50.lg\:hidden > .fixed.inset-0.bg-slate-950\/70 {
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  #root > .fixed.inset-0.z-50.lg\:hidden > .fixed.top-0.right-0.bottom-0 {
    transition:none !important;
    -webkit-transition:none !important;
  }
}


/* Mobile Ask a Question focus mode: only on phones/tablets.
   Desktop/laptop keeps the normal homepage visible exactly as before.
   The bot wrapper is appended directly to <body>, so hiding #root leaves
   the assistant panel visible while removing the complete homepage layer. */
@media (max-width:1023px) {
  html.ibs-site-bot-open #root {
    visibility:hidden !important;
    pointer-events:none !important;
  }
  html.ibs-site-bot-open a[aria-label="Direct WhatsApp Contact"],
  html.ibs-site-bot-open .ibs-bot-launcher {
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
  html.ibs-site-bot-open,
  html.ibs-site-bot-open body {
    overflow:hidden !important;
  }
}

/* iOS/Android browsers auto-zoom focused form fields below 16px. */
.ibs-bot-input { font-size:16px !important; line-height:1.25 !important; }
@media (max-width:640px){
  .ibs-bot-input { font-size:16px !important; min-height:44px; }
  .ibs-bot-send { min-width:44px; min-height:44px; }
}

/* Infinity voice control */
.ibs-bot-voice{position:relative;width:44px;min-width:44px;height:44px;border:1px solid rgba(56,189,248,.35);border-radius:12px;background:#0b172b;color:#dbeafe;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;overflow:visible}
.ibs-bot-voice svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ibs-bot-voice:hover{background:#10233f;border-color:#38bdf8}.ibs-bot-voice.is-listening{background:#0f3b5d;border-color:#38bdf8;box-shadow:0 0 0 4px rgba(56,189,248,.1)}
.ibs-bot-voice .ibs-voice-pulse{position:absolute;inset:4px;border:1px solid transparent;border-radius:10px;pointer-events:none}.ibs-bot-voice.is-listening .ibs-voice-pulse{border-color:rgba(56,189,248,.7);animation:ibsSachinPulse 1.15s infinite}
@keyframes ibsSachinPulse{50%{transform:scale(1.13);opacity:.35}}
@media(max-width:640px){.ibs-bot-voice{min-width:44px;width:44px;height:44px}}

.ibs-vfx-more{width:calc(100% - 24px);margin:0 12px 12px;padding:9px 10px;border:1px solid rgba(56,189,248,.3);border-radius:10px;background:rgba(14,165,233,.08);color:#bae6fd;font-size:11px;font-weight:800;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between}.ibs-vfx-more:hover{background:rgba(14,165,233,.16);border-color:#38bdf8}.ibs-vfx-more-info{margin:0 12px 14px;padding:12px;border-radius:10px;background:rgba(15,23,42,.8);border:1px solid rgba(96,165,250,.2);color:#cbd5e1;font-size:11px;line-height:1.5}.ibs-vfx-more-info p{margin:6px 0}.ibs-vfx-more-info ul{margin:6px 0 0;padding-left:16px}.ibs-vfx-more-info li{margin:3px 0}.ibs-bot-voice{width:44px!important;height:44px!important;min-width:44px!important;border-radius:50%!important;border:1px solid rgba(56,189,248,.4)!important;background:linear-gradient(145deg,#0b1c39,#0a2944)!important;color:#67e8f9!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;padding:0!important}.ibs-bot-voice svg{width:21px!important;height:21px!important;fill:none!important;stroke:currentColor!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}.ibs-bot-voice.is-listening{box-shadow:0 0 0 4px rgba(56,189,248,.12),0 0 18px rgba(56,189,248,.25)!important;background:#0e7490!important}@media(max-width:640px){.ibs-vfx-more{font-size:12px}.ibs-bot-voice{width:44px!important;min-width:44px!important}}

/* Final desktop assistant sizing: taller and roomier on PC only. */
@media (min-width: 701px) {
  .ibs-bot-panel {
    width: min(420px, calc(100vw - 48px)) !important;
    height: min(650px, calc(100dvh - 120px)) !important;
    max-height: calc(100dvh - 120px) !important;
  }
}

.ibs-bot-voice.is-active {
  box-shadow: 0 0 0 4px rgba(56,189,248,.14), 0 0 22px rgba(56,189,248,.25) !important;
}

/* When the Virtual Assistant is open, hide the two floating launch/contact
   shortcuts. They reappear automatically when the assistant is closed. */
html.ibs-site-bot-open a[aria-label="Direct WhatsApp Contact"],
html.ibs-site-bot-open .ibs-bot-launcher {
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
