/*
 * Tint Xtreme 0.10.5 — a native bottom-fixed navigation bar, not an overlay.
 * No viewport-height units, JS coordinates, transforms or scroll animations.
 */
html body #txch-fixed-contact,
html body #txch-fixed-contact * {
  box-sizing: border-box;
}

html body #txch-fixed-contact {
  position: fixed !important;
  inset: auto 0 0 !important;
  top: auto !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 455px;
  max-height: none !important;
  margin: 0 auto !important;
  padding: 6px;
  padding-right: max(6px, env(safe-area-inset-right, 0px));
  padding-bottom: max(6px, env(safe-area-inset-bottom, 0px));
  padding-left: max(6px, env(safe-area-inset-left, 0px));
  display: flex !important;
  align-items: stretch;
  gap: 0;
  border: 1px solid #3b3143;
  border-bottom: 0;
  border-radius: 14px 14px 0 0;
  background: #120f16;
  box-shadow: 0 -3px 20px rgba(12, 8, 15, 0.22);
  color: #fff;
  transform: none !important;
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  perspective: none !important;
  will-change: auto !important;
  transition: none !important;
  animation: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  overflow: visible;
  z-index: 9998;
}

html body #txch-fixed-contact > a {
  position: static;
  display: flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  padding: 8px 6px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  background-image: none !important;
  color: #fff !important;
  font: 750 0.75rem/1.25 Manrope, "Avenir Next", Inter, system-ui, sans-serif;
  text-align: center;
  text-decoration: none !important;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
}

html body #txch-fixed-contact > a[href^="tel:"] { flex-grow: 0.8; }
html body #txch-fixed-contact > a.txch-dock__quote {
  flex-grow: 1.2;
  background: var(--txch-contact-primary, #9333ea);
}
html body #txch-fixed-contact > a:hover { background: #29222f; }
html body #txch-fixed-contact > a.txch-dock__quote:hover {
  background: var(--txch-contact-hover, #7e22ce);
}
html body #txch-fixed-contact > a:focus-visible {
  outline: 3px solid #fff;
  outline-offset: -4px;
}
#txch-fixed-contact > a > span { min-width: 0; }
#txch-fixed-contact svg {
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

html body #txch-fixed-contact[data-txch-contact-count="1"] { max-width: 210px; }
html body #txch-fixed-contact[data-txch-contact-count="2"] { max-width: 380px; }
@media (max-width: 921px) {
  html body #txch-fixed-contact { max-width: none !important; }
}

/* Restore the viewport containing block only at the two document roots.
 * Page sections, header animation and modal transforms are not changed.
 * This also prevents a root-level optimisation such as translateZ(0) from
 * turning the bar into a document-positioned element. Removed with plugin CSS.
 */
html.txch-native-contact,
html.txch-native-contact > body {
  transform: none !important;
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  perspective: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  contain: none !important;
  content-visibility: visible !important;
  will-change: auto !important;
}

body.txch-has-dock,
body.txch-native-contact-page {
  padding-bottom: var(--txch-contact-space, calc(62px + env(safe-area-inset-bottom, 0px)));
}

/* Legacy bars are never a second active surface after a cached-page takeover. */
html.txch-native-contact body #txch-contact-dock-layer,
html.txch-native-contact body #txch-contact-dock,
html.txch-native-contact body .txch-dock {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html body #txch-fixed-contact[hidden],
html.txch-work-lightbox-open body #txch-fixed-contact,
body.ast-main-header-nav-open #txch-fixed-contact,
body.ast-popup-nav-open #txch-fixed-contact,
body.txch-owner-portal #txch-fixed-contact,
body.txch-quote-page #txch-fixed-contact,
body.txch-account-page #txch-fixed-contact {
  display: none !important;
}

@media print {
  html body #txch-fixed-contact { display: none !important; }
  body.txch-has-dock,
  body.txch-native-contact-page { padding-bottom: 0; }
}

/* Keep the existing Astra scroll control above the measured contact bar. */
body.txch-native-contact-page #ast-scroll-top,
body.txch-has-dock #ast-scroll-top {
  bottom: calc(var(--txch-contact-space, 62px) + 12px) !important;
}
html body #txch-fixed-contact > a[href*="wa.me/"],
html body #txch-fixed-contact > a[href*="api.whatsapp.com/"] {
  background: #108344;
  color: #fff !important;
}
html body #txch-fixed-contact > a[href*="wa.me/"]:hover,
html body #txch-fixed-contact > a[href*="api.whatsapp.com/"]:hover {
  background: #0b703a;
}
