/* Twiniti www site chrome — chatbot + scroll-to-top (from HubSpot modules, static) */
.floating-chatbot-wrapper {
  position: fixed;
  bottom: 96px;
  right: 24px;
  z-index: 9998;
  width: auto;
  height: auto;
}
.chatbot-trigger {
  all: unset;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #FFFFFF;
  border: 0 solid transparent;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: all 0.3s ease;
  overflow: hidden;
}
.chatbot-trigger:hover { transform: scale(1.05); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); }
.chatbot-trigger:active { transform: scale(0.95); }
.chatbot-icon {
  width: 90%;
  height: 90%;
  display: block;
  margin: 0 auto;
  object-fit: contain;
  pointer-events: none;
}
.chatbot-window {
  position: fixed;
  bottom: 100px;
  right: 24px;
  width: 380px;
  height: 600px;
  max-height: calc(100vh - 140px);
  background: white;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  z-index: 9999;
  display: none;
  flex-direction: column;
  overflow: hidden;
}
.chatbot-window.active { display: flex; animation: twinitiChatSlideIn 0.3s ease; }
@keyframes twinitiChatSlideIn {
  from { opacity: 0; transform: translateY(20px) scale(0.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.chatbot-header {
  background: linear-gradient(135deg, #0073e6 0%, #005bb5 100%);
  color: white;
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-radius: 16px 16px 0 0;
}
.chatbot-header h3 { margin: 0; font-size: 18px; font-weight: 600; color: white; }
.chatbot-close {
  all: unset;
  cursor: pointer;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: white;
  transition: background 0.2s ease;
}
.chatbot-close:hover { background: rgba(255, 255, 255, 0.2); }
.chatbot-close svg { pointer-events: none; }
.chatbot-body { flex: 1; overflow: hidden; position: relative; }
.chatbot-body iframe { width: 100%; height: 100%; border: none; }

.floating-icon-wrapper {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  width: auto;
  height: auto;
}
.scroll-to-top {
  all: unset;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background-color: #ffffff;
  color: #000000;
  border: 1px solid #000000;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition: all 0.3s ease;
}
.scroll-to-top:hover { box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25); }
.scroll-to-top:focus-visible { box-shadow: 0 0 0 2px #000000; }
.scroll-to-top svg,
.scroll-to-top i {
  width: 25%;
  height: 25%;
  display: block;
  margin: 0 auto;
  fill: currentColor;
  color: inherit;
  pointer-events: none;
  font-size: 1.25rem;
  line-height: 1;
}

@media (max-width: 768px) {
  .chatbot-window {
    width: calc(100vw - 32px);
    height: calc(100vh - 100px);
    max-height: calc(100vh - 100px);
    right: 16px;
    bottom: 80px;
  }
  .floating-chatbot-wrapper { bottom: 88px; right: 16px; }
  .floating-icon-wrapper { bottom: 16px; right: 16px; }
}

/* ---- Landing-restyle follow-up (LR-006 / LR-007 / LR-009) + #169 deferred (hamburger, body tap targets) ---- */

/* LR-006 (rev): brand CTA. Black on #FF9902 is 9.81:1. */
a.button.button--highlight,
a.button.button--highlight:hover,
a.button.button--highlight:focus,
a.button.button--highlight:active { background-color: #FF9902; border-color: #FF9902; color: #000000; fill: #000000; }
a.button.button--highlight:hover,
a.button.button--highlight:focus-visible { box-shadow: 0 0 0 2px #000000; }

/* LR-009: strong, two-tone keyboard focus ring on native form submit buttons (was a 3px white outline). */
.www-native-contact-form .hs-button:focus-visible,
.www-native-contact-form button[type="submit"]:focus-visible {
  outline: 3px solid #8a5100 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 3px #ffffff !important;
}
/* Theme buttons transition everything for 0.15s, which made the ring start white; keep the ring instant. */
.www-native-contact-form .hs-button { transition-property: background-color, border-color, color, fill; }
/* Honeypot stays out of view and out of the tab order (markup already has aria-hidden + tabindex=-1). */
.loop-form-honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 767px) {
  /* LR-008: HubSpot image widgets with inline width:600px pushed home to 620px wide at 390. */
  img.hs-image-widget { max-width: 100% !important; height: auto !important; }

  /* Hamburger disclosure: hide the always-visible horizontal simple_menu (site-chrome.js fills the panel). */
  .header .hs-menu-wrapper.hs-menu-flow-horizontal {
    display: none !important;
  }

  .header .header__menu-col {
    position: static;
  }

  .header .header__wrapper--bottom {
    position: relative;
  }

  .header .header__menu-toggle {
    display: none;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
  }

  .header .header__menu-toggle.header__menu-toggle--show {
    display: inline-flex;
  }

  .header .header__menu--mobile {
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .header .header__menu--mobile .header__menu-link,
  .header .header__menu--mobile .header__button {
    display: flex;
    align-items: center;
    min-height: 44px;
    min-width: 44px;
  }

  /* Body tap targets (outside header nav). */
  main a.button,
  main a.button--highlight,
  main a.button--simple,
  main a.button--small,
  main a.hs-button,
  main .button-wrapper a,
  main a.cta_button,
  main .ps-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    box-sizing: border-box;
  }

  #main-content a[href],
  main a[href] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    box-sizing: border-box;
    padding-block: 8px;
  }
}

/* Precision Stark (Site Audit 2026-10-20 rows 10-12): type, buttons, corners */
body { font-family: Inter, sans-serif; color: #1a1c1c; }
h1, h2, h3, h4, h5, h6, blockquote,
.header__logo-company-name,
.blog-listing__post-title-link,
.accordion__summary:before { font-family: 'Hanken Grotesk', Inter, sans-serif !important; }

.button, .hs-button, button.hs-button, button[type="submit"] {
  background-color: #FF9902 !important;
  border: 1px solid #FF9902 !important;
  color: #000000 !important;
  fill: #000000 !important;
  border-radius: 8px !important;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-weight: 600;
}
.button:hover, .button:focus-visible,
.hs-button:hover, .hs-button:focus-visible,
button.hs-button:hover, button.hs-button:focus-visible,
button[type="submit"]:hover, button[type="submit"]:focus-visible {
  color: #000000 !important;
  box-shadow: 0 0 0 2px #000000;
}

.button.button--secondary {
  background-color: #FFFFFF !important;
  border: 1px solid #000000 !important;
  color: #000000 !important;
  fill: #000000 !important;
}

input, select, textarea { border-radius: 8px; }

/* S210-004: chrome controls are not brand CTAs (avoid orange on hamburger / chatbot). */
.header__menu-toggle {
  background-color: #ffffff !important;
  border: 1px solid #000000 !important;
  color: #000000 !important;
  fill: #000000 !important;
  border-radius: 8px !important;
}
.header__menu-toggle:focus-visible {
  box-shadow: 0 0 0 2px #000000 !important;
}
.chatbot-trigger {
  background-color: #ffffff !important;
  border: 1px solid #000000 !important;
  color: inherit !important;
  fill: unset !important;
  font-family: inherit !important;
  font-weight: normal !important;
}
.chatbot-trigger:focus-visible {
  box-shadow: 0 0 0 2px #000000 !important;
}

@media (max-width: 767px) {
  .floating-chatbot-wrapper {
    bottom: 88px;
    right: 16px;
  }
  #main-content h1:first-of-type,
  main h1:first-of-type {
    padding-right: 56px;
    box-sizing: border-box;
  }
}
